2016-03-28 8 views
-1

まず、英語には申し訳ありません!PHPを使用してテキストエリアのパラメータを使用してクエリを作成する方法

私はテキストエリアを使用してパラメータを渡すクエリを作成しようとしています。私のテキストエリアに1行書き込むと、私のコードが機能します。

マイコード:

//taking the textarea value 
 
    $text = $_POST['coment']; 
 

 
$teste = $text = str_replace("\n",",",$text); 
 

 

 

 
$sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO from senha where CODIGO_VENDEDOR IN ('" . $teste . "')"; 
 

 
$results = mysqli_query($conexao,$sql); 
 

 
while($row = mysqli_fetch_assoc($results)) { ?> 
 
\t <table> 
 
\t <td style="padding:5px"> <?php echo $row["CODIGO_VENDEDOR"];?></td> 
 
\t <td style="padding:5px"> <?php echo $row["NOME_VENDEDOR"];?></td> 
 
\t <td style="padding:5px"> <?php echo $row["SENHA_URA"];?></td> 
 
\t </table> 
 
    
 
<?php } 
 
?

+0

'$のteste'と' $ test':このように。 '$ _POST ['coment']'が値を持っているかどうかは知っています。 –

+0

次のリンクhttp://php.net/manual/en/mysqli.error.phpとhttp://php.net/manual/en/function.error-reporting.php を参照してコードに適用してください。未定義の変数通知が表示されます。 –

+0

申し訳ありませんが、手紙 "e"が間違っています。正しい変数は次のとおりです:$ teste – fabinho

答えて

0

$sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO from senha where CODIGO_VENDEDOR IN ('" . $teste . "')"; 

変数の場合

123456567 ...(カンマ区切り)

は、その後、あなたがこのようなものが必要です:

$teste = explode(",", $_POST['coment']); 

そしてSQLでこのような何か置く:

$_POST['comment']はこのような何かを持っています
$sql = "SELECT 
     CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO 
     FROM senha 
     WHERE CODIGO_VENDEDOR IN ('" . implode("','", $teste) . "')"; 

なぜコードが機能していないのですか?

さて、あなたはこの「12345、jbcd1,887y1」のようなものを受けて、あなたはこのような何かを得るように、SQLに直接連結されている:あなたは、問題は、あなたが異なる値を必要とすることで見ることができるように

$sql = "SELECT 
     CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO 
     FROM senha 
     WHERE CODIGO_VENDEDOR IN ('12345,jbcd1,887y1')"; 

をですので、次のようなものが必要です:

$sql = "SELECT 
     CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO 
     FROM senha 
     WHERE CODIGO_VENDEDOR IN ('12345','jbcd1','887y1')"; 

これは上記のコードです。

+0

助けてもらえませんでしたが、1つのレコードしか表示されません。なぜでしょうか? – fabinho

+0

結果クエリを印刷して投稿してください。mysqlクライアントでこのクエリを実行すると、結果はどうなりますか?期待される結果は何ですか? – Sal00m

+0

phpmyadminでクエリを実行すると、各IDに引用符( "")を付ける場合にのみ機能します。例:SELECT CODIGO_VENDEDOR、NOME_VENDEDOR、SENHA_URA、DATA_EXPIRACAO センナから CODIGO_VENDEDOR IN( 'MAQ04'、 '12345'); – fabinho

0

変更からの問合せ:

$sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO from senha where CODIGO_VENDEDOR IN ('$teste')"; 
+0

両方のクエリが正しい答えは – Sal00m

+0

ではありませんでした.--( – fabinho

0

私はそれをforeachを使って解決できました。 - ここでは2つの異なる動物

$teste = explode("\r\n",$_POST['comentario']); 
 

 
foreach($teste as $teste2){ 
 
$sql = "SELECT 
 
     CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA, 
 
\t DATA_EXPIRACAO 
 
     FROM senha 
 
     WHERE CODIGO_VENDEDOR = ('$teste2')"; 
 

 
$results = mysqli_query($conexao,$sql); 
 

 
while($row = mysqli_fetch_assoc($results)) { ?> 
 
\t <table> 
 
\t <td style="padding:5px"> <?php echo 
 
\t $row["CODIGO_VENDEDOR"];?></td> 
 
\t <td style="padding:5px"> <?php echo 
 
\t $row["NOME_VENDEDOR"];?></td> 
 
\t <td style="padding:5px"> <?php echo 
 
\t $row["SENHA_URA"];?></td> 
 
\t </table> 
 
    
 
<?php }} 
 
?>

+0

このようにして、クエリをDBMSに掛けます。 CODIGO_VENDEDOR =「$のteste2'' senha FROM DATA_EXPIRACAO ' を選択CODIGO_VENDEDOR、NOME_VENDEDOR、SENHA_URA、 \t:あなたは'( 'クエリからを削除することができます – Sal00m

関連する問題