Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Ошибка
Форумы портала PHP.SU » » Вопросы новичков » Ошибка

Страниц (2): [1] 2 »
 

1. event - 22 Января, 2012 - 14:07:26 - перейти к сообщению
Привет.
Есть такой запрос
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM text WHERE page = ".$_SERVER['PHP_SELF']."") or die(mysql_error());
  2. $row = mysql_fetch_array($result);
  3.  


Но выдает ошибку,
CODE (text):
скопировать код в буфер обмена
  1. 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 '/1.php' at line 1


Где я накосячил?
2. caballero - 22 Января, 2012 - 14:39:29 - перейти к сообщению
одинарные кавычки забыл
3. event - 22 Января, 2012 - 14:59:19 - перейти к сообщению
caballero
Пробовал и так, и сяк.

Если можешь кинь готовый запрос, с меня +
4. PATCH - 22 Января, 2012 - 15:03:42 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM text WHERE page = ' ".$_SERVER[PHP_SELF]." ' ") or die(mysql_error());
они имеет ввиду так
5. event - 22 Января, 2012 - 15:08:39 - перейти к сообщению
Спасибо, работает.
Плюсик тыкнул
6. caballero - 22 Января, 2012 - 15:10:17 - перейти к сообщению
event
и возьми привычку не давать полям имена совпадающие с ключевыми словами
text, date,user и т.д.
7. event - 22 Января, 2012 - 15:14:56 - перейти к сообщению
caballero, не понял тебя...

PATCH, ошибок не выдает, но делаю
и на страничке ошибок нет, и ничего не выводится.
8. caballero - 22 Января, 2012 - 15:47:00 - перейти к сообщению
Цитата:
caballero, не понял тебя...

чего не понятного - не давай полям и таблицам имена совпадающие с зарезервированными словами языка SQL. СУБД хоть и догадывается что text у тебя имя таблицы а не тип поля но так писать - неграмотно. А раз уж дал - возьми в апострофы чтобы видно было что это имя и не часть синтаксиса языка

а что данные не выводятся - значит не подпадают под условие where
9. ZVER3D - 22 Января, 2012 - 15:49:48 - перейти к сообщению
поля и таблицы бери в `` - вот в такие символы Улыбка
10. event - 22 Января, 2012 - 16:01:59 - перейти к сообщению
Покажи пожалуйста на моем запросе:
PHP:
скопировать код в буфер обмена
  1.     $result = mysql_query("SELECT * FROM text WHERE page = ' ".$_SERVER[PHP_SELF]." ' ") or die(mysql_error());


А то я пробовал это делать, но толку нет.
11. PATCH - 22 Января, 2012 - 16:38:16 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM 'text' WHERE page = ' ".$_SERVER['PHP_SELF']." ' ") or die(mysql_error());
12. armancho7777777 - 22 Января, 2012 - 17:27:25 - перейти к сообщению
PATCH пишет:
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM 'text' WHERE page = ' ".$_SERVER['PHP_SELF']." ' ") or die(mysql_error());

не верно.
PHP:
скопировать код в буфер обмена
  1. $result = mysql_query("SELECT * FROM `text` WHERE page = ' ".$_SERVER['PHP_SELF']." ' ") or die(mysql_error());

А вместо * лучше перечислить поля. Если даже они все нужны.
13. Самогонщик - 22 Января, 2012 - 17:45:21 - перейти к сообщению
armancho7777777 пишет:
А вместо * лучше перечислить поля. Если даже они все нужны.
Чем лучше?
14. PATCH - 22 Января, 2012 - 17:51:13 - перейти к сообщению
Самогонщик пишет:
Чем лучше?
меньше выборки с бд будет т.к называемая оптимизация) допустим у тебя в бд много записей и ты с бд вытащиш все строки которые совпадают с условием, представь если тебе надо вытащить title и id а ты замест этого вытаскиваеш title, id , vote, text (содержащий допустим в себе текст в 1000 слов в каждой строке по условию) . если 1 пользователь лазит по сайту то не сильно заметно ускорение , а если много пользователей?)
(Добавление)
armancho7777777 пишет:
$result = mysql_query("SELECT * FROM `text` WHERE page = ' ".$_SERVER['PHP_SELF']." ' ") or die(mysql_error());
помойму и с теми и с теми кавычками работает) сча даж прям протещу)
15. Самогонщик - 22 Января, 2012 - 17:53:45 - перейти к сообщению
PATCH, не в тему, в оригинале сказано "Если даже они все нужны.". Именно этот момент меня интересует. Единственное что я могу сказать за перечисление всех полей - это вероятное изменение базы на уменьшение полей, тогда запрос матюкнётся, а не в тихую вытащит нулл + случай когда поля забираются не по имени, а по номеру.

 

Powered by ExBB FM 1.0 RC1