如何使用 PHP 使用 textarea 参数进行查询
how to make a query using textarea parameters using PHP
首先,英语不好!
我正在尝试进行查询,其中我使用 textarea 传递参数,如果我在 textarea 中写一行,我的代码就可以正常工作。
我的代码:
//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)) { ?>
<table>
<td style="padding:5px"> <?php echo $row["CODIGO_VENDEDOR"];?></td>
<td style="padding:5px"> <?php echo $row["NOME_VENDEDOR"];?></td>
<td style="padding:5px"> <?php echo $row["SENHA_URA"];?></td>
</table>
<?php }
?
将查询更改为:
$sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO from senha where CODIGO_VENDEDOR IN ('" . $teste . "')";
至
$sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO from senha where CODIGO_VENDEDOR IN ('$teste')";
如果变量$_POST['comment']
有这样的东西:
123,456,567...(逗号分隔值)
那么你需要这样的东西:
$teste = explode(",", $_POST['coment']);
然后在 SQL 中输入如下内容:
$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')";
这就是上面代码的作用。
我可以使用 foreach 解决这个问题。像这样:
$teste = explode("\r\n",$_POST['comentario']);
foreach($teste as $teste2){
$sql = "SELECT
CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,
DATA_EXPIRACAO
FROM senha
WHERE CODIGO_VENDEDOR = ('$teste2')";
$results = mysqli_query($conexao,$sql);
while($row = mysqli_fetch_assoc($results)) { ?>
<table>
<td style="padding:5px"> <?php echo
$row["CODIGO_VENDEDOR"];?></td>
<td style="padding:5px"> <?php echo
$row["NOME_VENDEDOR"];?></td>
<td style="padding:5px"> <?php echo
$row["SENHA_URA"];?></td>
</table>
<?php }}
?>
首先,英语不好!
我正在尝试进行查询,其中我使用 textarea 传递参数,如果我在 textarea 中写一行,我的代码就可以正常工作。
我的代码:
//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)) { ?>
<table>
<td style="padding:5px"> <?php echo $row["CODIGO_VENDEDOR"];?></td>
<td style="padding:5px"> <?php echo $row["NOME_VENDEDOR"];?></td>
<td style="padding:5px"> <?php echo $row["SENHA_URA"];?></td>
</table>
<?php }
?
将查询更改为:
$sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO from senha where CODIGO_VENDEDOR IN ('" . $teste . "')";
至
$sql = "SELECT CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,DATA_EXPIRACAO from senha where CODIGO_VENDEDOR IN ('$teste')";
如果变量$_POST['comment']
有这样的东西:
123,456,567...(逗号分隔值)
那么你需要这样的东西:
$teste = explode(",", $_POST['coment']);
然后在 SQL 中输入如下内容:
$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')";
这就是上面代码的作用。
我可以使用 foreach 解决这个问题。像这样:
$teste = explode("\r\n",$_POST['comentario']);
foreach($teste as $teste2){
$sql = "SELECT
CODIGO_VENDEDOR,NOME_VENDEDOR,SENHA_URA,
DATA_EXPIRACAO
FROM senha
WHERE CODIGO_VENDEDOR = ('$teste2')";
$results = mysqli_query($conexao,$sql);
while($row = mysqli_fetch_assoc($results)) { ?>
<table>
<td style="padding:5px"> <?php echo
$row["CODIGO_VENDEDOR"];?></td>
<td style="padding:5px"> <?php echo
$row["NOME_VENDEDOR"];?></td>
<td style="padding:5px"> <?php echo
$row["SENHA_URA"];?></td>
</table>
<?php }}
?>