Obecnie tworzę skrypt zastępstw dla nauczyciela w szkole i natrafiłem na problem. Może najpierw przedstawię kod:
Na razie dwie tabele
CREATE TABLE dane ( id INTEGER PRIMARY KEY AUTO_INCREMENT, nauczyciel_id INTEGER NOT NULL, lekcja INTEGER NOT NULL, klasa_id INTEGER NOT NULL, przedmiot_id INTEGER NOT NULL, zastepca_id INTEGER NOT NULL, DATA DATE NOT NULL, CONSTRAINT fk_dane_nauczyciele FOREIGN KEY (nauczyciel_id) REFERENCES nauczyciele(id) );
CREATE TABLE nauczyciele ( id INTEGER PRIMARY KEY AUTO_INCREMENT, imie VARCHAR (35) NOT NULL, nazwisko VARCHAR (35) NOT NULL );
oraz skrypt php, który ma za zadanie pobierać dane z tabel
<?php try { $db_conn = new PDO('mysql:host=localhost; dbname=szubi2', 'root', ''); $stmt = $db_conn -> query(' SELECT dane.id, dane.nauczyciel_id, dane.lekcja, dane.klasa_id, dane.przedmiot_id, dane.zastepca_id, dane.data FROM dane INNER JOIN nauczyciele ON dane.nauczyciel_id = nauczyciele.id WHERE dane.nauczyciel_id = nauczyciele.id '); echo '<table> <tr> <th>Data</th> <th>Nauczyciel</th> <th>Godzina</th> <th>Klasa</th> <th>Przedmiot</th> <th>Zastepstwo</th> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> '; while ($row = $stmt->fetchRow()): echo ' <tr> <td class="wazne">'.$row['data'].'</td> <td class="wazne">'.$row['nauczyciel_id'].'</td> <td>'.$row['lekcja'].'</td> <td>'.$row['klasa_id'].'</td> <td>'.$row['przedmiot_id'].'</td> <td>'.$row['zastepca_id'].'</td> </tr> '; else: echo ' <tr> <td></td> <td></td> <td>'.$row['lekcja'].'</td> <td>'.$row['klasa_id'].'</td> <td>'.$row['przedmiot_id'].'</td> <td>'.$row['zastepca_id'].'</td> </tr> '; endif; endwhile; $stmt -> CloseCursor(); } catch(PDOException $e) { } ?>
I właśnie chyba z pobieraniem jak i wyświetlaniem jest tutaj problem. Pokazuje mi błąd:
Fatal error: Call to undefined method PDOStatement::fetchRow() in D:\sciezka on line 83
Mógłbym prosić o wskazówki w jaki sposób napisać to zapytanie SELECT(myślę że tam coś źle zrobiłem) oraz jak w przypadku powiązania napisać wyświetlanie (czy ma się tyczyć już napisu tzn: $row('nazwisko') czy też po prostu jako id.
Pozdrawiam szubi