PHP Друк радкоў у масіве

Я хачу, каб рэха з некалькіх радкоў у масіве, але ён выводзіць толькі адзін радок: 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

First Name: <?php echo "$fname1"; ?>


Second Name: <?php echo "$sname1"; ?>


First Name: <?php echo "$fname2"; ?>


Second Name: <?php echo "$sname2"; ?>


але гэта дае мне той жа вынік, калі абодва павінны адрознівацца адзін ад аднаго. выхад:

Імя: Джон Другое Імя: Smith

Імя: Джон Другое Імя: Smith

Калі я хачу выхад быць:

Імя: Джон Другое Імя: Smith

Імя: Боб Другая назва: Marley

Можа хто-небудзь дапамагчы мне вырашыць гэтую праблему, калі ласка? \

Дадзеныя ў базе даных:

User_ID| FName |SName| Category
1        John   Smith  Men
2        Bob    Marley Men
0
Вы павінны паўтарыць ўнутры цыклу ... вы, па сутнасці, паўтараючы пачатковае значэнне, як шмат ітэрацый, паколькі ёсць запісы. Паглядзіце, што я маю на ўвазе, проста паўтараючы ўнутры цыкла для тэставання.
дададзена аўтар brbcoding, крыніца
Вы павінны паўтарыць ўнутры цыклу ... вы, па сутнасці, паўтараючы пачатковае значэнне, як шмат ітэрацый, паколькі ёсць запісы. Паглядзіце, што я маю на ўвазе, проста паўтараючы ўнутры цыкла для тэставання.
дададзена аўтар brbcoding, крыніца

8 адказы

цыкл, пакуль перазапіс вам зменныя зноў і зноў, і толькі вывад апошняга выніку, вы павінны альбо паставіць рэха ўнутры часу або захаваць яго ў масіў, а затым цыкл па масіве

Таксама абавязкова «спыніць выкарыстанне функцыі mysql_» і перайсці да PDO :)

Рашэнне кода будзе

$query = "SELECT * FROM user WHERE Category = 'Men'";
$result = mysql_query($query);
while ($row1 = mysql_fetch_array($result)) {
?> 

First Name: <?php echo $row1['FName']; ?>

  

Second Name: <?php echo $row1['SName']; ?>

<?php       
}
2
дададзена

цыкл, пакуль перазапіс вам зменныя зноў і зноў, і толькі вывад апошняга выніку, вы павінны альбо паставіць рэха ўнутры часу або захаваць яго ў масіў, а затым цыкл па масіве

Таксама абавязкова «спыніць выкарыстанне функцыі mysql_» і перайсці да PDO :)

Рашэнне кода будзе

$query = "SELECT * FROM user WHERE Category = 'Men'";
$result = mysql_query($query);
while ($row1 = mysql_fetch_array($result)) {
?> 

First Name: <?php echo $row1['FName']; ?>

  

Second Name: <?php echo $row1['SName']; ?>

<?php       
}
2
дададзена

выкарыстоўваць масівы, а таксама проста адсочваць свой код.

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:

First Name: <?php echo "$fname[0]"; ?>


Second Name: <?php echo "$sname[0]"; ?>


First Name: <?php echo "$fname[1]"; ?>


Second Name: <?php echo "$sname[1]"; ?>



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:

First Name: <?php echo "$fname[0]"; ?>


Second Name: <?php echo "$sname[0]"; ?>


First Name: <?php echo "$fname[1]"; ?>


Second Name: <?php echo "$sname[1]"; ?>



1
дададзена

Вы перазапісаць свае каштоўнасці, таму што ваш , а Цыкл перабору кожнага радка кожны раз. Паспрабуйце гэта:

$query = "SELECT * FROM user WHERE Category = 'Men'";
// mysql_ = bad. mysqli_ = good!
$result = mysql_query($query);
$row1 = mysql_fetch_array($result);
$fname1 = $row1['FName'];
$sname1 = $row1['SName'];

// using the same $result.
$row2 = mysql_fetch_array($result);
$fname2 = $row2['FName'];       
$sname2 = $row2['SName'];

