За последние 24 часа нас посетили 20682 программиста и 1825 роботов. Сейчас ищут 920 программистов ...

<option>+строчка из БД

Тема в разделе "PHP и базы данных", создана пользователем gvik, 16 сен 2009.

  1. gvik

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

    С нами с:
    15 сен 2009
    Сообщения:
    16
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. /* Переменные для доступа к MySQL */
    4. $dbserver= "localhost";     // Имя хоста MySQL-сервера
    5. $db = "cars";      // Имя БД
    6. $dbuser = "root";       // Имя пользователя для доступа $db
    7. $dbpassword = "";   // Пароль пользователя
    8.  
    9. /* Подключаемся к MySQL-серверу */
    10. $link = @mysql_connect ($dbserver, $dbuser, $dbpassword);
    11. if (! $link){
    12.     echo ( "Unable to connect to db" );
    13. exit();
    14. }
    15.  
    16. /* Выбор БД */
    17. if (!mysql_select_db ($db, $link) ){
    18. exit ();
    19. }
    20.  
    21. function request_data($brand){
    22.     /* Генерим запрос */
    23.     $query = "SELECT brand FROM t1 WHERE brand =" .$brand;
    24.     $sql = mysql_query ( $query );
    25.    
    26.     //$result['brand'] = mysql_fetch_array ( $sql );
    27. }
    28. ?>
    29.  
    HTML:
    1.  
    2. <select size="1" id="action" name="action">
    3.      <option value="no_action"  SELECTED>--Выберите марку--
    4.      <option value="mitsubishi"><?php echo ( request_data("Mitsubishi") );?>
    5.      <option value="suzuki"><?php echo ( request_data("Suzuki") );?>
    6.      <option value="hyundai"><?php echo ( request_data("Hyundai") );?>
    7.  </select>
    8.  
    Смысл таков: Я хочу брать из БД марки машин и засовывать их <option>, чтобы получилось поле <select> для дальнейшего выбора марок машин.
    Подскажите я правильно делаю. Поправьте меня пожалуйста!
     
  2. Человек

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

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    [sql]$query = "SELECT brand FROM t1 WHERE brand =" .$brand;[/sql]
    Бр.... чтото не понят вообще, как Вы до этого дошли. Это Вы составили типа "выбрать все марки, где марка опель ", тоесть ответ всегда "опель"
    Надо гдето так
    [sql]SELECT brand FROM t1 [/sql]это если поле "brand" повторяется по разу в таблице.

    а потом циклом выбрать все результаты и из них получить <option>
    гдето так
    PHP:
    1. <?echo "select size='1' id='action' name='action'>"
    2. while ($temp_brand=$all_brands->fetch_assoc())
    3.  {
    4.    echo "<option value=".$temp_brand['brand'].">".$temp_brand['brand']."</option>";
    5.  }
    6. echo "</select>";?>
     
  3. gvik

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

    С нами с:
    15 сен 2009
    Сообщения:
    16
    Симпатии:
    0
    Мне и надо выбрать из множества записей "опель" в БД и вставить только один "опель" в <option>. Сделать список марок машин содержащихся в БД.
    Человек
    Я ещё чайник объясни пожалуйста вот это, я не совсем понимаю
    PHP:
    1.  $temp_brand=$all_brands->fetch_assoc()
    Я так понимаю $all_brands это все марки которые вернул запрос, что за функция fetch_assoc()
     
  4. Frozen

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

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    function request_data($brand){
    /* Генерим запрос */
    $query = "SELECT brand FROM t1 WHERE brand =" .$brand. " limit 1";
    $sql = mysql_query ( $query );

    $result = mysql_fetch_array ( $sql );
    return $result['brand'];
    }
     
  5. gvik

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

    С нами с:
    15 сен 2009
    Сообщения:
    16
    Симпатии:
    0
    Frozen
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
    проблема с аргументами
     
  6. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    gvik
    Запрос не выполнился. maybe ошибка в запросе.
     
  7. gvik

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

    С нами с:
    15 сен 2009
    Сообщения:
    16
    Симпатии:
    0
    Ребята, а возможно динамический select написать на php или подскажите как встроить php в js
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    никак

    php - выполняется на сервере JS на клиенте
     
  9. gvik

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

    С нами с:
    15 сен 2009
    Сообщения:
    16
    Симпатии:
    0
    PHP:
    1.  
    2. function brand(){
    3.     $query = "SELECT DISTINCT brand FROM t1";
    4.     $sql = mysql_query ( $query );
    5.     //for ($data=array();  $result=mysql_fetch_row ( $sql ); $data[]=$result)
    6.     return $sql;
    7. }
    8.  
    HTML:
    1.  
    2. <select size="1" id="action" name="action2">
    3.          <option value="no_action">--Выберите марку--
    4.          <?php  $new = brand();
    5.         for ($data=array(); $result=mysql_fetch_assoc( $new );  $data[]=$result)
    6.              {
    7.              echo ("<option value=".$data.">".$data."");
    8.              }
    9.     ?>
    10.  
    В чём ошибка выводятся вот такие значения "Array"? При другом способе вывода <option> всё нормально выводится
     
  10. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    gvik
    напишите, что делает этот блок
     
  11. gvik

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

    С нами с:
    15 сен 2009
    Сообщения:
    16
    Симпатии:
    0
    PHP:
    1.  
    2. //Получаем весь результат запроса в массив $data
    3. for ($data=array(); $result=mysql_fetch_assoc( $new ); $data[]=$result)
    4. {
    5. //Выводим содержимое $data в <option>
    6. echo ("<option value=".$data.">".$data."");
    7. }
    8.  
     
  12. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    содержимое $data как раз Array
    посмотрите в справке как выводятся значения, которые получаются при использовании mysql_fetch_assoc()
     
  13. gvik

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

    С нами с:
    15 сен 2009
    Сообщения:
    16
    Симпатии:
    0
    спасибо iliavlad разобрался.
    Кто-нибудь знает как сделать динамические select'ы, чтобы они значения option'ов брали из БД? А то я уже голову сломал, третий день сижу ломаю голову как связать не связуемое (PHP и JS)
     
  14. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    gvik
    jquery, ajax
     
  15. alexs67

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

    С нами с:
    19 сен 2009
    Сообщения:
    1
    Симпатии:
    0
    CREATE TABLE `mar` (
    `id` int(3) NOT NULL auto_increment,
    `mar_name` varchar(40) NOT NULL default '',
    `comments` varchar(30) NOT NULL default '',
    PRIMARY KEY (`id`)) TYPE=MyISAM AUTO_INCREMENT=1 ;




    $query = "SELECT id,mar_name FROM mar";
    $database->setQuery($query);
    $mar_rows = $database->loadObjectList();


    <select name="marname" class="inputbox" size="1" maxlength="40">
    <?php

    for ($i=0; $i<sizeof($mar_rows); $i++) {
    $row = $mar_rows[$i];
    if ( $marname == $i ) { print "<OPTION VALUE=\"$i\" SELECTED> $row->mar_name </OPTION>"; }
    else { print "<OPTION VALUE=\"$i\" > $row->mar_name </OPTION>"; }
    }
    ?>
    </select>

    а вот как сделать пример чуть ниже

    CREATE TABLE `mar` (
    `id` int(3) NOT NULL auto_increment,
    `mar_name_ru` varchar(40) NOT NULL default '',
    `mar_name_en` varchar(40) NOT NULL default '',
    `mar_name_fr` varchar(40) NOT NULL default '',
    `comments` varchar(30) NOT NULL default '',
    PRIMARY KEY (`id`)) TYPE=MyISAM AUTO_INCREMENT=1 ;

    $query = "SELECT id,mar_name_$lang FROM mar "; тут понятно

    print "<OPTION VALUE=\"$i\" > $row->mar_name_ru или ($row->mar_name_en) </OPTION>"; так все работает но нужно

    print "<OPTION VALUE=\"$i\" > $row->mar_name_$lang не так $row->mar_name_".$lang." не работает </OPTION>";