Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyswietlanie wyników po kilka razy
Forum PHP.pl > Forum > Bazy danych > MySQL
yugodriver
Mam następujący problem. Tabelka jest ładnie wyświetlana, wyniki ładnie się prezentują tylko, że prezentują sie kilka razy :-(

Wygląda to tak

  1. http://www.ocenystudenta.yoyo.pl/administracja.php


chodzi mi o tabelkę oceny blinksmiley.gif

Kod wyglada następująco:


  1. <?php
  2. print "<hr><br><B>OCENY</B><br /><br /><br />";
  3.  
  4. print '<FORM METHOD="POST">Nowy rekord:';
  5. print '<INPUT TYPE="hidden" NAME="co" VALUE="dodaj"><TABLE>';
  6. print '<TR><TD>id_oceny:</TD><TD><INPUT TYPE="text" ';
  7. print 'NAME="id_oceny"></TD>';
  8. print '<TR><TD>id_przedmiot:</TD><TD><INPUT TYPE="text" ';
  9. print 'NAME="id_przedmiot"></TD>';
  10. print '<TR><TD>ocena:</TD><TD><INPUT TYPE="text" ';
  11. print 'NAME="ocena"></TD></TR><TR><TD>termin:</TD><TD><INPUT ';
  12. print 'TYPE="text" NAME="termin"></TD></TR><TR><TD>id_index:</TD>';
  13. print '<TD><INPUT TYPE="text" NAME="id_index"></TD></TR>';
  14. print '</TABLE><INPUT TYPE="submit" VALUE="Dodaj"></FORM>';
  15.  
  16.  if ($_POST['co'] == 'dodaj') { // dodawanie rekordu
  17.  if ($_POST['id_oceny'] && $_POST['id_przedmiot'] && $_POST['ocena'] && $_POST['termin']&& $_POST['id_index'] ) {
  18.  $query = "INSERT INTO oceny (id_oceny,id_przedmiot, ocena, ";
  19.  $query .= "termin,id_index) VALUES ('".$_POST['id_oceny']."', '".$_POST['id_przedmiot']."', '".$_POST['ocena']."', '".$_POST['termin']."','".$_POST['id_index']."');";
  20.  $wynik = mysql_query ($query);
  21.  }
  22.  }
  23.  
  24. $id_index=$_GET['id_index'];
  25.  
  26. if ($_GET['co'] == 'skasuj') {
  27. $wynik = mysql_query
  28. ("DELETE FROM oceny WHERE id_index= '$id_index'");
  29. }
  30.  
  31. $wynik = mysql_query ("SELECT * FROM oceny, przedmioty;") or die ("błąd w pytaniu");
  32.  
  33. print "<TABLE CELLPADDING=5 BORDER=1>";
  34. print "<TR><TD><B>id_oceny</B></TD><TD><B>nazwa_przedmiot</B></TD><TD><B>ocena</B></TD><TD><B>termin</B></TD>";
  35. print "<TD><B>id_index</B></TD><TD></TD></TR>\n";
  36.  
  37. while ($rekord = mysql_fetch_assoc ($wynik)) {
  38. $id_oceny = $rekord['id_oceny'];
  39. $nazwa_przedmiot = $rekord['nazwa_przedmiot'];
  40. $ocena = $rekord['ocena'];
  41. $termin = $rekord['termin'];
  42. $id_index = $rekord['id_index'];
  43.  
  44.  
  45. print "<TR><TD>$id_oceny</TD><TD>$nazwa_przedmiot</TD><TD>$ocena</TD><TD>$termin</TD><TD>$id_index</TD><TD>";
  46. print "<A HREF=\"administracja.php?co=skasuj&id_index=$id_index\">usuń</A></TD></TR>\n";
  47. }
  48. print "</TABLE>";
  49. ?>


Porsze o pomoc sadsmiley02.gif
.radex
1. zamień [ sql ] na [ php ]
2.
Kod
print "<hr><br><B>OCENY</B><br /><br /><br />";


Stary, zdecyduj się, czy chcesz pisać "xhtml'owo" czy "htmlowo"
3. (który raz dziś ja to mówię?) popracuj nad wyglądem kodu (szczególnie nad tabami), bo to wygląda tak chaotycznie (a przez to nieczytelnie), że wątpię, aby ktoś Ci pomógł...

Pozdrawiam.
kitol
Pokaż strukturę tabel.
Myślę że błąd wynika z zapytania:
  1. SELECT * FROM oceny, przedmioty;

W ten sposób tworzysz iloczyn kartezjański tabel oceny przedmioty. Jeżeli masz powiedzmy w tabeli oceny 2 wiersze a w tabeli przedmioty 5 zapytanie zwróci ci 2X5 wierszy (czyli 10)
Powinieneś z JOINować obie tabele. Czyli coś takiego (bez znajomości struktury tabel może nie działać - tylko strzelam):
  1. SELECT oceny.*, przedmioty.* FROM oceny JOIN przedmioty ON oceny.id_przedmiotu=przedmioty.id_przedmiotu
yugodriver
tabele wyglądają tak:

  1. CREATE TABLE oceny(
  2. id_oceny INTEGER(1)PRIMARY KEY,
  3. id_przedmiot CHAR(5)NOT NULL,
  4. ocena INTEGER(1)NOT NULL,
  5. termin VARCHAR(10) NOT NULL,
  6. id_index CHAR(5) NOT NULL REFERENCES student
  7.  
  8. );
  9.  
  10. CREATE TABLE przedmioty(
  11. id_przedmiot CHAR(20)PRIMARY KEY,
  12. nazwa_przedmiot VARCHAR(15),
  13. id_pracownika VARCHAR(5),
  14. godziny INTEGER(1),
  15. cwiczenia VARCHAR(5)
  16. );
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.