Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Błąd w kodzie,skrypt nie wyświetla danych
Forum PHP.pl > Forum > Przedszkole
aga323
Czy mógłby mi ktoś pomóc i mnie oświecić gdzie tu jest błąd?sad.gif gdyż w ogole skrypt nie wczytuje danych z bazy.
  1. <?php
  2. $id = $_GET['id'];
  3. //-------------------------
  4. //  Zapytanie
  5. //-------------------------
  6. $przedmioty = mysql_query("SELECT * FROM przedmioty WHERE id=$id");
  7. $row = mysql_fetch_assoc($przedmioty);
  8. //-------------------------
  9. echo '<form name="ocen" action="up(se).php" method="POST">';
  10. echo '<input type="hidden" name="przedmiot" value="'.$id.'" />';
  11. echo 'Przedmiot: ';
  12. echo $row['Nazwa'];
  13.  
  14. echo '<table border="1"><tr><td>Przedmioty</td><td>Semestr 1</td><td>Semestr 2</td></tr>';
  15. //Deklaruje zmienną coś
  16. $cos=1;
  17. //-------------------------
  18. //  Zapytanie
  19. //-------------------------
  20. //pobieramy wszystko o użytkownikach
  21. $query = "SELECT * FROM `users` WHERE klasa = '$klasa' AND ranga ='0'";
  22. $result = mysql_query ($query);
  23. //-------------------------
  24. while($wynik=mysql_fetch_array($result))
  25. {
  26. //Warunek aby nie wyswietlalo wychowawcy
  27. if($wynik['id'] != 1)
  28. {
  29. //Znak nowej lini, aby wprowadzić porządek w kodzie html
  30. echo "n";
  31. echo '<tr>';
  32. echo '<td>';
  33. //wyswietl imie i nazwisko
  34. echo $wynik['imie']. ' ' .$wynik['nazwisko'];
  35. echo '</td>';
  36. $uczen = $wynik['id'];
  37. $klasa = $_GET['klasa'];
  38. echo '<td>';
  39.  
  40. //-------------------------
  41. //  Zapytanie
  42. //-------------------------
  43. $oceny = mysql_query("SELECT * FROM `semestr` WHERE id_user=$uczen AND id_przedmiot=$id AND semes
    tr=1"
    );
  44. $ilosc = mysql_num_rows($oceny);
  45. //-------------------------
  46. //Sprawdzamy czy jest przynajmiej jedna ocena
  47. if($ilosc != 0)
  48. {
  49. //Zrobi pętle na ilosć ocen
  50. while($wiersz = mysql_fetch_assoc($oceny))
  51. {
  52. //wyswietl oceny
  53. echo $wiersz['ocena'];
  54. }
  55. echo '<br>';
  56. echo '<input type="hidden" name="U'.$cos.'" value="' .$wynik['id']. '" />';
  57. //Znak nowej lini, aby wprowadzić porządek w kodzie html
  58. echo "n";
  59. echo '<input type="text" name="T' .$cos. '"SIZE="1" value="" />';
  60. }
  61. else
  62. {
  63. echo 'Brak oceny.';
  64. //Znak nowej lini, aby wprowadzić porządek w kodzie html
  65. echo "n";
  66. echo '<input type="hidden" name="U'.$cos.'" value="' .$wynik['id']. '" />';
  67. echo '<br>';
  68. //Znak nowej lini, aby wprowadzić porządek w kodzie html
  69. echo "n";
  70. echo '<input type="text" name="T' .$cos. '"SIZE="1" value="" />';
  71. //Znak nowej lini, aby wprowadzić porządek w kodzie html
  72. echo "n";
  73. }
  74. $cos++;
  75. echo '</td>';
  76. ?>
grzesq
Jestem początkujący, więc wybacz jeśli się mylę, ale czy nie powinien się u Ciebie znaleźć taki kod:
  1. <?php
  2. mysql_connect ("server", "user", "password");
  3. mysql_select_db ("baza");
  4. ?>
aga323
On jest, tylko po prostu wyżej i tego kawałka kodu nie podałam, bo tylko zajmował by więcej miejsca na forum. smile.gif
Ale mimo wszystko dzieki za samo zainteresowanie tematem biggrin.gif
strife
Jakieś błędy? Co Ci zwraca mysql_error" title="Zobacz w manualu PHP" target="_manual ( nie wiesz jak użyć, poszukaj na forum i w manualu ) ?
aga323
No tak racja, ale ze mnie noob...
Wyświtla:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /var/www/sites/yoyo.pl/g/2/g2test/dziennik/oceny2(se).php on line 122
a to wygląda tak:
  1. <?php
  2. echo '</table>';
  3. echo 'mysql_error()';
  4. echo '<input type="submit" value="wyslij" />'; // linia 122
  5. echo '</form>';
  6. ?>
strife
  1. <?php
  2. echo '</table>';
  3. echo mysql_error(); // to wywolujesz po zapytaniu
  4. echo '<input type="submit" value="wyslij" />'; // linia 122
  5. echo '</form>';
  6. ?>
aga323
A teraz nie wywala żadnego błędu ale nadal nie wyświetla danych z bazy...
strife
  1. <?php
  2. $przedmioty = mysql_query("SELECT * FROM przedmioty WHERE id=$id") or die(mysql_error());
  3. $row = mysql_fetch_assoc($przedmioty);
  4. echo '<pre>';
  5. var_export($row);
  6. echo '</pre>';
  7. // ...
  8. ?>


Przerobiłem kilka pierwszych linijek w ten sposób, teraz będziemy wiedzieć czy jakieś dane zostają z bazy wyciągane w ogóle, upewnij się też, że masz wartości które podajesz jako ID w bazie danych. Czy napewno istnieją. I pamiętaj o rzutowaniu typów na tą zmienną $id ( int() ).
aga323
Wyświetla:
array (
'id' => '3',
'Nazwa' => 'Matematyka',
)
strife
Cytat(aga323 @ 6.07.2007, 22:17:10 ) *
Wyświetla:
array (
'id' => '3',
'Nazwa' => 'Matematyka',
)


W takim razie wyciąga dane, czyli wszystko jest ok. Teraz analogicznie powtarzasz to do dalszych zapytań, aż znajdujesz błąd - proste. Przyjrzałem się temu trochę bliżej teraz i widzę, że zmienna $klasa nie jest w tym skrypcie co podałaś zadeklarowana, oznacza to, że nie ma ona żadnej wartości, stąd zapytanie może nie zostać wykonane prawidłowo.

btw. pracujesz na register_globals = on ?
aga323
Dobra, posprawdzam jeszcze wszystko. A register globals mam na off (hosting yoyo.pl)

Edit:
Kurczę, mam zdeklarowaną tą zmienna $klasa i posprawdzalam reszte. I jak dochodze do tego wczytywania ocen to skrypt mi wyswietla że tam niby nie ma tych ocen (chociaz w rzeczywistosci są w bazie). Juz nie wiem o co tu moze chodzić... jak narazie w dalszym ciągu kaszana...
strife
Gdzie masz ją niby zadeklarowaną? Za co odpowiada ta zmienna? Z kodu, który nam podałaś nie widzę, aby była ona zadeklarowana gdziekolwiek.

  1. <?php
  2. // ... zmienna $klasa ma wartosc false = nieistnieje
  3. $query = "SELECT * FROM `users` WHERE klasa = '$klasa' AND ranga ='0'";
  4. $result = mysql_query ($query);
  5. ?>


Włącz sobie raportowanie błędów na E_ALL, to zobaczysz o czym mówię. Możesz spróbować również przebudować to zapytanie, aby się upewnić czy błąd występuje w tym miejscu, np tak:

  1. <?php
  2. // ... $klasa = '3b';
  3. $klasa = '3b'; // pamietajmy ze taki rekord musi istniec w bazie :]
  4. $query = "SELECT * FROM `users` WHERE klasa = '$klasa' AND ranga ='0'";
  5. $result = mysql_query ($query);
  6. ?>


Pozdrawiam.
aga323
Problem tkwi w innym pliku.Podaję kod drugiego pliku:
  1. <?php
  2. $ilosc = count($_POST);
  3. $powtuzen = $ilosc /2;
  4. //--------------------
  5. $id_przedmiot = $_POST['przedmiot'];
  6. $query = "SELECT id FROM `users`";
  7. $result = mysql_query ($query);
  8. for ($i=$ilosc; $i>=1; $i--)
  9. {
  10. $t = 'T'.$i;
  11.  
  12. $b = $_POST[$t];
  13.  
  14. $u = 'U'.$i;
  15.  
  16. $user = $_POST[$u];
  17. $semestr = 1;
  18.  
  19. if(!empty($b))
  20. {
  21. $a = explode(',', $b);
  22. $cos = count($a);
  23. for ($j=0; $j<$cos; $j++)
  24. {
  25. $ocena = $a[$j];
  26. if(!empty($ocena))
  27. {
  28. //-------------------------
  29. //  Zapytanie
  30. //-------------------------
  31. $query = "INSERT INTO `semestr` (id_user, id_przedmiot, semestr, ocena) VALUES ('$user', '$id_przedmiot', '$semestr', '$ocena')" or die(mysql_error());
  32. $result = mysql_query ($query);
  33. //-------------------------
  34. }
  35. }
  36. }
  37. }
  38. for ($i=$ilosc; $i>=1; $i--)
  39. {
  40.  
  41. $t2 = 'T2'.$i;
  42.  
  43. $b2 = $_POST[$t2];
  44.  
  45. $u2 = 'U2'.$i;
  46.  
  47. $user2 = $_POST[$u2];
  48. $semestr2 = 2;
  49.  
  50. if(!empty($b2))
  51. {
  52. $a2 = explode(',', $b2);
  53. $cos2 = count($a2);
  54. for ($j=0; $j<$cos; $j++)
  55. {
  56. $ocena2 = $a2[$j];
  57. if(!empty($ocena2))
  58. {
  59. //-------------------------
  60. //  Zapytanie
  61. //-------------------------
  62. $query = "INSERT INTO `semestr` (id_user, id_przedmiot, semestr, ocena) VALUES ('$user2', '$id_przedmiot', '$semestr2', '$ocena2')";
  63. $result = mysql_query ($query);
  64. //-------------------------
  65. }
  66. }
  67. }
  68. }
  69.  
  70. header( 'Location: ses.php?co=lista_p(se)' );
  71. ?>

A gdy zrobię to dla jednego semestru i wywalę ten podział na nie to wtedy wszystko działa... Oczywiście w poprzednim pliku też było wszystko na 2 semestry tylko podałam wtedy na 1. Proszę o pomoc!
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.