0

我是 PHP 的新手,我想为我的网站创建一个简单的网页应用程序,我能够根据此处的教程生成此页面。

<?php
  $con = mysql_connect("localhost","*****","*****");
  if (!$con)
  {
   die('Could not connect: ' . mysql_error());
  }

mysql_select_db("*****", $con);

$result = mysql_query("SELECT * FROM products");

echo "<table border='1'>
<tr>
<th>Name</th>
<th>classification</th>
</tr>";

while($row = mysql_fetch_array($result))
  {


  echo "<tr>";
  echo "<td>" . $row['name'] . "</td>";
  echo "<td>" . $row['classification'] . "</td>";
  echo "<td><input type='checkbox' name='{number[]}' value='{$row['prodID']}' /></td>";

  echo "</tr>";
  }
echo "</table>";

mysql_close($con);


?>

<?php



?>

<html>
<head>

</head>
<form name="form1" method="post" action="result_page.php"> 

<input type="submit"  name="Submit"      value="Submit"> 
</p> 
</form> 

<body>

</body>
</html>

但我的问题是如何创建一个 result_page.php 以在所选复选框上显示所选条目或数据库,以便我可以创建一个比较页面。我将此作为我的 result_page.php ,但没有显示任何内容。我知道我做错了什么,但我找不到。

<?php
error_reporting(E_ALL);

$host = 'localhost';                
$user = '******';       
$pass = '******';       
$dbname = '******';         
$connection = mysql_connect($host,$user,$pass) or die (mysql_errno().":  ".mysql_error()."<BR>"); 
mysql_select_db($dbname);

$sql = "SELECT * FROM products WHERE prodID IN ("; 

foreach ($_POST['number'] as $product) $sql .= "'" . $product . "',";



$sql = substr($sql,0,-1) . ")"; 



$result = mysql_query($sql); 

while ($myrow = mysql_fetch_array($result))


{ 
echo "<table border=1>\n";

echo "<tr><td>Name</td><td>Position</td></tr>\n";

do {

printf("<tr><td>%s %s</td><td>%s</tr>\n", $myrow["1"], $myrow["2"], $myrow["3"]);

} while ($myrow = mysql_fetch_array($result));

 echo "</table>\n";

} 

?>
4

1 回答 1

1

快速浏览一下,生成输出的部分不正确。您无缘无故地循环了两次。

while ($myrow = mysql_fetch_array($result)) //<========remove this line

{ //<========remove this line
echo "<table border=1>\n";

echo "<tr><td>Name</td><td>Position</td></tr>\n";

do {

printf("<tr><td>%s %s</td><td>%s</tr>\n", $myrow["1"], $myrow["2"], $myrow["3"]);

} while ($myrow = mysql_fetch_array($result));

echo "</table>\n";

}  //<========remove this line

这是通过人工解析完成的,但应该作为一个起点。

回顾一下 tadman,不,这不是一个好的教程。通常你不需要为输出做 printf 。

于 2012-08-28T23:39:08.577 回答