За последние 24 часа нас посетили 59908 программистов и 1772 робота. Сейчас ищут 798 программистов ...

Множественный выбор данных

Тема в разделе "PHP и базы данных", создана пользователем McLotos, 11 апр 2011.

  1. McLotos

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

    С нами с:
    24 фев 2011
    Сообщения:
    90
    Симпатии:
    0
    PHP:
    1. $query=('SELECT DISTINCT recipient AS field,id_call FROM Calls WHERE phone_number=$phone_number order by recipient');
    2. $result=mysql_query($query);
    3. echo('<select name="SELECT" size=7 multiple>');
    4. while($row=mysql_fetch_array($result))
    5. {
    6.    echo('<option value='.$row['id_call'].'>'.$row['field'].'</option>');
    7. }
    8. echo('</select><br>');
    Этот код работает только в случае, если нету условия WHERE phone_number=$_SESSION['phone_number'] или такого варианта, как указано в коде. Т.е. код срабатывает только в том случае, когда нужно вывести всё содержимое колонки recipient. В чём может быть глюк?
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Напиши сначала, что ты хочешь.
    Код не сработает уже потому, что в первой строке у тебя mysql запрос в одинарных кавычках, а ты подставляешь переменную $phone_number. И почему в скобках? В двойные возьми "SELECT .... $phone_number ..."
     
  3. Crayday

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

    С нами с:
    7 апр 2011
    Сообщения:
    26
    Симпатии:
    0
    Почему тут нет чёртовых плюсиков! Мне нравится то, что пишет YSandro! =)
     
  4. Mr. T

    Mr. T Активный пользователь

    С нами с:
    10 ноя 2010
    Сообщения:
    733
    Симпатии:
    0
    Адрес:
    Украина, г. Киев
    YSandro,
    не имеет значения в каких кавычках записывать запрос, при одинарных интерпретатор не поймет переменную $phone_number в том виде, в каком она сейчас задана и все.
     
  5. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    Молодец!
     
  6. McLotos

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

    С нами с:
    24 фев 2011
    Сообщения:
    90
    Симпатии:
    0
    Исправил
    PHP:
    1.  
    2. $query="SELECT DISTINCT recipient AS field, id_call FROM Calls WHERE phone_number='$phone_number'";
    Но почему не срабатывает DISTINCT? Этот запрос показывает полностью весь список, а по идеет должен показать только по 1 экземпляру.
    Может убрать нафиг id из заропса?
     
  7. McLotos

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

    С нами с:
    24 фев 2011
    Сообщения:
    90
    Симпатии:
    0
    Точно! Я чуть-чуть подправил этот код
    PHP:
    1. $query="SELECT DISTINCT recipient AS field,recipient FROM Calls WHERE phone_number='$phone_number' order by recipient";
    2. $result=mysql_query($query);
    3. echo('<select name="SELECT" size=7 multiple>');
    4. while($row=mysql_fetch_array($result))
    5. {
    6.    echo('<option value='.$row['recipient'].'>'.$row['field'].'</option>');
    7. }
    8. echo('</select><br>');
    Если не использовать id, тогда данные в списке не повторяются.