[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не работает скрипт
_mitya
При введении информации, но если номера карты в таблице нет - не вылазит окно ошибки, а пишет что пациент удален. что не так в проверке?

$sql="DELETE FROM patients WHERE card_number='".$_POST['card_number']."'";
if (isset($_POST['card_number'])) {$card_number=$_POST['card_number']; if($card_number=='') {unset($card_number);}}

if(isset($card_number))
{
if(mysql_query($sql, $con))
{
echo '<script type="text/javascript">
window.alert("Пациент удален из базы данных")
</script>'
;
}
else
{
echo '<script type="text/javascript">
window.alert("Пациента с такой мед. картой не существует")
</script>'
;
}
}

else
{
echo '<script type="text/javascript">
window.alert("Номер медицинской карты не введен")
</script>'
;
}




Спустя 16 минут, 1 секунда (6.06.2011 - 20:55) XCross написал(а):
Попробуй так. Только обработай входящие данные!
<?php

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

$sql_query = mysql_query("DELETE FROM patients WHERE card_number='".$_POST['card_number']."'") or die(mysql_error());

if(mysql_num_rows($sql_query) == 0){

echo '<script type="text/javascript">
window.alert("Пациент удален из базы данных")
</script>'
;

}
else{

echo '<script type="text/javascript">
window.alert("Пациента с такой мед. картой не существует")
</script>'
;

}
}

else{
echo '<script type="text/javascript">
window.alert("Номер медицинской карты не введен")
</script>'
;
}
?>

Спустя 46 секунд (6.06.2011 - 20:56) XCross написал(а):
Опс. Чето не так понял видать.

Спустя 13 минут, 25 секунд (6.06.2011 - 21:10) inpost написал(а):
_mitya
надо проверять на mysql_affected_rows().
mysql_query вернёт true, если правильно был составлен запрос.

Спустя 8 минут, 59 секунд (6.06.2011 - 21:19) _mitya написал(а):
if(mysql_affected_rows($sql_query)!==0)
так?
что-то не работает как надо
как понял, возвращает правильные записи.

Спустя 17 минут, 39 секунд (6.06.2011 - 21:36) inpost написал(а):
_mitya
Покажи скрипт с применением mysql_affected_rows(), кстати, что в мануале говорится про mysql_affected_rows($sql_query), и правильно ли ты записал? Посмотри на php.net

Спустя 29 минут, 30 секунд (6.06.2011 - 22:06) _mitya написал(а):
в мануале смотрел, вроде так понял

if(isset($card_number))
{
if(mysql_affected_rows($sql_query)!==0)
{
echo '<script type="text/javascript">
window.alert("Пациент удален из базы данных")
</script>'
;
}
else
{
echo '<script type="text/javascript">
window.alert("Пациента с такой мед. картой не существует")
</script>'
;
}
}

else
{
echo '<script type="text/javascript">
window.alert("Номер медицинской карты не введен")
</script>'
;
}

Спустя 2 минуты, 25 секунд (6.06.2011 - 22:08) Лена написал(а):
достаточно просто if(mysql_affected_rows($sql_query))...

И у вас - номер карты - число?
Если число, тогда так:
$sql="DELETE FROM patients WHERE card_number=".$_POST['card_number'];

Спустя 23 минуты, 47 секунд (6.06.2011 - 22:32) _mitya написал(а):
номер карты не только число, вообще varchar

теперь все работает, но внизу пишется
Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in C:\Program Files\xampp\htdocs\xampp\www\Policlinic\delete_patients.php on line 39

как это убрать?

Спустя 11 минут, 42 секунды (6.06.2011 - 22:44) Лена написал(а):
если varchar, то тогда у вас правильно.
Warning: mysql_affected_rows(): - вот это - плохо. Здесь пишут, что запрос ваш не прошел.
после этой строки:
$sql="DELETE FROM patients WHERE card_number='".$_POST['card_number']."'";
сделайте
print $sql;
Что выводит?
И правильнее так:
$sql="DELETE FROM patients WHERE card_number='".mysql_real_escape_string($_POST['card_number'])."'";


И вы, наверное, после запроса забыли его исполнить:
$sql="DELETE FROM patients WHERE card_number='".$_POST['card_number']."'";
mysql_query($sql) or die("Запрос не прошел");

Выложите еще раз весь ваш скрипт, что у вас сейчас там написано. Быстрее разберемся.

Спустя 4 часа, 7 минут, 58 секунд (7.06.2011 - 02:52) inpost написал(а):
_mitya
Не надо врать. Если я говорю сайт, и говорю, чтобы ты посмотрел в мануале на этом сайте - значит я советую ПОСМОТРЕТЬ в МАНУАЛЕ НА PHP.NET. Не находишь?
http://my.jetscreenshot.com/demo/20110606-ploh-48kb

Если я говорю, правильно ли ты вводишь, это понятное дело, что неправильно. Я не зря треплюсь, именно поэтому мне ставят плюсы, потому что я помогаю людям... Там есть даже примеры:
    mysql_query("DELETE FROM mytable WHERE id < 10");
printf ("Records deleted: %d\n", mysql_affected_rows());

А что там говорится про скобки по ссылке: http://php.net/manual/ru/function.mysql-affected-rows.php

А вот цитата:
mysql_affected_rows() возвращает количество рядов, затронутых последним INSERT, UPDATE, DELETE запросом к серверу, на который ссылается указатель link_identifier. Если ресурс не указан, функция использует последнее, успешное соединение, выполненное с помощью функции mysql_connect().
И $sql_query - не является функцией mysql_connect()...

Спустя 7 часов, 26 минут, 58 секунд (7.06.2011 - 10:19) _mitya написал(а):
Цитата (inpost @ 6.06.2011 - 23:52)
_mitya
Не надо врать. Если я говорю сайт, и говорю, чтобы ты посмотрел в мануале на этом сайте - значит я советую ПОСМОТРЕТЬ в МАНУАЛЕ НА PHP.NET. Не находишь?
http://my.jetscreenshot.com/demo/20110606-ploh-48kb


Извини, но я заходил. просто не все читал. и видел этот пример, но я подумал, что эта функция работает по примеру mysql_num_rows, поэтому и вставил туда свой запрос.
Спасибо за помощь!
ВОт код, который работает

<?php
$hostname='localhost';
$username='root';
$password='';
$con = mysql_connect($hostname,$username,$password);
if(isset($_POST['delete']))
{
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$dbname='db';
mysql_select_db($dbname, $con) or die (mysql_error());
$sql_query=mysql_query("DELETE FROM patients WHERE card_number='".$_POST['card_number']."'");
if (isset($_POST['card_number'])) {$card_number=$_POST['card_number']; if($card_number=='') {unset($card_number);}}

if(isset($card_number))
{
if(mysql_affected_rows())
{
echo '<script type="text/javascript">
window.alert("Пациент удален из базы данных")
</script>'
;
}
else
{
echo '<script type="text/javascript">
window.alert("Пациента с такой мед. картой не существует")
</script>'
;
}
}

else
{
echo '<script type="text/javascript">
window.alert("Номер медицинской карты не введен")
</script>'
;
}


mysql_close($con);}
?>
Быстрый ответ:

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