/ 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
Validering af rettede data
Fra : Nederbasse


Dato : 23-09-04 13:31

Hej

Jeg vil gerne bekræfte overfor brugere at de er blevet slettet/rettet i
databasen
Har prøvet med denne kode jeg har fubndet på nettet:

$result = mysql_query("UPDATE proeve SET modtag='0' WHERE navn='$navn' AND
email='$email'");
if ($result) print "Du er slettet.";
else print "Dit navn eller email blev ikke fundet.";
}

men uanset om jeg skriver navn eller email forkert skrives der Du er
slettet.

Koden er fundet på denne side:
http://mbn.dk/?aid=5

Lars



 
 
Martin C. Petersen (23-09-2004)
Kommentar
Fra : Martin C. Petersen


Dato : 23-09-04 17:32

Nederbasse wrote:
> Jeg vil gerne bekræfte overfor brugere at de er blevet slettet/rettet i
> databasen
> Har prøvet med denne kode jeg har fubndet på nettet:
>
> $result = mysql_query("UPDATE proeve SET modtag='0' WHERE navn='$navn' AND
> email='$email'");
> if ($result) print "Du er slettet.";
> else print "Dit navn eller email blev ikke fundet.";
> }
>
> men uanset om jeg skriver navn eller email forkert skrives der Du er
> slettet.
Brug i stedet:
http://dk.php.net/manual/en/function.mysql-affected-rows.php

Ved at teste sandhedsværdien af $result finder du kun ud af om
forespørgslen fejlede eller ej (det er ikke en fejl at den ikke rammer
nogen poster)..


Martin

Dan Storm (23-09-2004)
Kommentar
Fra : Dan Storm


Dato : 23-09-04 17:35

Prøv med

$query = mysql_query("SELECT * FROM proeve WHERE navn='$navn' OR
email='$email'")

if(mysql_num_rows($query) < 1) {
echo 'Dit navn eller email blev ikke fundet.';
}elseif(mysql_num_rows($query) > 0) {
mysql_query("UPDATE proeve SET modtag='0' WHERE navn='$navn' OR
email='$email'");
echo 'Du er nu slettet...';
}

Demos (24-09-2004)
Kommentar
Fra : Demos


Dato : 24-09-04 01:54

"Nederbasse" <laneNOSPAM@jubiipost.dk> wrote in message news:<4152c1df$0$46887$14726298@news.sunsite.dk>...
> Jeg vil gerne bekræfte overfor brugere at de er blevet slettet/rettet i
> databasen
> Har prøvet med denne kode jeg har fubndet på nettet:
>
> $result = mysql_query("UPDATE proeve SET modtag='0' WHERE navn='$navn' AND
> email='$email'");
> if ($result) print "Du er slettet.";
> else print "Dit navn eller email blev ikke fundet.";
> }
>
> men uanset om jeg skriver navn eller email forkert skrives der Du er
> slettet.

Taget fra PHP manualen (http://dk2.php.net/mysql_query):

"A non-FALSE return value means that the query was legal and could be
executed by the server. It does not indicate anything about the number
of rows affected or returned. It is perfectly possible for a query to
succeed but affect no rows or return no rows. [...] The following
query is syntactically invalid, so mysql_query() fails and returns
FALSE [...]"

Hvis du vil checke om din query har ændret på nogle rækker i din tabel
skal du have fat i noget lignende:

$result = mysql_query("UPDATE proeve SET modtag='0' WHERE navn='$navn'
AND email='$email'");
$changedRows = mysql_affected_rows($result);
if ($changedRows) {
print "Du er slettet.";
} else {
print "Dit navn eller email blev ikke fundet.";
}

--
Med venlig hilsen
Kasper Garnæs

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

Månedens bedste
Årets bedste
Sidste års bedste