Fout in query, maar wat?
Beste PHPers,
Ik stuit op een probleempje. De volgende query geeft een error maar ik zie niet wat er fout is gegaan:
Echter krijg ik de hele leuke error:
Fout tijdens uitvoeren van de query
Helaas zie ik zelf niet wat er nou fout is gegaan. Kan een van jullie me helpen? Alvast bedankt!
Ik stuit op een probleempje. De volgende query geeft een error maar ik zie niet wat er fout is gegaan:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$verloopdatum = mysql_query("
SELECT (pre_datum + INTERVAL 20 days) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'");
if($vdate = mysql_query($verloopdatum)) {
while ($row4 = mysql_fetch_object($vdate)) {
$verloop= ''.$row4->verloopdate.'';
}
mysql_free_result($vdate);
} else {
echo '<br>Fout tijdens uitvoeren van de query';
}
?>
$verloopdatum = mysql_query("
SELECT (pre_datum + INTERVAL 20 days) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'");
if($vdate = mysql_query($verloopdatum)) {
while ($row4 = mysql_fetch_object($vdate)) {
$verloop= ''.$row4->verloopdate.'';
}
mysql_free_result($vdate);
} else {
echo '<br>Fout tijdens uitvoeren van de query';
}
?>
Echter krijg ik de hele leuke error:
Fout tijdens uitvoeren van de query
Helaas zie ik zelf niet wat er nou fout is gegaan. Kan een van jullie me helpen? Alvast bedankt!
Gesponsorde koppelingen:
Thomas schreef op 08.05.2008 19:46:
Gek hé, deze waardeloze foutmelding zet je er zelf neer...Echter krijg ik de hele leuke error:
Fout tijdens uitvoeren van de query
Helaas zie ik zelf niet wat er nou fout is gegaan. Kan een van jullie me helpen? Alvast bedankt!
Fout tijdens uitvoeren van de query
Helaas zie ik zelf niet wat er nou fout is gegaan. Kan een van jullie me helpen? Alvast bedankt!
Wat dacht je van de functie mysql_error() om de échte melding te achterhalen?
ikzelf gebruik mysqli, en heb nooit mysql gebruikt.
bij mysqli kun je gebruik maken van trigger_error, en volgens mij bij mysql ook. dan kun je een mysql error weergeven. en daar staat de fout in.
bij mysqli kun je gebruik maken van trigger_error, en volgens mij bij mysql ook. dan kun je een mysql error weergeven. en daar staat de fout in.
Edit:
die bedoel ik :)
Gewijzigd op 01/01/1970 01:00:00 door Erwin Nieuwenhuis
Ok, de if/else weggehaald.
Dan krijg je het volgende:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 41
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 44
K heb nu deze code:
Regel 41 en 44 zijn de 3de en 6de regel hierboven.. Maar dat kon je raden.
Dan krijg je het volgende:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 41
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 44
K heb nu deze code:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$verloopdatum = mysql_query("SELECT (pre_datum + INTERVAL 20 days) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'");
while ($row4 = mysql_fetch_object($vdate)) {
$verloop= ''.$row4->verloopdate.'';
}
mysql_free_result($vdate);
?>
$verloopdatum = mysql_query("SELECT (pre_datum + INTERVAL 20 days) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'");
while ($row4 = mysql_fetch_object($vdate)) {
$verloop= ''.$row4->verloopdate.'';
}
mysql_free_result($vdate);
?>
Regel 41 en 44 zijn de 3de en 6de regel hierboven.. Maar dat kon je raden.
Gewijzigd op 01/01/1970 01:00:00 door Thomas van Broekhoven
Repeat:
Quote:
Wat dacht je van de functie mysql_error() om de échte melding te achterhalen?
waar haal je $vdate eigenlijk vandaan?
Je hebt gelijk, sorry. Dan krijg ik de volgende error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'days) AS verloopdate FROM users WHERE gebruikersnaam = 'Thomas'' at line 1
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'days) AS verloopdate FROM users WHERE gebruikersnaam = 'Thomas'' at line 1
erwin schreef op 08.05.2008 19:57:
Scherp opgemerkt!waar haal je $vdate eigenlijk vandaan?
Er klopt geen hout van de code.
Dat is nog van de if/else statement.
vergeten aan te passen...
Nu heb ik dit dan:
Maar nu krijg ik nog steeds dezelfde error.
EDIT: 't Moest DAY zijn ipv DAYS, maar nu krijg ik weer de errors eerder genoemd:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 42
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 45
vergeten aan te passen...
Nu heb ik dit dan:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$verloopdatum = "SELECT (pre_datum + INTERVAL 20 days) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'";
mysql_query($verloopdatum) or die(mysql_error());
while ($row = mysql_fetch_object($verloopdatum)) {
$verloop= ''.$row->verloopdate.'';
}
mysql_free_result($verloopdatum);
?>
$verloopdatum = "SELECT (pre_datum + INTERVAL 20 days) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'";
mysql_query($verloopdatum) or die(mysql_error());
while ($row = mysql_fetch_object($verloopdatum)) {
$verloop= ''.$row->verloopdate.'';
}
mysql_free_result($verloopdatum);
?>
Maar nu krijg ik nog steeds dezelfde error.
EDIT: 't Moest DAY zijn ipv DAYS, maar nu krijg ik weer de errors eerder genoemd:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 42
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 45
Gewijzigd op 01/01/1970 01:00:00 door Thomas van Broekhoven
komt er wel resultaat uit je query??
foutafhandeling.
foutafhandeling.
Ja, $verloopdatum is ook je sql query en niet de resultaat set. In de mysql_fetch_* functies moet je natuurlijk wel het resultaat van een mysql_query() gebruiken...
Dus:
En dan uiteraard nog de foutafhandeling toepassen.
Dus:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$sql = "Je query";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
?>
$sql = "Je query";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
?>
En dan uiteraard nog de foutafhandeling toepassen.
Ik denk dat dat een heel goed punt is, ik heb nu dit dan:
Ik krijg nu alleen nog deze error:
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 46
Ik denk dat dat komt omdat er nu mysql_fetch_assoc() gebruikt wordt. Maar ik ben nog niet zo goed in SQL enzo. Dus heb je ook enig idee waar deze error dan aan kan liggen. Alvast bedankt!
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$verloopdatum = "SELECT (pre_datum + INTERVAL 20 day) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'";
$test = mysql_query($verloopdatum) or die(mysql_error());
while ($row = mysql_fetch_assoc($test)) {
$verloop= ''.$row->verloopdate.'';
echo ($verloop);
}
mysql_free_result($test);
?>
$verloopdatum = "SELECT (pre_datum + INTERVAL 20 day) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'";
$test = mysql_query($verloopdatum) or die(mysql_error());
while ($row = mysql_fetch_assoc($test)) {
$verloop= ''.$row->verloopdate.'';
echo ($verloop);
}
mysql_free_result($test);
?>
Ik krijg nu alleen nog deze error:
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/080888/public/sites/blog.fressh.nl/memberkopen.php on line 46
Ik denk dat dat komt omdat er nu mysql_fetch_assoc() gebruikt wordt. Maar ik ben nog niet zo goed in SQL enzo. Dus heb je ook enig idee waar deze error dan aan kan liggen. Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Thomas van Broekhoven
kijk nog eens goed, wat staat er in $verloopdatum? kun je niet beter mysql_free_result($test); gebruiken?
Edit:
gooi gelijk even die() eruit, en ga wat aan foutafhandeling doen
Gewijzigd op 01/01/1970 01:00:00 door Erwin Nieuwenhuis
Ja daar kwam ik ook al achter. Had het al snel gewijzigd, heeeel dom.. Maar de error is weg maar ik krijg vreemd genoeg geen resultaat.
ik weet niet wat mysql_free_result() doet, maar uit je while loop komt idd geen resultaat.
je echo't namelijk niks
je echo't namelijk niks
Edit:
ik heb het even nagelezen, en mysql_free_result() gooit je data weg. ik snap niet wanneer/waarom je dit wilt gebruiken..
Gewijzigd op 01/01/1970 01:00:00 door Erwin Nieuwenhuis
$verloop= ''.$row->verloopdate.'';
echo ($verloop);
Is toch een echo..
echo ($verloop);
Is toch een echo..
*schaam*
niet gelezen..
maar voeg is een if/else toe, waarbij je de resultaten telt.
niet gelezen..
maar voeg is een if/else toe, waarbij je de resultaten telt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$verloopdatum = "SELECT (pre_datum + INTERVAL 20 DAY) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'";
$test = mysql_query($verloopdatum) or die(mysql_error());
while ($row3 = mysql_fetch_assoc($test)) {
$verloop = ''.$row3->verloopdate.'';
}
mysql_free_result($test);
if (empty($verloop)){
echo('false');
} else {
echo('true');
}
?>
$verloopdatum = "SELECT (pre_datum + INTERVAL 20 DAY) AS verloopdate FROM users WHERE gebruikersnaam = '" . $_SESSION['user3'] . "'";
$test = mysql_query($verloopdatum) or die(mysql_error());
while ($row3 = mysql_fetch_assoc($test)) {
$verloop = ''.$row3->verloopdate.'';
}
mysql_free_result($test);
if (empty($verloop)){
echo('false');
} else {
echo('true');
}
?>
Resultaat: False
Er is dus helemaal niks uit te lezen,, terwijl er toch echt een tijd staat voor: pre_datum
Quote:
Er is dus helemaal niks uit te lezen,, terwijl er toch echt een tijd staat voor: pre_datum
er wordt iig niks uitgelezen.
heb je er een tijd staan, of staat het in een datetime veld?
verder kun je met mysql_num_rows de resultaten tellen.
Ja. even kijken de tijd die er in staat is:
2008-05-08 20:39:26
En ik gebruik idd Datetime
Nou zou die eigk dan + 20 dagen moeten doen. maar dat doet die zo te zien niet.
2008-05-08 20:39:26
En ik gebruik idd Datetime
Nou zou die eigk dan + 20 dagen moeten doen. maar dat doet die zo te zien niet.



