0

PHPの初心者で、自分のWebサイト用の簡単なWebページアプリを作成したいのですが、ここのチュートリアルに基づいてこのページベースを作成することができました。

<?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

一見すると、出力を生成するセクションが正しくありません。明確な理由もなく 2 回ループしました。

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

これは人間の解析によって行われますが、出発点として役立つはずです。

要約すると、いいえ、これは良いチュートリアルではありません。通常、出力のために printf を実行する必要はありません。

于 2012-08-28T23:39:08.577 に答える