заменить цикл while ($ row = mysql_fetch_array ($ res)) на цикл for - PullRequest
1 голос
/ 14 октября 2011

Мне было интересно, как я мог бы заменить этот цикл: while ($ row = mysql_fetch_array ($ res)) для цикла.

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

Итак, что бы я хотел получить, это что-то вроде этого:

$row[0]

for ($i = 1; $i <= mysql_num_rows($result); $i++) {
$row[$i]
}

Я попытался немного поискать здесь, но не смог найти что-то, что показалось мне логичным: большинство примеров, которые я видел, выполняли новый SQL-запрос к серверу, что не очень хорошо для скорости, не так ли?

Пожалуйста, дайте мне знать!

Ответы [ 3 ]

4 голосов
/ 14 октября 2011

Я бы так не поступил.Я бы сделал что-то вроде этого:

$first=true;
while ($row=mysql_fetch_array($res)) {
    if ($first) {
        //Extra formatting or whatever you need to do can go here
    }
    //Other code goes here
    $first=false;
}
0 голосов
/ 14 октября 2011
for ($i = 1; $row = mysql_fetch_row($result); $i++) {
  $row[$i]
}

конечно, это буквальный, но совершенно бесполезный ответ.
Для отображения данных на вашем сайте, вы должны использовать шаблон.
Итак, вы все равно должны сначала получить данные в массив

0 голосов
/ 14 октября 2011

Каждый раз, когда вы запускаете mysql_fetch_array, он все равно выбирает следующую строку , так что вы можете просто запустить ее один раз за пределами цикла, а затем цикл пройти через оставшиеся строки.

То, что не , происходит mysql_data_seek, что будет вызывать его перезапуск сверху, но вы этого не делаете!

Пример

$row = mysql_fetch_array($res);
# process first row here

while ($row = mysql_fetch_array($res)) {
    # process second and subsequent rows here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...