Помогите разобраться с массивами в результате запроса Mysql
<?
mysql_select_db($db,$sock);
$result=mysql_query("SELECT * FROM `base` WHERE `id` = '$id' AND `ip` = '$ip'",$sock);
WHILE ($row=mysql_fetch_array($result, MYSQL_ASSOC)){
$id=$row["id"];
$ip=$row["ip"];
}
?>
Все видят ассоциативный массив $row. Мне не понятно как здесь работает WHILE. от какого значения он начинает цикл на каком значении он прекращает свою работу....
в моем представлении (псевдографическом)массив должен выглядеть после выполнения SELECT так :
id ip
1 x y.y.y.y.
2 x y.y.y.y.
3 x y.y.y.y.
4 x y.y.y.y.
5 x y.y.y.y.
Как выдернуть тогда значение ip из 5 строчки?
Или как упорядочить этот массив по ip?
Вообще мое представление о массиве полученного после select, правильное или как.
В целом запутался я с этими массивами.
Если не запихивать $row=mysql_fetch_array($result, MYSQL_ASSOC) в WHILE то как получить доступ к данным.
чтобы выдернуть строчку результата с конкретным номером, используй mysql_data_seek() и дальше mysql_fetch_row()
просто mysql_fetch_array делает свое дело: читает следующую запись из ответа сервера mysql, после чего возвращает true, если смогла все сделать и false, если не смогла. не может как правило потому что больше записей нет.