使用mysql中的复选框和数据创建一个Compare页面

时间:2012-08-28 22:46:04

标签: php mysql

我是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";

} 

?>

1 个答案:

答案 0 :(得分: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。