[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не получается правильно удалить запись?
khigor777
Помогите пожалуйста разобраться! Когда я нажимаю на кнопку удалить удаляется почему-то не та запись которая находится выше кнопки, а последняя, я уже измучился не пойму что не так???

<?php

require_once('login.php');

$con = mysql_connect($db_hostname,$db_login,$db_password);
if(!$con) die('Не возможно подключиться к базе данных'. mysql_error());

mysql_select_db('publication') or die('База данных не выбрана или не существует' . mysql_error());


if (isset($_POST['author'])&& isset($_POST['title'])&& isset($_POST['category'])&& isset($_POST['year'])&& isset($_POST['isbn'])){

$author = get_post('author');
$title = get_post('title');
$category = get_post('category');
$year = get_post('year');
$isbn = get_post('isbn');

// echo '1. ' . $isbn;
}

if (isset($_POST['delete'])){
echo '2. ' . $_POST['isbn'];
$isbn = $_POST['isbn'];
$query = "DELETE FROM classics WHERE ISBN = '$isbn'";
if(!mysql_query($query)){
echo 'Сбой при удалении данных' . mysql_error();
}

}
else{

for ($i=0;$i<10;$i++){
$isbn = $i;
$query = "INSERT INTO classics(author, title, category, year, ISBN) VALUES ('$author', '$title', '$category', '$year', '$isbn')";

if(!mysql_query($query)){
echo 'Ошибка при вставке данных' . mysql_error();
}
}
}


echo "<form auction='index.php' method='post'><pre>
Автор:<input type='text' name='author'/ >
Заголовок:<input type='text' name='title'/ >
Категория:<input type='text' name='category'/ >
Год:<input type='text' name='year'/ >
ISBN:<input type='text' name='isbn'/ >
<input type='submit' value='Добавить запись'/ >

<pre></form>"
;

$query = 'SELECT * FROM classics order by ISBN desc';
$result = mysql_query($query);
if(!$result) die('Ошибка выборки данных'.mysql_error());

while($res = mysql_fetch_assoc($result)){

echo '<pre>' . 'Автор:' . $res['author']. '<br>Заголовок:' . $res['title'] . '<br>Категория:' . $res['category'] .

'<br>Год:' . $res['year'] . '<br>ISBN:'.$res['ISBN']. '</pre>';

$is = $res['ISBN'];

echo "<form auction='index.php' method='post'>
<input type='hidden' name='delete' value='yes'/ >
<input type='text' name='isbn' value='
$is'/ >" .
" <input type='submit' value='Удалить запись'/ >" .$is;

}

mysql_close($con);


function get_post($var){

return mysql_escape_string($_POST[$var]);

}

?>




Спустя 30 минут (3.08.2011 - 12:31) walters написал(а):
у тебя ISBN = id ?
че то непонятный у тебя код.. вставь в тегах что бы был читаьельным...

скорее всего у тебя не правельная переадресация в форму и по етому не удаляет то что надо

Спустя 52 минуты, 22 секунды (3.08.2011 - 13:23) khigor777 написал(а):
Вот в тегах

require_once('login.php');

$con = mysql_connect($db_hostname,$db_login,$db_password);
if(!$con) die('Не возможно подключиться к базе данных'. mysql_error());

mysql_select_db('publication') or die('База данных не выбрана или не существует' . mysql_error());


if (isset($_POST['author'])&& isset($_POST['title'])&& isset($_POST['category'])&& isset($_POST['year'])&& isset($_POST['isbn'])){

$author = get_post('author');
$title = get_post('title');
$category = get_post('category');
$year = get_post('year');
$isbn = get_post('isbn');

// echo '1. ' . $isbn;
}

if (isset($_POST['delete'])){
echo '2. ' . $_POST['isbn'];
$isbn = $_POST['isbn'];
$query = "DELETE FROM classics WHERE ISBN = '$isbn'";
if(!mysql_query($query)){
echo 'Сбой при удалении данных' . mysql_error();
}

}
else{

for ($i=0;$i<10;$i++){
$isbn = $i;
$query = "INSERT INTO classics(author, title, category, year, ISBN) VALUES ('$author', '$title', '$category', '$year', '$isbn')";

if(!mysql_query($query)){
echo 'Ошибка при вставке данных' . mysql_error();
}
}
}


echo "<form auction='index.php' method='post'><pre>
Автор:<input type='text' name='author'/ >
Заголовок:<input type='text' name='title'/ >
Категория:<input type='text' name='category'/ >
Год:<input type='text' name='year'/ >
ISBN:<input type='text' name='isbn'/ >
<input type='submit' value='Добавить запись'/ >

<pre></form>"
;

$query = 'SELECT * FROM classics order by ISBN desc';
$result = mysql_query($query);
if(!$result) die('Ошибка выборки данных'.mysql_error());

while($res = mysql_fetch_assoc($result)){

echo '<pre>' . 'Автор:' . $res['author']. '<br>Заголовок:' . $res['title'] . '<br>Категория:' . $res['category'] .

'<br>Год:' . $res['year'] . '<br>ISBN:'.$res['ISBN']. '</pre>';

$is = $res['ISBN'];

echo "<form auction='index.php' method='post'>
<input type='hidden' name='delete' value='yes'/ >
<input type='text' name='isbn' value='
$is'/ >" .
" <input type='submit' value='Удалить запись'/ >" .$is;

}

mysql_close($con);


function get_post($var){

return mysql_escape_string($_POST[$var]);

}

Спустя 11 минут, 56 секунд (3.08.2011 - 13:35) walters написал(а):
что ето isbn ?

Спустя 3 минуты, 28 секунд (3.08.2011 - 13:39) khigor777 написал(а):
Это поле в БД

Спустя 6 минут, 36 секунд (3.08.2011 - 13:45) walters написал(а):
попробуй заменить

$is = $res['ISBN'];
на
$is = $res['id'];

Спустя 20 минут, 53 секунды (3.08.2011 - 14:06) khigor777 написал(а):
walters спасибо за активную помощь но дело тут не в этом. Читайте внимательно: Когда я нажимаю кнопку Удалить запись
echo "<form auction='index.php' method='post'>
<input type='hidden' name='delete' value='yes'/ >
<input type='text' name='isbn' value='
$is'/ >" .
" <input type='submit' value='Удалить запись'/ >" .$is;

код переходит сюда
if (isset($_POST['delete'])){
echo '2. ' . $_POST['isbn'];
$isbn = $_POST['isbn'];
$query = "DELETE FROM classics WHERE ISBN = '$isbn'";
if(!mysql_query($query)){
echo 'Сбой при удалении данных' . mysql_error();
}

Но почему-то удаляется последняя запись в базе, а не та под которой находится кнопка!

Спустя 38 минут, 13 секунд (3.08.2011 - 14:44) walters написал(а):
попробуй так

require_once('login.php');

$con = mysql_connect($db_hostname,$db_login,$db_password);
if(!$con) die('Не возможно подключиться к базе данных'. mysql_error());

mysql_select_db('publication') or die('База данных не выбрана или не существует' . mysql_error());


if (isset($_POST['author'])&& isset($_POST['title'])&& isset($_POST['category'])&& isset($_POST['year'])&& isset($_POST['isbn'])){

$author = get_post('author');
$title = get_post('title');
$category = get_post('category');
$year = get_post('year');
$isbn = get_post('isbn');

// echo '1. ' . $isbn;
}

if (isset($_POST['delete'])){
echo '2. ' . $_POST['isbn'];
$isbn = $_POST['isbn'];
$query = "DELETE FROM classics WHERE ISBN = '$isbn'";
if(!mysql_query($query)){
echo 'Сбой при удалении данных' . mysql_error();
}

}
else{

for ($i=0;$i<10;$i++){
$isbn = $i;
$query = "INSERT INTO classics(author, title, category, year, ISBN) VALUES ('$author', '$title', '$category', '$year', '$isbn')";

if(!mysql_query($query)){
echo 'Ошибка при вставке данных' . mysql_error();
}
}
}


echo "<form auction='index.php' method='post'><pre>
Автор:<input type='text' name='author'/ >
Заголовок:<input type='text' name='title'/ >
Категория:<input type='text' name='category'/ >
Год:<input type='text' name='year'/ >
ISBN:<input type='text' name='isbn'/ >
<input type='submit' value='Добавить запись'/ >

<pre></form>"
;

$query = 'SELECT * FROM classics order by ISBN desc';
$result = mysql_query($query);
if(!$result) die('Ошибка выборки данных'.mysql_error());

while($res = mysql_fetch_assoc($result)){

print "<pre>\n";
printf ("Автор: %s, <br>Заголовок: %s, <br>Категория: %s, <br>Год: %s,ISBN: %s\n

<form auction='index.php' method='post'>
<input type='hidden' name='delete' value='yes'/ >
<input type='text' name='isbn' value='%s'/ >
<input type='submit' value='Удалить запись'/ >
</form>


"
, $res['author'], $res['title'], $res['category'], $res['year'] , $res['ISBN'], $res['ISBN'] );

print "</pre>\n";

}
mysql_close($con);


function get_post($var){

return mysql_escape_string($_POST[$var]);

}

Спустя 1 час, 12 минут, 55 секунд (3.08.2011 - 15:57) khigor777 написал(а):
walters, Спасибо все работает, не могли бы объяснить что у меня было не так? Я вижу вы использовали printf.

Спустя 40 минут, 12 секунд (3.08.2011 - 16:37) walters написал(а):
дело в том что в обрабодчике не было ясно какой ISBN удалять и он удалял последния по запросу.... а так ему передается именно тот ISBN какой ты хочешь удалить.

с тебя +1 user posted image

Спустя 1 час, 34 минуты, 44 секунды (3.08.2011 - 18:12) khigor777 написал(а):
Обязательно поставлю как 10 сообщений наберется! Спасибо!
Но я вроде так же именно передавал запрос $res['ISBN'], но у тебя сработало а у меня нет, не понимаю sad.gif

Спустя 15 часов, 21 минута, 22 секунды (4.08.2011 - 09:34) walters написал(а):
твой ISBN из формы не доходил до обрабодчика, а так как у тебя $isbn = $_POST['isbn']; то он брал последний по запросу.

Спустя 1 час, 53 минуты, 12 секунд (4.08.2011 - 11:27) khigor777 написал(а):
Все понял кавычки if не там стояли!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.