Avatar billede Xelot Nybegynder
13. april 2007 - 22:25 Der er 9 kommentarer og
2 løsninger

Slette alle rækker sammen med kategorien

Hey..

Jeg er ved at lave et link-script, og vil gerne lave sådan at når jeg sletter en kategori, så skal alle links under den præcise kategori slettes sammen med.

Jeg har prøvet at bakse lidt med denne 'for' sætning, men den virker ikke efter hensigten.

$antal=mysql_num_rows($lnk);

for($a=1;;$a++){
if($antal>$a++)
mysql_query("DELETE FROM netstarter_links_$name WHERE kategori='$catdel'");

}
Avatar billede nixir Nybegynder
13. april 2007 - 22:43 #1
glem i++ .. lav en DELETE query der sletter flere rækker på samme tid. Har ikke så meget styr på det, men den query du har lavet burde virke.
mysql_query("DELETE FROM netstarter_links_$name WHERE kategori='$catdel'");

Hvis du nu ikke vil tømme den kategori, kan du smide et limit på så den sletter de $a første resultater af din query:
mysql_query("DELETE FROM netstarter_links_$name WHERE kategori='$catdel' ORDER BY id DESC LIMIT $a");

Men som jeg forstår det vil du tøme en kategori?


Kilde: http://dev.mysql.com/doc/refman/5.0/en/delete.html
Avatar billede nixir Nybegynder
13. april 2007 - 22:45 #2
hov ... sorry ... jeg skrev i++ fordi jeg plejer at bruge i ;) ... a++ ... men det brude stadig ikke være nødvendigt. Kan som regel aldrig betale sig at lade php lave beregningen når man alligevel arbejder med databasen.

Der er undtagelser: Hvis man belaster databasen mere end serveren - så bliver databasen selvfølgelig blot mere belastet og siden endnu langsommere...
Avatar billede Xelot Nybegynder
13. april 2007 - 23:29 #3
Det drejer sig om at jeg gerne vil slette indtil flere rækker da der er blandede kategorier i samme tabel.
Avatar billede yHec Novice
14. april 2007 - 10:32 #4
for($a=1;;$a++){ <-- den her skal væk
if($antal>$a++)  <--.. og denne her
mysql_query("DELETE FROM netstarter_links_$name WHERE kategori='$catdel'");

} <-- ..og denne her

Din SQL-sætning sørger for at slette ALLE kategorier $catdel. Det er overhovedet ingen grund til at bruge for. Det er at sammenligne med en select-sætning, den bruger du heller ikke med en for-løkke.

/y
Avatar billede nixir Nybegynder
14. april 2007 - 14:00 #5
y >> Hvordan er dit svar forskelligt fra mit? Jeg er barre nysgerrig ..
Avatar billede Xelot Nybegynder
14. april 2007 - 16:22 #6
Tak til begge.. det viste sig at jeg, påvirket af min søvnige tilstand havde glemt hvordan man programmerer.. tak
Avatar billede yHec Novice
15. april 2007 - 13:49 #7
Det er det samme, skrevet på en anden måde. Det virkede som om han ikke forstod hvad du mente - selvom det var helt klart.

Du må da gerne få de 15 point

/y
Avatar billede nixir Nybegynder
16. april 2007 - 17:23 #8
Det handler ikke om 15 point ;)

Synes bare det var mærkeligt at det samme svar kom 2 gange - og at begge svar blev krediteret (ikke at jeg mangler 15 point), men princippet i at den der svarer får pointet - og ikke de to der skriver helt det samme deler ... Bare min min holding - derfor synes jeg det er mærkeligt du poster som et svar ...
Avatar billede yHec Novice
16. april 2007 - 17:46 #9
Helt enig.
Men det var som om han ikke forstod hvad du mente, så jeg prøvede at klarificerer!

At det kom som et svar, var en fejl. Sorry

/y
Avatar billede nixir Nybegynder
16. april 2007 - 18:10 #10
Det går jo nok alt sammen, blev bare overrasket... :)
Avatar billede Xelot Nybegynder
17. april 2007 - 15:37 #11
nixir> Jeg forstod ikke helt hundrede hvad din mening var, og da Y forklarede det gav det du havde skrevet jo mening, så begge svar er jo egentlig lige rigtige. Måske skulle Y have haft 75% af point fordelingen fordi han ledte mig ind på det rigtige, men så vil det jo betyde at nixir's svar ikke var noget værd, hvilket det jo er.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester