/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
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.



Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408634
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste