|
| Problemer med PHP & SQL Fra : Kenneth Andersen |
Dato : 06-06-05 21:43 |
|
Hej alle.
Endnu en Newbie ønsker hjælp.
Jeg forsøger at lave en side hvor man kan slette sig som bruger.
Mit problem ligger i når man forsøger at slette sig.
Selve sql delen virker, med at den kun sletter fra DB når man har instastet
de rigtige oplysninger, fornavn, efternavn, email & land og den skriver "Du
er nu slettet"
Nu kommer problemet, den skriver også "Du er nu slettet" selvom man
indtaster de forkerte oplysninger.
Her skulle den istedet skrive "Fejl under sletning! Prøv venligst igen."
Jeg har smidt koden ind, ikke så lang, og håber på at der er nogen der kan
se hvad jeg gør forkert.
Mvh.
Kenneth Andersen
Fjern NOSPAM. fra mail ved svar.
Her er koden:
<?php
$dblink=mysql_connect("localhost", "user", "password");
mysql_select_db("database");
$fornavn=$_POST['fornavn'];
$efternavn=$_POST['efternavn'];
$mail=$_POST['email'];
$landID=$_POST['landID'];
$query="DELETE FROM Navn WHERE fornavn = '$fornavn' AND efternavn =
'$efternavn' AND email = '$mail' AND landID = '$landID'";
if(mysql_query($query))
{
echo"Du er nu slettet";
}
else
{
echo "Fejl under sletning! Prøv venligst igen.<br>Husk at udfylde alle
felter med de samme oplysninger du registrerede dig med.";
echo "<br>".mysql_error();
}
?>
| |
Martin Ploug (06-06-2005)
| Kommentar Fra : Martin Ploug |
Dato : 06-06-05 22:43 |
|
>Nu kommer problemet, den skriver også "Du er nu slettet" selvom man
>indtaster de forkerte oplysninger.
>Her skulle den istedet skrive "Fejl under sletning! Prøv venligst igen."
Hm, for mig at se, ser det umiddelbart rigtigt nok ud.
hedder felterne i din database det samme som felterne i din formular?
Det er i øvrigt en god idé at tilføje - or die(mysql_error()); - i sine
queries. Den viser, hvis der er fejl i den.
Altså:
$query="DELETE FROM Navn WHERE fornavn = '$fornavn' AND efternavn =
'$efternavn' AND email = '$mail' AND landID = '$landID'" or
die(mysql_error());
/Martin
| |
Leonard (06-06-2005)
| Kommentar Fra : Leonard |
Dato : 06-06-05 23:03 |
|
"Kenneth Andersen" <NOSPAM.k.a@osterbrogaarden.dk> wrote:
Prøv at ændre:
>if(mysql_query($query))
til:
$result=mysql_query($query));
var_dump($result);
if ($result)
så finder du ud af hvad mysql_query returnerer og kan bygge dit
if-statement efter det.
--
mvh Leonard
Har du kigget på: http://dk.php.net/ el. http://www.webcafe.dk/
| |
Kim Andersen (07-06-2005)
| Kommentar Fra : Kim Andersen |
Dato : 07-06-05 11:09 |
|
Hej Kenneth,
Funktionen "mysql_query" vil altid returnere TRUE, så længe at din SQL
sætning ikke fejler noget.
Men hvis du skal have at vide om der er slettet noget i databasen, skal du
checke med funktionen "mysql_affected_rows".
Hvis den er mere end 0, har den slettet noget fra databasen.
Så din sætning kan se sådan ud.
$result = mysql_query($query);
if (mysql_affected_rows($result) > 0)
echo "Du er nu slettet";
else
echo "Du er ikke fundet i databasen";
/Kim
| |
Kenneth Andersen (07-06-2005)
| Kommentar Fra : Kenneth Andersen |
Dato : 07-06-05 15:17 |
|
Hej Alle.
Takker for de hurtige svar :)
Det var "mysql_affected_rows" der skulle bruges.
Så nu virker som det skal..
Endnu engang tak for hjælpen :)
Mvh.
Kenneth Andersen
Fjern NOSPAM. fra mail ved svar.
| |
|
|