ФорумПрограммированиеPHP для идиотов → проблемы с MySql (ф-ия mysql_fetch_array),

проблемы с MySql (ф-ия mysql_fetch_array),

  • capricorn

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 28 октября 2007 г. 8:12

    есть такая ф-ия:


    function SQL_QUERY($query)
    {
    $PublicSqlBase = mysql_connect('localhost', 'Lamer', 'Lamer')
    or die($Mysql_connect_error);
    mysql_select_db('MyBase', $PublicSqlBase)
    or die($Mysql_select_db_error);
    $retval = mysql_query($query, $PublicSqlBase);
    return $retval;
    }


    далее где-то в коде:


    $rslt = SQL_QUERY("SELECT * FROM Gallery THERE id=0");
    $row = mysql_fetch_array($rslt);

    print($row["img"]);


    во здесь и проблема.
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\test3\www\sql.php on line 14

    но, если вызвать mysql_fetch_array с параметром, возвращаемым напрямую mysql_query, то всё ок.
    (напр. так)


    $retval = mysql_query($query, $PublicSqlBase);
    mysql_fetch_array($retval);


    ЗЫ
    это просто пример, я хочу узнать, почему так происходит….

    Помогите!

    Зарание спасибо!
  • md5

    Сообщения: 11951 Репутация: N Группа: в ухо

    Spritz 28 октября 2007 г. 8:35, спустя 22 минуты 42 секунды

    $retval = mysql_query($query, $PublicSqlBase);


    здесь делай or die(mysql_error());
    и тебе покажет ошибку

    или просто запрос вернул нулевой результат


    а вобще, mysql_connect делай один раз в скрипте, в начале
    все умрут, а я изумруд
  • capricorn

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 28 октября 2007 г. 9:45, спустя 1 час 9 минут 32 секунды

    ты наверное не понял вопрос.


    $retval = mysql_query($query, $PublicSqlBase);

    запрос возвращает не нулевой результат, вся проблема в том, что МОЯ ФУНКЦИЯ (function SQL_QUERY($query)) этот самый результат возвращает не верно, оттого mysql_fetch_array и ругается, а вот почему так происходит - не понятно. =(
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 28 октября 2007 г. 10:00, спустя 15 минут 18 секунд

    А вы всё-таки выведите mysql_error().
  • md5

    Сообщения: 11951 Репутация: N Группа: в ухо

    Spritz 28 октября 2007 г. 10:14, спустя 14 минут 24 секунды

    ты наверное не понял вопрос.

    ты наверно сам не понял

    выведи mysql_error()
    все умрут, а я изумруд
  • capricorn

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 28 октября 2007 г. 10:51, спустя 37 минут 13 секунд

    Ёлки, ну яж не совсем идиот, вот вам die:


    <?php

    function SQL_QUERY($query)
    {
    $PublicSqlBase = mysql_connect(&#39;localhost&#39;, &#39;Lamer&#39;, &#39;Lamer&#39;)
    or die($Mysql_connect_error);
    mysql_select_db(&#39;MyBase&#39;, $PublicSqlBase)
    or die($Mysql_select_db_error);
    $retval = mysql_query($query, $PublicSqlBase) or
    die(&quot;ERROR!!!&quot;);
    return $retval;
    }

    $rslt = SQL_QUERY(&quot;SELECT * FROM Gallery_Box THERE id=0&quot;);
    $row = mysql_fetch_array($rslt); // А ошибочка-то ТУТ!

    print($row[&quot;img&quot;]);

    ?>

    и опять:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\test3\www\sql.php on line 14

    а вот если написать так:


    function SQL_QUERY($query)
    {
    $PublicSqlBase = mysql_connect(&#39;localhost&#39;, &#39;Lamer&#39;, &#39;Lamer&#39;)
    or die($Mysql_connect_error);
    mysql_select_db(&#39;MyBase&#39;, $PublicSqlBase)
    or die($Mysql_select_db_error);
    $retval = mysql_query($query, $PublicSqlBase) or
    die(&quot;ERROR!!!&quot;);
    $row = mysql_fetch_array($retval);

    print($row[&quot;img&quot;]);
    }
    ?>


    То всё работает отлично! Так в чём-же дело? Почему моя ф-ия неправильный результат возвращает..

    ЗЫ
    Извините за грубость, я сегодня пол дня над этим вопросом бьюсь, никак не могу понять :(
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 28 октября 2007 г. 11:02, спустя 10 минут 20 секунд

    Ёлки, ну яж не совсем идиот, вот вам die:

    Ваши нервные выражения, не лучший способ убедить в этом.

    Надеюсь вы понимаете, что ваша проблема из разряда &quot;этого не может быть, потому что не может быть никогда&quot;?
    Здесь либо какой-то глупый глюк, либо вы что-то недоговариваете. Глупый глюк вплоть до того, что где-то затесалась русская буква вместо английской или подобного.
    Поэтому ставьте die() везде где возможно. Попробуйте вернуть mysql_query() сразу же без $retval. Проверяйте значения переменных после каждого действия.
  • capricorn

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 28 октября 2007 г. 11:16, спустя 14 минут 21 секунду

    так, я снёс денвер, и установил апач и мускль отдельно, в качестве сервера установил апач, код заработал! md5, vasa_c спосиб вам, что отвечали на мои глупые вопросы =). Тема закрыта!

    ЗЫ
    Так и не понял, денвер виноват или кривые руки %).
  • kart

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 28 октября 2007 г. 17:42, спустя 6 часов 26 минут 4 секунды

    capricorn, мдаа.. офигенный выход - сменить ПО, если возвращается подобная ошибка )))

    mysql_fetch_array(): supplied argument is not a valid MySQL result resource in бла бла бла

    эта ошибка возникает в случае левого запроса (о чём собственно и говориться).
    итак, смотрим запрос:
    SELECT * FROM Gallery THERE id=0

    ога!!!
    что за THERE? о_О
    вот и фсё!
  • Voronenok

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 15:01, спустя 1755 дней 21 час 18 минут

    дура ты и есть дура всё сто про меня говоришь это всё про тебя!!!

Пожалуйста, авторизуйтесь, чтобы написать комментарий!