1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Ошибка в запросе

Тема в разделе "Web Coding", создана пользователем Flock, 16 янв 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Flock

    Flock Постоялец

    Регистр.:
    16 июн 2007
    Сообщения:
    142
    Симпатии:
    44
    PHP:
    $desc = @mysql_connect($host,$username,$password) or die("Ошибка! Невозможно соединиться с базой данных.".mysql_error());

    @
    mysql_select_db($db) or die("Невозможно выбрать базу данных.".mysql_error());

    ============ 
    Тут
    $res 
    mysql_query("SELECT * FROM Info WHERE Family LIKE 'Ник%'") or die ("Ошибка.".mysql_error());
    ============

    while(
    $db_array mysql_fetch_array($res))
    {
                echo 
    "Фамилия:".$db_array["Family"]."<br>";
    }
        
    mysql_close($desc);
    Не понимаю чего не хватает?! Есть записи с такими фамилиями в таблице. Выполняю в самом mysql, запрос проходит нормально.

    Debian Linux, Mysql 5.0.38, PHP 5.2.0.
     
  2. bueno

    bueno Читатель

    Заблокирован
    Регистр.:
    7 май 2007
    Сообщения:
    236
    Симпатии:
    69
    убери погашение вывода ошибок @mysql_select_db и приведи сообщение об ошибке..
     
  3. Flock

    Flock Постоялец

    Регистр.:
    16 июн 2007
    Сообщения:
    142
    Симпатии:
    44
    Не в этом дело 100%, оно из под рута работает. Проблема была в кодировках у меня стояла в mysql latin1, погуглил сделал так:

    CREATE DATABASE Base_Name CHARACTER SET cp1251;

    CREATE TABLE Table_Name (...) DEFAULT CHARACTER SET cp1251;

    Потом еще подправил my.cnf,
    [mysql]
    default-character-set=cp1251
    [mysqld]
    default-character-set=cp1251

    и при начале работы с таблицами, mysql_query("SET NAMES cp1251") (хотя вроде не обязательно..т.к установили по умолчанию кодировку в my.cnf как cp1251)

    Вроде все работает, выводит.
     
  4. Avtandil

    Avtandil Создатель

    Регистр.:
    30 сен 2006
    Сообщения:
    30
    Симпатии:
    24
    Flock, раз ты любишь ассоциативные массивы, попробуй вот так:
    PHP:
    $desc = @mysql_connect($host,$username,$password) or die("Ошибка! Невозможно соединиться с базой данных.".mysql_error());
    @
    mysql_select_db($db,$desc) or die("Невозможно выбрать базу данных.".mysql_error());
    mysql_query('SET NAMES cp1251',$desc);
    $res mysql_query("SELECT * FROM Info WHERE Family LIKE 'Ник%'",$desc);
    while (
    $row=mysql_fetch_assoc($res)) echo "Фамилия: {$row['Family']}<br>\n";
    mysql_close($desc);
    Я понимаю, что ты сам разобрался. Но другим начинающим мой пример может оказаться полезным.
     
Статус темы:
Закрыта.