Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dodawanie rekordu do tabeli
Forum PHP.pl > Forum > Przedszkole
student87
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
erix
Jeden temat wystarczy.
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.