[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Что не так в SQL запросе
Dingo
$sql = "
DELETE FROM `blog_general` WHERE `idtheme`= "
.$idtheme." LIMIT 1 ;
DELETE FROM `blog_tegs` WHERE `idtheme`= "
.$idtheme." LIMIT 1 ;
DELETE FROM `blog_time` WHERE `idtheme`= "
.$idtheme." LIMIT 1 ;";
mysql_query($sql);

как исправить что бы он работал, все таблицы созданы



Спустя 2 минуты, 18 секунд (11.08.2010 - 14:24) inferno13 написал(а):
попробуй

$sql = "
DELETE FROM `blog_general` WHERE `idtheme`= '".$idtheme."' LIMIT 1 ;
DELETE FROM `blog_tegs` WHERE `idtheme`= '".$idtheme."' LIMIT 1 ;
DELETE FROM `blog_time` WHERE `idtheme`= '".$idtheme."' LIMIT 1 ;";
mysql_query($sql);

в кавычки значения взять

Спустя 4 минуты, 17 секунд (11.08.2010 - 14:29) Dingo написал(а):
не работает sad.gif

Спустя 3 минуты, 1 секунда (11.08.2010 - 14:32) inferno13 написал(а):
тогда сделай так:

$sql1 = "DELETE FROM blog_general idtheme = '".$idtheme."'";
mysql_query($sql1);

$sql2 = "DELETE FROM blog_tegs idtheme = '".$idtheme."'";
mysql_query($sql2);

$sql3 = "DELETE FROM blog_time idtheme = '".$idtheme."'";
mysql_query($sql3);

прям копируй все это вместо своей записи - 100% заработает.

Спустя 33 секунды (11.08.2010 - 14:32) inferno13 написал(а):
и проверь echo перед удалением значение $idtheme , а то вдруг пустое какое )

Спустя 2 минуты, 45 секунд (11.08.2010 - 14:35) Lenarfate написал(а):
вбей запрос в phpmyadmin и посмотри, что выдает

Спустя 2 минуты, 38 секунд (11.08.2010 - 14:38) Ice написал(а):
mysql_query() не выполняет несколько запросов подряд.

Спустя 2 минуты, 15 секунд (11.08.2010 - 14:40) inferno13 написал(а):
еще как выполняет)) даже в цикле выполняет )

Спустя 5 минут, 50 секунд (11.08.2010 - 14:46) Dingo написал(а):
Ice как тогда?

Спустя 5 минут, 19 секунд (11.08.2010 - 14:51) sergeiss написал(а):
inferno13 - в цикле - это не то же, что в одном запросе.

Если хочешь делать "всё в одном", то тогда используй PostgreSQL smile.gif Или запускай запросы по одному.

Спустя 2 минуты, 13 секунд (11.08.2010 - 14:53) Ice написал(а):
Цитата (inferno13 @ 11.08.2010 - 15:40)
еще как выполняет)) даже в цикле выполняет )

А теперь постарайся-ка выполнить
mysql_query("DELETE FROM table WHERE id BETWEEN 1 AND 10;DELETE FROM table WHERE id BETWEEN 11 AND 20;");

Опосля продолжим разговор, если потребуется.
Цитата (Dingo @ 11.08.2010 - 15:46)
Ice как тогда?

Усвоить, что mysql_query() может содержать только один запрос. А дальше алгоритм действий, думаю, придет сам собой smile.gif

Спустя 1 минута, 30 секунд (11.08.2010 - 14:55) Dingo написал(а):
Текст ошибки
Цитата
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `idtheme`= 1; DELETE FROM `blog_tegs` WHERE `idtheme`= 1; ' at line 1


Я так понимаю придется по одному запросуотправлять??

Спустя 10 минут, 10 секунд (11.08.2010 - 15:05) inferno13 написал(а):
$zapros = array(
1 => "general",
2 => "tegs",
3 => "time");

for($i=1;$i<=count($zapros);$i++)
mysql_query("DELETE FROM blog_".$zapros[$i]." idtheme = '".$idtheme."'");



так чтоли есть разница? biggrin.gif

Спустя 3 минуты, 49 секунд (11.08.2010 - 15:09) Dingo написал(а):
Я сделал так
          $sql = array();
$sql[] = "DELETE FROM `blog_general` WHERE `idtheme`= '".$idtheme."'";
$sql[] = "DELETE FROM `blog_tegs` WHERE `idtheme`= '".$idtheme."'";
$sql[] = "DELETE FROM `blog_time` WHERE `idtheme`= '".$idtheme."'";
foreach ($sql as $in_sql)
mysql_query($in_sql) or die (mysql_error());

Спустя 5 минут, 50 секунд (11.08.2010 - 15:15) sergeiss написал(а):
Если нужно синхронно удалять данные, то можно создать функцию, которая будет это делать. То есть, там будут внутри эти же 3 запроса, но функция будет вызываться один раз. Из любого места.
Если надо будет добавить/убавить таблицы из списка, то в одном месте (в функции) это будет сделать достаточно легко.

Спустя 3 минуты, 50 секунд (11.08.2010 - 15:18) DedMorozzz написал(а):
Ice, кто сказал такую глупость, что запросы через ; не выполняются?
Чушь. Даже примитивный вариант SQL-injection на этом основан.

Спустя 2 минуты, 4 секунды (11.08.2010 - 15:20) Ice написал(а):
а ты попробуй выполни. Потом поговорим

Спустя 1 минута, 16 секунд (11.08.2010 - 15:22) DedMorozzz написал(а):
мммм...не поверишь. И не раз делал. И ТОЛЬКО ЧТО сделал. ЧЯДНТ?
На всякий случай проверил с СЕЛЕКТОМ, с ИНСЕРТом и с ДЕЛЕТом. БД Мускул
Версия MySQL-клиента: 5.1.41

Спустя 3 минуты, 16 секунд (11.08.2010 - 15:25) Basili4 написал(а):
DedMorozzz
mysql_query();
не выполняет несколько запросов через ; только через union это из за безопаснеости

Спустя 53 секунды (11.08.2010 - 15:26) Ice написал(а):
http://www.mysql.ru/docs/man/mysql_query.html - ознакомься на досуге, врунишка ты мелкий.



Спустя 49 секунд Ice написал(а):
Цитата (Basili4 @ 11.08.2010 - 16:25)
не выполняет несколько запросов через ; только через union это из за безопаснеости

он понял, что в пролете

Спустя 2 минуты, 5 секунд (11.08.2010 - 15:28) waldicom написал(а):
Цитата (Ice @ 11.08.2010 - 14:26)
... врунишка ты мелкий.

ты это того... не того... а то того...

Спустя 57 секунд (11.08.2010 - 15:29) DedMorozzz написал(а):
да, признаю, не прав smile.gif Я про ПМА говорил. В нём естесно и тестил. Все запросы через точку с запятой хавает. И должен. Вот собсно и удивился, как так не более 1го. А речь не о ПМА

Спустя 27 секунд (11.08.2010 - 15:29) Ice написал(а):
Цитата (waldicom @ 11.08.2010 - 16:28)
ты это того... не того... а то того...

та не страшно. Не привык, когда люди за слова не в ответе.

Спустя 5 минут, 49 секунд (11.08.2010 - 15:35) Ice написал(а):
Цитата (DedMorozzz @ 11.08.2010 - 16:29)
А речь не о ПМА

а я ж специально большими буквами написал mysql_query(). В следующий раз внимательнее будь
Быстрый ответ:

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