За последние 24 часа нас посетили 18865 программистов и 1632 робота. Сейчас ищут 918 программистов ...

Работа с бд.RDER BY RAND() LIMIT 1

Тема в разделе "PHP для новичков", создана пользователем ainur777, 4 мар 2014.

  1. ainur777

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

    С нами с:
    24 май 2013
    Сообщения:
    93
    Симпатии:
    0
    Всем привет! Помогите с проблемой, я вывожу из бд случайную запись.
    $result= mysql_query(" SELECT * FROM street WHERE house BETWEEN 0 AND 4 ORDER BY RAND() LIMIT 1");
    $rows = mysql_fetch_array($result);

    Выводит число у house от 0 до 4. Как сделать чтобы значение $houses не совпадала с $rows['house']? у $houses=1;
    Или как сделать проверку, если совпали значения вывести другой результат?
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Можно число передавать в запрос
    Код (Text):
    1. "SELECT * FROM street WHERE house>=0 AND house<=4 AND house!=$houses ORDER BY RAND() LIMIT 1"
     
  3. ainur777

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

    С нами с:
    24 май 2013
    Сообщения:
    93
    Симпатии:
    0
    Спасибо!!!

    Добавлено спустя 27 минут 29 секунд:
    А как сделать чтобы не совпадали name...
    Вид таблицы:
    id name house
    1 Gorsk 1
    2 Franc 0
    3 Progov 3

    $row['name_house'] = Gorsk;
    "SELECT * FROM street WHERE house>=0 AND house<=4 AND name!=$row['name_house'] ORDER BY RAND() LIMIT 1" //Ошибка синтаксиса???
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Код (PHP):
    1. "SELECT * FROM street WHERE house>=0 AND house<=4 AND name!={$row['name_house']} ORDER BY RAND() LIMIT 1" 
    или
    Код (PHP):
    1. $rowName = $row['name_house'];
    2. "SELECT * FROM street WHERE house>=0 AND house<=4 AND name!=$rowName ORDER BY RAND() LIMIT 1"