0

I want to echo out multiple lines in the array but it only outputs one line: PHP

$query = "SELECT * FROM user WHERE Category = 'Men'";
$result = mysql_query($query);
   while ($row1 = mysql_fetch_array($result)) {
     $fname1 = $row1['FName'];       
     $sname1 = $row1['SName'];
     }

$result2 = mysql_query($query);
   while ($row2 = mysql_fetch_array($result2)) {
     $fname2 = $row2['FName'];       
     $sname2 = $row2['SName'];
     }

HTML

<h2>First Name: <?php echo "$fname1"; ?></h2>
<h2>Second Name: <?php echo "$sname1"; ?></h2>

<h2>First Name: <?php echo "$fname2"; ?></h2>
<h2>Second Name: <?php echo "$sname2"; ?></h2>

but it gives me the same output when both should be different. The output is:

First Name: John Second Name: Smith

First Name: John Second Name: Smith

When i want the output to be:

First Name: John Second Name: Smith

First Name: Bob Second Name: Marley

Can anyone help me to fix this problem please?\

The data in the database is:

User_ID| FName |SName| Category
1        John   Smith  Men
2        Bob    Marley Men
4

4 に答える 4

2

whileループは変数を何度も上書きし、最後の結果のみを出力します。エコーをwhileの中に入れるか、配列に保存してから配列をループする必要があります

また、必須の「mysql_関数の使用を停止」し、PDOに変更します:)

あなたのコードの解決策は

$query = "SELECT * FROM user WHERE Category = 'Men'";
$result = mysql_query($query);
while ($row1 = mysql_fetch_array($result)) {
?> <h2>First Name: <?php echo $row1['FName']; ?></h2>
  <h2>Second Name: <?php echo $row1['SName']; ?></h2><?php       
}
于 2013-05-25T14:54:52.763 に答える
1

配列を使用し、コードをトレースするだけです。

PHP:

$query = "SELECT * FROM user WHERE Category = 'Men'";
$result = mysql_query($query);
   $fname=array();
   $sname=array();

   for($i=0;$i<2 && ($row = mysql_fetch_array($result));$i++) {
     $fname[$i] = $row['FName'];       
     $sname[$i] = $row['SName'];
     }

HTML:

<h2>First Name: <?php echo "$fname[0]"; ?></h2>
<h2>Second Name: <?php echo "$sname[0]"; ?></h2>

<h2>First Name: <?php echo "$fname[1]"; ?></h2>
<h2>Second Name: <?php echo "$sname[1]"; ?></h2>
于 2013-05-25T15:10:52.030 に答える