[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заполнение select-а значениями из таблицы в БД
Alexei1986
Как с помощью формы HTML заполнить открывающийся список <select> значениями из таблицы в базе данных?



Спустя 1 час, 20 минут, 15 секунд (12.12.2009 - 00:14) sergeiss написал(а):
Цитата (Alexei1986 @ 11.12.2009 - 23:54)
Как с помощью формы HTML заполнить открывающийся список <select> значениями из таблицы в базе данных?

Так с помощью формы или значениями из базы? Ты уж определись, что же нужно. Тогда поможем, наверное.

Спустя 6 минут, 59 секунд (12.12.2009 - 00:21) Alexei1986 написал(а):
Нужно, чтобы, когда html-страница с формой, а форма, в свою очередь, с select-ом, будет загружаться, в select уже должны быть забиты значения из определённого места в базе данных.

Спустя 4 минуты, 15 секунд (12.12.2009 - 00:25) DeeKeiD написал(а):

// Открываем тег select
echo '<select name="s1">';
// Получаем результат из базы
$res = mysql_query("SELECT * FROM `options`");
// выводим теги option из базы(столько тегов сколько значений в базе)
while($row = mysql_fetch_assoc($res))
{
echo '<option value="'. $row['id'] .'">'. $row['name'] .'</option>';
}
// Закрываем тег select
echo '</select>';

Спустя 12 минут, 42 секунды (12.12.2009 - 00:38) Alexei1986 написал(а):
// Открываем тег selectecho '<select name="s1">';// Получаем результат из базы$res = mysql_query("SELECT * FROM `options`");// выводим теги option из базы(столько тегов сколько значений в базе)while($row = mysql_fetch_assoc($res)){    echo '<option value="'. $row['id'] .'">'. $row['name'] .'</option>';}// Закрываем тег selectecho '</select>';

А это в php-файле или в html?

Спустя 3 минуты, 4 секунды (12.12.2009 - 00:41) DeeKeiD написал(а):
php

Спустя 1 час, 11 минут, 13 секунд (12.12.2009 - 01:52) Alexei1986 написал(а):
А без php-файла никак нельзя? Например, в html эту процедуру встроить?

Спустя 38 минут, 32 секунды (12.12.2009 - 02:31) Krevedko написал(а):
можно. но это будет говнокод )

Спустя 1 минута, 43 секунды (12.12.2009 - 02:33) Krevedko написал(а):

<select name="s1">
<?php

// Получаем результат из базы
$res = mysql_query("SELECT * FROM `options`");
// выводим теги option из базы(столько тегов сколько значений в базе)
while($row = mysql_fetch_assoc($res))
{
echo '<option value="'. $row['id'] .'">'. $row['name'] .'</option>';
}
?>
</select>


Спустя 10 часов, 59 минут, 57 секунд (12.12.2009 - 13:33) Alexei1986 написал(а):
А если это сделать отдельным php-файлом, то как в html нужно select оформлять?

Спустя 8 минут, 51 секунда (12.12.2009 - 13:41) Krevedko написал(а):
я бы лично сделал так

в хтмл

<select name="s1">
<?php
echo list(); ?>
</select>



ну и в пхп что-то вроде

function list()
{
$list = '';
$res = mysql_query("SELECT * FROM `options`");
while($row = mysql_fetch_assoc($res))
{
$list .='<option value="'. $row['id'] .'">'. $row['name'] .'</option>';
}
return $list;
}

Спустя 21 минута, 35 секунд (12.12.2009 - 14:03) Alexei1986 написал(а):
А где здесь ссылка на php-файл?

Спустя 12 минут, 37 секунд (12.12.2009 - 14:16) Krevedko написал(а):
обычно наоборот в пхп делают инклюд хтмл
ну напиши в пхп внизу
include '/list.html';

Спустя 31 минута, 53 секунды (12.12.2009 - 14:48) Alexei1986 написал(а):
html:

<html>
<body>
<form>
<select
name="s1">
<?php
echo list(); ?>
</select>
</form>
</body>
</html>


php:

<?php
function
list() {
$id=mysql_connect("localhost","root");
$idb=mysql_select_db("database1",$id);
$list='';
$idn=mysql_query("SELECT id FROM `options`");
while ($row=mysql_fetch_assoc($idn))
{
$list.='<option value="'.$row['id'].'">'.$row['name'].'</option>';
}
return $list;
}
include '/test.html';
?>


Где ошибка?

Спустя 2 минуты, 1 секунда (12.12.2009 - 14:50) DeeKeiD написал(а):
$idn=mysql_query("SELECT id FROM `options`");
замени на SELECT * FROM `options` и вытаскивай поля с помощью $row['pole1'].' и т.д.

Спустя 7 минут, 53 секунды (12.12.2009 - 14:57) Krevedko написал(а):
угу..я на запрос даже не посмотрел )

