За последние 24 часа нас посетили 20111 программистов и 1668 роботов. Сейчас ищут 1942 программиста ...

ОБъясните устройство чата...

Тема в разделе "Вопросы от блондинок", создана пользователем EvelRus, 27 июн 2008.

  1. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    NOmeR1, ЗДОРОВО!!!! Спасибо! не дагадался бы :(
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Nemo
    Если надо, могу скинуть простой чат (без привата и списка он-лайн пользователей) - в принципе, необходимый движок, даже с комментариями в коде :)
     
  3. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Кидай... dragonofdeath@bk.ru
    а если будет эллементарный с приватом и списком юзеров... буду очень благодарен :)
     
  4. Johnatan

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

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Nemo
    я очень рад, что ты считаешь себя не совсем ламером.
    А моему последнему совету, всё-таки последуй.
     
  5. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Johnatan, спасибо за совет, подумаю :))
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Nemo
    В SQL нет ничего страшного. В экселе работал? Там столбцы названия имеют А В С, а тут ты их сам именуешь и задаешь тип данных, которые будут храниться. Вот и все, образно говоря.
     
  7. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    Значит... опять я что-то туплю...
    PHP:
    1. <?
    2. db_connect ($dbhost , $dbname, $dbpasswd, $dbuser);
    3. mysql_query('SET NAMES CP1251');
    4. $data = mysql_fetch_array(mysql_query("SELECT username FROM `phpbb_users` WHERE `chat_online` = '1'"));
    5. print_r ($data);
    6. /*
    7. foreach ($data as $temp)
    8. {
    9.  echo $temp.'<br>';
    10. }
    11. */
    12. for ($n = 0; $n < count($data)-1; $n++)
    13. {
    14. echo $data[$n].'<br>';
    15. }
    16. ?>
    Почему-то выводится только первая запись удовлетворяющая условию... Остальные как-то не очень :( Не могу понять в чем дело... Принт_Р выводит две записи
    Хотя со статусом == 1 три человека! Сам поменял в phpMyAdmin, проверил, что действительно изменились :(

    Задача: Вывести в столбик список всех пользователей (только ники (usernames)) у кого chat_online == 1.
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Дело в том, что mysql выводит структуру данных, отличную от массива. Я вижу её так (хотя она другая):

    [sql]DragonOfDeath | User 1 | User 2[/sql]
    Когда ты применяешь функцию fetch_array, то выбирается первый результат и из него образуется массив.
    Поэтому эту функцию нужно применять в цикле, чтобы в следующий раз она выбрала из результата User 1...

    Если бы запрос был бы такой - SELECT `id`, `username` FROM `phpbb_users` WHERE `chat_online` = '1'
    То результат был бы такой:
    [sql]
    1 | 2 | 3
    DragonOfDeath | User 1 | User 2[/sql]
    Первый массив был бы -
    Array ( [0] => 1 [id] => 1 [1] => DragonOfDeath [username] => DragonOfDeath )
     
  9. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    а как тогда выводить список? :(((

    Попробовал вот так
    Код (Text):
    1. $sql = "SELECT * FROM `phpbb_users` WHERE 'chat_online'='1'";
    2. $sql=mysql_query($sql) or die("Error");
    3. while($nextrow = mysql_fetch_array($sql))
    4. {
    5. echo $nextrow['username'].'<br>';
    6. }
    Но так вообще ничего не выводится :(
     
  10. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    Nemo - эх ... я бы тебя даж кодером невзял! :)
    PHP:
    1. <? $sql = "SELECT * FROM `phpbb_users` WHERE 'chat_online'='1'";  
    фигли имя столбца в одинарных кавычках ??
    а построфы ??
    PHP:
    1. <? $sql = "SELECT * FROM `phpbb_users` WHERE `chat_online`='1'";  
    а потом нафиг mysql_fetch_array ???

    есть пара очень удобных вещей :
    mysql_fetch_array( resource $result , MYSQL_ASSOC ) что по сути равно mysql_fetch_assoc ()
    или вот ещё удобная mysql_fetch_object
     
  11. EvelRus

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

    С нами с:
    16 ноя 2006
    Сообщения:
    2.168
    Симпатии:
    0
    Адрес:
    Москва
    уже сделали... ошибка были именно из-за ковычек :)
     
  12. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Nemo
    Синтаксис языка SQL схож с английским языком... Поэтому простые запросы (выборка данных из одной таблицы) пишутся почти на чистом английском :)

    P.S. апострофы необязательны...