Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:从MySQL数据库检索多行_Php_Mysql_Sql_Database - Fatal编程技术网

PHP:从MySQL数据库检索多行

PHP:从MySQL数据库检索多行,php,mysql,sql,database,Php,Mysql,Sql,Database,我得到了一个包含评论的MySQL数据库,我正在尝试使用以下代码检索和显示所有评论: $retrieve_reviews = "SELECT * FROM reviews WHERE PRODUCT_ID = $pid"; $do_retrieve_reviews = mysqli_query($connection, $retrieve_reviews); if(mysqli_num_rows($do_retrieve_reviews) > 0) { while($review_r

我得到了一个包含评论的MySQL数据库,我正在尝试使用以下代码检索和显示所有评论:

$retrieve_reviews = "SELECT * FROM reviews WHERE PRODUCT_ID = $pid";
$do_retrieve_reviews = mysqli_query($connection, $retrieve_reviews);
if(mysqli_num_rows($do_retrieve_reviews) > 0) {
    while($review_row = mysqli_fetch_assoc($do_retrieve_reviews)) {
        echo '<div class="review" style="width:50%;height:200px;float:left;background:blue;display:inline;">';
        echo '<h1>' . $review_row["RATING"] . ' out of 5</h1><br>';
        echo '<p>' . $review_row["REVIEW"] . '</p>';
        echo '<h4>' . $review_row["CUSTOMER"] . '</h4>';
        echo '<h5>' . $review_row["REVIEW_DATE"] . '</h5>';
        echo '</div>';
    }
}
我得到了这样的结果:

int 3
array (size=6)
'REVIEW_ID' => string '10' (length=2)
'PRODUCT_ID' => string '10' (length=2)
'RATING' => string '4' (length=1)
'REVIEW' => string 'good board' (length=10)
'CUSTOMER' => string ' Jozo  Milan ' (length=13)
'REVIEW_DATE' => string '2015-04-26 00:00:00' (length=19)

int 3
array (size=6)
'REVIEW_ID' => string '11' (length=2)
'PRODUCT_ID' => string '10' (length=2)
'RATING' => string '2' (length=1)
'REVIEW' => string 'Very bad I dont know how can even sell that for so much.     Trash!' (length=63)
'CUSTOMER' => string ' Fero  Mrkva ' (length=13)
'REVIEW_DATE' => string '2015-04-26 00:00:00' (length=19)

int 3
array (size=6)
'REVIEW_ID' => string '12' (length=2)
'PRODUCT_ID' => string '10' (length=2)
'RATING' => string '4' (length=1)
'REVIEW' => string 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffff' (length=57)
'CUSTOMER' => string ' pooooo  hhhhhhh ' (length=17)
'REVIEW_DATE' => string '2015-04-26 00:00:00' (length=19)

这些都是正确的结果。但是,仅显示最后一个。非常混乱。

使用
mysqli\u fetch\u assoc代替
mysqli\u fetch\u数组的

不同的函数将返回什么

mysql_fetch_row
此函数将返回一行,其中的值将按照SQL查询中定义的顺序出现,键的范围从0到小于所选列数的1

mysql_fetch_assoc
此函数将返回一行作为关联数组,其中列名是存储相应值的键

mysql_fetch_array
此函数实际上将返回一个数组,其中mysql_fetch_row和mysql_fetch_assoc的内容合并为一个数组。它既有数字键,也有字符串键,可以让您以最简单的方式访问数据

但建议使用_assoc或_row

这个代码应该可以工作

$retrieve\u reviews=“选择*FROM reviews,其中PRODUCT\u ID=$pid”;
$do_retrieve_reviews=mysqli_query($connection,$retrieve_reviews);
如果(mysqli_num_rows($do_retrieve_reviews)>0){
$review\u row=mysqli\u fetch\u assoc($do\u retrieve\u reviews);
foreach($review\u行为$reviews){
回声';
回音“.$reviews[“RATING”]。“共5次
”; 回显“”.$reviews[“REVIEW”]。

”; 回音“.$reviews[“CUSTOMER”]”; echo'.$reviews[“REVIEW_DATE”].'; 回声'; } }否则{ 回声' 尚未提供此产品的评论。 '; }
尝试
mysqli\u fetch\u assoc
而不是
mysqli\u fetch\u数组
请格式化您的代码!:)因为您只获取一个数据,所以像这样的查询将使用
SELECT*FROM reviews
@SagarPanchal来获取所有产品的所有评论。然而,我试图只获取当前产品的那些。这就是为什么会有WHERE条件。你一定是把CSS搞砸了。离开div,但扔掉所有“风格”和“阶级”的东西。我想从这一点上你会没事的为什么OP要“试试这个”?请解释一下你做了什么,以及你为什么这样做,不仅是为了OP,也是为了SO的未来访客。好吧,我对stackoverflow还不熟悉。注意。通过您的代码,我得到了以下错误:警告:第66行…\details.php中的非法字符串偏移量“REVIEW”,每个项目都有一个警告(评级、审核、客户、审核日期)。你知道这意味着什么吗?是我遗漏了什么,还是你的代码只从数据库中获取了一行?我正在测试的这个特定产品的数据库中现在有3条评论,它只显示了最后一条。
mysql_fetch_array