28. marts 2006 - 00:58Der er
12 kommentarer og 1 løsning
Hjælp med query
Hej, jeg bruger php og mysql og har brug for at lave følgende så enkelt som muligt:
slet alle i tabellen "blabla" hvor bruger='niels', og de 25 nyeste er fredet og må ikke slettes. Alle linier har en id som er auto encrement, så det er de mindste der skal slettes.
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
ov, jeg er nødt til trække indholdet i picture_name ud på de linier som slettes. For jeg skal slette tilhørende billede til linien som slettes. Er det muligt at bygge ind i samme query?
Jeg kan ikke se for mig at det kan gøres i een SQL-statement, men her er et bud i PHP:
/* find alle id */ $query = mysql_query("SELECT id FROM din_tabel"); while ($fetch = mysql_fetch_assoc($query)) { $alle_id[] = $fetch['id']; }
/* find de 25 som skal fredes */ $query = mysql_query("SELECT id FROM din_tabel ORDER BY id DESC LIMIT 25"); while ($fetch = mysql_fetch_assoc($query)) { $fredet_id[] = $fetch['id']; }
/* sammenlign alle_id og fredet_id vi har nu de id der skal slettes (forhåbentligt) */ $slet_id = array_diff($alle_id, $fredet_id);
/* hvis der blev fundet nogen id der skal slettes */ if (count($slet_id) > 0) {
/* slå $slet_id op i tabellen */ $query = mysql_query("SELECT picture_name FROM din_tabel WHERE id IN(".implode(',', $slet_id)); while ($fetch = mysql_fetch_assoc($query)) { Delete_pic_if_exist($fetch['picture_name']); } }
Kanon :o) Takker mange gange... Kendte ikke array_diff() før... Så tak for det :o) Det er sjovt sommetider at se hvordan andre ville gribe det an. Man bliver jo let et vanedyr :o)
jeg får fejl i denne linie: $query = mysql_query("SELECT picture_name FROM din_tabel WHERE id IN(".implode(',', $slet_id));
Jeg kan ikke se en fejl i linien... Kan du?
min sql version er 4.1 eller lidt nyere
jeg får denne fejl: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Ja, det burde jeg have set selv... Sorry Nu virker det :o) 100% ok
TUSIND TAK :o)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.