Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pętla w funkcji
jarek0203
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 2
Dołączył: 1.01.2013

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


Witam. Mam tabele produkty i zamowienie oraz funkcje która usuwa produkty z zamowienia.Gdy funkcja się wykona usunie się ostatni rekord.

  1. function usun($id_z){
  2.  
  3. $zawartosc=array();
  4. $dane= mysql_query('SELECT * FROM produkty join zamowienie ON nr_p=nr_z WHERE id_z="'.$id_z.'"');
  5. while ($txt = mysql_fetch_assoc($danel)){
  6. $zawartosc[]=$txt; }
  7. foreach($zawartosc as $element) {
  8. $id=$element['id'];}
  9.  
  10. mysql_query('delete from produkty where id='.$id.' limit 1');


Pytanie: Jak zapętlić ciało funkcji żeby usunąć wszystkie produkty z zamówienia za jednym razem.
Próbowałem while(!isset($id) - wykonuje się tylko raz
while(isset($id) -zapętla się

Ten post edytował jarek0203 7.01.2014, 00:04:36
Go to the top of the page
+Quote Post
phpion
post
Post #2





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




Jeśli ustawiłbyś klucze obce z ON DELETE CASCADE to rekordy powiązane usuną Ci się automatycznie.

Jednak usuwanie X rekordów za jednym zamachem możesz zrobić poprzez IN. Do tablicy zapisujesz ID rekordów i usuwasz je poprzez:
  1. DELETE FROM tabela WHERE id IN (1, 2, 3);

Tablicę ID podczepiasz pod zapytanie poprzez:
  1. implode(', ', $ids)

gdzie w tablicy $ids masz identyfikatory rekordów.
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: 27.09.2025 - 01:15