使用selectphp和MySQL更新多行
下面是我试图更改多行中一列的值的代码,但我有点卡住了 文件1:使用selectphp和MySQL更新多行,php,mysql,select,Php,Mysql,Select,下面是我试图更改多行中一列的值的代码,但我有点卡住了 文件1: <form name="update-location" method="post" action="recibos_location_update.php"> <div align="right"><button type="submit">Actualizar Estado</button></div> <hr /> <ul> <
<form name="update-location" method="post" action="recibos_location_update.php">
<div align="right"><button type="submit">Actualizar Estado</button></div>
<hr />
<ul>
<?php
$get_logs = mysql_query("SELECT * FROM recibos ORDER BY id DESC");
while ($logs = mysql_fetch_array($get_logs)){
$serial = $logs['serial'];
$check = $logs['location'];
$problem = $logs['problem'];
?>
<li class="<?php
if ($check == $location1){echo 'recibos-container-shop-li';}
if ($check == $location2){echo 'recibos-container-haji-li';}
if ($check == $location3){echo 'recibos-container-return-li';} ?>">
<?php echo $serial . " | " . $logs['model'] . " | " . $problem; ?>
<div align="right">
<?php
if ($check != 'Returned'){
?>
<input type="hidden" name="serial[]" value="<?php echo $serial; ?>" />
<select name="location">
<option <?php if ($check == $location1){echo 'selected';} ?> value="<?php echo $location1; ?>" style="background: #fff8bf;">Mobils Calfont</option>
<option <?php if ($check == $location2){echo 'selected';} ?> value="<?php echo $location2; ?>" style="background: #ffc1bf;">Haji Jorda</option>
<option <?php if ($check == $location3){echo 'selected';} ?> value="<?php echo $location3; ?>"style="background: #ecffbf;">Devuelto</option>
</select>
<?php
}
else {
echo "<i><font color='#5e8029'>Devuelto</font></i>";
}
?>
</div>
</li>
<?php } ?>
</ul>
但对于所有3个输出行,它应该给出不同的名称,因为3个选择框中的名称不同
我需要的是流程表单用选择框选项中包含的值更新每一行。foreach($\u POST[“serial”]作为$serial){
foreach($_POST["serial"] as $serial){
$location = $_POST['location'];
echo $location . " " . $serial . "<br>";
mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");//update
}
// mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");
$location=$_POST['location'];
echo$位置。“$序列。”
”;
mysql_query(“更新recibos SET location='$location',其中serial='$serial');//更新
}
//mysql_查询(“更新recibos集合位置=“$location”,其中serial=“$serial”);
html
通常,当一个人试图更改某些内容时,他们的代码会有一个
UPDATE
语句。我在这里没有看到。哎呀,我刚才看到了我上面关于更新行的声明,我更新了我的问题。。谢谢你的指点。好的,现在我只打印所取的值,看看代码是否正常工作。。。因此,如果没有正确打印名称,它将无法在数据库行的列中正确写入名称。@digitiZer:您也一样。你的代码中有一个严重的基本安全缺陷已经被指出,你的反应是用手指捂住耳朵,然后说“啦啦啦”。谢谢你,因为我知道这一点,我不会把它当作银行页面。这只是我在xampp上离线执行的练习代码。。现在。。。我没有把这段代码给你们,让你们指出这个案例中不相关的缺陷。我不会去“拉拉”。。。我确实读到了塔德曼先生刚才极力建议的那篇关于妈妈和学生的精彩对话。。哈哈。。。。“啦啦啦”。。。。你是认真的吗?是什么让我觉得。。。。“什么……”他给我红牌,好像他付钱让我给他写代码什么的……:伙计们请求回复,但它正在输出序列号最低的位置,并在所有行列中放置相同的位置。和我上面的代码一样。谢谢,先生。你真的救了我一天。工作起来很有魅力:D.还想请你帮个忙,如果你能发布一些链接来理解这个编码,就像我想在将来理解这些表达式一样,如果我想做同样的事情:)
Haji 900005
Haji 900004
Haji 900002
foreach($_POST["serial"] as $serial){
$location = $_POST['location'];
echo $location . " " . $serial . "<br>";
mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");//update
}
// mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");
<select name="location[]">
foreach($_POST["serial"] as $k=> $serial){
$location = $_POST['location'][$k];
mysql_query("UPDATE recibos SET location='$location' WHERE serial='$serial'");
}