我已经广泛浏览了该网站并得出结论,我遇到了许多人所遇到的问题,但我看到的答案似乎都没有效果!
基本上,我试图从存储在mySQL表中的数据填充HTML表。数据位于名为“类别”的表中。当我加载页面时,表标题出现但没有表数据。
我已经编写并重写了我的代码不少于4次 - 它作为“ul”工作正常或者只是作为纯文本呈现时,但是只要我把它放到“表”中就好像停止工作了!
这是我的代码:
<?php
include("includes/dbconnect.php"); //This works fine as tested on the page
$sql = "SELECT * FROM products";
$myData = mysql_query($sql) or die (mysql_error());
$product = mysql_fetch_array($myData);
?>
<html>
<head>
<title></title>
</head>
<body>
//This plain text works
<?php do {
echo $product['title']." <br />";
} while ($product = mysql_fetch_array($myData));
//-----------------------------------------
//Table - doesnt work
echo "<table border=1>
<tr>
<th>Title</th>
<th>Category</th>
<th>Sport</th>
<th>Team</th>
<th>Price</th>
<th>Shipping</th>
</tr>";
while ($product = mysql_fetch_array($myData)) {
echo "<tr>";
echo "<td>".$product['title']."</td>";
echo "<td>" . $product['category'] . "</td>";
echo "<td>" . $product['sport'] . "</td>";
echo "<td>" . $product['team'] . "</td>";
echo "<td>" . $product['price'] . "</td>";
echo "<td>" . $product['shipping'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
我真的在我的智慧结束,我通过无数的YouTube教程工作,仍然由于某种原因代码不会工作。有人可以帮忙吗?
答案 0 :(得分:1)
您已经在代码顶部的do while循环中运行mysql_fetch_array
。您无法多次提取结果行。而是将所有返回的行推送到数组:
$products = array();
while ($product = mysql_fetch_array($myData)) {
$products[] = $product;
}
然后,您可以循环浏览$products
多次,以构建您的网页。所以对于你的桌子,这看起来像:
echo "<table border=1>
<tr>
<th>Title</th>
<th>Category</th>
<th>Sport</th>
<th>Team</th>
<th>Price</th>
<th>Shipping</th>
</tr>";
foreach($products as $item) {
echo "<tr>";
echo "<td>" . $item['title'] . "</td>";
echo "<td>" . $item['category'] . "</td>";
echo "<td>" . $item['sport'] . "</td>";
echo "<td>" . $item['team'] . "</td>";
echo "<td>" . $item['price'] . "</td>";
echo "<td>" . $item['shipping'] . "</td>";
echo "</tr>";
}
echo "</table>";
答案 1 :(得分:0)
如果该代码看起来真的像这样删除do-while循环以及迭代$mydata
的所有内容,它会起作用,因为你浪费了内部的mysql-counter
意味着在第二个循环中你的$result
已经在最后,要么再次查询,要么将所有结果推送到一个数组中以供多次使用
答案 2 :(得分:0)
您已经使用此数据提取了一次数据..... $product = mysql_fetch_array($myData);
所以只需将此数组与foreach循环一起使用....
foreach($product as $sProduct){
// User $sProduct to access that single product.
}
答案 3 :(得分:0)
您的代码包含许多错误和实现
尝试这个,如果它适合你:
<?php
include("includes/dbconnect.php");
$sql = "SELECT * FROM products";
$myData = mysql_query($sql) or die (mysql_error());
?>
<html>
<head>
<title></title>
</head>
<body>
//This plain text works
<?php
if(mysql_num_rows ($myData) > 0)
{
$html = "<table border=1><tr>
<th>Title</th>
<th>Category</th>
<th>Sport</th>
<th>Team</th>
<th>Price</th>
<th>Shipping</th></tr>";
while ($product = mysql_fetch_array($myData))
{
$html .= "<tr>";
$html .= "<td>".$product['title']."</td>";
$html .= "<td>".$product['category']."</td>";
$html .= "<td>".$product['sport']."</td>";
$html .= "<td>".$product['team']."</td>";
$html .= "<td>" . $product['shipping'] . "</td>";
$html .= "</tr>";
}
$html .= "</table>";
echo $html;
}
else
{
echo "No Product Found";
}
?>
</body>
</html>
如果这对您有用,您可以找出问题或者我会解释:)