Вядома, як ужо было сказана ў іншым месцы, калі ў вас ёсць больш за два тавараў у табліцы і хочаце, каб кожны элемент у вашым выхадзе, гэта рашэнне не будзе працаваць. Калі гэта так, вы хочаце нешта накшталт гэтага:

$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
?>  

First Name: <?=$row['FName'] ?>

    

Second Name: <?=$row['SName'] ?>


<?php }

Або, у залежнасці ад вашых патрэбаў:

$result = mysql_query($query);
$men = array();
while($row = mysql_fetch_array($result))
{
    $men[] = $row;
}

// then later in the script
foreach($men as $man)
{
   //extract takes all of the array keys and turns them into local variables.
   //just make sure you read the warnings in the docs:
   //http://php.net/manual/en/function.extract.php
    extract($man);
    ?>  
    

First Name: <?=$FName ?>

    

Second Name: <?=$SName ?>


<?php }
0
дададзена
@PhilipWhitehouse Гэта залежыць ад неабходнасці, на самай справе. Для сістэм шаблонных, выкарыстоўваючы Extract гэта прасцей/ачышчальнік рашэнне
дададзена аўтар cwallenpoole, крыніца
<�Код> экстракт() жудасны і схільныя памылак. Чаму б не проста зрабіць $ чалавек [ 'FName'];
дададзена аўтар Philip Whitehouse, крыніца

Вы перазапісаць свае каштоўнасці, таму што ваш , а Цыкл перабору кожнага радка кожны раз. Паспрабуйце гэта:

$query = "SELECT * FROM user WHERE Category = 'Men'";
// mysql_ = bad. mysqli_ = good!
$result = mysql_query($query);
$row1 = mysql_fetch_array($result);
$fname1 = $row1['FName'];
$sname1 = $row1['SName'];

// using the same $result.
$row2 = mysql_fetch_array($result);
$fname2 = $row2['FName'];       
$sname2 = $row2['SName'];

Вядома, як ужо было сказана ў іншым месцы, калі ў вас ёсць больш за два тавараў у табліцы і хочаце, каб кожны элемент у вашым выхадзе, гэта рашэнне не будзе працаваць. Калі гэта так, вы хочаце нешта накшталт гэтага:

$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
?>  

First Name: <?=$row['FName'] ?>

    

Second Name: <?=$row['SName'] ?>


<?php }

Або, у залежнасці ад вашых патрэбаў:

$result = mysql_query($query);
$men = array();
while($row = mysql_fetch_array($result))
{
    $men[] = $row;
}

// then later in the script
foreach($men as $man)
{
   //extract takes all of the array keys and turns them into local variables.
   //just make sure you read the warnings in the docs:
   //http://php.net/manual/en/function.extract.php
    extract($man);
    ?>  
    

First Name: <?=$FName ?>

    

Second Name: <?=$SName ?>


<?php }
0
дададзена
@PhilipWhitehouse Гэта залежыць ад неабходнасці, на самай справе. Для сістэм шаблонных, выкарыстоўваючы Extract гэта прасцей/ачышчальнік рашэнне
дададзена аўтар cwallenpoole, крыніца
<�Код> экстракт() жудасны і схільныя памылак. Чаму б не проста зрабіць $ чалавек [ 'FName'];
дададзена аўтар Philip Whitehouse, крыніца
$query = "SELECT * FROM user WHERE Category = 'Men'";
$result = mysql_query($query);
while ($row1 = mysql_fetch_array($result)) {
 $fname1 = $row1['FName'];       
 $sname1 = $row1['SName'];
echo " 

First Name: $fname1

";
echo "

Second Name: $sname1

";
 }
0
дададзена
Сачыце за закрыццё кароткі тэг пасля $ sname1
дададзена аўтар brbcoding, крыніца
$query = "SELECT * FROM user WHERE Category = 'Men'";
$result = mysql_query($query);
while ($row1 = mysql_fetch_array($result)) {
 $fname1 = $row1['FName'];       
 $sname1 = $row1['SName'];
echo " 

First Name: $fname1

";
echo "

Second Name: $sname1

";
 }
0
дададзена
Сачыце за закрыццё кароткі тэг пасля $ sname1
дададзена аўтар brbcoding, крыніца