查询后用php从多行检索信息

时间:2011-07-15 23:35:49

标签: php mysql sql

好的,这是我在这个项目中遇到麻烦的最后一部分(我的第一个php / mysql尝试)。麻烦来自最后一个'while'循环。我无法找到一种为我的变量数组赋值的方法。当在表格中使用一行时,这种格式可以获得多个列,我正在寻找一种从多个(3)行中获取一个字段的方法。想法?

$x=1;
do{
$sql = "SELECT * FROM`".$tableName."` WHERE `StopId`=".$stopId." AND `Time` >='". $time. "' LIMIT 3";   
$result = mysql_query($sql, $conn);

if (!$result){
    echo "DB Error, could not query the database\n";
    echo 'MySQL Error: ' . mysql_error();
    exit;
}

这是给我带来麻烦的部分。它将最后一个结果(因为它限制为3个结果)分配给所有值。如果我将限制更改为1或2,则会使所有值成为第一个或第二个结果。我希望第一个在time1中,第二个在time2中,第三个在time3中。


    while ($row = mysql_fetch_array($result)) {
         $time1[$routeName[$x]] = $row[Time];
         $time2[$routeName[$x]] = $row[Time];
         $time3[$routeName[$x]] = $row[Time];               

}

    $x++;
}while(!is_Null($routeName[$x])); 

编辑:

The table is in the format:
 | IdNum | StopId | Time  |
 |   1   |   1    | 12:44 |
 |   2   |   2    | 13:15 |
 |   3   |   1    | 12:55 |
 |   4   |   2    | 14:15 |
 |   5   |   1    | 13:20 |

等等。如果我要$ stopId = 1和$ time = 12:30我希望能分配:

 "12:44" to $time1[$routeName[$x]]
 "12:55" to $time2[$routeName[$x]] 
 "13:20" to $time3[$routeName[$x]]  

另外我应该补充说查询语句是有用的。

编辑: 很抱歉,在原始发布后我将$ routeNum更改为$ routeName,以帮助澄清变量包含的内容。它只是一个字符串标题,构成了表名的一部分。

1 个答案:

答案 0 :(得分:1)

嗯,你一次只能循环一行记住。因此,如果一次设置所有三个变量,它们都将成为最后一行的值。我不知道你的$ routeName变量来自哪里?尝试:

$x = 0;
while ($row = mysql_fetch_array($result)) {
     $routeName[$x] = $row['Time'];          
$x++;
}

我不知道你想如何格式化它?如果你必须将它格式化为单独的变量而不是数组,我认为你可以这样做,但我不知道你为什么要这样格式化它。

$x = 0;
while ($row = mysql_fetch_array($result)) {
     ${time.$x[$routeName[$x]]} = $row['Time'];          
$x++;
}

如果你