За последние 24 часа нас посетили 20703 программиста и 1109 роботов. Сейчас ищут 383 программиста ...

не срабатывает sql запрос =(

Тема в разделе "MySQL", создана пользователем EvelRus, 13 фев 2008.

Статус темы:
Закрыта.
  1. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    +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]
     
  2. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Во-первых, если бы ты прочитал и последовал моему совету "оптимизировать код. До упора" - было бы проще искать ошибку.
    Вот этот твой:
    можно и НУЖНО написать так:
    PHP:
    1. <? $query="SELECT *  FROM `".$db_prefix."page`";
    2.  if (empty($pages)) // Пустой запрос
    3.   $query.= " limit 1";
    4.  else
    5.   $query.= " WHERE `title` LIKE '%".$pages."%' LIMIT 1";
    6.  
    7.   $sql = mysql_query($query) or die(mysql_error);
    8.  
    9.   while($res = mysql_fetch_array($sql))
    10.   {
    11.    style ($res['id'], $res['page'], $res['title'], $res['content']);
    12.   }
    13. ?>
    Во вторых. Когда код с оптимизирован, ошибка становится видимой и очевидной.
    Вот что будет, если запрос к базе не найдёт ничего?
     
  3. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    По идеи mysql_fetch_array должен выдать ошибку...т.к массива не сформируется... Я прав?
    А вообще данные в БД есть! )))
     
  4. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
  5. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    ни слова не нашел про пустой :(((
     
  6. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Код (Text):
    1. mysql_free_result ($sql);
    Объявилась ошибка :))

    Но не понимаю, почему php не выполняет запрос, а в БД все нормально :(
     
  7. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    На такой случай у меня тоже есть ссылочка

    Описание
    array mysql_fetch_array ( resource result [, int result_type] )

     
  8. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Ну так фальше должно выдать ошибу, нет? :(
     
  9. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    <Держите меня семеро - шестеро не удержат!!!>

    Ты сам думать будешь?
    Если, блин, вот здесь - while($res = mysql_fetch_array($sql)) функция mysql_fetch_array вернёт FALSE - СКОЛЬКО РАЗ ВЫПОЛНИЦА ЦИКЛ?

    Всё. Это был последний тупой вопрос, на который я тебе ответил. Дальше буду игнорировать.
     
  10. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    ниразу!!!

    Так я говорю что меня не это удивляет, а что sql запрос не выполняется.. хотя составлен верно :((((
    Вот в чем проблема
     
  11. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    берёшь phpMyAdmin или свой любимый mysql-клиент в зубы - и эксперементируешь с запросом. До тех пор, пока не получица.
     
  12. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    RomanBush.... в phpMyAdmin все работает :(((
    Не работает php + mysql_query();

    И не могу понять почему... вот в чем вопрос...
     
  13. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Значит в phpMyAdmin ты суёшь один запрос, а в скрипте - другой.
    Возможно, неправильно передаётся переменная.
    Дамп базы ты здесь не выкладывал, поэтому сказать не могу.
     
  14. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    я тоже поэтому замолчал ... ибо что тут скажешь .. если исходить из выше описанного .. то нам не все сказали - ибо работать должно ... но вот превращать свою машин в баг-трейсер чужого кода, как-то обламывает!
     
  15. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  16. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    А меня, дурака, черти за язык потянули.
     
  17. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Переписал так...
    PHP:
    1.  
    2. <?php
    3. /***************************************\
    4. | Programs:     Vowik.ru Web-Portal      |
    5. | Support:      [email=support@vowik.ru]support@vowik.ru[/email]         |
    6. | Author:       Sharapov Vladimir        |
    7. | E-Mail:       [email=dragonofdeath@bk.ru]dragonofdeath@bk.ru[/email]      |
    8. | File:         index.php                |
    9. \*_____________________________________*/
    10.  
    11. include_once 'config.php';
    12.  
    13.  
    14. $pages = $_GET['page'];
    15. $pages = htmlentities(trim($_GET['page']));
    16.  
    17.  
    18. echo $page."<br>";
    19. echo $db_prefix."<br>";
    20.  
    21.  
    22. db_connect($db_server, $db_user, $db_passwd, $db_table);
    23.  
    24. if (empty($pages))
    25. {
    26. $sql = ("SELECT *  FROM `".$db_prefix."page` limit 1");
    27. $sql = mysql_query($query) or die(mysql_error());
    28. while($res = mysql_fetch_array($sql))
    29.  {
    30.   style ($res['id'], $res['page'], $res['title'], $res['content']);
    31.  }
    32. }
    33. else
    34. {
    35. $sql = ("SELECT * FROM `".$db_prefix."page` WHERE `page` LIKE '%".$pages."%' LIMIT 1");
    36. $sql = mysql_query($query) or die(mysql_error());
    37. while($res = mysql_fetch_array($sql))
    38.  {
    39.   style ($res['id'], $res['page'], $res['title'], $res['content']);
    40.  }
    41. }
    42. ?>
    43.  
    Сделал вывод всех подставляемых переменных...

    Теперь и дефаулт не выполнятеся ((((

    И пишет "пустой результат" :(((
    Но почему понять не могу, и снова в бд все выполнятеся :((((((((
     
  18. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Код (Text):
    1.  $pages = $_GET['page'];
    2.  $pages = htmlentities(trim($_GET['page']));
    супер конструкция ?

    Код (Text):
    1.  
    2.  db_connect($db_server, $db_user, $db_passwd, $db_table); // $db_table ??? уверен ??
    3.  
    4.  if (empty($pages))
    5.  {
    6.  $sql = ("SELECT *  FROM `".$db_prefix."page` limit 1");
    7. echo $sql.'<br>';  //-- давай глянем что зедсь
    8.  $sql = mysql_query($query) or die(mysql_error());
    9.  while($res = mysql_fetch_array($sql))
    10.   {
    11.    style ($res['id'], $res['page'], $res['title'], $res['content']);
    12.   }
    13.  }
    14.  else
    15.  {
    16.  $sql = ("SELECT * FROM `".$db_prefix."page` WHERE `page` LIKE '%".$pages."%' LIMIT 1");
    17.  echo $sql.'<br>';  //--     давай глянем что зедсь
    18. $sql = mysql_query($query) or die(mysql_error());
    19.  while($res = mysql_fetch_array($sql))
    20.   {
    21.    style ($res['id'], $res['page'], $res['title'], $res['content']);
    22.   }
    23.  }
     
  19. RomanBush

    RomanBush Активный пользователь

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Nemo
    Исчо раз, медленно. ОПТИМИЗИРУЙ КОД!

    Я тебе уже даже написал этот кусок соптимизированный.
    Вот нафига ты пишешь ДВА раза одно и то же? Чтобы можно было два раза сделать ошибку и потом её искать в двух местах?
     
  20. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    nimistar, чем тебе конструкция не нрава?:)))
     
  21. EvelRus

    EvelRus Активный пользователь

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Сделал, тема закрыта!!!!

    Исправленный вариант:
    PHP:
    1. <?php
    2. /***************************************\
    3. | Programs:     Vowik.ru Web-Portal      |
    4. | Support:      [email=support@vowik.ru]support@vowik.ru[/email]         |
    5. | Author:       Sharapov Vladimir        |
    6. | E-Mail:       [email=dragonofdeath@bk.ru]dragonofdeath@bk.ru[/email]      |
    7. | File:         index.php                |
    8. \*_____________________________________*/
    9.  
    10. include_once 'config.php';
    11.  
    12.  
    13. $pages = $_GET['page'];
    14. $pages = htmlentities(trim($_GET['page']));
    15.  
    16.  
    17. echo $page."<br>";
    18. echo $db_prefix."<br>";
    19.  
    20.  
    21. db_connect($db_server, $db_user, $db_passwd, $db_table);
    22. $sql = ("SELECT *  FROM `".$db_prefix."page`");
    23. if (empty($pages))
    24. {
    25. $sql .= (" limit 1");
    26. $sql = mysql_query($sql) or die(mysql_error());
    27. while($res = mysql_fetch_array($sql))
    28.  {
    29.   style ($res['id'], $res['page'], $res['title'], $res['content']);
    30.  }
    31. }
    32. else
    33. {
    34. $sql .= (" WHERE `page` LIKE '%".$pages."%' LIMIT 1");
    35. $sql = mysql_query($sql) or die(mysql_error());
    36. while($res = mysql_fetch_array($sql))
    37.  {
    38.   style ($res['id'], $res['page'], $res['title'], $res['content']);
    39.  }
    40. }
    41. ?>
     
Статус темы:
Закрыта.