Do while не передает значение в новый for

170
15 декабря 2016, 15:56

И как сделать правильно?

        $allstud=mysql_query("select `фио студента` from студенты where группа=$g") or die(mysql_error());
        $stud=mysql_fetch_array($allstud);
        do  
        {
            echo $stud['фио студента']."<br>";
        }
        while($stud=mysql_fetch_array($allstud));
        for($st=1;$st<count($stud)+1;$st++)
        {
            echo"студен - $stud[$st] группа такая- $g тип такой $lecture дата такая- $lecdate[$st]"; 
        }

$stud[$st] не принимает значения=( из do while

Answer 1

Насколько я понимаю, mysql_fetch_array($result) возвращает один элемент массива ($allstud), полученного из mysql_query($query). Поэтому в цикле, необходимо создать новый массив:

$i = 0;
$stud_array = array();
while ($stud = mysql_fetch_array($allstud)) {
    $stud_array[$i] = $stud['фио студента'];
    $i += 1;
}

а далее работать с этим массивом:

for ($st = 1; $st < count($stud_array); $st += 1) {
    echo "студент - $stud_array[$st] группа такая- $g тип такой $lecture дата

такая- $lecdate[$st]"; }

Answer 2
    $stud=mysql_fetch_array($allstud);
    do  
    {
        echo $stud['фио студента']."<br>";
    }
    while($stud=mysql_fetch_array($allstud));

тут вы наверняка хотели перебрать все строки. Тут будет корректнее использовать этот цикл:

 while ($stud=mysql_fetch_array($result)) 
 {
     echo $stud['фио студента']."<br>";
 }

Но результатом этого цикла в $stud будет false, потому что он переберет все записи, и если у него нету больше записей, он возвращает false.

UPD

Если вы хотите всё это дело перенести в массив таки образом, то можно так:

$mas = array();
while ($stud=mysql_fetch_array($result)) 
{
   $mas[] = $stud;
}

В результате после цикла у нас все строки занеслись в массив из массива (строки и столбцы).

p.s. Я вам совету переходить на MySqli, там намного удобнее работать, и все источники советуют переходить на него :)

READ ALSO
Ошибка You have an error in your SQL syntax

Ошибка You have an error in your SQL syntax

Здесь была огромная простыня кода и скриншот, которые не имеют никакого отношения к SQL-ошибкеИз-за этого собственно ошибки были не видны

176
Кодировка в DENWER под Win7

Кодировка в DENWER под Win7

Первый раз с такой проблемой сталкиваюсь

176
Алгоритм оптимизации SQL

Алгоритм оптимизации SQL

Смотрите есть база данных, допустим в ней одна таблица, в которой один столбецСтолбец id, ну и в нем такие значения: 1,2,3,6,7,9,12

287
Выборка из базы данных MySQL номера строки при произвольной выборке

Выборка из базы данных MySQL номера строки при произвольной выборке

Есть ситуацияЕсть новости скажем их 500, на разных страницах, он выводятся в разном порядке с пагинацией

199