Спустя 10 минут, 45 секунд (12.12.2009 - 15:08) Alexei1986 написал(а):
$idn=mysql_query("SELECT id FROM `options`");
замени на SELECT * FROM `options` и вытаскивай поля с помощью $row['pole1'].' и т.д.


Не помогло. Что-то ещё есть.

Спустя 38 минут, 6 секунд (12.12.2009 - 15:46) Krevedko написал(а):
так ты ошибку скажи

Спустя 1 минута, 54 секунды (12.12.2009 - 15:48) Alexei1986 написал(а):
Из базы данных поля не берутся, а выводится "голый" select.

Спустя 2 минуты, 26 секунд (12.12.2009 - 15:51) Krevedko написал(а):
$list .= '<option>'. $row['name'] .'</option>';

Спустя 3 минуты, 25 секунд (12.12.2009 - 15:54) Alexei1986 написал(а):
И это не то sad.gif всё равно значения не берутся

Спустя 54 секунды (12.12.2009 - 15:55) Krevedko написал(а):
у тебя таблица options называется ?
в ней есть поле name ?

Спустя 3 минуты, 15 секунд (12.12.2009 - 15:58) Alexei1986 написал(а):
Все имена правильные.

Спустя 6 минут, 58 секунд (12.12.2009 - 16:05) Krevedko написал(а):
а ты хтмл файл запускаешь или пхп ?

Спустя 4 минуты, 26 секунд (12.12.2009 - 16:10) Alexei1986 написал(а):
А нужно запускать php?

Спустя 30 минут, 16 секунд (12.12.2009 - 16:40) Krevedko написал(а):
естественно. хтмл же в нем подключается

Спустя 14 минут, 53 секунды (12.12.2009 - 16:55) Alexei1986 написал(а):
Переделал вообще без html:

<?php
$id=mysql_connect("localhost","root");
$idb=mysql_select_db("database",$id);
$idn=mysql_query("SELECT * FROM 'options'");
echo "<form>";
echo "<select name='s1'>";
while ($row=mysql_fetch_assoc($idn)!=null)
{
echo "<option>".$row['name']."</option>";
}
echo "</select>";
echo "</form>";
?>


Всё равно отображается голый select, а значений он почему-то не видит.

Спустя 2 часа, 34 минуты, 35 секунд (12.12.2009 - 19:29) Alexei1986 написал(а):
Заработало. Вопрос снимаю. Вот так надо было:

<?php
$id=mysql_connect("localhost","root");
$idb=mysql_select_db("database",$id);
$idn=mysql_query("SELECT * FROM options");
echo "<form>";
echo "<select name='s1'>";
while (($row=mysql_fetch_array($idn))!=null)
{
echo "<option>".$row[0]."</option>";
}
echo "</select>";
echo "</form>";
?>


Спасибо.

Спустя 2 часа, 3 минуты, 11 секунд (12.12.2009 - 21:33) Krevedko написал(а):
mysql_fetch_array($idn)
говнокодинг

если уж тах хочется брать $row[0], то пиши mysql_fetch_row

ну и options в кавычки ты не в те брал...надо `options`

Спустя 12 минут, 55 секунд (12.12.2009 - 21:45) Alexei1986 написал(а):
Хм... Если 'options' взять в кавычки, то не работает, а без кавычек работает unsure.gif

Спустя 2 минуты, 11 секунд (12.12.2009 - 21:48) Alexei1986 написал(а):
Ах да, точно... Надо те кавычки, которые на букве Ё. unsure.gif

Спустя 1 минута, 37 секунд (12.12.2009 - 21:49) Krevedko написал(а):
раз $row[0] работает, а $row['name'] не работает, значит в таблице у тебя нет поля name

Спустя 2 минуты, 30 секунд (12.12.2009 - 21:52) Alexei1986 написал(а):
Уже всё работает. Теперь вот такой вопрос: вот у меня на форме два select-а, выбираю в них значения, жму submit, выходят несколько строк (ну, в общем, что надо - находится). Так вот как сделать, чтобы эти строки выходили в обратном порядке?

Спустя 3 минуты, 1 секунда (12.12.2009 - 21:55) Krevedko написал(а):
а почему не работало ?
name с большой буквы написал ?

Спустя 7 минут, 45 секунд (12.12.2009 - 22:03) Alexei1986 написал(а):
Дело было не в том, что $row[0] работает, а $row['name'] не работает. Ошибка была, где вместо
while (($row=mysql_fetch_array($idn))!=null)
было
while ($row=mysql_fetch_array($idn)!=null)
(скобки неправильно стояли). А потом я переписал всё заново и решил действовать по-простому: если написать $row[0], то всё равно что-то да выведется. А потом, собственно, и с $row['name']заработало... smile.gif

Спустя 1 час, 9 минут, 49 секунд (12.12.2009 - 23:12) sergeiss написал(а):
Alexei1986
достаточно написать
while ($row=mysql_fetch_array($idn) )
{
...
}

