Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie SQL do całej bazy, Usuwanie rekordów
kosmos
post
Post #1





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

Ostrzeżenie: (0%)
-----


Witam
Mam taki problem związany z zapytaniem do bazy danych.

Otóż jest to baza sklepu internetowego i chcę zrobić opcję usuwania konkretnego produktu z asortymentu slepu.
Każdy produkt posiada swój unikalny numer EAN-13


Znam zapytania tego typu:

  1. <?php
  2. $zapytanie =mysql_query("DELETE FROM bateria
  3.  
  4. WHERE EAN_13='$id'")
  5. or die('Błąd usuniecia danych produktu z e-sklpeu admin');
  6. ?>


Natomiast nie chcę przeszukiwać osobnych tabel bazy danych ALE wszystkie tabele całej bazy Nie ma ich dużo więc nie obciążę jej za bardzo a nie chcę powielać kodu.


Pisałem już tak :

  1. <?php
  2. $zapytanie =mysql_query("DELETE FROM bateria, procesor, matryca
  3.  
  4.  WHERE EAN_13='$id'")
  5.  or die('Błąd usuniecia danych produktu z e-sklpeu admin');
  6. ?>


Ale zwraca błąd.
W każdej tabeli produktu czy to bateria czy procek czy mysz ... mam rekord EAN_13 tak jak wspomniałem na początku,

Z góry dzięki za odpowiedzi

Z poważaniem kosmos :-)

Ten post edytował kosmos 14.05.2008, 01:37:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
artega
post
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

Ostrzeżenie: (0%)
-----


  1. DELETE FROM t1, t2, t3 USING bateria AS t1 INNER JOIN procesor AS t2, matryca AS t3 WHERE t1.EAN_13 = t2.EAN_13 = t3.EAN_13 = '$id'
Go to the top of the page
+Quote Post
phpion
post
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Pozostaje tylko pytanie co będzie szybsze: taki DELETE ze złączeniem 3 tabel czy razem 3 osobne zapytania. Wg mnie odpowiedź "b".

PS: takie rzeczy powinno się realizować już na poziomie bazy danych przy pomocy ON DELETE CASCADE.

Ten post edytował phpion 14.05.2008, 06:22:21
Go to the top of the page
+Quote Post
kosmos
post
Post #4





Grupa: Zarejestrowani
Postów: 367
Pomógł: 17
Dołączył: 4.03.2008

Ostrzeżenie: (0%)
-----


Witam ponownie

zrobiłem takie zapytanie jak podaliście .. nie przejmujcie się ilością tabel one naprawdę są małe.

  1. <?php
  2. $zapytanie =mysql_query("DELETE FROM t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t1
    5 USING bateria as t1 INNER JOIN dysk as t2 INNER JOIN grafika as t3 INNER JOIN k
    lawiatura as t4 INNER JOIN matryca as t5 INNER JOIN monitor as t6 INNER JOIN mysz
     as t7 INNER JOIN naped as t8 INNER JOIN notebooki as t9 INNER JOIN obudowa_atx a
    s t10 INNER JOIN plyta_glowna as t11 INNER JOIN procesor as t12 INNER JOIN ram as
     t13 INNER JOIN zasilacz as t14 INNER JOIN zastawy_komputerowe as t15
  3. WHERE t1.EAN_13=t2.EAN_13=t3.EAN_13=t4.EAN_13=t5.EAN_13=t6.EAN_13=t7.EAN_13=t8.E
    A
  4. _13=t9.EAN_13=t10.EAN_13=t11.EAN_13=t12.EAN_13=t13.EAN_13=t14.EAN_13=t15.EAN_13='$id'")
  5. or die('Błąd usuniecia danych produktu z e-sklpeu admin');
  6. ?>


i jedna wyskakuje błąd
[php
Błąd usuniecia danych produktu z e-sklpeu admin
[/php]

mam coś źle w składni (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) bo nazyw tabel już sprawdziłem
Go to the top of the page
+Quote Post
artega
post
Post #5





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

Ostrzeżenie: (0%)
-----


  1. DELETE FROM t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12, t13, t14, t15 USING bateria AS t1 INNER JOIN dysk AS t2, grafika AS t3, klawiatura AS t4, matryca AS t5, monitor AS t6, mysz AS t7, naped AS t8, notebooki AS t9, obudowa_atx AS t10, plyta_glowna AS t11, procesor AS t12, ram AS t13, zasilacz AS t14, zastawy_komputerowe AS t15 WHERE t1.EAN_13=t2.EAN_13=t3.EAN_13=t4.EAN_13=t5.EAN_13=t6.EAN_13=t7.EAN_13=t8.EA
  2. _13=t9.EAN_13=t10.EAN_13=t11.EAN_13=t12.EAN_13=t13.EAN_13=t14.EAN_13=t15.EAN_13='$id'


Jestem przekonany, że taką baze idzie zbudować optymalniej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował artega 14.05.2008, 12:41:19
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 11:05