【问题标题】:How to edit a database row value from a html table如何从 html 表中编辑数据库行值
【发布时间】: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


【解决方案1】:

这是更新表的name 列的基本示例。获取其他字段并添加到查询中。

if(isset($_POST['submit'])) {
    //echo "<pre>";print_r($_POST);exit; // to check your post data
    $name = $_POST['nume'];

    $query = "UPDATE table_name set name='$name' where id=$idang";
    mysqli_query($query); //run the query    

}

【讨论】:

  • 但这仅适用于 1 列,我需要更新整行(包含 6 列)
  • 是的,我正在为您提供更新的基本思路...获取其他字段并更改更新查询。
  • 谢谢你,它工作得很好。我会投票赞成你的答案,但我需要 15 个代表来做......对不起
【解决方案2】:
echo '<form action="abc.php" method=post>';   // add action

abc.php

If($_POST)
{
// fetch values from post 
// update query
}

如果 $_GET 然后插入,你可以这样做。

我想你会从中得到解决的想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 2022-11-07
    • 2011-08-23
    相关资源
    最近更新 更多