-1

我有这个查询:

SELECT carID FROM reservations WHERE startDate < '".$sqlretdate."' AND endDate > '".$sqlcoldate."' OR startDate = '".$sqlcoldate."' OR endDate = '".$sqlretdate."'"

使用循环:

while($presentid = mysql_fetch_array($checkreservations)) {

这将返回一个数据数组,例如:

echo "<---space-->";
print_r($presentid['carID']);

会显示:

<---space-->11<---space-->10<---space-->2<---space-->8<---space-->9<---space-->7

这是一个 id 列表,我需要对它们中的每一个做一些事情。

我可以爆炸它:

print_r(explode(" ", $presentid['carID']));

这将使它像这样打印:

Array ( [0] => 11 ) Array ( [0] => 10 ) Array ( [0] => 2 ) Array ( [0] => 8 ) Array ( [0] => 9 ) Array ( [0] => 7 )

我如何完全拆分每个 id 并将其存储到一个变量中,以便我可以使用它们来做其他事情?

在这种情况下,每个 ID 对于汽车来说都是唯一的,并且有一个与之关联的型号名称,所以我想使用该 ID 找出与其相关的型号名称,计算数据库中该型号名称的数量,然后然后检查返回的 id 有多少与该模型相关,因此还剩下多少。我希望这是有道理的。

4

3 回答 3

0

你不能把它存入一个基本变量而不覆盖它,除非你想保留很多变量,最好通过循环,将值存储到一个数组中,然后你可以在while循环结束后遍历数组结束了,除非你能马上对他们做点什么。

“我如何完全拆分每个 id 并将其存储到变量中”

while($presentid = mysql_fetch_array($checkreservations))
{
    $carId = $presentid['carID'];
    $array[] = array('id' => $carId );
}

因此,一旦结束,您就可以解析数组。

于 2013-03-12T13:59:13.293 回答
0

在您的while循环中,$presentid代表结果集中的每一行。 $presentid['carID'] 不是数组!这是一个carID值。您根本不需要在这里使用explode

while($presentid = mysql_fetch_array($checkreservations)) {
    // This *is* each car ID!  Do with it what you want.
    $carID = $presentid['carID'];
}
于 2013-03-12T14:04:47.963 回答
0
$ids = array();
$count = 0;
while($presentid = mysql_fetch_array($checkreservations)) {
    $ids['car_' . $count++] = $presentid['carID'];
}
extract($ids);

这将为您提供自变量:

$car_0 = 11;
$car_1 = 12;
$car_2 = 2;

..ETC

于 2013-03-12T14:05:27.513 回答