Но если ты хочешь работать с $row['name'], и числовые индексы массива тебе не нужны (т.е. $row[0] и другие), то лучше использовать mysql_fetch_assoc(). Данных будет выбирать в 2 раза меньше, что приведет к более быстрой работе скрипта.

Спустя 5 месяцев, 15 дней, 15 часов, 42 минуты, 56 секунд (28.05.2010 - 13:55) semi написал(а):
Неподскажете как еще проверять на уникальность. Тоэсть эсли такоэ значениэ било виведено то слкдующий раз невиводить.

Спустя 4 месяца, 9 дней, 9 часов, 56 минут, 46 секунд (7.10.2010 - 23:52) allforweb написал(а):
Не выводит через функцию в теге select. Вне формы все нормально, а вот в теге нет.

Спустя 7 минут, 13 секунд (7.10.2010 - 23:59) arvitaly написал(а):
Код в студию

Спустя 6 минут, 5 секунд (8.10.2010 - 00:05) allforweb написал(а):

function cat()
{
$cat = '';
$res = mysql_query("SELECT id, name FROM `category`");
while($row = mysql_fetch_assoc($res))
{
$cat .='<option value="'. $row['id'] .'">'. $row['name'] .'</option>';
}
return $cat;
}



<label>Выбрать Категорию <br />
<select
name='category'>
cat();
</select>
</label><br />



Спустя 3 минуты, 35 секунд (8.10.2010 - 00:09) arvitaly написал(а):
<label>Выбрать Категорию <br />
<select
name='category'>
<?php
echo cat(); ?>
</select>
</label><br />


cat возвращает строку, но не выводит ее, вывести - echo или print

Спустя 8 минут, 51 секунда (8.10.2010 - 00:18) allforweb написал(а):
Не выводит. Вот полный код, для чистоты эксперимента:


function cat()
{
$cat = '';
$res = mysql_query("SELECT id, name FROM `category`");
while($row = mysql_fetch_assoc($res))
{
$cat .='<option value="'. $row['id'] .'">'. $row['name'] .'</option>';
}
return $cat;
}
echo cat(); //Первая Вторая Третяя это то что в браузере выводится вне формы. Всего три поля в базе у меня.

echo "<form name='add' method='post' enctype='multipart/form-data'>
<label>Заголовок новости:<br />
<input name='title' type='text' size='40' />
</label><br />

<label>Дата добавления новости:<br />
<input name='date' type='text' value='
$date' size='40' />
</label><br />

<label>Описание новости:<br />
<input name='desc' type='text' size='40' />
</label><br />

<label>Ключевые слова новости:<br />
<input name='key' type='text' size='40' />
</label><br />

<label>Краткое описание новости:<br />
<textarea name='short' cols='45' rows='5'></textarea>
</label><br />

<label>Полное описание новости:<br />
<textarea name='full' cols='45' rows='5'></textarea>
</label><br />

<label>Картинка для новости новости:<br />
<input type='file' name='image'/>
</label><br />

<label>Выбрать Категорию <br />
<select name='category'>
echo cat() // здесь все варианты возможные перепробовал, результата нет
</select>
</label><br />

<input type='submit' value='Добавить' />
</form>"
;


Помогите мне справиться с этим?!

Спустя 6 минут, 50 секунд (8.10.2010 - 00:25) arvitaly написал(а):
<?php

function
cat()
{
$cat = '' ;
$res = mysql_query( "SELECT id, name FROM `category`" ) ;
while ( $row = mysql_fetch_assoc( $res ) )
{
$cat .= '<option value="' . $row['id'] . '">' . $row['name'] . '</option>' ;
}
return $cat ;
}


echo "<form name='add' method='post' enctype='multipart/form-data'>
<label>Заголовок новости:<br />
<input name='title' type='text' size='40' />
</label><br />

<label>Дата добавления новости:<br />
<input name='date' type='text' value='
$date' size='40' />
</label><br />

<label>Описание новости:<br />
<input name='desc' type='text' size='40' />
</label><br />

<label>Ключевые слова новости:<br />
<input name='key' type='text' size='40' />
</label><br />

<label>Краткое описание новости:<br />
<textarea name='short' cols='45' rows='5'></textarea>
</label><br />

<label>Полное описание новости:<br />
<textarea name='full' cols='45' rows='5'></textarea>
</label><br />

<label>Картинка для новости новости:<br />
<input type='file' name='image'/>
</label><br />

<label>Выбрать Категорию <br />
<select name='category'>
"
. cat() . "
</select>
</label><br />

<input type='submit' value='Добавить' />
</form>"
;

Спустя 10 часов, 40 минут, 5 секунд (8.10.2010 - 11:05) allforweb написал(а):
А обработка правильная как будет?
$category = $row['id']; // в переменную добавляется значение id из массива и отправляется в базу, но вытянуть это значение не получается.

Спустя 8 месяцев, 27 дней, 5 часов, 21 минута, 42 секунды (5.07.2011 - 16:26) Guest написал(а):
[php][/php][html][css][js][/js][code][/code][code][js][sql]


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.