查询后使用PHP从多行检索信息


retrieve information from multiple rows with php after query-ing

好的,这是我在这个项目中遇到麻烦的最后一部分(我的第一个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后,原来的帖子,以帮助澄清什么变量包含。它只是一个字符串标题,构成了表名的一部分。

记住,你每次只循环一行。因此,如果你同时设置这三个变量,它们都将是最后一行的值。我不知道你的$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++;
}