Конфликт запросов к БД

nonename

Новичок
Конфликт запросов к БД

Здравствуйте, у маня возникла следующая проблема. Есть два запроса к БД:
if ($Basa == "Update" and eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.[a-z]{2,4}$', $mail))
{
$query = "INSERT INTO mytable (mail) values ('$mail')";
}
if ($Basa == "Delete")
{
$query = "DELETE FROM mytable WHERE mail='$mail'";
}
Второй запрос почему-то мешает первому, так-как если его удалить, то все работает. У кого-нибудь возникала подобная ситуация? Помогите, пожалуйста.
 

nonename

Новичок
dorfey Ошибки то и нет. Просто они не хотят работать вместе. А вот Весь скрипт:
<HTML>

<head>
<META HTTP-EQUIV="Content-Type: text/html; Charset=Windows-1251 http-equiv=Content-Type">
</head>
<body>

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$Basa = isset($_POST['basa']);
$mail = $_POST["kamu"];
if ($Basa == "Update" and eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.[a-z]{2,4}$', $mail))
{
$query = "INSERT INTO mytable (mail) values ('$mail')";
}
if ($Basa == "Delete")
{
$query = "DELETE FROM mytable WHERE mail='$mail'";
}
$link = mysql_connect("localhost", "root");
if (! $link)
die ("&#205;&#229; &#237;&#229; &#239;&#238;&#228;&#234;&#235;&#254;&#247;&#232;&#242;&#241;&#255; &#234; &#193;&#196;!");
$database = "phpmm";
mysql_select_db($database, $link) or die ("&#205;&#229; &#236;&#238;&#227;&#243; &#239;&#238;&#228;&#234;&#235;&#254;&#247;&#232;&#242;&#252;&#241;&#255; &#234; $database!");
mysql_query($query, $link)
or die("&#206;&#248;&#232;&#225;&#234;&#224;!" . mysql_error());
print " ";
mysql_close ($link);
}

?>
</font>
</tr></td>
<tr><td>
<pre>
<form action = '' method = 'POST'>
&#193;&#224;&#231;&#224;: <input type = "text" name="kamu"> <br>
<input type='submit' name = 'basa' value = "Update"> <input type='submit' name = 'basa' value = "Delete">
</pre>
</form>
</tr></td>
</Table>
</body>
</HTML>

БД:
CREATE TABLE mytable (
id INT NOT NULL AUTO_INCREMENT,
mail varchar(30),
PRIMARY KEY(id) );
INSERT INTO mytable(mail) VALUES ('[email protected],');
INSERT INTO mytable(mail) VALUES ('[email protected]');
 

nonename

Новичок
Фанат Если с запросом все в порядке, то может скрипт не правильный. Посмотри, если не трудно.
 

nonename

Новичок
AHTIXPICT Спасибо! заработало!

-~{}~ 26.10.05 11:59:

Фанат Спасибо, стало работать!

-~{}~ 26.10.05 12:10:

Просто иногда скрипт ругается, что ему не переданны какие-либо переменные. Раньше когда функции удалить не было, isset его ему закрывал рот. Постораясь больше не отвлекать вас своими тупизмами.
 

AHTIXPICT

Новичок
Минимальная проверка:
if (isset($_POST['basa'])) {$Basa = $_POST['basa'];}
else {echo "ERROR"; exit;}
 

dorfey

Guest
PHP:
$Basa = isset($_POST['basa']);
$mail = $_POST["kamu"];
if ($Basa == "Update" and eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.[a-z]{2,4}$', $mail))
{
$query = "INSERT INTO mytable (mail) values ('$mail')";
}
if ($Basa == "Delete")
{
$query = "DELETE FROM mytable WHERE mail='$mail'";
}
заменить на:
PHP:
if (!empty($_POST['basa']) and !empty($_POST['kamu'])){

if ($_POST['basa'] == "Update" and eregi('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.[a-z]{2,4}$', $_POST['kamu'])){
 $query = 'INSERT INTO `mytable` (mail) values ('.$_POST[kamu].')'; 
}

if ($_POST['basa'] == "Delete"){ $query = 'DELETE FROM `mytable` WHERE mail='.$_POST['kamu']; }

}else{
 echo "basa и komu не указаны"; exit;
}
 

nonename

Новичок
dorfey Спасиба. Я подумую и наверно сделаю, как у вас.
А когда целесообразно вводить переменную, а когда сразу ($_POST['basa'])?


AHTIXPICT Как их отключить вообще ошибки? У меня было записано, но я потерял. Но только через скрипт, а не через php.ini.
 

AHTIXPICT

Новичок
error_reporting(E_ALL) - выводить все ошибки и нотисы
Ставить нужно всегда когда идет отладка.
 

Фанат

oncle terrible
Команда форума
AHTIXPICT
а на продакшен сайте, типа, ошибок не бывает?
error_reporting(E_ALL) надо ставить надо ВСЕГДА.
марш фак дебаг перечитывать
 

AHTIXPICT

Новичок
Фанат
>а на продакшен сайте, типа, ошибок не бывает?
а зачем их показывать пользователю?

ЗЫ
Я лично ставлю E_ALL. Но это у себя на сайте который посещают человек пять в день, и где я не нахожу пока ошибок, но это не значит что их нет
 

Фанат

oncle terrible
Команда форума
я тебе что сказал?
БЕГОМ фак дебаг перечитывать.
по прочтении тупость осознать, об исполнении доложить.

-~{}~ 26.10.05 17:48:

в каком из перечисленных слов ты видишь слова "юзер" или "показывать"?
данная директива определяет ЧТО показывать, а не КОМУ, дерево.
 

AHTIXPICT

Новичок
Фанат
Давай не будем разводить базар, это ты любишь делать, и у тебя может на это есть свое мнение и право.
Я высказал мнение которого придерживаются многие.
Я нет.
Но если бы мой рессурс был раскручен и посещаем я бы не ставил там E_ALL
Я знаю что можно писать в лог.
Редко кто мониторит логи
 
Сверху