И как сделать правильно?
$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
Насколько я понимаю, 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]"; }
$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, там намного удобнее работать, и все источники советуют переходить на него :)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей