|
|
|
| Была вот такая запись. Все работало:
$query = "SELECT * FROM `catalog` ORDER BY RAND() LIMIT 7";
Изменила вот на такую. И теперь не работает:
$query = "SELECT * FROM `catalog` WHERE hide='$show' ORDER BY RAND() LIMIT 7";
$ctg = mysql_query($query);
Что я делаю не так? | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 10:42)
| | переменная $show определена правильно? | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 10:49)
| | да | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 10:51)
| | А что не работает, и как это выражается?
процитированный фрагмент никаких признаков сам по себе выдавать не будет. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 10:57)
| | ошибок не выдает но и не распечатывает потом ничего | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 10:58)
| |
<?
$query = "SELECT * FROM `catalog` WHERE hide='$show' ORDER BY RAND() LIMIT 7";
echo "<br/>SQL: $query <br />\r\n";
$ctg = mysql_query($query);
if(!ctg) die( "Error: ".mysql_error());
echo "Rows:".mysql_num_rows($ctg)." <br />\r\n";
|
| |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:02)
| | Печатает вот такое
SQL: SELECT * FROM `catalog` WHERE hide='' ORDER BY RAND() LIMIT 7
Rows:0 | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:05)
| | И Вы всё еще продолжаете настаивать, что переменная $show определена правильно?
А за отключенные диагностические сообщения Вас вообще нужно... наказать. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:07)
| | да. Именно | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:08)
| | Окей.
А так?
<?
error_reporting(E_ALL);
$query = "SELECT * FROM `catalog` WHERE hide='$show' ORDER BY RAND() LIMIT 7";
echo "<br/>SQL: $query <br />\r\n";
$ctg = mysql_query($query);
if(!ctg) die( "Error: ".mysql_error());
echo "Rows:".mysql_num_rows($ctg)." <br />\r\n";
|
Структуру таблицы можно посмотреть?
SHOW CREATE TABLE `catalog`;
|
| |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:09)
| | Вернула только что опять такой вид
$query = "SELECT * FROM `catalog` ORDER BY RAND() LIMIT 7";
и всё опять печатает
С этим запросом изначально были проблемы. Я пишу обычно без кавычек вот как здесь
$ctg = mysql_query("SELECT * FROM catalog WHERE tip_catalog='$tc' AND tip_podcatalog='$tpc' AND hide='$show' ORDER BY pozition"); и работает.
catalog видите без кавычек. А в этом скрипте пришлось почему-то поставить кавычки
Там что-то с кавычками | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:14)
| | моя помощь еще требуется?
Если требуется, ответьте, пожалуйста, что выдает SHOW CREATE TABLE catalog
на всякий случай сообщу, что дело не в ` ` вокруг catalog .
Можно писать catalog - так неряшливее, но в данном случае работать будет.
Можно писать `catalog` - так аккуратнее, но в данном случае не более того. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:19)
| | факт остаётся фактом . Почему-то с кавычками работает. Без них не хочет.
Этот скрипт в корне сайта. Остальные в папках. | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:25)
| | не иначе как происки дьявола | |
|
|
|
|
|
|
|
для: psychomc
(29.01.2011 в 11:35)
| | У меня сегодня с юмором не всё в порядке, извините. | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:37)
| | Не обращайте на него внимания. Парня иногда заносит.
Получилось с phpMyAdmin справиться? | |
|
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:49)
| | поле `hide` может принимать только два значения 'show' и 'hide'
Переменная $show заполнена пустым значением.
Строки не выводятся, потому что строк с пустым значением в поле `hide` в таблице нету и быть не может в принципе.
Третий раз спрашиваю, Вы уверены, что с переменной $show все в порядке? | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:52)
| | да. Вот то и не понятно что в порядке
вот фрагмент где видны данные
http://www.art-crimea.ru/pic88.jpg
Везде всё работает ВЕЗДЕ. Не работает тольв в скрипте который в корне сайта | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:55)
| | Наверное там, где работает, не стоят запросы вида
SELECT ... WHERE hide = ''
| ?
Очевидно потому, что переменная $show в том контексте равна либо 'show' либо 'hide'
скорее всего 'show' | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:57)
| | везде стоят | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:59)
| | Там, где стоят, и работают - там переменная $show = 'show'
А у Вас она пустая. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 12:00)
| | http://www.art-crimea.ru/pic88.jpg
Она нигде не пустая.
Вся разница со скриптами которые работают - этот в корне сайта. | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 12:03)
| | То, что она пустая у Вас, это даже не обсуждается.
Это обстоятельство стало видно из Вашего ответа еще в (29.01.2011 в 11:05)
Печатает вот такое
SQL: SELECT * FROM `catalog` WHERE hide='' ORDER BY RAND() LIMIT 7
Rows:0
|
Вот здесь это видно явно.
Строка
" .. WHERE hide='$show' ..."
| превратилась в
А намекнул я на него первым же ответом (29.01.2011 в 10:49)
Вы же вместо того, чтобы проверить, начали спорить. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 12:05)
| | обсуждается.
http://www.art-crimea.ru/index.php?m=catalog2&lang=ru&tc=1&tpc=5
Вот здесь почему-то запрос не превращается ни во что а делает нужную выборку
Вот запрос в этом скрипте
$ctg = mysql_query("SELECT * FROM catalog WHERE tip_catalog='$tc' AND tip_podcatalog='$tpc' AND hide='$show' ORDER BY pozition"); | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 12:15)
| | >Вот здесь почему-то запрос не превращается ни во что а делает нужную выборку
потому что здесь - не там.
>Вот запрос в этом скрипте
>$ctg = mysql_query("SELECT * FROM catalog WHERE tip_catalog='$tc' AND tip_podcatalog='$tpc' AND hide='$show' ORDER BY pozition");
Окей. Вот в этом месте попробуйте также написать
<?
$query = "SELECT * FROM catalog WHERE tip_catalog='$tc' AND tip_podcatalog='$tpc' AND hide='$show' ORDER BY pozition";
$ctg = mysql_query($query);
echo "<br />SQL: $query<br />\r\n";
var_dump($show);
|
и убедитесь, что там и переменная есть, и запрос получается другим - корректным.
А в исходном месте var_dump($show); Вам явно выдаст что-то либо пустое, либо превращаюшееся в пустую строку при подстановке. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:57)
| | $query = "SELECT * FROM `catalog` WHERE hide='$show' ORDER BY RAND() LIMIT 7";
Здесь что-то с кавычками - не иначе. | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 12:01)
| | Тут что-то с $show не так явно...
Попробуйте распечатать ее перед запросом к базе...
Еще, как вариант, попробуйте
$query = "SELECT * FROM catalog WHERE hide='".$show."' ORDER BY RAND() LIMIT 7";
|
| |
|
|
|
|
|
|
|
для: Sturmvogel
(29.01.2011 в 12:04)
| | Вот это уже спасибо - щас попробую!!! | |
|
|
|
|
|
|
|
для: Sturmvogel
(29.01.2011 в 12:04)
| | нет. всёравно не печатает | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 12:08)
| | покажите код PHP, где переменной $show присваевается значение....
а если нужно показать 7 строк со значением show -- см. мой ответ внизу темы. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:19)
| | SHOW CREATE TABLE `catalog`; - поставила. И пустой экран вообще. Вот сами посмотрите
http://www.art-crimea.ru/index.php?m=contact&lang=ru | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:27)
| | SHOW CREATE TABLE `catalog`
нужно было в phpMyAdmin , в закладке SQL смотреть.
А кавычки у Вас в первом посте стоят в обеих строках, и в рабочей и в нерабочей.
Снимать их я не предлагал. | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:29)
| | Вернула старый запрос и опять работает (с правой стороны картинки выходят)
http://www.art-crimea.ru/index.php?m=gb&lang=ru | |
|
|
|
|
|
|
|
для: Trianon
(29.01.2011 в 11:09)
| | Печатает такое
SQL: SELECT * FROM `catalog` WHERE hide='' ORDER BY RAND() LIMIT 7
Rows:0 | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 10:42)
| | А в каком виде у вас инициализируется переменная $show? Как строка или как булева переменная?
И в каком виде у вас описан столбец hide в базе данных? | |
|
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 11:51)
| | А переменная $show? | |
|
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 12:04)
| | Переменная в скрипте php, а не в базе данных...
А если вы хотите выбрать 7 строк, которые нужно ПОКАЗАТЬ, возможно, нужно вам именно:
$query = "SELECT * FROM catalog WHERE hide='show' ORDER BY RAND() LIMIT 7";
|
| |
|
|
|
|
|
|
|
для: Sturmvogel
(29.01.2011 в 12:07)
| | при таком запросе не работает вообще. Требует catalog в кавычках.
Я уверена что это связано с тем что ЭТОТ скрипт в отличие от остальных в корне сайта и что-то здесь именно с кавычками | |
|
|
|
|
|
|
|
для: tavila2009
(29.01.2011 в 12:17)
| | Выложите ВЕСЬ скрипт, а не только эту строчку | |
|
|
|