Перейти к содержимому


Перебор массива.


Сообщений в теме: 2

#1 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 09 Июль 2010 - 00:33

Есть вот такой код:
$sql = "SELECT name, type FROM f5_data_files limit 5";
$r = mysql_query($sql) or die(mysql_error());
$s = mysql_fetch_array($r, MYSQL_ASSOC);
foreach ($s as $key => $value) {
echo "$key: $value<br />";
}

На выходе получается вывод только 1 строки с запроса:

Цитата

name: Корстон-Ильдар Абдулкадыров.jpg
type: image/jpeg

Я так понимаю выполняется только 1 итерация. Почему? Что сделать для перебора по всем елементам(5 итераций)?

#2 Гарифуллин Марат

    Администратор

  • Руководитель ООО "КБ"
  • PipPipPip
  • 121 сообщений
  • Пол:Мужчина

Отправлено 09 Июль 2010 - 08:55

На сколько я знаю, mysql_fetch_array - записывает результаты последней строки MYSQL запроса в массив. Вам надо поставить эту функцию в цикл, типа

while ($s = mysql_fetch_array($r, MYSQL_ASSOC)) {

... ваши действия

}

#3 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 09 Июль 2010 - 13:28

$r_file = array();
$sqlQuery = "SELECT DISTINCT(name), type FROM f5_data_files WHERE table_id=89 AND field_id=1094 AND line_id={ID}";
$query = mysql_query($sqlQuery) or die(mysql_error()."<br />".$sqlQuery);
while($r = mysql_fetch_assoc($query)) {
	$r_file[] = $r;
}
Может быть кому-то поможет. Данные выборки загоняем в массив данных, ну а дальше работаем с ним как хотим.





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных