Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Projekt PHP
Forum PHP.pl > Forum > PHP
wacik
Witam,
Mam problem z wyświetleniem wartości z bazy danych w tabelce. Wygląda to tak, jakby zapytanie było poprawne, w tabelce pokazuje mi, że powinny być wartości dla danego studenta a w rzeczywistości nic mi się nie wyświetla. Jestem początkującą osobą jeśli chodzi o PHP i nie do końca potrafię znaleźć gdzie jest błąd. Co prawda pokazuje mi błąd w komunikacie na zmiennej $emp, że jest niezdefiniowana.
  1. ini_set( 'display_errors', 'On' );
  2. error_reporting( E_ALL );
  3. require_once 'common.php';
  4. require_once 'template.php';
  5. $cnt = "<h1><center>Dodaj ocenę</center></h1>";
  6. print_r($emp);
  7. $cnt .= "<form action='newmarkv3.php' method='GET'><div class='post'>\n";
  8. $id = $_GET['id'];
  9. $sql = "SELECT * FROM studenci WHERE id = '{$id}'";
  10. $qry = new dbQuery($sql);
  11. $emp = $qry->next();
  12. if ($emp == NULL) {
  13. header("Location: ./newmarkv2.php");
  14. die();
  15. }
  16.  
  17. if (isset($_GET['id'])&& $_GET['id'] != 0)
  18. {
  19. $sql = "SELECT przedmiot, ocena FROM oceny WHERE id = '$id' ORDER BY przedmiot";
  20. $qry = new dbQuery($sql);
  21. $cnt .= "<center><table id='tabela'><tr><td><h3><font color=white>Przedmiot</font></h3></td><td><h3><font color=white>Ocena</font></h3></td>";
  22. while(($emp = $qry->next() != NULL))
  23. {
  24. $cnt .= "<tr><td><font color=white><center>{$emp["przedmiot"]}</center></font></td><td><font color=white><center>{$emp["ocena"]}</center></font></td>";
  25. }
  26. $cnt .= "<tr><td><center><select name='przedmiot'>"
  27. . "<option value='AUE'>AUE</option>"
  28. . "<option value='Matematyka'>Matematyka</option>"
  29. . "<option value='Angielski'>Angielski</option>"
  30. . "<option value='Symulacje'>Symulacje</option>"
  31. . "<option value='WF'>WF</option>"
  32. . "<option value='SO'>SO</option>"
  33. . "<option value='Praktyka'>Praktyka</option>"
  34. . "<option value='Fizyka'>Fizyka</option>"
  35. . "<option value='Ergonomia'>Ergonomia</option>"
  36. . "<option value='ZMP'>ZMP</option>"
  37. . "</select></center></td>";
  38.  
  39. $cnt .= "<td><center><select name='ocena'>"
  40. . "<option value='2'>2</option>"
  41. . "<option value='3'>3</option>"
  42. . "<option value='4'>4</option>"
  43. . "<option value='5'>5</option>"
  44. . "</select></center></td>";
  45.  
  46. $cnt .= "<td><center><input type='submit' value='Dodaj'><center></td></tr>";
  47. $cnt .= "<input type='hidden' name = 'id' value='{$_GET['id']}'>";
  48. $cnt .= "</table></center>\n";
  49. }
  50. $cnt .= "</div></form>\n";
  51.  
  52. echo getPage(getMenu(), $cnt);
Tomplus
1. Poczytaj sobie o SQL Injection i bindowaniu parametów.

2.
zrób sobie print_r($sql) dla zmiennej gdzie trzymasz zapytanie:
$sql = "SELECT * FROM studenci WHERE id = '{$id}'";


Sprawdź czy w ogóle masz tam jakąś wartość.

następnie sprawdź czy w ogóle klasa dbQuery zwraca Ci wartości, bo może nie łączy się z bazą, albo zapytanie ma błędne wartości.
sratatata
Wogole gdzie delklaracja funkcji i gdzie zwracasz te zmienna $cnt
Tomplus
Zanim skomentujesz przeczytaj lepiej kod.

Linia 53 wszystko wyjaśnia.
sratatata
Nie mowie o wywolaniu funkcji
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.