mysql_fetch_array. непонятности.

Poster

Новичок
mysql_fetch_array. непонятности.

Ребята, вот такой пример, я хочу от одного запроса получить два ассоциативных массива:

PHP:
<?
mysql_connect("localhost", "m", "o") or
   die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
   printf("ID: %s  Name: %s", $row["id"], $row["name"]);
}


while ($power = mysql_fetch_array($result, MYSQL_ASSOC)) { print_r($power);
   printf("ID: %s  Name: %s", $power["id"], $power["name"]); echo '<br />';
}

print_r($power);

mysql_free_result($result);
?>
Похоже, массив $power не существует.

Я не должен хотеть получить два массива от одного запроса?

Скажите где об этом почитать подробно можно, спасибо
 

kvf77

Red Devil
Poster

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

mysql_data_seek($result, 1);

Но твой подход очень ресурсоемкий и неправильный. тебе надо оставить 1 цикл, в котором делать:

PHP:
$res1 = '';
$res2 = '';
while ($power = mysql_fetch_array($result, MYSQL_ASSOC)) { 
   $res1 .= printf("ID: %s  Name: %s", $power["id"], $power["name"]); echo '<br />';
   $res2 .= printf("ID: %s  Name: %s", $power["id"], $power["name"]); echo '<br />'; 
} 
echo $res1 . $res2;
 

Фанат

oncle terrible
Команда форума
если бы ты понимал, что означает строчка
while ($row =
ты бы не задавал этого вопроса.
попробуй задуматься, что она означает.
один из вариантов сделать то, что тебе надо, выглядит так:
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf("ID: %s Name: %s", $row["id"], $row["name"]);
$power[]=$row;
}
а потом перебираешь массив $power
 

kvf77

Red Devil
Poster

че-то я не понял - зачем тебе два одинаковых цикла?
 

Poster

Новичок
Да просто сверстано криво, шапка.

в одной <tr> графический "указатель" на выбранный пункт меню, а через несколько <tr> вывод самогО меню.
 
Сверху