webForumDet fria alternativet
Logga in / Bli medlem

DELETE mySQL fråga ?

Databaser & SQL

5 svar · 537 visningar · startad av Pellefant

Medlem sedan maj 20023 372 inlägg
Trådstart#1

Hej! :)

Jag har denna kod, tanken är att alla poster( "companies") med en viss kategori måste vara borttagna först för att det ska gå att ta bort den kategorin. ( "category").

Men, nu raderas poster i båda fallen, alltså även om det finns poster med vald kategori att deleta kvar i databasen.

Tacksam för hjälp.

$dbh=mysql_connect ("localhost", "xxx", "xxxxx") or die ('I cannot connect to the database because: ' . mysql_error()); 
mysql_select_db ("xxx");  

$Query = "SELECT * FROM categories WHERE `id`=$id"; 
$res = mysql_query($Query);  

if(mysql_num_rows($res)==0){  
    echo "You have to delete all companies first in this category to be able to delete the category!"; 
}else{ 
    $Query = "DELETE FROM categories WHERE `id`=$id"; 
    $Result = mysql_query($Query) or die("Error: ".mysql_error()." in query: ".$Query); 
    echo "The category is now deleted"; 
}
Medlem sedan maj 20018 027 inlägg
#2

Utan att veta något om hur du har modellerat din bas, skulle jag vilja hävda att det enda du kontrollerar, är om kategorin du ska radera, överhuvudtaget finns. Det där med companies som du skriver om, verkar du inte kolla alls.

Medlem sedan maj 20023 372 inlägg
#3

Hej! :)

Om:

SELECT * FROM categories WHERE `id`=$id

Ger några träffar så finns det företag i databasen med kategorin som ska bort, ursäkta att jag var otydlig.

Medlem sedan maj 20023 372 inlägg
#4

Tänkte mer nu...du har nog rätt, jag ska få in "Companies" i den första SQL frågan, ska testa lite mer nu, återkommer....

Tack!!! :)

Medlem sedan maj 20018 027 inlägg
#5

Pellefant skrev:

Hej! :)

Om:

SELECT * FROM categories WHERE `id`=$id

Ger några träffar så finns det företag i databasen med kategorin som ska bort, ursäkta att jag var otydlig.

Det känns som man skulle vilja veta hur du har modellerat. När jag ser en tabell som heter "categories", med kolumnen "id". Då tänker jag att tabellen innehåller just kategorier, och att "id" är kategoriernas primärnyckel. Själv tänker jag att företagen finns i en helt annan tabell, tex "companies", vilken i sin tur har en foreign key, säg "kategori_id", vilken refererar till tabellen "categories" primärnyckel. Då borde du kolla i "companies" om det finns några företag som refererar till den kategori som du vill radera. Men det är bara om man modellerar som jag skulle ha gjort.

Medlem sedan maj 20023 372 inlägg
#6

Gjorde som så att jag deletar alla companies automatiskt i önskad deleta kategori nu istället, och skriver en varning till användaren om det innan. (pop-up med Ja, nej)

Tack så mycket för hjälpen UlfT, lite längre upp i tråden skrev jag att du var helt rätt i din tankegång. :)

280 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
145 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
151 ms — ändringar (db)