我能让这个更简单吗?

时间:2010-09-29 09:12:25

标签: php

嘿 我是PHP新手(上周开始) 我在SQLDB中有10行信息 我对所有10人做同样的事情:

$db_line1 = mysql_query("SELECT * FROM messages WHERE message_id='1'");
$line1 = mysql_fetch_array($db_line1);
unset ($line1['0']);
unset ($line1['1']);
unset ($line1['2']);

$db_line2 = mysql_query("SELECT * FROM messages WHERE message_id='2'");
$line2 = mysql_fetch_array($db_line2);
unset ($line2['0']);
unset ($line2['1']);
unset ($line2['2']);

等。等到$ line10,我可以使用像“foreach”这样的功能吗?

5 个答案:

答案 0 :(得分:3)

$query = mysql_query("SELECT * FORM messages");
while($result = mysql_fetch_assoc($query))
{
  echo "<pre>";
  print_r($result);
  echo "</pre>";
}
unset($result);

答案 1 :(得分:2)

回答评论(“我可以将它们放在自己的数组中”):

$query = mysql_query("SELECT * FORM messages") or die(mysql_error());
$messages = array();
while($result = mysql_fetch_assoc($query))
{
  $messages[] = $result;
}
unset($result);

然后您可以遍历$ messages。

答案 2 :(得分:1)

编辑后的作者评论

一次取所有行

    $db_line = mysql_query("SELECT * FROM messages WHERE message_id >= '1'" .
                           " AND message_id <='10'");

    $rows = array();

    while ($line = mysql_fetch_assoc($db_line))
    {
       $rows[$line['message_id']] = $line;
    }

这样你就有了一个行数组(即一个数组数组)。

要获取message_id 3的行,只需执行

   $row = $rows[3];

并访问(例如)name列,

   $row['name']

   $rows[3]['name']

答案 3 :(得分:1)

您可以在php中使用动态创建的变量:

    for ($i = 0; $i < 3; $i++){
        unset(${'line'.$i});
    }

修改 它是如何工作的(例子):

$var1 = "hel";
$var2 = "lo";
$hello = "xxx";

echo ${$var1.$var2};  // outputs "xxx"

使用 $ {'xyz'。$ variable} 会为您提供名称为'xyz'。$ variable 的变量。请注意 “'xyz'。$ variable”首先确定。

答案 4 :(得分:-1)

$db_lines = mysql_query("SELECT * FROM messages");
while ($line = mysql_fetch_array($db_lines))
{
    unset ($line['0']);
    unset ($line['1']);
    unset ($line['2']);
}