好的,这是我在这个项目中遇到麻烦的最后一部分(我的第一个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,以帮助澄清变量包含的内容。它只是一个字符串标题,构成了表名的一部分。
答案 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++;
}
如果你