我正在尝试将所有查询值添加到数组中。
这是我的代码:
$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
请告诉我正确的方法。
答案 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>";
}