обновить строку mysql с формой html и php

Я просматривал много потоков здесь, не найдя решения моей проблемы. Я создал форму, которая должна отображать содержимое базы данных в поле ввода, а когда я меняю контент, он должен быть обновлен в базе данных.

Нет ошибок, ничего не изменилось.

<?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 (): пустой запрос в /Applications/XAMPP/xamppfiles/htdocs/page/admin.php в строке 19 Не удалось обновить данные: