+Sten+ ЖЖЖОШЬ... Ща )) [sql]CREATE TABLE `site_page` ( `id` int(10) NOT NULL auto_increment, `page` varchar(255) default NULL, `title` varchar(255) default NULL, `content` text, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;[/sql]
Во-первых, если бы ты прочитал и последовал моему совету "оптимизировать код. До упора" - было бы проще искать ошибку. Вот этот твой: можно и НУЖНО написать так: PHP: <? $query="SELECT * FROM `".$db_prefix."page`"; if (empty($pages)) // Пустой запрос $query.= " limit 1"; else $query.= " WHERE `title` LIKE '%".$pages."%' LIMIT 1"; $sql = mysql_query($query) or die(mysql_error); while($res = mysql_fetch_array($sql)) { style ($res['id'], $res['page'], $res['title'], $res['content']); } ?> Во вторых. Когда код с оптимизирован, ошибка становится видимой и очевидной. Вот что будет, если запрос к базе не найдёт ничего?
По идеи mysql_fetch_array должен выдать ошибку...т.к массива не сформируется... Я прав? А вообще данные в БД есть! )))
Код (Text): mysql_free_result ($sql); Объявилась ошибка ) Но не понимаю, почему php не выполняет запрос, а в БД все нормально
На такой случай у меня тоже есть ссылочка Описание array mysql_fetch_array ( resource result [, int result_type] )
<Держите меня семеро - шестеро не удержат!!!> Ты сам думать будешь? Если, блин, вот здесь - while($res = mysql_fetch_array($sql)) функция mysql_fetch_array вернёт FALSE - СКОЛЬКО РАЗ ВЫПОЛНИЦА ЦИКЛ? Всё. Это был последний тупой вопрос, на который я тебе ответил. Дальше буду игнорировать.
ниразу!!! Так я говорю что меня не это удивляет, а что sql запрос не выполняется.. хотя составлен верно ((( Вот в чем проблема
берёшь phpMyAdmin или свой любимый mysql-клиент в зубы - и эксперементируешь с запросом. До тех пор, пока не получица.
RomanBush.... в phpMyAdmin все работает (( Не работает php + mysql_query(); И не могу понять почему... вот в чем вопрос...
Значит в phpMyAdmin ты суёшь один запрос, а в скрипте - другой. Возможно, неправильно передаётся переменная. Дамп базы ты здесь не выкладывал, поэтому сказать не могу.
я тоже поэтому замолчал ... ибо что тут скажешь .. если исходить из выше описанного .. то нам не все сказали - ибо работать должно ... но вот превращать свою машин в баг-трейсер чужого кода, как-то обламывает!
Переписал так... PHP: <?php /***************************************\ | Programs: Vowik.ru Web-Portal | | Support: [email=support@vowik.ru]support@vowik.ru[/email] | | Author: Sharapov Vladimir | | E-Mail: [email=dragonofdeath@bk.ru]dragonofdeath@bk.ru[/email] | | File: index.php | \*_____________________________________*/ include_once 'config.php'; $pages = $_GET['page']; $pages = htmlentities(trim($_GET['page'])); echo $page."<br>"; echo $db_prefix."<br>"; db_connect($db_server, $db_user, $db_passwd, $db_table); if (empty($pages)) { $sql = ("SELECT * FROM `".$db_prefix."page` limit 1"); $sql = mysql_query($query) or die(mysql_error()); while($res = mysql_fetch_array($sql)) { style ($res['id'], $res['page'], $res['title'], $res['content']); } } else { $sql = ("SELECT * FROM `".$db_prefix."page` WHERE `page` LIKE '%".$pages."%' LIMIT 1"); $sql = mysql_query($query) or die(mysql_error()); while($res = mysql_fetch_array($sql)) { style ($res['id'], $res['page'], $res['title'], $res['content']); } } ?> Сделал вывод всех подставляемых переменных... Теперь и дефаулт не выполнятеся (((( И пишет "пустой результат" (( Но почему понять не могу, и снова в бд все выполнятеся (((((((
Код (Text): $pages = $_GET['page']; $pages = htmlentities(trim($_GET['page'])); супер конструкция ? Код (Text): db_connect($db_server, $db_user, $db_passwd, $db_table); // $db_table ??? уверен ?? if (empty($pages)) { $sql = ("SELECT * FROM `".$db_prefix."page` limit 1"); echo $sql.'<br>'; //-- давай глянем что зедсь $sql = mysql_query($query) or die(mysql_error()); while($res = mysql_fetch_array($sql)) { style ($res['id'], $res['page'], $res['title'], $res['content']); } } else { $sql = ("SELECT * FROM `".$db_prefix."page` WHERE `page` LIKE '%".$pages."%' LIMIT 1"); echo $sql.'<br>'; //-- давай глянем что зедсь $sql = mysql_query($query) or die(mysql_error()); while($res = mysql_fetch_array($sql)) { style ($res['id'], $res['page'], $res['title'], $res['content']); } }
Nemo Исчо раз, медленно. ОПТИМИЗИРУЙ КОД! Я тебе уже даже написал этот кусок соптимизированный. Вот нафига ты пишешь ДВА раза одно и то же? Чтобы можно было два раза сделать ошибку и потом её искать в двух местах?
Сделал, тема закрыта!!!! Исправленный вариант: PHP: <?php /***************************************\ | Programs: Vowik.ru Web-Portal | | Support: [email=support@vowik.ru]support@vowik.ru[/email] | | Author: Sharapov Vladimir | | E-Mail: [email=dragonofdeath@bk.ru]dragonofdeath@bk.ru[/email] | | File: index.php | \*_____________________________________*/ include_once 'config.php'; $pages = $_GET['page']; $pages = htmlentities(trim($_GET['page'])); echo $page."<br>"; echo $db_prefix."<br>"; db_connect($db_server, $db_user, $db_passwd, $db_table); $sql = ("SELECT * FROM `".$db_prefix."page`"); if (empty($pages)) { $sql .= (" limit 1"); $sql = mysql_query($sql) or die(mysql_error()); while($res = mysql_fetch_array($sql)) { style ($res['id'], $res['page'], $res['title'], $res['content']); } } else { $sql .= (" WHERE `page` LIKE '%".$pages."%' LIMIT 1"); $sql = mysql_query($sql) or die(mysql_error()); while($res = mysql_fetch_array($sql)) { style ($res['id'], $res['page'], $res['title'], $res['content']); } } ?>