![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
piszę stronę w php, dopiero co zaczynam przygodę z tym językiem i mam pewien problem, więc proszę Was o pomoc. Strona jest swego rodzaju katalogiem książek. Mam tabelę autor przechowującą dane wszystkich autorów książek (pola w tej tabeli to: IDAutor,Imie,Nazwisko), tabelę ksiazka przechowującą dane wszystkich książek (pola w tej tabeli to: IDKsiazka,Tytul,RokWydania,IDWydawnictwo) oraz tabelę relacyjną ksiazka_autor w której do każdego autora przypisana jest książka (pola w tej tabeli to: IDAutor,IDKsiazka). Stworzyłem w HTML formularze do wprowadzania potrzebnych danych i napisałem skrypty w php przetwarzające te formularze. Funkcje dodające nowego autora do tabeli autor i tabeli ksiazka działają dobrze, rekordy do obu tabel są dodawane. Problem jest z funkcją dodającą rekord do tabeli ksiazka_autor. Kod formularza do wprowadzania danych do tabeli relacyjnej wygląda następująco: <?php include'dbconnect.php';?> <!--polaczenie z baza danych--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <meta http-equiv="Creation-date" content="2009-09-14T16:45:34Z"> <meta http-equiv="Content-Language" content="pl"> <meta name="Author" content="Kedzior"> <link href="css/css.css" rel="stylesheet" type="text/css" /> </head> <body> <!-- To jest miejsce na treść dokumentu --> <form action="commit.php?action=add&type=ksiazka_autor" method="post"> <table border="1" width="300" align="center"> <!-- opis tabeli--> <tr> <td class="table_tytul" colspan="2">Dodawanie nowej książki i autora</td> </tr> <!-- --> <tr> <td class="table_opis">Książka:</td> <td class="table_opis"><select name="Tytul"><option value="" selected>Wybierz tytuł książki...</option> <?php $ksiazka = "SELECT IDKsiazka,Tytul FROM ksiazka"; //wybranie potrzebnych rekordow z bazy $resultKsiazka = mysql_query($ksiazka) or die("Niepoprawne zapytanie". mysql_error()); while($row = mysql_fetch_array($resultKsiazka)) { echo'<option value="'.$row['IDKsiazka'].'">'.$row['Tytul'].'</option>'; } ?> </select> </td> </tr> <!-- --> <tr> <td class="table_opis">Autor:</td> <td class="table_opis"><select name="Autor"><option value="" selected>Wybierz autora...</option> <?php $autor = "SELECT IDAutor,Imie,Nazwisko FROM autor"; //wybranie potrzebnych rekordow z bazy $resultAutor = mysql_query($autor) or die("Niepoprawne zapytanie". mysql_error()); while($row = mysql_fetch_array($resultAutor)) { echo'<option value="'.$row['IDAutor'].'">'.$row['Imie'].' '.$row['Nazwisko'].'</option>'; } ?> </select> </td> </tr> <!--belka dolna--> <tr> <td class="belka" colspan="2"></td> </tr> <!--przyciski--> <td colspan="2" align="center" bgcolor="#FFFFFF"><input type="submit" name="SUBMIT" value="Wyślij"><input type="reset" name="RESET" value="Resetuj"></td> </table> </form> </body> </html> A funkcja dodająca rekord do tabeli relacyjnej jest następująca: function AddNewKsiazkaAutor($IDKsiazka,$IDAutor) { $AddNewKsiazkaAutor = "INSERT INTO ksiazka_autor (IDKsiazka,IDAutor) VALUES('".$IDKsiazka."', '".$IDAutor."')"; echo"$AddNewKsiazkaAutor"; $resultNewKsiazkaAutor = mysql_query($AddNewKsiazkaAutor) or die(mysql_error()); } Wcześniej w pliku "variables.php" udostępniłem zmienne:a $IDAutor = $_POST['IDAutor']; $Imie = $_POST['Imie']; $Nazwisko = $_POST['Nazwisko']; $IDKsiazka = $_POST['IDKsiazka']; $Tytul = $_POST['Tytul']; $Rok = $_POST['RokWydania']; $NazwaWydawcy = $_POST['NazwaWydawcy']; Mój problem polega na tym, że gdy chcę dodać jakikolwiek rekord do tabeli relacyjnej ksiazka_autor, rekord nie zostaje dodawany, a komunikat jaki dostaję w odpowiedzi to: INSERT INTO ksiazka_autor (IDKsiazka,IDAutor) VALUES('', '')Powtórzone wystąpienie '0-0' dla klucza 1 Proszę o pomoc lub ewentualne poprawieni skryptu. Dzięki. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Jeden temat wystarczy.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:57 |