Slette rows i tabel

Tags:    php

Jeg har tidligere lavet sørget for at alle referers til min side bliver gemt i databasen. Nu er jeg så blevet opmærksom på at det inkluderede en hel del interne referers, altså når folk klikker rundt. Det er naturligvis en unødvendig detalje og jeg har ændret koden lidt så de ikke bliver gemt mere.

Men jeg har en helvedes masse af disse unødvendige url's liggende i databasen, uden nogen grund. Derfor vil jeg gerne slette dem.
Men hvordan gør jeg det smartest?
Der er lidt over 8000 url's gemt, så jeg er ikke lige i humør til at sidde og kigge dem igennem, og vil naturligvis gerne lave noget der kan klare det for mig.

Umiddelbart ville jeg naturligvis bare skrive noget kode der kontrollerede domænet i url'en med explode, men jeg kan jo ikke lave et delete kald til databasen mens jeg henter rækker ud, vel?

Eksempel:

$invalid = "mydomain";

$sql = "SELECT * FROM ref_url";
$query = mysql_query($sql) or die("Cannot query the database." . mysql_error());
while($result = mysql_fetch_array($query)) {

$url = $result['url'];

$domain = explode("/", $url);
$host = explode(".", $domain[2]);

if ( $host[1] == $invalid ) {

//Her skal rækken så slettes...

}

}


Hvordan kan jeg slette rækken?

Er der i øvrigt ikke lige en der kan fortælle mig hvordan man laver kode eksempel?

[Redigeret d. 02/10-04 15:28:14 af Jens]



5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Fold kodeboks ind/udKode 



Vil skyde på det skal se sådan ud (erstattes med din kommentar), men der gives ingen garenti, så husk at teste den grundigt.

Reference til DELETE syntaksen findes her:
http://dev.mysql.com/doc/mysql/en/DELETE.html



Kodeeksempel:
Fold kodeboks ind/udKode 


du skal bare fjerne mellemrummene i de to 'pre' tags.




- karmazilla -

[Redigeret d. 02/10-04 16:19:11 af Christian Vest]



Jeg har prøvet forslaget, men rækkerne slettes ikke. Delete sætningen er jeg bekendt med, min teori er jo at man ikke kan udføre dette under SELECT.

Jeg har lavet koden lidt mere simpel, men mangler stadig en brugbar løsning...

Fold kodeboks ind/udKode 


Tak for 'pre' tag'et...



Hov, der skulle bare lige ' omkring $url og så virkede det (altså '$url').

Den 'færdige' kode:

Fold kodeboks ind/udKode 


Jeg siger mange tak for hjælpen...




Hvorfor sætte php til at gøre noget som mysql selv kan?

mysql_query("DELETE FROM ref_url WHERE url LIKE='http://www.bigboystoys.dk/%' OR url LIKE='http://bigboystoys.dk/%'");
--
Thus, I conclude



Hvorfor sætte php til at gøre noget som mysql selv kan?

mysql_query("DELETE FROM ref_url WHERE url LIKE='http://www.bigboystoys.dk/%' OR url LIKE='http://bigboystoys.dk/%'");
--
Thus, I conclude



Ja, det er selvfølgelig en lidt mere simpel løsning.
Nu skulle jeg dog kun lige køre det igennem en enkelt gang, men jeg kan godt se at det ville være den nemmeste måde at gøre det på...



t