【发布时间】:2014-08-22 07:05:36
【问题描述】:
所以我有一个包含 6 个字段(名字、姓氏等)的表单,当用户提交表单时,值将保存在数据库中。在另一个页面中,我有一个表,其中显示了数据库中的这些值,其中相同的 6 列 + 另一个包含 2 个按钮(删除和编辑),删除一个完美,但编辑按钮有一些问题
按钮代码是这样的:
echo '<td>';
echo '<button><a href="edit.php?idang='.$rand['id'].'">Modifica!</a></button>';
echo '<button><a href="delete.php?idang='.$rand['id'].'">Sterge!</a></button>';
echo '</td>';
如您所见,我已将 rand id(这是数据库行的主键)分配给 var idang。
$idang=$_GET['idang'];
if(isset($idang)) {
$CerereSQL="SELECT * FROM `angajati` WHERE id='$idang'";
$rezultat=mysqli_query($con,$CerereSQL);
$rand=mysqli_fetch_assoc($rezultat);
我用全局变量 $_GET['idang'] 创建了另一个变量,然后我从数据库中选择了表 angajati,其中我的数据库中的主键与表行中的主键相等,这我按下了编辑按钮。此方法适用于删除按钮,也可能适用于编辑按钮,但真正的问题是,当我想编辑该行时,它会将我链接到包含另一个表单的另一个页面,字段中的原始值,当我用其他值修改这些字段时,它必须只更改该行,而不是整个表或列。但我不知道该怎么做,除了它可以用更新语句
剩下的代码,包含表单是:
echo '<table border=0 align=center cellspacing=10>';
echo '<form action="" method=post>';
echo '<tr>';
echo '<th>Nume:</th><td><input type="text" name=nume value="';
echo $num;
echo '"></td>';
echo '<td style=color:red>';
echo $err_nume;
echo $err_nume1;
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<th>Prenume:</th><td><input type="text" name=prenume value="';
for($value=1;$value<count($nume);$value++) {
$c=$c."".$nume[$value];
}
echo $c;
echo '"></td>';
echo '<td style=color:red>';
echo $err_prenume;
echo $err_prenume1;
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<th>CNP:</th><td><input type="text" name=cnp value="';
echo $cnp;
echo '"></td>';
echo '<td style=color:red>';
echo $err_cnp;
echo $err_cnp1;
echo $err_cnp2;
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<th>Data angajare:</th><td><input type="text" name=data value="';
echo $rand['data'];
echo '"></td>';
echo '<td style=color:red>';
echo $err_data;
echo '</td>';
echo '</tr>';
$companii=array("S.C. 2K Telecom S.R.L.", "S.C. Accessnet International S.R.L.", "S.C. Ad Net Market Media S.A.", "S.C. Idilis S.R.L.", "S.C. Infratel Net S.R.L.");
echo '<tr>';
echo '<th>Compania:</th>';
echo '<td>';
echo '<select name=companie>';
//echo '<option value="alege">Alege compania</option>';
//if(!isset($_POST['companie'])){
echo '<option value='.$companie.'>'.$companie.'</option>';
$key=array_search($companie, $companii);
unset($companii[$key]);
//}
foreach($companii as $firme) {
echo '<option value="'.$rand['companie'].'"';
if(isset($_POST['companie']) && $_POST['companie'] == $firme) {echo " selected";}
echo ">$firme</option>";
}
echo '</select>';
echo '</td>';
echo '<td style=color:red>';
echo $err_companie;
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<th>Functia:</th><td><input type="text" name=functie value="';
echo $rand['functie'];
echo '"></td>';
echo '<td style=color:red>';
echo $err_functie;
echo '</td>';
echo '</tr>';
echo '<tr>';
echo '<td align=center><a href=tabel.php><input type=button name=button value=Inapoi!></a></td>';
echo '<td align=center><input type=submit name=submit value=Introducere! ></td>';
echo '<td align=center><input type=reset name=reset value=Resetare! ></td>';
echo '</tr>';
echo '<tr>';
echo '<td colspan="2" align=center>'.$up.'</td>';
echo '</tr>';
echo '</form>';
echo '</table>';
所以这个表单包含了我按下按钮的表格行中的旧值,我想用新值进行更改。有什么想法吗?
【问题讨论】:
-
获取 postdata 并使用行 id 上的新数据运行更新查询
-
你能给我一些代码吗?我刚学了 php 和一些 sql 的东西,所以我需要你更具体...
-
你知道确切的更新查询吗?
-
$SQL=UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;对?然后 $rezultat=mysqli_query($con,SQL);
-
太棒了!所以点击 Introduce 按钮获取 postdata 并应用此查询
标签: php sql forms button mysqli