в то время как цикл не показывает все данные, собранные из базы данных
В то время как цикл не показывает все данные, собранные из базы данных.. показывает только последний собранный элемент на странице. вместо того, чтобы показывать все.
<?php
include "connect_to_mysql.php";
$dynamicList = "";
$sql = mysql_query("SELECT * FROM product ORDER BY date DESC LIMIT 6");
$productCount = mysql_num_rows($sql); // count the output amount
if ($productCount > 0) {
//here is problem in this while loop.. dont know why it is not gathering all the items.
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
$product_name = $row["p_name"];
$price = $row["price"];
$date_added = strftime("%b %d, %Y", strtotime($row["date"]));
$details = $row["details"];
$category = $row["category"];
$subcategory = $row["sub_category"];
$category2 = $row["category2"];
$img_name = $row["img_name"];
$v_id = $row["v_id"];
$v_name = $row["v_name"];
$v_number = $row["v_number"];
$v_email = $row["v_email"];
$dynamicList="
<div id=\"single_product\" style=\"float:left; margin-left:20px; padding:10px;\">
<h3> $product_name </h3>
<h3> <img src='pics/$img_name' width='200px' height='200px'/> </h3>
<p><b><center> RUP $price </center></b></p>
<a href=\"details.php\" style=\"float:left; font-size:20px;\">Details</a>
<a href=\"cart.php\" style=\"float:right; font-size:20px;\">Add To Cart</a>
</div>
";
}
} else {
$dynamicList = "We have no products listed in our store yet";
}
mysql_close();
?>
Я застрял здесь, пожалуйста, вытащи меня отсюда
2 answers
Вы используете
$dynamicList="...
В вашем цикле. Я предполагаю, что вы повторяете $dynamicList
позже в коде. Вам нужно использовать объединение текста, а не просто =
Так и поступай
$dynamicList .= "...
И он будет добавлять в строку каждый раз, когда проходит цикл, а не перезаписывать ее
Попробуйте удалить свой:
$productCount = mysql_num_rows($sql); // count the output amount
Вы уже извлекаете строки во всем цикле и даете оператор else, если цикл пуст. Вам не обязательно их считать.
Я столкнулся с чем-то подобным несколько месяцев назад и считаю, что это была та же проблема, что и у вас сейчас.
Вставьте оператор if в цикл while:
if ($productCount > 0) {
Затем поместите над циклом while:
$productCount = 0
;
И в цикле while, перед вашим if заявление:
$productCount++;
Редактировать:
Я только что заметил кое-что еще, вы на самом деле не повторяете свой динамический список. Вы устанавливаете переменную, но не отображаете ее?