Avatar billede Juniorplayer57 Nybegynder
13. maj 2014 - 13:27 Der er 5 kommentarer og
3 løsninger

Hjælp med DELETE funktion i php

Hej eksperten.

Jeg har i dette tilfælde oprettet en lille spiller liste på en database, og kunne godt bruge en smule hjælp med en DELETE kode.

Lige pt fungere koden sådan at den sletter alle spillere fra en bestemt klub når man køre den og det er skam også meningen. Men skulle også gerne have den til at melde en fejl tilbage hvis man forsøger at slette spillere fra en klub der ikke eksistere i databasen.

Håber der er nogen der kan tilpasse min kode eller fortælle mig hvad og hvor jeg skal have sat noget ind, så den kommer til at fungere som omtalt.

Her er koden:
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$db = 'login';

mysql_connect("$host", "$username", "$password")or die("cannot connect server ");
mysql_select_db("$db")or die("cannot select DB");

$sql = "DELETE FROM spiller
        WHERE klub='Arsenal'";

$slet = mysql_query($sql);
if(! $slet )
{
  die('Kunne ikke slette data: ' . mysql_error());
}
echo "Spillere fra Arsenal er blevet slettet!\n";
?>
Avatar billede repox Seniormester
13. maj 2014 - 13:56 #1
I så fald bliver du nød til at kontrollere om klubben findes inden du forsøger at slette.
Avatar billede jakobdo Ekspert
13. maj 2014 - 14:43 #2
Ikke et direkte svar på dit spørgsmål.
Men efter en "delete" kunne du jo udlæse om der var slettet noget?

I så fald, kig på mysql_affected_rows()
Avatar billede sonalias Seniormester
13. maj 2014 - 14:50 #3
Går ud fra at die ikke returnerer optimalt? Selvom den burde..
Men bare sæt en echo ind før den slår dit program ihjel

if(! $slet )
{
  echo "mysql funktionen returnerede fejl!\n";
  die('Kunne ikke slette data: ' . mysql_error());
}
Avatar billede sonalias Seniormester
13. maj 2014 - 14:51 #4
Vær dog opmærksom på at den også vil returnere fejl hvis du ikke har adgang til databasen osv, så #2 løsning er selvfølgelig bedre... :)
Avatar billede Stickano Nybegynder
17. juni 2014 - 11:37 #5
Lav et check inden den sletter.

$connection = mysqli_connect($host,$username,$password,$db);

$sql = "SELECT * FROM spiller WHERE klub='Arsenal'";
$query = mysqli_query($connection,$sql)or die(mysqli_error($connection));
$num = mysqli_num_rows($query);

if($num != true){
echo"Kunne ikke slette data.";
}else{
$sql = "DELETE FROM spiller WHERE klub='Arsenal'";
mysqli_query($connection,$sql)or die(mysqli_error($connection));
echo"Data slettet";
};
Avatar billede Juniorplayer57 Nybegynder
22. september 2014 - 17:33 #6
...
Avatar billede repox Seniormester
22. september 2014 - 17:47 #7
Var alle løsningsforslag her ubrugelige?
Avatar billede repox Seniormester
23. september 2014 - 08:48 #8
Siden OP kan svare i andre spørgsmål, men ikke dette, regulerer jeg for OP.
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

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