Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: запись из ячейки в переменную до объявления mysql_query

Сообщения:  [1-10]   [11-14] 

 
 автор: tima2010   (02.09.2011 в 10:31)   письмо автору
 
   для: Valick   (02.09.2011 в 10:18)
 

Понятно! :) Спасибо буду знать!

да id - число

  Ответить  
 
 автор: Valick   (02.09.2011 в 10:18)   письмо автору
 
   для: tima2010   (02.09.2011 в 10:00)
 

так не нужно пихать невпихуемое))
id у вас число? или строка?
$query = "SELECT * FROM articles where category=$id"; 
$query .= ";";
$query .= "SELECT * FROM category where id=$id"; 
$res = mysql_query($query) or die(mysql_error());

только не нужно тут этого (хороша ложка к обеду)
здесь два никоим образом не связанных запроса и даже если вы их объедените
то они так и останутся двумя запросами...
__
я вам говорил о сборке одного достаточно сложного запроса, но даже если это
всего навсего SELECT * FROM `table`, то лично я буду все равно использовать переменную

  Ответить  
 
 автор: tima2010   (02.09.2011 в 10:00)   письмо автору
 
   для: Valick   (01.09.2011 в 22:39)
 

а если нужно из разных таблиц? к примеру на такое сильно ругается:

$query .= "SELECT * FROM articles where (category='$id')";
$query .= "SELECT * FROM category where (id='$id')";
$res = mysql_query($query) or die(mysql_error());


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 'SELECT * FROM category where (id='1')' at line 1

  Ответить  
 
 автор: cheops   (01.09.2011 в 22:55)   письмо автору
 
   для: tima2010   (01.09.2011 в 22:19)
 

В общем да, из-за отладки, когда у вас есть готовая переменная $query её очень просто вывести, причем, когда у вас ошибки собираются не блоками if(), а исключениями, это становится в двойне важно, так как процесс регистрации и вывода ошибки нужно регистрировать, а информации в mysql_error() зачастую недостаточно, особенно, если речь идет об огромном проекте. Да и в длину код становится короче, что важно для форума и книг.

  Ответить  
 
 автор: Valick   (01.09.2011 в 22:39)   письмо автору
 
   для: tima2010   (01.09.2011 в 22:34)
 

ну в принципе да, но в данном случае лучше использовать многострочный INSERT
т.е в запросе собирать именно часть VALUES
$query="INSERT INTO `table` (pole1,pole2) VALUES";
$query .="(1,2),";
$query .="(3,4)";

иногда в сборке запроса принимают непосредственное участие циклы
и там конструкция $query .= как родная)

  Ответить  
 
 автор: tima2010   (01.09.2011 в 22:34)   письмо автору
 
   для: Valick   (01.09.2011 в 22:24)
 

хм, понял вообщем чтобы не писать два раза

mysql_query("INSERT INTO.... ") or die(mysql_error());
mysql_query("INSERT INTO.... ") or die(mysql_error());


можно написать ?::
$query .= "INSERT INTO 1....";  
$query .= "INSERT INTO 2....";  
mysql_query($query) or die(mysql_error());   

  Ответить  
 
 автор: Valick   (01.09.2011 в 22:24)   письмо автору
 
   для: tima2010   (01.09.2011 в 22:23)
 

а еще иногда запрос может быть достаточно сложным и собираться из нескольких частей $query .= $query....
в общем привыкайте использовать переменную, пригодится :)

  Ответить  
 
 автор: tima2010   (01.09.2011 в 22:23)   письмо автору
 
   для: Valick   (01.09.2011 в 22:22)
 

вообщем этика :)

  Ответить  
 
 автор: Valick   (01.09.2011 в 22:22)   письмо автору
 
   для: tima2010   (01.09.2011 в 22:19)
 

потому что для отладки кода легко и просто можно сделать echo $query="....
и легко найти ошибку

  Ответить  
 
 автор: tima2010   (01.09.2011 в 22:19)   письмо автору
 
   для: cheops   (01.09.2011 в 22:07)
 

Спасибо! все работает.
да именно AUTO_INCREMENT :)

А почему вы используете query через переменную, таким образом? :

$query = "INSERT INTO news (title, content) VALUES('$title', '$content')"; 
  mysql_query($query) or die(mysql_error());  


а не таким?


  mysql_query("INSERT INTO news (title, content) VALUES('$title', '$content')") or die(mysql_error());  

  Ответить  

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования