错误读取
mysqli_fetch_array()要求参数1为mysqli_result,在第744行的C:\ xampp \ htdocs \ beta \ jawa \ isi.php中给出双倍
第744行是:while($r=mysqli_fetch_array($hasil))
完整代码:
<?php
$cari = "SELECT * FROM produk WHERE " ;
for ($i=0; $i<=$jml_kata; $i++) {
$cari .= "deskripsi LIKE '%$pisah_kata[$i]%' OR nama_produk LIKE '%$pisah_kata[$i]%'";
if ($i < $jml_kata ) {
$cari .= " OR ";
}
}
$cari .= " ORDER BY id_produk DESC LIMIT 12";
$hasil = mysqli_query($con,$cari);
while($r=mysqli_fetch_array($hasil)) {
include "diskon_stok.php";
echo"<div class='container_produk'>
<a href='produk-$r[id_produk]-$r[produk_seo].html'><img src='http://images.rajafotocopy.com/foto_produk/$r[gambar]'/></a>
<div class='detail'>
<span style='font-family : sui'>$r[nama_produk]</span><br />
$divharga
</div>
</div>";
}
?>
我不明白mysqli_result有什么问题......?它返回第一个循环,但之后它抛出一个错误,并期望参数1是mysqli_result?
答案 0 :(得分:1)
diskon_stok.php
中正在做的事情:
$hasil = <something>;
其中<something>
是一个数字。
因此,当循环重复并调用mysqli_fetch_array($hasil)
时,变量不再包含查询结果,它包含此数字,并且该调用失败。
更改您用于查询结果的变量的名称。
$result = mysqli_query($con,$cari);
while($r=mysqli_fetch_array($result)){
答案 1 :(得分:0)
问题是while循环。 while循环用于布尔(true / false)表达式,当你真的想循环遍历列表本身时。更简单地说,while循环基本上是一个if语句一遍又一遍地问,只要它是真的。对于你要求的,我会推荐一个foreach循环。您可以将其设置为以下内容:
$resultArray = mysqli_fetch_array($hasil);
foreach($resultArray as $r){
[Code to execute]
}
这应该更符合您的需求。