1

A 在数组中有行的名称

$arr = array(fir, seco, third);

我怎样才能像这样查询mysql:

$query = "SELECT * FROM $table where fir=0 and seco=0 and third=0";

但使用数组。

$query = "update $table SET fir='$ma', seco='$ma', third='$ma'";

但使用数组。

4

4 回答 4

1

对于搜索,您可以在以下查询中触发 -

$str = implode(",", $arr);
$query = "SELECT * FROM $table where 0 IN ($str)";

但是对于更新,您必须使用查询您所写的内容。

于 2012-12-24T15:40:31.320 回答
0

简单的,

$arr = array(fir, seco, third);

for(int i = 0;i<arr.lenght;i++)
{
$query = $query + " and "  + arr[i] + "=" + $ma;
}
于 2012-12-24T15:40:49.603 回答
0

这就是我会做的...

$fir = $arr[0];
$seco = $arr[1];
$third = $arr[2];
$query = "UPDATE $table SET $fir = '$ma', $seco = '$ma', $third = '$ma'";
于 2012-12-24T15:43:24.157 回答
0

不确定是否有更优化的答案,但您可以使用 for 循环来创建 SQL 语句:

<?php
$arr = array(fir, seco, third);

$query = "SELECT * FROM $table where ";
$count = count($arr);
for($i=0;$i<$count;$i++){
  $query .= ($i==$count-1) ? "$arr[$i]=0" : "$arr[$i]=0 and ";
}

echo $query;
?>

回声SELECT * FROM $table where fir=0 and seco=0 and third=0。您可以对UPDATESQL 语句执行相同的操作。

更新

此外,您可以像在 Suresh Kamrushi 的回答中一样内爆数组,并使用以下代码:

<?php
    $arr = array(fir, seco, third);
    $str = implode(',',$arr);
    $query_one = "SELECT * FROM $table WHERE ($str) = (0,0,0)";
    echo $query_one;
?>

我认为 UPDATE 查询仍然需要一个 for 循环。

于 2012-12-24T15:47:23.017 回答