Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных в форме
 
 автор: Dizels   (14.02.2008 в 10:33)   письмо автору
 
 

Есть таблица, которая состоит из двух полей id и name.

и есть форма (<select>), в которой нужно вывести данные из этой таблицы, как это сделать? Желательно практический пример.

   
 
 автор: elenaki   (14.02.2008 в 10:39)   письмо автору
 
   для: Dizels   (14.02.2008 в 10:33)
 

<table cellspacing="0" cellpadding="2" border="0" width="100%">
<tr><td class=text_red align="right">&nbsp;&nbsp;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>

   
 
 автор: Dizels   (14.02.2008 в 12:02)   письмо автору
 
   для: 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:05)   письмо автору
 
   для: Dizels   (14.02.2008 в 12:02)
 

Самое интересное:
в таблице сейчас 3 записи:
1 ООО
2 ОАО
3 ЧП

так вот, если выбрать 1 - то выводит правильно ООО
если 2 или 3, то выводит соответственно 2 или 3

   
 
 автор: elenaki   (14.02.2008 в 12:10)   письмо автору
 
   для: Dizels   (14.02.2008 в 12:05)
 

$f_i = $f_q['id'];
$f_n = $f_q['name'];
$string = str_replace($f_i,$f_n,$string);


????? это зачем?

   
 
 автор: Dizels   (14.02.2008 в 12:21)   письмо автору
 
   для: elenaki   (14.02.2008 в 12:10)
 

Честно говоря - не знаю:)
Это перекочевало из прошлого варианта кода, там где $a чаменялась на $b я подумал, что это и здесь прокатит, так как по сути $f_i - порядковый номер в таблице, а $f_n - название орг.формы.

Подскажите, пожалуйста, как правильно оформить.

   
 
 автор: elenaki   (14.02.2008 в 12:38)   письмо автору
 
   для: Dizels   (14.02.2008 в 12:21)
 

<option value="номер">значение</option>  

   
 
 автор: Dizels   (14.02.2008 в 12:43)   письмо автору
 
   для: 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   (15.02.2008 в 11:01)   письмо автору
 
   для: Dizels   (14.02.2008 в 12:43)
 

?

   
 
 автор: elenaki   (15.02.2008 в 11:03)   письмо автору
 
   для: Dizels   (15.02.2008 в 11:01)
 

строка $e['form'] до замены что из себя представляет?

   
 
 автор: Dizels   (15.02.2008 в 11:17)   письмо автору
 
   для: elenaki   (15.02.2008 в 11:03)
 

в переменной $e['form'] хранится значение из БД столбца form. и представлено в виде цифры. Т.е. в этом столбце записаны цифры.

поясню на примере:
в столбце form для конкретной записи записана цифра 2
значит должно выводить ОАО, т.к. в таблице form порядковому номеру 2 соответствует запись ОАО

   
 
 автор: elenaki   (15.02.2008 в 11:30)   письмо автору
 
   для: 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'];   

   
 
 автор: Dizels   (15.02.2008 в 11:34)   письмо автору
 
   для: elenaki   (15.02.2008 в 11:30)
 

Большое спасибо, действительно, что-то протупил

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования