将mysql查询值添加到php数组中

时间:2015-04-24 08:13:43

标签: php mysql

我正在尝试将所有查询值添加到数组中。

这是我的代码:

$value = $_POST['hospitalname'];
$from = $_POST['from'];
$to = $_POST['to'];
if($_POST["Submit"]=="Submit") {
    for ($i=0; $i<sizeof($value); $i++) {
        $sql = "SELECT sl_id from mfb_servicelog where h_id LIKE ('".$value[$i]."')";
        $result = mysql_query($sql);
        while ($row = mysql_fetch_assoc($result)) {
            $slid = $row["sl_id"];
            for ($x=0; $x<sizeof($slid);$x++) {
                echo $slid[$x];
            }
        }
    }
}

如果我打印$ slip的结果,它会给我这个

1333853863873885215251126112711281129113023392488248924902491249224932494249524962497

这些都是sl_id,以及查询$sql的结果。这很好。

现在我想将所有这些值放入一个数组中,以便我可以从查询中调用它,就像我在上面的$ sql查询中调用$ value一样。

但是我的echo $slid($x)给了我这个输出,这是每个值的第一个数字。

13333551111122222222222

请告诉我正确的方法。

1 个答案:

答案 0 :(得分:0)

只需将它们存储在数组中而不是普通变量中。试试 -

$slid[] = $row["sl_id"];

<强>更新

if (!in_array($row["sl_id"], $slid)) {
    $slid[] = $row["sl_id"];
}

在循环开始之前定义$slid - $slid = array();

或者您可以使用array_unique()

对于你的代码应该是 -

   $slid = array();
   while ($row = mysql_fetch_assoc($result)) {
        if (!in_array($row["sl_id"], $slid)) {
             $slid[] = $row["sl_id"];
        }
   }

   foreach($slid as $id) {
      echo $id."<br>";
   }