我有一个如下数组:
$array = ['184717453','184717454','184717455','184717456','184717457'];
我有一张桌子,有mobileno
个库。某些mobileno字段包含0值。我想使用上面的数组更新包含0值的字段。
使用第一个数组元素将更新包含0值的第一个mobileno字段,第二个数组元素将更新包含0值的第二个mobileno字段,依此类推......
直到现在我已经尝试过:
$array = ['184717453','184717454','184717455','184717456','184717457'];
$clid = count($array);
$sql = mysqli_query($conn,"SELECT * FROM `tbl_subscription` WHERE mobileno = 0");
$rowcount=mysqli_num_rows($sql);
for ($i = 0; $i < $clid; $i++) {
for($j = 0; $j<$rowcount; $j++) {
$sql = "UPDATE `tbl_subscription` SET mobileno='$array[$i]' WHERE mobileno = 0";
$res = mysqli_query($conn, $sql);
}
}
它不能按我的意愿工作。目前,它仅使用第一个数字184717453
更新包含0值的所有字段。我怎么能这样帮助我。
答案 0 :(得分:1)
我已经为您设计了一个解决方案,在这里我假设了一个名为id
的字段,您的表格tbl_subscription
可能包含此字段,并且肯定会有效,请尝试以下代码
<?php
$array = ['184717453','184717454','184717455','184717456','184717457'];
$clid = count($array);
$sql = mysqli_query($conn,"SELECT * FROM `tbl_subscription` WHERE mobileno = 0");
$rowcount=mysqli_num_rows($sql);
for ($i = 0; $i < $clid; $i++) {
$sql = mysqli_query($conn,"SELECT `id` from `tbl_subscription` WHERE mobileno = 0");
if(mysqli_num_rows($sql)>0)
{
$arr=mysql_fetch_array($sql)
$sql = "UPDATE `tbl_subscription` SET mobileno='$array[$i]' WHERE id = ".$arr['id'];
$res = mysqli_query($conn, $sql);
}
}
?>
答案 1 :(得分:-1)
@Phylogenesis我只是根据RenéHoffmann的建议,使用LIMIT
在我的本地机器上尝试下面的代码。但是执行需要太多时间。
$array = ['184717453','184717454','184717455','184717456','184717457'];
$clid = count($array);
for ($i = 0; $i < $clid; $i++) {
$sql = "UPDATE `tbl_subscription` SET mobileno='$array[$i]' WHERE mobileno = 0 LIMIT 1";
$res = mysqli_query($conn, $sql);
}
答案 2 :(得分:-1)
请参阅UPDATE
的MySQL手册:http://dev.mysql.com/doc/refman/5.0/en/update.html
最后一个参数LIMIT
应该做你想要达到的目标。
答案 3 :(得分:-1)
$array = ['184717453','184717454','184717455','184717456','184717457'];
$clid = count($array);
$sql = mysqli_query($conn,"SELECT * FROM `tbl_subscription` WHERE mobileno = 0");
$rowcount=mysqli_num_rows($sql);
$i=0;
while($fetch = mysqli_fetch_array($sql))
{
$sql = "UPDATE `tbl_subscription` SET mobileno='$array[$i]' WHERE mobileno = 0 and id = '".$fetch['id']."' ";
$res = mysqli_query($conn, $sql);
$i++;
}
您还检查查询中的ID以仅更新特定行。