Php 在阵列上循环时打印阵列时出错

Php 在阵列上循环时打印阵列时出错,php,mysql,Php,Mysql,很抱歉,这个问题比较生疏。 在过去的一个小时里,我一直在试图弄清楚为什么名为$propname的数组在我循环它时不想打印。下面是我的代码 $result = mysql_query("SELECT * FROM `player_info` WHERE `position` = 'THP'") or die(mysql_error()) ; while($row = mysql_fetch_array($result)) //create arrays { $id[] = $row

很抱歉,这个问题比较生疏。 在过去的一个小时里,我一直在试图弄清楚为什么名为$propname的数组在我循环它时不想打印。下面是我的代码

$result = mysql_query("SELECT * FROM `player_info` WHERE `position` = 'THP'") or die(mysql_error()) ;

while($row = mysql_fetch_array($result)) //create arrays
{   
    $id[] = $row['player_id'];      
    $propName[] = $row['name'];
    $propLastName[]= $row['surname'];
}//end while

 //create variables for looping
$x = sizeof($propName);
$index = 0;

while($index < $x) //print variables
{
    echo $propName[$index];
    $index ++;
}
$result=mysql\u query(“从`player\u info`中选择*,其中`position`='THP'))或die(mysql\u error());
while($row=mysql\u fetch\u array($result))//创建数组
{   
$id[]=$row['player_id'];
$propName[]=$row['name'];
$propLastName[]=$row['姓氏'];
}//结束时
//为循环创建变量
$x=sizeof($propName);
$index=0;
而($index<$x)//打印变量
{
echo$propName[$index];
$index++;
}

只需简化代码即可

$result = mysql_query("SELECT * FROM `player_info` WHERE `position` = 'THP'") or die(mysql_error()) ;

while($row = mysql_fetch_array($result)) //create arrays
{   
    echo $row['name'];
}

使用PHP时需要注意的一点是:在PHP中使用
while($index<$x)
这样的结构来循环数组是非常少见的。更常见的是
foreach($p$propName){echo$p;}
不需要将
player\u id、name、姓氏
存储到单独的数组中。创建一个多维数组:
while($row=mysql\u fetch\u array($result)){$results[]=$row;}
很抱歉,我在写代码时忘了放echo。如果我把echo放进去,它仍然不会打印:(最后,因为您正在学习,所以不要使用
mysql\u query()学习)
。该扩展已被弃用。如果您是从教程中学习,请将其放下,找到一个更新的,通过参数化查询教授正确使用PDO或MySQLi的扩展。@MichaelBerkowski这很有意义,谢谢您的提示。谢谢您的帮助。我只是很好奇上面的示例为什么不起作用。
$result = mysql_query("SELECT * FROM `player_info` WHERE `position` = 'THP'") or             die(mysql_error()) ;

while($row = mysql_fetch_assoc($result)) //create arrays
{   
    $id = $row['player_id'];      
    echo $propName = $row['name'];
    $propLastName = $row['surname'];
}