从DB中返回的值设置PHP变量

时间:2014-01-29 09:05:41

标签: php arrays

新手PHP并尝试学习它。我已从我的数据库返回数据。

所以行可能看起来像下面的

ID--------Name--------PhoneNo
1         Joe         1234
2         Jane        5678
3         Tom         0000

我正在使用msql_fetch_array返回如下数据:

    <?php
            while($row = mysql_fetch_array($result))
            {
                $NameOne = $row['Name'];
            }
    ?>

这将名称'Joe'置于变量名NameOne中,如预期的那样。然而,将Jane和Tome变成名为$ NameTwo和$ NameThree的变量的最佳方法是,然后我可以在我的html中进一步回显这些变量,类似我想将检索到的电话号码放入单独的变量中,稍后再参考它们我的HTML。

5 个答案:

答案 0 :(得分:3)

理想的方法是将它们保存在数组中,这可以通过以下方式实现:

$Names = array();
$i = 0;
while($row = mysql_fetch_array($result)) {
    $Names[$i] = $row['Name'];
    $i++;
}

现在您可以通过这种方式检索数据:

echo $Names[0]; // Will output the first name saved.

答案 1 :(得分:1)

如果您想真正保留结果,请将它们存储在数组中:

<?php
        $data = array();
        // Note that I've changed "mysql_fetch_array" to "mysql_fetch_assoc" to decrease the number of saved data.
        while($row = mysql_fetch_assoc($result))
        {
            $data[] = $row['Name'];
        }

        /* Now you can use the data wherever you want, like: $data[0]['Name'] for first name, $data[1]['Name'] for second name and so on */

?>

答案 2 :(得分:1)

为什么不创建数组呢?而不是创建这么多新变量?

<?php
        $i=1;
        while($row = mysql_fetch_array($result))
        {
            $Names[$i]= $row['Name'];
            $i++;
        }
?>

然后,您可以在代码中使用该数组

echo $Names[1]; // 1 or 2 or 3 etc

对于多个属性,您可以使用多维数组

        $i=1;
        while($row = mysql_fetch_array($result))
        {
            $Data[$i]["Name"]= $row['Name'];
            $Data[$i]["Phone"]= $row['Phone'];
            $i++;
        }

然后,您可以在代码中使用该数组

echo $Data[1]["Name"]; // 1 or 2 or 3 etc

答案 3 :(得分:1)

严格回答KOL的问题:

<?php
    $i = 0;
    $numbers = array('One', 'Two', 'Three', 'Four', 'Five');
    while($row = mysql_fetch_array($result)) {
        if($i++ > count($numbers) {
            throw new NotMoreNumbersSupportedException();
        }
        $varname = 'Name' . $numbers[$i++];
        $$varname = $row['Name'];
    }
    var_dump($NameOne, $NameTwo, $NameThree, $NameFour, $NameFive); //etc
?>

现在开枪打死我。

答案 4 :(得分:0)

  1. 您可以直接将html放在while循环

    <?php
            while($row = mysql_fetch_array($result))
            {
                ?>
                <div><?php echo  $row['Name']; ?> </div>
                <div><?php echo  $row['PhoneNo']; ?> </div>
            <?php }
    ?>
    
  2. 您可以将详细信息添加到另一个数组

    <?php
            $names = array();
            $phnos = array();
            while($row = mysql_fetch_array($result))
            {
                 $names[] = $row['Name'];  //$names[0] , $names[1] etc..
                 $phnos[] = $row['PhoneNo']; //$phnos[0] , $phnos[1] etc..
            }
    ?>