mysql_fetch_array или преобразовать массив

wildarp

Новичок
mysql_fetch_array или преобразовать массив

Привет всем.

Есть функция

PHP:
function GetFields($table) {
	$res = mysql_query("SELECT * FROM $table") or die("Could not get FROM TIP table - " . mysql_error());
    while($row=mysql_fetch_assoc($res)) $result[]=$row;
    	
 return $result;


}
Дает массив

Есть собственно HTML

PHP:
  <select name="city_id" size="1" id="city">
   <option value="all">Все</option>
<?=$city=GetFields(city)?> 
<option value="<?=$city['id']?>"><?=$city['Name']?></option>

   </select> 
  <label>Город</label>
Такой код выводит Notice: Undefined index: id in D:\WebServer\www\buba\functions.phpon line 94

Вопрос в следующем не могу никак понять: как сделать вывод в тегах <option> HTML всего этого дела в качестве списка. Не получается, видимо нужно как-то преобразовать массив. Подскажите плз в какую сторону копать. Спасибо.


<?=print_r($city)?>

Показывает

Array ( [0] => Array ( [id] => 1 [Name] => Киев ) [1] => Array ( [id] => 2 [Name] => Харьков ) ) 1
 

rotoZOOM

ACM maniac
Ё-маё. Ты же сам уже распечатал массив и видишь, что никакого $city['id'] там нет.
 

wildarp

Новичок
да это я знаю что нет, мне именно интересует преобразование массива
 

antson

Новичок
Партнер клуба
wildarp
смотри еще на раз на вывод print_r

внимательно . двумерный массив.

и вообще что за дикость фетчить всю таблицу в массив ?
 

wildarp

Новичок
да я то понял что нужно $city['0']['Name']

Но как сделать чтобы в <option></option> получился список не могу догнать и все тут :(((

-~{}~ 24.03.08 17:59:

вобщемто понятно что нужно привести к виду

Array ( [id] => Array ( [1] => 1 [2] => 2 ) [Name] => Array ( [1] => Киев [2] => Харьков ) ) 1

Только как ...:(
 

vonica

Новичок
А как ты думаешь, хтмл проанализирует твои переменные и сам сообразит, что нужно для каждого элемента массива дописать разметку?

PHP:
 <select name="city_id" size="1" id="city">
   <option value="all">Все</option>
<?=$city=GetFields(city)?> 
<!--НАЧАЛО ЦИКЛА-->
<option value="<?=$city[переменная]['id']?>"><?=$city[переменная]['Name']?></option>
<!--КОНЕЦ ЦИКЛА-->
   </select> 
  <label>Город</label>
 

wildarp

Новичок
Спасибо всем победил! :)

PHP:
<?=$city=GetFields(city);

        for($inx = 0; $inx < count($city); $inx++){
?> 

<option value="<?=$city[$inx]['id']?>"><?=$city[$inx]['Name']?></option>
<?
   }
 

Beavis

Banned
Автор оригинала: wildarp
Чесно говоря пока не знаю как это сделать :(
раз ты даже не прочитал то что тебе посоветовали - смысла нет дальше продолжать что-то делать
 

antson

Новичок
Партнер клуба
быстрее будет
function GetFieldsAsOption($table) {
$result='';
$res = mysql_query("SELECT id,Name FROM $table") or die("Could not get FROM TIP table - " . mysql_error());
while($row=mysql_fetch_assoc($res)) $result.='
<option value="'.$tow['id].'">'.$row['Name'].'></option>
' ;

return $result;


}
 

Beavis

Banned
antson
и в итоге получилась каша из HTML, PHP и SQL...
не надо так делать
 

wildarp

Новичок
Автор оригинала: Beavis
antson
и в итоге получилась каша из HTML, PHP и SQL...
не надо так делать
Согласен так как эту функцию можно использовать и для других вызовов
 

_Leonchik_

Новичок
что в этом случае делаете Вы?
как Вы избегаете этой каши (HTML, PHP и SQL)?
итересует именно на этом примере.

Цель моих вопросов - не простое любопытство, а спортивный интерес.
 

Alexandre

PHPПенсионер
как Вы избегаете этой каши (HTML, PHP и SQL)?
чтоб избежать каши HTML&PHP, используют метод разделения кода и дизайна (http://ru.wikipedia.org/wiki/Model-view-controller ). Одним из таких методов - является использование шаблонизаторов ( например smarty.php.net).
чтоб избежать каши SQL&PHP используются специальные классы БД или ORM (http://ru.wikipedia.org/wiki/ORM)
 
Сверху