我有一个包含4个值的表,其中3个是我感兴趣的。我使用的MYSQL查询是:
Select Product.product_id, Product.cost, Product.image from Product
我测试了这个查询,它适用于我的数据库。我可以弄清楚如何让单列返回值,但我无法弄清楚多列。我尝试了各种for循环,使用数组来存储各种列名和迭代事物。我很沮丧,不知道该怎么做。
这是我的最后一次尝试:
$conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) or
die('There was a problem connecting to the database');
$stmt = "Select Product.product_id, Product.cost, Product.image from Product";
if(!$result = $conn->query($stmt)){
die('there was an error retrieving the information');
}
$tablebuild = "<table>";
while ( $row = $result->fetch_assoc() ){
foreach ($row as $next){
$tablebuild .= "<tr><td>";
$tablebuild .= $result['product_id'];
$tablebuild .= "</td><td>";
$tablebuild .= $result['cost'];
$tablebuild .= "</td><td>";
$tablebuild .= $result['image'];
$tablebuild .= "</td></tr>";
}
$tablebuild .= "</table>";
显然,我正在尝试将其构建为一串代码,以便稍后可以将其回显到我需要它的页面中。但是,每次我运行此页面时,除了没有源代码的空白页面外,我什么也得不到。
答案 0 :(得分:2)
丢失foreach
并使用$row
,而不是$result
while ( $row = $result->fetch_assoc() ){
$tablebuild .= "<tr><td>";
$tablebuild .= $row['product_id'];
$tablebuild .= "</td><td>";
$tablebuild .= $row['cost'];
$tablebuild .= "</td><td>";
$tablebuild .= $row['image'];
$tablebuild .= "</td></tr>";
}
答案 1 :(得分:0)
我认为你的问题是你没有关闭while
循环,你的foreach
也不正确,这就是即使没有必要< / strong>:
$tablebuild .= "<table>";
while ( $row = $result->fetch_assoc() ){
$tablebuild .= "<tr>";
foreach ($row as $next){
$tablebuild .= "<td>$next<td>";
}
$tablebuild .= "</tr>";
}
$tablebuild .= "</table>";