php - 使用 html 表单和 php 更新 mysql 行

标签 php html mysql forms sql-update

我一直在浏览这里的许多线程,但没有找到解决我的问题的方法。 我创建了一个表单,该表单应该在输入框中显示数据库的内容,当我更改内容时,它应该在数据库中更新。

没有错误,没有任何改变。

<?php
$con=mysqli_connect("localhost","root","","frontpage");
// Check connection
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM frontpage_left_links")
or die("Error: ".mysqli_error($con));

while($row = mysqli_fetch_array($result)){
    echo '<form action="" method="post">';
    echo '<div style="float:left">';
    echo '<table border="1" bordercolor="#000000">';
    echo '<tr>';
    echo '<td>link</td>';
    echo '<td><input type="text" name="linkid" value="'.$row['link'].'"></td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td>img</td>';
    echo '<td><input type="text" name="imgid" value="'.$row['img'].'"></td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td>tekst</td>';
    echo '<td><input type="text" name="imgid" value="'.$row['name'].'"></td>';
    echo '</tr>';
    echo '<tr>';
    echo '<td><input type="submit" id="update" name="gem" value="Gem"</td></td>';
    echo '<td><input type="hidden" name="id" value="'.$row['id'].'"></td>';
    echo '</tr>';
    echo '</table></div>';
    echo '<div style="float:left"><a href="'.$row['link'].'"><center><img src="img/'.$row['img'].'"><br />'.$row['name'].'</center></a></div>';
    echo '</form><br /><br /><br /><br /><br /><br /><br /><br />';
}

if(isset($_POST['update'])){

    $id = $_POST['id'];
    $link = $_POST['linkid'];
    $img = $_POST['imgid'];
    $name = $_POST['nameid'];

    $sql = mysqli_query("UPDATE frontpage_left_links SET link = '$link', img = '$img', name = '$name' WHERE id = '$id'");

    $retval = mysqli_query( $sql, $con );

    if(! $retval ){
        die('Could not update data: ' . mysql_error());
    }

    echo "Updated data successfully\n";
}

mysqli_close($con);
?>

表单显示数据库内容正常,但更改后没有任何反应。

非常感谢我能得到的任何帮助。

<小时/>

这就是现在的样子。

<?php
$con=mysqli_connect("localhost","root","","frontpage");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

if(isset($_POST['gem']))
{

$id = $_POST['id'];
$link = $_POST['linkid'];
$img = $_POST['imgid'];
$name = $_POST['nameid'];

$sql = mysqli_query("UPDATE frontpage_left_links SET link = '$link', img = '$img', name = '$name' WHERE id = '$id'");

$retval = mysqli_query( $con, $sql );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";


}

$result = mysqli_query($con,"SELECT * FROM frontpage_left_links")
or die("Error: ".mysqli_error($con));

while($row = mysqli_fetch_array($result))
  {
  echo '<form action="" method="post">';
  echo '<div style="float:left">';
  echo '<table border="1" bordercolor="#000000">';
  echo '<tr>';
  echo '<td>link</td>';
  echo '<td><input type="text" name="linkid" value="'.$row['link'].'"></td>';
  echo '</tr>';
  echo '<tr>';
  echo '<td>img</td>';
  echo '<td><input type="text" name="imgid" value="'.$row['img'].'"></td>';
  echo '</tr>';
  echo '<tr>';
  echo '<td>tekst</td>';
  echo '<td><input type="text" name="nameid" value="'.$row['name'].'"></td>';
  echo '</tr>';
  echo '<tr>';
  echo '<td><input type="submit" id="update" name="gem" value="Gem"</td></td>';
  echo '<td><input type="hidden" name="id" value="'.$row['id'].'"></td>';
  echo '</tr>';
  echo '</table></div>';
  echo '<div style="float:left"><a href="'.$row['link'].'"><center><img src="img/'.$row['img'].'"><br />'.$row['name'].'</center></a></div>';
  echo '</form><br /><br /><br /><br /><br /><br /><br /><br />';
  }



mysqli_close($con);
?>

现在我收到此错误。

警告:mysqli_query() 需要至少 2 个参数,其中 1 个在/Applications/XAMPP/xamppfiles/htdocs/page/admin.php 第 17 行给出

警告:mysqli_query():第 19 行/Applications/XAMPP/xamppfiles/htdocs/page/admin.php 中的空查询 无法更新数据:

最佳答案

因为您的日期位于页面末尾,请将其放在其余部分之上。

还将 isset($_POST['update'] 更改为 isset($_POST['gem']

<?php
$con=mysqli_connect("localhost","root","","frontpage");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

if(isset($_POST['gem']))
{

$id = $_POST['id'];
$link = $_POST['linkid'];
$img = $_POST['imgid'];
$name = $_POST['nameid'];

$sql = "UPDATE frontpage_left_links SET link = '$link', img = '$img', name = '$name' WHERE id = '$id'";

$retval = mysqli_query($con,$sql );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";


}

$result = mysqli_query($con,"SELECT * FROM frontpage_left_links")
or die("Error: ".mysqli_error($con));

while($row = mysqli_fetch_array($result))
  {
  echo '<form action="" method="post">';
  echo '<div style="float:left">';
  echo '<table border="1" bordercolor="#000000">';
  echo '<tr>';
  echo '<td>link</td>';
  echo '<td><input type="text" name="linkid" value="'.$row['link'].'"></td>';
  echo '</tr>';
  echo '<tr>';
  echo '<td>img</td>';
  echo '<td><input type="text" name="imgid" value="'.$row['img'].'"></td>';
  echo '</tr>';
  echo '<tr>';
  echo '<td>tekst</td>';
  echo '<td><input type="text" name="imgid" value="'.$row['name'].'"></td>';
  echo '</tr>';
  echo '<tr>';
  echo '<td><input type="submit" id="update" name="gem" value="Gem"</td></td>';
  echo '<td><input type="hidden" name="id" value="'.$row['id'].'"></td>';
  echo '</tr>';
  echo '</table></div>';
  echo '<div style="float:left"><a href="'.$row['link'].'"><center><img src="img/'.$row['img'].'"><br />'.$row['name'].'</center></a></div>';
  echo '</form><br /><br /><br /><br /><br /><br /><br /><br />';
  }



mysqli_close($con);
?>

关于php - 使用 html 表单和 php 更新 mysql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20804505/

相关文章:

php - 锂Li3 "Inner Join"

javascript - JSON 解析与否?

php - 使用 nginx 的服务器 dockerized Zend Framework 2 应用程序

html - CSS3 文本将 Div block 向下推到下方 - 需要包含行

css - 出现对话框时如何启用背景元素?

javascript - 如何为某些 HTML 标签存储任意数据

mysql - 为什么表 CHARSET 设置为 utf8mb4 而 COLLATION 设置为 utf8mb4_unicode_520_ci

javascript - 如何防止从客户端向服务器端发送数据(位置、纬度和经度)时作弊?

mysql - 计算用户点击 MySQL 中不同事件的数量

mysql - 为什么 "which mysql"没有显示 .bash_profile 中定义的路径的其余部分?