PHP中用于迭代数组的For循环在第一个循环上工作,但在第二个循环上不工作
如果(isset($\u GET['q'])){ $q=$_GET['q']PHP中用于迭代数组的For循环在第一个循环上工作,但在第二个循环上不工作,php,for-loop,Php,For Loop,如果(isset($\u GET['q'])){ $q=$_GET['q'] //variables $sql = "SELECT * FROM products WHERE product LIKE '%$q%' OR search LIKE '%$q%'"; $result = $conn->query($sql); //check database
//variables
$sql = "SELECT * FROM products WHERE product LIKE '%$q%' OR search LIKE '%$q%'";
$result = $conn->query($sql);
//check database
if($result->num_rows > 0){
while ($row = $result->fetch_array()){
$product = $row['product'];
$productImage = $row['product_image'];
$price = $row['price'];
$seller = $row['seller_name'];
$sellerImage = $row['seller_image'];
$desc = $row['description'];
$search = $row['search'];
$console = $row['console'];
$array = array($product, $price, $productImage);
$arrayDesc = array($desc, $sellerImage);
if (preg_match('/Game/', $seller)){
for ($num = 0; $num < 3; $num++) {
echo '<div class="tile col-md-4 col-sm-3">';
if($num == 0){
echo '<div class="tileTitleBox"><h4>' . $array[$num] . '</h4></div>';
}
if($num = 1){
echo '<p class="price">' . $array[$num] . '</p>';
}
if($num = 2){
echo '<img class="tilePic" src="' . $array[$num] . '"/>';
}
// if($num = 3){
// echo '<div class = "desc"><p>' . $array[$num] . '</p></div>';
// }
echo '</div>';
}//For Iteration Loop - TILE
for($count = 0; $count < 2; $count++){
echo '<div class="tile-description col-md-4 col-sm-3 hidden">';
if($count == 0){
echo '<div class="desc"><p>' . $arrayDesc[$count] . '</p></div>';
}
if($count == 1){
echo '<img class="sellerImg" src="' . $arrayDesc[$count] . '"/>';
}
echo '</div>';
}//end for loop - TILE-DESCRIPTION
//变量
$sql=“从产品中选择*,其中产品为“%$q%”或搜索为“%$q%”;
$result=$conn->query($sql);
//检查数据库
如果($result->num_rows>0){
而($row=$result->fetch_array()){
$product=$row['product'];
$productImage=$row['product_image'];
$price=$row['price'];
$seller=$row['seller_name'];
$sellerImage=$row['seller_image'];
$desc=$row['description'];
$search=$row['search'];
$console=$row['console'];
$array=array($product,$price,$productImage);
$arrayDesc=数组($desc,$sellerImage);
如果(preg_match('/Game/',$seller)){
对于($num=0;$num<3;$num++){
回声';
如果($num==0){
回显'.$array[$num].';
}
如果($num=1){
echo'。$array[$num].
';
}
如果($num=2){
回声';
}
//如果($num=3){
//回显“”.$array[$num]。”;
// }
回声';
}//对于迭代循环-平铺
对于($count=0;$count<2;$count++){
回声';
如果($count==0){
回显“”.$arrayDesc[$count]。”;
}
如果($count==1){
回声';
}
回声';
}//循环结束-平铺描述
正如您在上面看到的,我有一个for循环,它创建“tile”,第二个应该创建“tile description”。第一个可以很好地使用“tile”类创建一个div,其中剩余的内容加载到div中。但是在第二个for循环中,“desc”dev和“sellerImg”div是分开的。循环需要多次通过数组
如下所示:
@sam dufel正确地指出您正在覆盖迭代器
if($num = 1){
但事实上,这里不应该使用任何循环:
echo '<div class="tile col-md-4 col-sm-3">';
echo '<div class="tileTitleBox"><h4>' . $array[0] . '</h4></div>';
echo '<p class="price">' . $array[1] . '</p>';
echo '<img class="tilePic" src="' . $array[2] . '"/>';
echo '</div>';
echo '<div class="tile-description col-md-4 col-sm-3 hidden">';
echo '<div class="desc"><p>' . $arrayDesc[0] . '</p></div>';
echo '<img class="sellerImg" src="' . $arrayDesc[1] . '"/>';
echo '</div>';
echo';
回显'.$array[0].';
echo'。$array[1].
;
回声';
回声';
回声';
回显“”.$arrayDesc[0]。”;
回声';
回声';
您根本不需要循环。仅供参考:$num=1
是一个赋值,而不是一个比较。遍历数组的最佳方式是什么?我需要数组遍历不同的时间。不仅仅是一次迭代。问题是,我需要遍历数组不同的时间。@CarlosHernandez可能,但不需要遍历任何数组你已经在你的例子中展示了。这个数组需要多次迭代。这是如何实现的?在你更新的例子中,你在每一个循环中都创建了这些数组。正确的答案是:不要把员工放在新的数组中,而只是显示$row中的内容。