我正在尝试将所有查询值添加到数组中。
这是我的代码:
$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];
}
}
}
}
如果我打印 $slid 的结果,它会给我这个
1333853863873885215251126112711281129113023392488248924902491249224932494249524962497
这些都是sl_id
,以及查询$sql
的结果。这很好。
现在我想将所有这些值放入一个数组中,以便我可以从查询中调用它,就像我在上面的 $sql 查询中调用 $value 一样。
但是我的 echo $slid($x)
给了我这个输出,它是每个值的第一个数字。
13333551111122222222222
请建议我正确的方法。
最佳答案
只需将它们存储在数组中而不是普通变量中。尝试使用 -
$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>";
}
关于php - 将 mysql 查询值添加到 php 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29842096/