Помощник
|
По поводу вывода инфы из базы данных |
forest69
|
Сообщение
#1
|
||
|
|
||
|
|||
Mulder_hb |
7.8.2010, 14:09;
Ответить: Mulder_hb
Сообщение
#2
|
|
[PHP]$query = "SELECT `k`.`name` AS kyrator_name, `k`.`kyrator_id`,
`y`.`god`, `y`.`year_id`, `s`.`name` AS student_name, `s`.`stu_id` FROM `kyrator` AS `k`, `year` AS `y`, `students` AS `s` WHERE `k`.`kyrator_id` = `s`.`kyrator_id`"; $result_id = mysql_query($query); $old_year_id = 0; $old_kyrator_id = 0; $old_stu_id = 0; for ($res = array(); $row = mysql_fetch_assoc($result_id); $res[] = $row) $data = '<table border="1">'; for ($i = 0; $i < count($res); $i++) { if ($res[$i]["year_id"] != $old_year_id AND $res[$i]["kyrator_id"] != $old_kyrator_id AND $res[$i]["stu_id"] != $old_stu_id) { if ($i != 0 AND $res[$i]["god"] != $res[$i-1]["god"] AND $res[$i]["kyrator_name"] != $res[$i-1]["kyrator_name"]) { $data .= '<tr align="center"> <td>'.$res["god"].'</td> </tr> <tr align="center"> <td>'.$res["kyrator_name"].'</td> </tr>'; } $data .= '<tr align="left"> <td>'.$res["student_name"].'</td> </tr>'; $old_stu_id = $stu_id; } } $data .= '</table>'; echo $data;[/PHP] Как-то так. Правильность работы не проверял + форматирование таблицы, наверное, надо будет подправить. В целом логика должна быть понятна. |
|
|
forest69
|
Сообщение
#3
|
|
почти работает, только ячейки получаются пустые.
ошибки вроде не нашел, правда я php изучаю по книгам, поэтому знаю еще не все.... |
|
|
PRStudio |
11.8.2010, 0:08;
Ответить: PRStudio
Сообщение
#4
|
|
возможно проблема в том, что ты выводишь год внутри цикла и получается так, что год выводится столько же раз, сколько и студенты, т.е. попробуй вывести год отдельным извлечением из БД вне цикла.
|
|
|
Валериан |
11.8.2010, 13:21;
Ответить: Валериан
Сообщение
#5
|
|
Все учились у Попова))
|
|
|
forest69
|
Сообщение
#6
|
|
Сейчас вернулся к этой теме.
Написал код с учетов всех замечаний написанных выше. Выводит только 1 год(в БД их 2), 1 Ф.И.О. куратора, 1 Ф.И.О. (в БД их много). В чем может быть проблема? Вот код: [PHP] $query = "SELECT kyrator.name AS 'kyrator_name', kyrator.kyrator_id, year.god, year.year_id, students.name AS 'students_name', students.grypa_id, students.stu_id, students.kyrator_id FROM kyrator, year, students WHERE kyrator.kyrator_id = students.kyrator_id"; $result_id = mysql_query($query) or die($query.mysql_error()); print("<table border='1'>\n"); $old_year_id = 0; $old_kyrator_id = 0; $old_stu_id = 0; for($data=array(); $row=mysql_fetch_assoc($result_id); $data[]=$row); for($i=0; $i<count($data[$i]['year_id']); $i++) { $year_id = $data[$i]['year_id']; if ($year_id != $old_year_id) { print("<tr align='center'>"); print("<td>".$data[$i]['god']."</td>"); print("</tr>"); for($j=0; $j<count($data[$j]['kyrator_id']); $j++) { $kyrator_id = $data[$j]['kyrator_id']; if ($kyrator_id != $old_kyrator_id) { print("<tr align='center'>"); print("<td>".$data[$j]['kyrator_name']."</td>"); print("</tr>"); for($k=0; $k<count($data[$k]['stu_id']); $k++) { $stu_id=$data[$k]['stu_id']; if ($stu_id != $old_stu_id) { print("<tr align='left'>"); print("<td>".$data[$k]['students_name']."</td>"); print("</tr>"); } } } } } } print("</table>"); mysql_close ($dbcnx); [/PHP] |
|
|
Mulder_hb |
6.9.2010, 20:57;
Ответить: Mulder_hb
Сообщение
#7
|
|
Проблема в том, что вы не следовали замечаниям. Все дело в условных операторах (if). Посмотрите какой синтаксис и тело условий у вас, а какие у меня. Ваши условия режут весь остальной вывод, а мои (в теории :) ) позволяют отобразить всю нужную инфу.
|
|
|
forest69
|
Сообщение
#8
|
|
Если писать так, то вообще ничего не отображается...
[PHP] . . . for($i=0; $i<count($data[$i]['year_id']); $i++) { if ($data[$i]['year_id']!= $old_year_id) { if ($i != 0 and $data[$i]['god'] != $data[$i-1]['god']) { print("<tr align='center'>"); print("<td>".$data[$i]['god']."</td>"); print("</tr>"); . . . [/PHP] |
|
|
forest69
|
Сообщение
#9
|
|
Товарисчи! скажите в чем ошибка? всю голову сломал уже((
я чувствую, что я уже почти написал скрипт... |
|
|
Mulder_hb |
8.9.2010, 22:35;
Ответить: Mulder_hb
Сообщение
#10
|
|
Научитесь отлаживать приложения. Вставляйте функции вывода в нужных местах и ищите, где обрывается вывод.
|
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Большие базы Semrush кейвордов по разным тематикам! Много кейвордов с трафиком и без конкуренции! Volume, KD, CPC | 22 | Krok | 6722 | 12.4.2024, 5:17 автор: Krok |
|
Базы Youtube кейвордов с данными по конкуренции и Volume | 5 | Krok | 1455 | 11.4.2024, 5:12 автор: Krok |
|
Интеграция спортивных данных API. Коэффициенты БК, Live результаты | 15 | yaroslav89 | 6835 | 8.4.2024, 17:17 автор: spoyer_ru |
|
Свежие базы ключевых слов с подсказок гугла! | 125 | Krok | 68494 | 7.4.2024, 4:52 автор: Krok |
|
Базы досок объявлений России, Украины, Беларуси и Казахстана | 5 | freeax | 6451 | 10.3.2024, 15:07 автор: freeax |
Текстовая версия | Сейчас: 18.4.2024, 11:43 |