[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка массива.
chupakabre
Есть такой код с запросом к базе.


$sql = "SELECT mark FROM cars ORDER BY mark ASC";
$res = mysql_query($sql);
$row = mysql_fetch_assoc($res)
foreach ($row as $rows) {
print_r ($rows);
}


Приходит Audi (первый номер в таблице), если заменить $rows на $row приходит такая строка:

Array ( [mark] => Audi ), т.е. только первый элемент.

Если прогонять через while, приходят все, но в таком варианте:

Array ( [mark] => Audi )
Array ( [mark] => BMW )
Array ( [mark] => Opel )
Array ( [mark] => Opel )

Вопрос такой как получить из базы простой массив, примерно такого вида.


$mark[0]="Audi";
$mark[1]="BMW";
$mark[2]="Opel";
$mark[3]="Opel";


Он нужен для дропдаун списка, что бы сделать что то типа поиска с уже заданными значениями.



Спустя 14 минут, 51 секунда (24.05.2011 - 20:53) Игорь_Vasinsky написал(а):
:D :D :D
$sql = "SELECT mark FROM cars ORDER BY mark ASC";
$res = mysql_query($sql);
$count = mysql_num_rows($res);
foreach ($row as $rows)
{
for($i=0; $i<$count; $i++)
{
print_r '$mark['.$i.']="'.$row.'\n";'
}
}


это чтоб посмеятся.

А вообще :
1. создал пустой массив $mark
2. записал туды значени ячеек ;)

Спустя 14 минут, 18 секунд (24.05.2011 - 21:07) chupakabre написал(а):
Цитата
А вообще :
1. создал пустой массив $mark
2. записал туды значени ячеек ;)


Ну я так пробовал, но не смог правильно обратиться к ячейкам, короче не понял нефига.


$sql = "SELECT mark FROM cars ORDER BY mark ASC";
$res = mysql_query($sql);
$count = mysql_num_rows($res);
foreach ($row as $rows)
{
for($i=0; $i<$count; $i++)
{
print_r '$mark['.$i.']="'.$row.'\n";'
}
}




И так пробовал, тоже не получилось

Спустя 18 минут, 7 секунд (24.05.2011 - 21:25) Игорь_Vasinsky написал(а):
Цитата
А код такой не выдает все равно.

за то посмеялись.

Спустя 3 минуты, 10 секунд (24.05.2011 - 21:28) chupakabre написал(а):
Зато я в конец запутался.

Спустя 4 минуты, 27 секунд (24.05.2011 - 21:33) Игорь_Vasinsky написал(а):
ждал ждал тебя... не хочешь думать...


//НАЗВАНИЕ ПОЛЕЙ И ТАБЛИЫ В АПОСТРОФАХ
$sql = "SELECT `mark` FROM `cars` ORDER BY `mark` ASC";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res))
{
$mark[] = $row['mark'];
}

вот у тя индексный массив $mark

Спустя 3 минуты, 22 секунды (24.05.2011 - 21:36) chupakabre написал(а):
Да я просто голова не работает, и время много уже.

И мануалы читать мне сложновато т.к. русским и английским не в совершенстве владею.

Спустя 1 минута, 15 секунд (24.05.2011 - 21:37) Игорь_Vasinsky написал(а):
это то что нужно?

Спустя 9 минут, 14 секунд (24.05.2011 - 21:46) chupakabre написал(а):
Да спасибо, все верно, странно я почти что так пробовал, только fetch_assoc и без тега, и нефига не получалось.

Спустя 1 минута, 27 секунд (24.05.2011 - 21:48) Игорь_Vasinsky написал(а):
почитай про mysql_fetch_assoc и mysql_fetch_array.
Цитата
и без тега, и нефига не получалось

тег я для наглядности поставил ( biggrin.gif про echo забыл biggrin.gif biggrin.gif ) - чтоб в столбец данные вывести. Убирай его, он не нужен там.

Спустя 3 минуты, 9 секунд (24.05.2011 - 21:51) chupakabre написал(а):
Читал, но не понял что применять и когда.

Спустя 7 минут, 47 секунд (24.05.2011 - 21:59) Игорь_Vasinsky написал(а):
mysql_fetch_assoc() возвращает результат в виде ассоциативного массива

mysql_fetch_array() - тип возвращаемого массива может быть задан во втором необязательном параметре

Спустя 10 часов, 26 минут, 6 секунд (25.05.2011 - 08:25) linker написал(а):
Таки всётаки mysql_fetch_assoc() и не забываем инициализировать переменные $mark, например
$mark = array()
$sql = "SELECT `mark` FROM `cars` ORDER BY `mark` ASC";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res))
{
$mark[] = $row['mark'];
}
Быстрый ответ:

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