$con=mysqli_connect($localhost,$username,$password,'db');
$query = 'SELECT `SN` FROM `list` WHERE `Floor` LIKE "LP60" AND `type`LIKE "pc"';
$result = mysqli_query($con,$query) or die(mysqli_error());
foreach ($result as $SN)
{
$get = mysqli_query($con,'SELECT * FROM pc WHERE pcSN LIKE '.$SN.'ORDER BY EvenID DESC LIMIT 1')
while ($get_row = mysqli_fetch_assoc($get)) {
echo '<tr>'; // printing table row
echo '<td id="ID">'.$get_row[0].'</td>';
echo '<td>'.$get_row[1].'</td>';
echo '<td>'.$get_row[2].'</td>';
echo '<td>'.$get_row[3].'</td>';
echo '<td>'.$get_row[4].'</td>';
echo '<td>'.$get_row[5].'</td>';
echo '<td>'.$get_row[6].'</td>';
echo '<td>'.$get_row[7].'</td>';
echo '<td>'.$get_row[8].'</td>';
echo '<td>'.$get_row[9].'</td>';
echo '<td>'.$get_row[10].'</td>';
echo '<td>'.$get_row[11].'</td>';
echo '<td>'.$get_row[12].'</td>';
echo '<td>'.$get_row[13].'</td>';
echo '<td>'.$get_row[14].'</td>';
echo'</tr>'; // closing table row
}
}
我测试了两个查询都工作正常,也测试了 print_r($SN) 但最后我得到了数组到字符串的转换错误,请帮忙
我已经通过使用找到了解决方案
'" . mysqli_escape_string($con,$SN) . "'
现在的新代码是这样的
$con=mysqli_connect($localhost,$username,$password,'db');
// mysql select query
$query = 'SELECT `SN` FROM `list` WHERE `Floor` LIKE "LP60" AND `type`LIKE "pc"';
$result = mysqli_query($con,$query) or die(mysqli_error());
while($row = mysqli_fetch_assoc($result))
{
foreach ($row as $SN){
$sql = "SELECT * FROM pc WHERE pcSN LIKE '" . mysqli_escape_string($con,$SN) . "' ORDER BY EvenID DESC LIMIT 1";
$get = mysqli_query($con,$sql);
while ($get_row = mysqli_fetch_assoc($get)) {
echo '<tr>'; // printing table row
echo '<td>'.$get_row['xxx'].'</td>';
.
.
.
.
echo '<td>'.$get_row['yyy'].'</td>';
echo'</tr>'; // closing table row
}
}
}
感谢大家一直在这里帮助我,我想把所有的点点滴滴都加起来让它成为世界。 谢谢 希望这篇文章也能对其他人有所帮助
最佳答案
您正在尝试使用数字索引访问关联数组中的值。请改用列名。 mysqli_fetch_assoc()
返回一个关联数组。
取而代之的是
$get_row[1]
尝试使用它,
$get_row['column_name']
编辑
根据您关于仍然收到错误的评论,请尝试在 $SN
和下一个连接 ORDER
之间添加一个空格。这可能会导致您的问题,因为当您回显 sql 语句时那里没有空间。
这个,
...LIKE ArrayORDER BY...
应该是,
...LIKE Array ORDER BY...
所以改变你的说法,
'SELECT * FROM pc WHERE pcSN LIKE '.$SN.'ORDER BY EvenID DESC LIMIT 1'
通过添加一个空格,
'SELECT * FROM pc WHERE pcSN LIKE '.$SN.' ORDER BY EvenID DESC LIMIT 1'
关于php - 从 sql 结果中获取多个结果并放入 foreach 查询中,得到数组到字符串的转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48282608/