За последние 24 часа нас посетили 15562 программиста и 1548 роботов. Сейчас ищут 794 программиста ...

форма поиска по базе

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

  1. tstas

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

    С нами с:
    23 июн 2011
    Сообщения:
    4
    Симпатии:
    0
    Всем привет. Вопрос? Как привязать в форме поиска поле select к базе mysql. Есть выподающее меню: список стран, берется из базы, необходим запрос который при выборе страны выводил бы данные из другой таблицы. Сделал такой код:
    Код (Text):
    1.  
    2. <form name='input' method="post" id="searchform" action='http://localhost:8888/forum/form1.php'>
    3.  
    4. <select  class='input' type='select' name='id'>
    5.  
    6. <?php $sql = mysql_query("SELECT id, stran FROM `wp_countri`");?>
    7.     <option value='id' disabled selected='selected'>Выберите страну</option>
    8.     <?php while($row = mysql_fetch_assoc($sql))
    9. {
    10.     $id=$row['id'];
    11.     echo    '<option value="'. $row['id'] .'">'. $row['stran'] .'</option>';
    12. }
    13.  
    14.  
    15.  
    16. ?>
    17.  </select>
    18.  
    19. <?php $sql = mysql_query("SELECT event_subject
    20.  
    21. FROM `phpbb_calendar_events`  WHERE 'id' = '".$_POST['id']."'");?>
    22.  
    23. <?php  while($row = mysql_fetch_assoc($sql))
    24. {
    25.    
    26.     echo    '<option value="'. $row['event_subject'] .'"></option>';
    27. }
    28.  
    29. if (isset($_POST['id'])) {$country1=$_POST['id'];}
    30. echo "".$country1."<br/>";
    31.  
    32. ?>
    33.  
    34.  
    35.  
    36. <input type="submit" id="searchsubmit" name ="id" value="найти" />
    37.    
    38.  
    39.  
    40.  
    41.  
    42. </form>
    Список выбирается, а дальше пишет на странице ошибку searchform4.php on line 23: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given
    Подскажите в чем ошибка. Спасибо.
     
  2. tmvrus

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

    С нами с:
    9 июн 2011
    Сообщения:
    10
    Симпатии:
    0
    PHP ругается, на то что ф-я mysql_fetch_assoc() ожидает в качестве параметра "ресурс" (результат запроса SQL) а ей передают boolean, обычно такое случается когда запрос составлен не верно и выполниться не может.
    На первый взгляд ошибка
    PHP:
    1.  
    2. WHERE 'id' = $_POST['id']
    3.  
    а нужно
    PHP:
    1.  
    2. WHERE `id` = $_POST['id']
    3.  
    Еще, лично мне удобнее записывать строки вот таким образом,
    не нужно лишних точек и кавычек.
    PHP:
    1.  
    2. echo    "<option value='{$row['id']}'>{$row['stran']}</option>";
    3.  
     
  3. tstas

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

    С нами с:
    23 июн 2011
    Сообщения:
    4
    Симпатии:
    0
    Спасибо! Но косые кавычки не помогли. Скорей всего запрос не связан с sectom или связан не правельно, в этом то ивопрос.