php msql_num_rows fout

Status
Niet open voor verdere reacties.

djwouter

Gebruiker
Lid geworden
23 aug 2008
Berichten
142
//

hallo helpmij,
hier ben ik alweer met een php vraag, ik kriijg steets de foutmelding
Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/kamp01/domains/dolrosmalen.nl/public_html/new/schema/show2.php on line 12

maar wat kan het zijn, ik weet het niet,,, kunnen julie voor mij naar een oplossing kijken
PHP:
mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

$queryschema="SELECT * FROM schema WHERE date > NOW() ORDER BY date ASC LIMIT 5";
$resultschema = mysql_query($queryschema);


$numschema = mysql_num_rows($resulschema);

mysql_close();



$inieuws=0;
while ($ischema < $numschema) {

$titelschema=mysql_result($resultschema,$ischema,"titre");
$textschema=mysql_result($resultschema,$inschema,"details");
$idschema=mysql_result($resultschema,$ischema,"id");
$dagschema=mysql_result($resultschema,$ischema,"dag");



echo "<table width=\"200\" border=\"0\">
  <tr>
    <th width=\"20\" scope=\"col\">$dagschema</th>
    <th width=\"165\" scope=\"col\"><li><a href=\"schema.php?id=$idschema\">$titelschema</a></li></th>
  </tr> 
  ";

$ischema++;
}
 
Laatst bewerkt:
Code:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/kamp01/domains/dolrosmalen.nl/public_html/new/schema/show2.php on line 13
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 'queryschema' at line 1

nu krijg ik deze 2 regels...
 
Blijkbaar zit er een fout in je query.
 
{php} sql fout...

dit is de sql line... en mijn error geeft aan dat er een fout in zit...

Code:
SELECT * 
FROM schema
WHERE date > '".$datumnow."'
ORDER BY date ASC
LIMIT 0, 5
 
dit is de sql line... en mijn error geeft aan dat er een fout in zit...

Code:
SELECT * 
FROM schema
WHERE date > '".$datumnow."'
ORDER BY date ASC
LIMIT 0, 5

Niet veel verstand van (helemaal geen) maar er zit een spatie tussen , en de 5
Bij : LIMIT 0, 5
 
het is nog niet opgelost nu ,,,,

hier onder het hele script.......

PHP:
$datumnow = date('d/n/Y');

$link = mysql_connect("localhost", "$username", "$password");
mysql_select_db("$database", $link);

$resultschema = mysql_query("SELECT * 
FROM schema
WHERE date >= '".$datumnow."'
ORDER BY date ASC
LIMIT 0,5 
 ", $link);
$numschema = mysql_num_rows($resultschema);

echo mysql_error();
mysql_close();



$ischema=0;
while ($ischema < $numschema) {

$titelschema=mysql_result($resultschema,$ischema,"titre");
$textschema=mysql_result($resultschema,$inschema,"details");
$idschema=mysql_result($resultschema,$ischema,"id");
$dagschema=mysql_result($resultschema,$ischema,"dag");



echo "<table width=\"200\" border=\"0\">
  <tr>
    <th width=\"20\" scope=\"col\">$dagschema</th>
    <th width=\"165\" scope=\"col\"><li><a href=\"schema.php?id=$idschema\">$titelschema</a></li></th>
  </tr> 
  ";

$ischema++;
}

?>
 
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/kamp01/domains/dolrosmalen.nl/public_html/new/schema/show2.php on line 17
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 'schema WHERE date >= '30/1/2010' ORDER BY date ASC LIMIT 0,5' at line 2
 
Hm :/ Ik zie niets vreemds er aan...

Wat je even kunt proberen is om backticks om de veld en tabel namen te zetten? Misschien dat 'schema' een gereserveerd woord is (hoewel de highlighter aangeeft van niet)

[sql]
SELECT *
FROM `schema`
WHERE `date` > '".$datumnow."'
ORDER BY `date` ASC
LIMIT 0, 5
[/sql]
 
Je mag 'schema' niet gebruiken als tabel- of kolomnaam, dat moet je dus veranderen.
 
Zoals in mijn voorbeeld. Een backtick (toets links van de '1' op je toetsenbord) kun je gebruiken om aan te geven in een query dat je verwijst naar een tabel of veld, ipv een SQL keyword.

Stel dat je bijvoorbeeld een tabel hebt die WHERE heet, dan raakt je parser in de war als je daar naar verwijst, kijk maar:

[sql]
SELECT *
FROM WHERE
WHERE 1
[/sql]

Daarom kun je met een backtick aangeven dat je verwijst naar een tabel, ongeacht of het woord wel of niet gebruikt wordt door de SQL programmeertaal:

[sql]
SELECT *
FROM `WHERE`
WHERE 1
[/sql]

En dan snapt ie wel hoe de structuur in elkaar zit :)
 
Waarom denk je dat iets een gereserveerd woord is? :rolleyes: In ieder geval niet om het te omzeilen met backticks. Backticks ga je een keer vergeten, en dat kan rare situaties opleveren. Gebruik gewoon normale tabel- en kolomnamen.
 
nu geeft hij 5 rijen neer terwijl er maar 2 weergevenen moeten worden omdat er maar 2 schena's zijn die nog moeten komen.... hoe kan ik dit maken dat hij wel de nog komende schema's moet weergeven...
 
Ik zei niet dat het super handig was om met backticks te doen, maar opzich is 'schema' een normale naam voor een tabel :P

Het is idd beter om geen gereserveerde keywords te gebruiken though.

Welke rijen worden getoond, en welke zitten er in de tabel? Dan kunnen we miss beter zien wat er mis gaat.
 
regel 17 staat er geen title maar titre

verder kan het zijn dat er achter de query een ; moet komen om deze te laten uitvoeren
 
Laatst bewerkt:
Vragen samengevoegd, de vraag over je query past prima bij je originele vraag en zorgt er ook voor dat mensen meer achtergrond info krijgen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan