PHP: <?php /* Переменные для доступа к MySQL */ $dbserver= "localhost"; // Имя хоста MySQL-сервера $db = "cars"; // Имя БД $dbuser = "root"; // Имя пользователя для доступа $db $dbpassword = ""; // Пароль пользователя /* Подключаемся к MySQL-серверу */ $link = @mysql_connect ($dbserver, $dbuser, $dbpassword); if (! $link){ echo ( "Unable to connect to db" ); exit(); } /* Выбор БД */ if (!mysql_select_db ($db, $link) ){ exit (); } function request_data($brand){ /* Генерим запрос */ $query = "SELECT brand FROM t1 WHERE brand =" .$brand; $sql = mysql_query ( $query ); //$result['brand'] = mysql_fetch_array ( $sql ); } ?> HTML: <select size="1" id="action" name="action"> <option value="no_action" SELECTED>--Выберите марку-- <option value="mitsubishi"><?php echo ( request_data("Mitsubishi") );?> <option value="suzuki"><?php echo ( request_data("Suzuki") );?> <option value="hyundai"><?php echo ( request_data("Hyundai") );?> </select> Смысл таков: Я хочу брать из БД марки машин и засовывать их <option>, чтобы получилось поле <select> для дальнейшего выбора марок машин. Подскажите я правильно делаю. Поправьте меня пожалуйста!
[sql]$query = "SELECT brand FROM t1 WHERE brand =" .$brand;[/sql] Бр.... чтото не понят вообще, как Вы до этого дошли. Это Вы составили типа "выбрать все марки, где марка опель ", тоесть ответ всегда "опель" Надо гдето так [sql]SELECT brand FROM t1 [/sql]это если поле "brand" повторяется по разу в таблице. а потом циклом выбрать все результаты и из них получить <option> гдето так PHP: <?echo "select size='1' id='action' name='action'>" while ($temp_brand=$all_brands->fetch_assoc()) { echo "<option value=".$temp_brand['brand'].">".$temp_brand['brand']."</option>"; } echo "</select>";?>
Мне и надо выбрать из множества записей "опель" в БД и вставить только один "опель" в <option>. Сделать список марок машин содержащихся в БД. Человек Я ещё чайник объясни пожалуйста вот это, я не совсем понимаю PHP: $temp_brand=$all_brands->fetch_assoc() Я так понимаю $all_brands это все марки которые вернул запрос, что за функция fetch_assoc()
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']; }
Frozen Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource проблема с аргументами
PHP: function brand(){ $query = "SELECT DISTINCT brand FROM t1"; $sql = mysql_query ( $query ); //for ($data=array(); $result=mysql_fetch_row ( $sql ); $data[]=$result) return $sql; } HTML: <select size="1" id="action" name="action2"> <option value="no_action">--Выберите марку-- <?php $new = brand(); for ($data=array(); $result=mysql_fetch_assoc( $new ); $data[]=$result) { echo ("<option value=".$data.">".$data.""); } ?> </select> В чём ошибка выводятся вот такие значения "Array"? При другом способе вывода <option> всё нормально выводится
PHP: //Получаем весь результат запроса в массив $data for ($data=array(); $result=mysql_fetch_assoc( $new ); $data[]=$result) { //Выводим содержимое $data в <option> echo ("<option value=".$data.">".$data.""); }
содержимое $data как раз Array посмотрите в справке как выводятся значения, которые получаются при использовании mysql_fetch_assoc()
спасибо iliavlad разобрался. Кто-нибудь знает как сделать динамические select'ы, чтобы они значения option'ов брали из БД? А то я уже голову сломал, третий день сижу ломаю голову как связать не связуемое (PHP и JS)
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>";