Fout in query, maar wat?
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!
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?
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
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
Quote:
Wat dacht je van de functie mysql_error() om de échte melding te achterhalen?
waar haal je $vdate eigenlijk vandaan?
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.
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
foutafhandeling.
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.
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
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.
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
echo ($verloop);
Is toch een echo..
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.
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.