PHP有点新,但我认为我走在正确的轨道上。我正在尝试在sql表上搜索序列号。我想要串口#的响应以及它的列。如果有帮助(id,30,32,31),有4列。
编辑:对不起混淆......当我输入序列号#002062008002220(所有序列号都是16位数字)。我得到一个空白页面显示...当前表格在下面30 32 31 002062008002220 002062008002222 002062008002233
<form action="search.php" method="get">
<input id="serials" type="text" name="serials" />
<input type="submit" />
</form>
<?php
$con=mysqli_connect("localhost", "xxx", "xxx", "nsmserials");
if (mysqli_connect_errno ()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$search = mysql_real_escape_string($_REQUEST['serials']);
$query = "SELECT 30, 32, 31 FROM nsmtable WHERE 30 LIKE '%$search%' OR 32 LIKE '%$search%' OR 31 LIKE '%$search%'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
echo "<li><span class='name'><b>{$row['serials']}</b></span></li>";
}
mysqli_close($con);
?>
答案 0 :(得分:0)
尝试
query('//...')->fetchColumn()
答案 1 :(得分:0)
我看到你混淆了$_GET[]
和$_POST
..
尝试更改
$query = "SELECT nsmtable WHERE id LIKE '%".$_POST['serials']."%'";
到
$query = "SELECT nsmtable WHERE id LIKE '%{$search}%'";
您已经准备好了搜索字符串。使用它而不是$ _POST。对于功能注意事项,请勿混淆$_GET[]
和$_POST[]
。如果您不记得使用的方法,请使用$_REQUEST[]
。
我希望这会有所帮助。
<强> ADDED 强> 另一个查看查询揭示了其他错误。我想你想做的是
"SELECT 30, 32, 31 FROM nsmtable WHERE 30 LIKE '%$search%' OR 32 LIKE '%$search%' OR 31 LIKE '%$search%'"
如果ID不是序列号,则查询与任何元组都不匹配。并且您可以添加一些echo语句来查看脚本停止的位置.....
其他编辑发现了其他错误
<form action="search.php" method="get">
<input id="serials" type="text" name="serials" />
<input type="submit" />
</form>
<?php
$con=mysqli_connect("localhost", "xxx", "xxx", "nsmserials");
if (!$con) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$search = mysql_real_escape_string($_REQUEST['serials']);
$query = "SELECT 30, 32, 31 FROM nsmtable WHERE 30 LIKE '%$search%' OR 32 LIKE '%$search%' OR 31 LIKE '%$search%'";
$result = mysqli_query($con, $query);
if(!$result){
die( "Error : "+ mysqli_error($con))s;
}
while ($row = mysqli_fetch_array($result)){
echo "<li><span class='name'><b>{$row['serials']}</b></span></li>";
}
mysqli_close($con);
?>
你混淆了mysqli和mysql ....选择一个并坚持下去!
答案 2 :(得分:0)
如果不确定传递的表单字段是哪种类型使用$_REQUEST
这将使你免于许多问题。
在您的上述问题中,您正在使用GET
从表单发送数据(这就是它在ur url中显示的原因)
在您的PHP脚本中使用POST
方法。只需验证并且代码应该运行良好。