mysql num rows vraag
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$resultaat = mysql_query("SELECT Username FROM huppeldepup WHERE username='".addslashes($username)."'");
if (mysql_num_rows($resultaat) > 0)
{
echo "Deze username bestaat al";
}
?>
$resultaat = mysql_query("SELECT Username FROM huppeldepup WHERE username='".addslashes($username)."'");
if (mysql_num_rows($resultaat) > 0)
{
echo "Deze username bestaat al";
}
?>
Zoals je hier ziet, bestaat $username helemaal niet. Als ik deze script uitvoer (met database connect etc) dan krijg ik deze error:
arning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Program Files\xampp\htdocs\boeksite\test.php on line 6
Het is dus hartstikke logisch dat ik een error krijg omdat die variabele niet bestaat, maar hoe kan ik deze error vermijden. Kan dat alleen maar door een @ te gooien voor de mysql_num_rows?
Edit:
Hij doet dus ook niet wat ik wil he, ik wil dat hij die echo laat zien. Verder op in de script met een zelfde soort constructie (dus met een onbestaande variabele) laat hij wel de echo tussen de accolades zien...Daarbij geeft die geen error
Gewijzigd op 01/01/1970 01:00:00 door Orhan T
Gesponsorde koppelingen:
Nooit met @ gaan werken. Gewoon zorgen dat je script klopt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql = "
SELECT Username
FROM huppeldepup
WHERE username = '" . addslashes($username) . "'
";
if ($res = mysql_query($sql)) {
if (mysql_num_rows ($res) > 0) {
echo 'username bestaat al';
}
}
else {
// foutmelding
}
?>
$sql = "
SELECT Username
FROM huppeldepup
WHERE username = '" . addslashes($username) . "'
";
if ($res = mysql_query($sql)) {
if (mysql_num_rows ($res) > 0) {
echo 'username bestaat al';
}
}
else {
// foutmelding
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Ok, maar wanneer die variabele niet bestaat dan krijg ik zo'n error. Ik wil helemaal geen error want wanneer die variabele niet bestaat zijn er 0 rows. Dus wil ik gewoon verder gaan met het script...
De foutmelding die je krijgt houdt in dat je mysql query niet gelukt is, dat controleer je ook helemaal nergens...
Ga dat dus doen en geef gewoon een foutmelding als de query mislukt. En verder is het gebruik van een @ zoals Jan al zegt bijna nooit nodig, hier in ieder geval niet.
Pak het zo aan:
Ga dat dus doen en geef gewoon een foutmelding als de query mislukt. En verder is het gebruik van een @ zoals Jan al zegt bijna nooit nodig, hier in ieder geval niet.
Pak het zo aan:
Zie mijn voorbeeld hier boven. Je fout was:
dat had moeten zijn:
dat had moeten zijn:
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
@Jan Koehoorn,
Dat was een typfout heb het goed in me script staan. Alleen krijg nog steeds dezelfde melding...
@blanche,
Zoals ik al zei de variabele bestaat ook niet maar ik wil dat die gewoon verder gaat met me script! Natuurlijk lukt die query niet, maar dan hoort die toch nog wel 0 rijen terug te geven?
Bedankt voor de reacties
p.s. verderop in de script heb ik het zelfde constructie waarbij de variabele ook niet bestaat daar geeft die netjes wat tussen de { echo } staat.
Dat was een typfout heb het goed in me script staan. Alleen krijg nog steeds dezelfde melding...
@blanche,
Zoals ik al zei de variabele bestaat ook niet maar ik wil dat die gewoon verder gaat met me script! Natuurlijk lukt die query niet, maar dan hoort die toch nog wel 0 rijen terug te geven?
Bedankt voor de reacties
p.s. verderop in de script heb ik het zelfde constructie waarbij de variabele ook niet bestaat daar geeft die netjes wat tussen de { echo } staat.
Nee, een query moet lukken wil mysql_num_rows een aantal teruggeven. Je moet een geldige resource aan die functie meegeven.
Ik weet al wat er fout ging! SELECT Username <-- bestaat niet
Wanneer ik bijvoorbeeld: SELECT Email FROM COMPANY WHERE Email='$blabla'
en is dit de if: if (mysql_num_rows($result) == 0) { echo "blabla"; }
Dan geeft die de echo weer, ipv een of andere error
Dus de query zou moeten gelukt zijn ondanks de variabele niet bestaat, dus geeft die gewoon 0 rijen terug?
Wanneer ik bijvoorbeeld: SELECT Email FROM COMPANY WHERE Email='$blabla'
en is dit de if: if (mysql_num_rows($result) == 0) { echo "blabla"; }
Dan geeft die de echo weer, ipv een of andere error
Dus de query zou moeten gelukt zijn ondanks de variabele niet bestaat, dus geeft die gewoon 0 rijen terug?
Gewijzigd op 01/01/1970 01:00:00 door Orhan T
Nee, als de veldnaam die je in de query zet niet bestaat, mislukt de query en daardoor ook mysql_num_rows.



