2015-06-01 3 views
0

У меня есть база данных, которая отображает данные в три строки. Имя, Фамилия и Возраст. У меня есть отображение в отдельных текстовых полях, как показано ниже.Обновление базы данных с использованием ссылок и текстовых полей

Добавить запись полностью работает. Проблем нет. Реальной проблемой являются ссылки «Обновить» и «Удалить». Имейте в виду, что кнопки работают, но я не могу использовать кнопки. Когда я нажимаю delete, запись действительно удаляет. И вся строка с коробками, а также обновление и удаление исчезли.

Проблема в том, что когда я нажимаю «Обновить» после заполнения ящиков другими данными, это происходит.

Вот код, который я использую (по крайней мере, важные биты)

PHP:

if($_GET['type']=='delete'){ 
        $sql = "DELETE FROM addresses WHERE id ='$_GET[id]'"; 
        mysql_query($sql,$conn); 
        header("Location: form.php"); 
}if ($_GET['type']=='update'){ 
       //works but it doesn't seem to just update like before. 
       $sql = "UPDATE addresses SET firstname='$_GET[firstname]', lastname='$_GET[lastname]', age='$_GET[age]' WHERE id='$_GET[id]'"; 
       mysql_query($sql,$conn); 
       header("Location: form.php"); 
} 

А вот HTML сделать таблицу и ссылки.

<?php 
while($row = mysql_fetch_array($retreve, MYSQL_ASSOC)){ 

//echo"<form action='form.php' method='post' name='form'>"; 
echo "<tr>"; 
echo "<td><input type='text' name='firstname' value='".$row['firstname']."'> </td>"; 
echo "<td><input type='text' name='lastname' value='".$row['lastname']."'> </td>"; 
echo "<td><input type='text' name='age' value='".$row['age']."'> </td>"; 
echo "<td><input type='hidden' name='id' value='".$row['id']."'> </td>"; 
//links insead of buttons 
echo "<td><a href = 'form.php?type=update&id={$row['id']}&age={$_GET['age']}' id='update'> Update</a> </td>"; 
echo "<td><a href = 'form.php?type=delete&id={$row['id']}' id='delete'> Delete</a> </td>"; 
echo"</form>"; 
} 
echo "</table>"; 

Что я делаю неправильно для сообщения об обновлении?

PS. Это не позволит мне опубликовать более двух картин. Или фотографии.

+1

Всё неправильно. Вы используете устаревшую api (mysql_), вы не используете подготовленные утверждения (ура, sql-инъекции). Вы должны отлаживать свой код, видеть значения и проверять, все ли установлено. – Jonast92

+0

Вы, я надеюсь, понимаем, что, удалив с помощью '$ _GET [id]', вы сможете почти всех уничтожить все данные в вашей таблице? – nomistic

+0

Это всего лишь небольшой проект, ничего с какой-либо компанией. Это то, что мой учитель хочет, чтобы я использовал. – Matt

ответ

0

Я не очень увлечен с MySql, но, может быть, попробовать конкатенации вашего переменных

$sql = "DELETE FROM addresses WHERE id ='" . $_GET["id"] . "'"; 

То же самое и с этой линией

$sql = "UPDATE addresses SET firstname='" . $_GET["firstname"] . "', lastname='" . $_GET["lastname"] . "', age='" . $_GET["age"] . "' WHERE id='" . $_GET["id"] . "'"; 

Стоит выстрел

Смежные вопросы