Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem z insert
Forum PHP.pl > Forum > Przedszkole
yasiu_kam
Tak wyglada tabela autorzy:
  1. CREATE TABLE `autorzy` (
  2. `autorID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `autor` varchar(60) NOT NULL DEFAULT '0',
  4. PRIMARY KEY (`autorID`)
  5. ) TYPE=MyISAM AUTO_INCREMENT=117 ;

Tak wyglada tabela ksiazki
  1. CREATE TABLE `ksiazki` (
  2. `ksiazkiID` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `tytul` varchar(60) NOT NULL DEFAULT '',
  4. `wydawnictwoID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  5. `autorID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  6. `gatunekID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  7. `wypozyczonaprzez` int(5) NOT NULL DEFAULT '0',
  8. `data_wypozyczenia` date NOT NULL DEFAULT '0000-00-00',
  9. `czytelnikID` int(10) UNSIGNED NOT NULL DEFAULT '0',
  10. PRIMARY KEY (`ksiazkiID`)
  11. ) TYPE=MyISAM AUTO_INCREMENT=120 ;

Chodzi o to ze jak mam INSERT który dodaje autorów książek to autorID dodaje się automatycznie bo jest inkrementowany, gdy dodaje tytuły do tabeli książki to chce żeby autorID tez się dodawało a jak narazie mam 0, najlepiej jeśli autorID pobierałoby się z tabeli autorzy i od razu dopisywał do tabeli książki.

to jest skrypt do wstawiania ksiazki:
  1. <html>
  2. <head>
  3. <title>Biblioteka "Bib"</title>
  4. </head>
  5. <body background="tlo1.jpg">
  6. <h1><p><font color=blue><MARQUEE behavior=alternate SCROLLAMOUNT=10>Biblioteka "Bib"</MARQUEE></font></p></h1> 
  7. <?php
  8. mysql_connect("localhost", "root", "krasnal")
  9.  or die (mysql_error());
  10.  
  11.  
  12. if (!$tytul || !$autor || !$gatunekID)
  13. {
  14.  echo "Nie podano wszystkich potrzebnych danych.<br>"
  15. ."Wróć do poprzedniej strony i spróbuj ponownie.";
  16.  exit;
  17. }
  18. $tytul = addslashes($tytul);
  19. $autor = addslashes($autor);
  20. $gatunekID = addslashes($gatunekID);
  21.  
  22. $sql = "INSERT INTO `autorzy` (`autorID`, `autor`) VALUES ('', '$autor')";
  23. $result = mysql_query($sql) or die(mysql_error());
  24. echo '<h3>Poprawnie dodano autora książki</h3>';
  25.  
  26.  
  27. $sql = "INSERT INTO `ksiazki` (`ksiazkiID`, `tytul`, `wydawnictwoID`, `autorID`, `gatunekID`, `data_wypozy
    czenia`, `czytelnikID`)  VALUES ('', '$tytul', '', '', '$gatunekID', '0000-00-00', '0');"
    ;
  28. $result = mysql_query($sql) or die(mysql_error());
  29.  
  30. echo '</br><h3>Poprawnie dodano książkę</h3>';
  31. ?>
  32. </body>
  33. </html>

prosze o pomoc bo walcze z tym pare godzin i nie mam pomyslu jak to zrobic sad.gif
Hekko
A co jeśli autor który się właśnie dodaje już jest w bazie ? Musisz najpierw przeszukać bazę pod tym kątem, jeśli istnieje pobierz jego id i w drugim zapytaniu użyj, jeśli nie istnieje, to wstaw tego autora i pobierz jego id.
yasiu_kam
No wlasnie i to jest moj kolejny problem smile.gif Wstawianie nowych ksiazek juz mam i nawet dodaje autorID przy tabeli ksiazki, kolejny problem polega na tym ze jak recznie usuwam ksiazki z bazy to ID sie nie aktualizuje i dodaje mi +1 do tego ktore bylo ostatnio...
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.