![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 8.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
pisze strone w PHP/MySQL, cos a'la domowa biblioteka ebookow. Jest to moja pierwsza strona w tej technologii. Mam dwa problemy, zktorymi nie moge sobie poradzic. 1. Mam formularz edycji dla ksiazki, mam w nim pole "wydawnictwo" oraz "jezyk", sa to klucze obce tych tabel przechowujace odpowiednio nazwe wydawnictwa oraz nazwe jezyka. W skrypcie wczytuje do "selectow" (wydawnictwo i jezyk) rekordy z tabel i ustawiam je tak, aby pokazywaly ten rekord, ktory jest zapisany w tabeli. Dla wydawnictwa wszystko jest ok, rekody wczytuja sie do selecta i wyswietlany jest rekord jaki zapisany jest w bazie danych dla danej ksiazki, natomiast dla jezyka pobierane sa rekordy z bazy, ale nie jest wyswietlany ten jezyk jaki zostal przypisany do danej ksiazki. Systuacja podana na obrazku Link do obrazka Sprobowalem usunac fragment kodu, gdzie pobierane sa z bazy i wyswietlane w "select" wydawnictwa (linie 83-103) i wowczas jezyk wyswietli mi sie poprawnie. Tutaj skrypt php:
2. Kaskadowe usowanie rekordow w MySQL. Przyklad na podstawie mojej bazy danych: Pierwsza tabela autor( PK autorId, imie, nazwisko) Druga tabela ksiazka (PK ksiazkaId, tytul,...) Trzecia tabela ksiazka_autor (PK autorId, PK ksiazkaId) przykladowe dane (podam same "id"), autor 1 2 3 ksiazka 4 7 8 ksiazka_autor 4 - 1 4 - 3 7 - 1 8 - 2 8 - 3 I teraz usuwam dla przykladu z tabeli autor, np autora o id=1 i autora o id=3. W tabeli ksiazka_autor uaktualniam te dane wstawiajac w miejsce "id" usuwanego autora wartosc NULL, ale wtedy MySQL podaje mi informacje, ze to pole nie moze byc NULL, probowalem takze wstawic wartosc '0' w miejsce usuwanego "id", ale gdy pojawily sie dwa takie same rekordy w bazie danych MySQL poinformowal mnie, ze w tabeli znajduja sie zduplikowane rekordy. W jednym i w drugim przypadku rekordy nie zostaly usuniete. Skrypt jakiego uzywam do usuniecia autora:
Prosze o pomoc w rozwiazaniu tych dwoch problemow. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ad2)
1) skoro chcesz usuwac cos z tabeli to weź to usuwaj DELETE a nie robisz UPDATE 2) Zaloz na tabele relacje to wszystko samo automatycznie ci się bedzie usuwac i tu już nie bedziesz sie o to martwil ad1) Ciągle nadpisujesz zmienną $row więc nic dziwnego, ze gdy dochodzi do jezykow to juz nie ma tak rekordu konkretnego wydawnictwa Włacz sobie pozatym wyswietlanie wszystkich bledow bo troche ich masz Temat: Jak poprawnie zada pytanie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 16:58 |