![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie. Mam pewien problem z wypisywaniem z bazy danych.Chodzi mi w szczególności o drógą część tego kodu od <B>Oceny:</B>";nie chce mi wypisywać danych z tabel.Podaję jak wygląda moja baza danych:
Kod CREATE TABLE student( imie VARCHAR(15), nazwisko VARCHAR(32) NOT NULL, id_index CHAR(5) PRIMARY KEY REFERENCES Oceny, rok_studiow INTEGER(1), kierunek VARCHAR(50), adres VARCHAR(25), haslo INTEGER(5) ); CREATE TABLE pracownik( id_pracownika INTEGER(1)PRIMARY KEY, imie VARCHAR(15), nazwisko VARCHAR(32) NOT NULL, stopien VARCHAR(5), nazwa_przedmiot VARCHAR(20) ); CREATE TABLE oceny( id_oceny INTEGER(1)PRIMARY KEY, nazwa_przedmiot VARCHAR(5)NOT NULL, ocena INTEGER(1)NOT NULL, termin VARCHAR(10) NOT NULL, id_index CHAR(5) NOT NULL REFERENCES student ); CREATE TABLE przedmioty( nazwa_przedmiot VARCHAR(15)PRIMARY KEY, id_pracownika VARCHAR(5), godziny INTEGER(1) ); a tak wygląda plik php Kod <?php include 'funkcja.php'; polacz(); $id_index = $_GET['id_index']; $haslo_index = $_GET['haslo']; $stmt = mysql_query("SELECT * FROM `student` WHERE id_index = '".$id_index."' and haslo = '".$haslo_index."'"); if (mysql_num_rows($stmt) <> 1) { header('Location: index2.php'); } $dane = mysql_fetch_assoc($stmt); echo "Imie i nazwisko: <b>{$dane['imie']}</B> <B>{$dane['nazwisko']}</B> Adres: <B>{$dane['adres']}</B> Student <B>{$dane['rok_studiow']}</B>. roku studiów na kierunku <B>{$dane['kierunek']}</B> Nr indeksu: <B>{$dane['id_index']} </B> <B>Oceny:</B>"; unset($stmt); $stmt = mysql_query("SELECT przedmioty.nazwa_przedmiot as nazwa, ocena, oceny.termin as termin, pracownik.stopien as stopien, pracownik.imie, pracownik.nazwisko FROM oceny, przedmioty, pracownik WHERE oceny.id_index = '$id_index' and oceny.nazwa_przedmiot = przedmioty.nazwa_przedmiot and przedmioty.id_pracownika = pracownik.id_pracownika"); if(!$stmt){ echo 'Komunikat b³êdu: '; echo '<strong>' . mysql_errno().'</strong>: ' . mysql_error(); die; } echo '<TABLE bgcolor="#FFFFFF" bordercolor=green border=5 width="70%"> <tr> <th>Nazwa przedmiotu</th> <th>Wyk³adowca</th> <th>Sesja</th> <th>Ocena</th> </tr>'; while($row = mysql_fetch_assoc($stmt)){ echo '<tr><td><center>'.$row['nazwa_przedmiot'].'</center></td><td><center>'.$row['stopien'].' '.$row['imie'].' '.$row['nazwisko'].'</center></td><td><center>'.$row['termin'].'</center></td><td><center>'.$row['ocena'].'</center></td></tr>'; } echo '</table>'; rozlacz(); ?> Jak ktoś może mi pomóc to byłbym bardzo wdzięczny. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
nie jestem pewien, czy to jest zasadnicza przyczyna twojego problemu, ale na pewno możliwa, bo używasz tych pól do filtracji danych i złączenia tabel. a masz w nich straszny bałagan, sam popatrz na definicje pól między którymi potem stawiasz znak =
jesteś pewien, że w tych polach są przechowywane odpowiadające sobie wartości? jeśli tak, to dlaczego te pola nie maja takich samych typów? Ten post edytował nevt 6.02.2008, 20:12:42 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Poprzemieniałem ale i tak nie działa. Myślę że gdzie indziej musi być błąd.Teraz baza wygląda tak:
Kod CREATE TABLE student(
imie VARCHAR(15), nazwisko VARCHAR(32) NOT NULL, id_index CHAR(5) PRIMARY KEY REFERENCES Oceny, rok_studiow INTEGER(1), kierunek VARCHAR(50), adres VARCHAR(25), haslo INTEGER(5) ); CREATE TABLE pracownik( id_pracownika VARCHAR(5)PRIMARY KEY, imie VARCHAR(15), nazwisko VARCHAR(32) NOT NULL, stopien VARCHAR(5), nazwa_przedmiot VARCHAR(20) ); CREATE TABLE oceny( id_oceny INTEGER(1)PRIMARY KEY, nazwa_przedmiot VARCHAR(20)NOT NULL, ocena INTEGER(1)NOT NULL, termin VARCHAR(10) NOT NULL, id_index CHAR(5) NOT NULL REFERENCES student ); CREATE TABLE przedmioty( nazwa_przedmiot VARCHAR(20)PRIMARY KEY, id_pracownika VARCHAR(5), godziny INTEGER(1) ); |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 1 595 Pomógł: 282 Dołączył: 24.09.2007 Skąd: Reda, Pomorskie. Ostrzeżenie: (0%) ![]() ![]() |
bałaganu ciąg dalszy:
...SELECT przedmioty.nazwa_przedmiot as nazwa ... echo ... $row['nazwa_przedmiot'] ... odwołujesz się do nieistniejącego indeksu w $row w związku z czym cała linijka kodu nie wykonuje się.... nie widzisz tego, bo pewnie masz wyłączone raportowanie warningów i błędów php... Ten post edytował nevt 6.02.2008, 20:33:51 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 1.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Trochę przerobiłem baze danych. Przerobiłem zapytanie. Przeanalizowałem na spokojnie. Poprawiłem i wszystko działa. Dzięki za podpowiedź gdzie szukać. Pozdrawiam.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 08:12 |