За последние 24 часа нас посетили 17340 программистов и 1921 робот. Сейчас ищут 986 программистов ...

Как добавить в запрос несколько выбранных данных из списка?

Тема в разделе "PHP для новичков", создана пользователем lssbor, 15 окт 2008.

  1. lssbor

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

    С нами с:
    15 окт 2008
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Saint-Petesburg
    Как добавить в sql запрос несколько выбранных данных из списка? В запрос почему-то попадает только последнее выбранное значение из массива $value. В where in они должны идти через запятую

    FORM.PHP:
    PHP:
    1. <form name="form1" method="post" action="script.php">
    2. <p>Список с множественным выбором (multiple):</p>
    3. <p>
    4. <?php
    5. echo '<select name=day_m[] size=7 multiple>';
    6. mysql_connect('127.0.0.1', 'root', '');
    7. mysql_query('set names utf8');
    8. $q = mysql_query('select * from full_info order by number');
    9. $i = 1;
    10. while ($qa = mysql_fetch_row($q)){
    11.  
    12. echo '<option selected="selected">';
    13. echo $qa[0],'</option>';
    14.  
    15. };
    16. echo'</select>';
    17. ?>
    18.  
    19. </p>
    20. <hr size="1">
    21. <p>
    22. <input type="submit" value="Отослать форму">
    SCRIPT.PHP:
    PHP:
    1. <?php
    2. echo '<p>Значения списка с множественным выбором: </p>';
    3.  
    4. foreach ($_POST['day_m'] as $keys=>$values)
    5. echo "<b>$values</b><br>";
    6. mysql_connect('127.0.0.1', 'root', '');
    7. mysql_query('set names w1251');
    8. $p = mysql_query('select number, address, place from full_info
    9. where number in ('.$values.')');
    10. $i = 1;
    11. while ($pa = mysql_fetch_row($p)){
    12. echo $pa[0],$pa[1],$pa[2];
    13. }
    // пользуемся BB-тэгами. Luge
     
  2. lssbor

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

    С нами с:
    15 окт 2008
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Saint-Petesburg
    where number in ('.$values.') здесь он берет только последний выбранный элемент,а надо несколько
     
  3. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    В $values хранится пследнее значение из foreach. Если нужны все, так и составляйте запрос в цикле, а не после него.
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Скрипт взломоопасен (SQL injection).
     
  5. lssbor

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

    С нами с:
    15 окт 2008
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Saint-Petesburg
    Большое спасибо) Теперь все ок
     
  6. lssbor

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

    С нами с:
    15 окт 2008
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Saint-Petesburg
    Kreker подскажи как это исправить)
     
  7. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск