|
|
|
| Есть таблица, которая состоит из двух полей id и name.
и есть форма (<select>), в которой нужно вывести данные из этой таблицы, как это сделать? Желательно практический пример. | |
|
|
|
|
|
|
|
для: Dizels
(14.02.2008 в 10:33)
| |
<table cellspacing="0" cellpadding="2" border="0" width="100%">
<tr><td class=text_red align="right"> Select language -></td>
<td><form name="selecter">
<select name="lang" onchange="go()">
<option value="?lang_f=English&lang=EN">Choose language</option>
<?$lang_query = mysql_query("select * from ".$db_prefix."langs where active= 'Y' and lang_s != 'EN'") or die(mysql_error());
while ($lang_q = mysql_fetch_array($lang_query)){
$lang_s = $lang_q['lang_s'];
$lang_full = $lang_q['lang_full'];
?> <option value="?lang_f=<?=$lang_full?>&lang=<?=$lang_s?>" <?if ($lang_s == $_GET["lang"]) echo "selected" ?>><?=$lang_full?></option>
<?
}
?> </select></td></form>
</tr>
</table>
|
| |
|
|
|
|
|
|
|
для: elenaki
(14.02.2008 в 10:39)
| | Заработало, спасибо большое.
Теперь возникла еще одна проблема:
раньше я выводил результат вот так:
function Zamena($string) {
$a = array('0','1','2','3','4','5','6','7','8','9','10','11');
$b = array('','ЧП','ООО','ЗАО','ОАО','Общество с дополнительной ответственностью','Командитное общество',
'СПД','Полное товарищество','Производственный кооператив',
'Государственное предприятие','Государственное комунальное предприятие');
$string = str_replace($a,$b,$string);
return($string); }
if (!empty($e['form']))
{
echo "Организационно-правовая форма: ". Zamena($e['form']) ."<br>";
}
|
Теперь уже все самостоятельно формируется, соответственно нужно и выводить без этой функции, вот только как - я пока не пойму.
Попробовал поменять вот так:
function Zamena($string) {
$frm = mysql_query("select * from form") or die(mysql_error());
while ($f_q = mysql_fetch_array($frm)){
$f_i = $f_q['id'];
$f_n = $f_q['name'];
$string = str_replace($f_i,$f_n,$string);
return($string); } }
if (!empty($e['form']))
{
echo "Организационно-правовая форма: ". Zamena($e['form']) ."<br>";
}
|
Но выводит только цифру | |
|
|
|
|
|
|
|
для: Dizels
(14.02.2008 в 12:02)
| | Самое интересное:
в таблице сейчас 3 записи:
1 ООО
2 ОАО
3 ЧП
так вот, если выбрать 1 - то выводит правильно ООО
если 2 или 3, то выводит соответственно 2 или 3 | |
|
|
|
|
|
|
|
для: Dizels
(14.02.2008 в 12:05)
| | $f_i = $f_q['id'];
$f_n = $f_q['name'];
$string = str_replace($f_i,$f_n,$string);
????? это зачем? | |
|
|
|
|
|
|
|
для: elenaki
(14.02.2008 в 12:10)
| | Честно говоря - не знаю:)
Это перекочевало из прошлого варианта кода, там где $a чаменялась на $b я подумал, что это и здесь прокатит, так как по сути $f_i - порядковый номер в таблице, а $f_n - название орг.формы.
Подскажите, пожалуйста, как правильно оформить. | |
|
|
|
|
|
|
|
для: Dizels
(14.02.2008 в 12:21)
| |
<option value="номер">значение</option>
|
| |
|
|
|
|
|
|
|
для: elenaki
(14.02.2008 в 12:38)
| | не, вы не поняли, в форме у меня уже все работает(форма в админ панельке), а сейчас я настраиваю вывод информации на сайт.
Так вот, вывожу я ее вот так:
echo "Организационно-правовая форма: ". Zamena($e['form']) ."<br>";
|
ну и сама функция Zamena:
function Zamena($string) {
$frm = mysql_query("select * from form") or die(mysql_error());
while ($f_q = mysql_fetch_array($frm)){
$f_i = $f_q['id'];
$f_n = $f_q['name'];
$string = str_replace($f_i,$f_n,$string);
return($string); } }
|
вот здесь проблема и происходит - функция не работает. Т.е на сайте показывается так:
Организационно-правовая форма: 2 а должно вот так:
Организационно-правовая форма: ОАО | |
|
|
|
|
|
|
|
для: Dizels
(14.02.2008 в 12:43)
| | ? | |
|
|
|
|
|
|
|
для: Dizels
(15.02.2008 в 11:01)
| | строка $e['form'] до замены что из себя представляет? | |
|
|
|
|
|
|
|
для: elenaki
(15.02.2008 в 11:03)
| | в переменной $e['form'] хранится значение из БД столбца form. и представлено в виде цифры. Т.е. в этом столбце записаны цифры.
поясню на примере:
в столбце form для конкретной записи записана цифра 2
значит должно выводить ОАО, т.к. в таблице form порядковому номеру 2 соответствует запись ОАО | |
|
|
|
|
|
|
|
для: Dizels
(15.02.2008 в 11:17)
| | так надо тогда из базы выбирать конкретное значение, а не все. переделайте запрос в виде:
$frm = mysql_query("select * from form where id=".$e['form']) or die(mysql_error());
$f_q = mysql_fetch_array($frm));
$f_n = $f_q['name'];
|
| |
|
|
|
|
|
|
|
для: elenaki
(15.02.2008 в 11:30)
| | Большое спасибо, действительно, что-то протупил | |
|
|
|