Как сделать правильный запрос в базу

happy46

Новичок
Есть две таблицы :
Таблица desc (Предметы)

Таблица stud (студенты)

и такой код :
PHP:
<h1>Успеваемость за 1-й семестр 2011 г.</h1>
   
 <?php
 $result3 = mysql_query("SELECT * FROM semestr WHERE id_stud='$id' ",$db);
 $myrow3 = mysql_fetch_array($result3);
 ?>
 <table width="100%" border="0" cellspacing="0" cellpadding="0">
   
   <tr>
   
     <?
         do {
         printf ("<td>Статус: %s<br>Дата Сдачи: %s</td><br>"
         ,$myrow3["status"],$myrow3["date"]);  
         }
     while ($myrow3 =  mysql_fetch_array ($result3));
 ?>    
   </tr>
   
  
   <tr>
   
  <?
   $d = $myrow3['id_disc'];
  do {
   $result4 = mysql_query("SELECT * FROM `desc` WHERE id_desc='$d' ",$db);
 $myrow4 = mysql_fetch_array($result4);
   
  printf ("<td> %s </td>"
         ,$myrow4["title"]);
         }
     while ($myrow4 =  mysql_fetch_array ($result4));
     ?>
   </tr>
   
  
   
 </table>
Суть моей задачи - сделать базу студентов , при нажатии на одного, что бы выводилось все нужное....не получается реализовать успеваемость....=(
Мне надо сделать так , что бы у студента выводилось название предмета, дата сдачи и статус (зачет , не зачет , 5,4,3). И никак не могу сделать так , что бы выводились названия предметов из таблицы дисциплин....как это сделать ? что бы название предмета совпадало с статусом сдачи ?! Помогите пожалуйста !
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Очередная жертва попова.
* (печалька)

Попробуй что-нибудь почитать.
Например про джоин.
 
  • Like
Реакции: KorP

happy46

Новичок
прочитал -Объединяет элементы массива в строку , а как мне бы эт реализовать в моем случае ?! Если не трудно , помогите пожалуйста
 

Фанат

oncle terrible
Команда форума
Во-первых, stud по-английски - жеребец. Так что лучше не сокращать, и писать students.
Во-вторых, в этой таблице должны быть студенты, а не оценки. Поэтому её надо переименовать в exam.
В-тртетьих - до меня только сейчас дошло - ты прочитал про ПХП-шный джойн, а надо было - про SQL-ный :)))

В принципе, пока можешь без джойнов делать.
Что конкретно у тебя не получается? На первый взгляд всё должно работать
 

happy46

Новичок
не получается выводит название предметов из таблицы desc =( выдает ошибку
PHP:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in X:\home\localhost\www\mybook2\view_articles.php on line 80

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in X:\home\localhost\www\mybook2\view_articles.php on line 85
 

Фанат

oncle terrible
Команда форума
начнем с того, что я ошибся с первым взглядом. И надо вывод предметов делать внутри цикла со студентами, а не снаружи.
ну а проблема с запросом решается просто - выводишь сам получившийся запрос и mysql_error() и смотришь, что не так
 

moskowever

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

sobachnik

Новичок
Если речь идёт о каких-то "прослойках", которые генерируют запрос исходя из кучи переданных параметров, то в большинстве проектов это нафиг не нужно (ИМХО). Это может быть актуально, например, для различных форумов или фотогаллерей, которые массово разлетаются по интернетам и должны работать на самых разных серверах и разных СУБД. Если ты пишешь сайт для себя или для какого-то конкретного заказчика, и этот сайт будет в сети в одном экземпляре и работать будет на каком-то конкретном сервере (а таких проектов подавляющее большинство) - смысла в поддержке нескольких разных СУБД - ноль. Всё равно оно будет работать на одной б.д. :) Пиши под конкретную СУБД и используй хостинг, на котором эта СУБД есть. Я не знаю, как в мире, но в российских хостингах - практически везде (наверно, даже не практически, а везде) есть MySQL. Вот и пиши под неё и обращайся "напрямую" (пиши тексты SQL запросов сам, а не заморачивайся со всякими сложными классами с кучами вызовов различных методов). Это, конечно, если я правильно понял о чём речь.

Всё вышенаписанное - это моё личное мнение. Оно не претендует на истину в последней инстанции. Просто я не вижу смысла в лишнем коде и лишних сложностях, когда в них нет явной необходимости.
 
Сверху