Warning: mysql_num_rows
Ik heb gisteren een boek gekocht en ben gewoon domweg aan het overtypen. De stukjes worden goed toegelicht en stap voor stap ben ik aan mijn eigen weblog bezig. Zodra ik deze werkende heb wil ik een eigen maken, maar tot nu toe werkt ie dus niet en ben ik pas bij het begin van dit script.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
require ("header.php");
$sql = "SELECT entries.*, categories.cat FROM entries, categories
WHERE entries.cat_id = categories.id
ORDER BY dateposted DESC
LIMIT 1;";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
echo "<h2><a href='viewentry.php?id=" . $row['id']
. "'>" . $row['subject'] .
"</a></h2><br/>";
echo "<i>In <a href='viewcat.php?id=" . $row['cat_id']
."'>" . $row['cat'] .
"</a> - Posted on " . date("D jS F Y g.iA",
strtotime($row['dateposted'])) .
"</i>";
echo "<p>";
echo nl2br($row['body']);
echo "</p>";
echo "<p>";
$commsql = "SELECT name FROM comments WHERE blog_id = " . $row['id'] .
"ORDER BY dateposted;";
$commresult = mysql_query($commsql);
$numrows_comm = mysql_num_rows($commresult); // foutmelding..
if($numrows_comm == 0){
echo "<p>No Comments.</p>";
}
else {
echo "(<strong>" . $numrows_comm . "</strong>) comments : ";
$i = 1;
while($commrow = mysql_fetch_assoc($commresult)){
echo "<a href='viewentry.php?id=" . $row['id'] ."#comment" . $i .
"'>" . $commrow['name'] . "</a>";
$i++;
}
}
echo "</p>";
require ("footer.php");
?>
require ("header.php");
$sql = "SELECT entries.*, categories.cat FROM entries, categories
WHERE entries.cat_id = categories.id
ORDER BY dateposted DESC
LIMIT 1;";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
echo "<h2><a href='viewentry.php?id=" . $row['id']
. "'>" . $row['subject'] .
"</a></h2><br/>";
echo "<i>In <a href='viewcat.php?id=" . $row['cat_id']
."'>" . $row['cat'] .
"</a> - Posted on " . date("D jS F Y g.iA",
strtotime($row['dateposted'])) .
"</i>";
echo "<p>";
echo nl2br($row['body']);
echo "</p>";
echo "<p>";
$commsql = "SELECT name FROM comments WHERE blog_id = " . $row['id'] .
"ORDER BY dateposted;";
$commresult = mysql_query($commsql);
$numrows_comm = mysql_num_rows($commresult); // foutmelding..
if($numrows_comm == 0){
echo "<p>No Comments.</p>";
}
else {
echo "(<strong>" . $numrows_comm . "</strong>) comments : ";
$i = 1;
while($commrow = mysql_fetch_assoc($commresult)){
echo "<a href='viewentry.php?id=" . $row['id'] ."#comment" . $i .
"'>" . $commrow['name'] . "</a>";
$i++;
}
}
echo "</p>";
require ("footer.php");
?>
Output:
Funny old world
[home]
In - Posted on Thu 1st January 1970 1.00AM
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\weblog\index.php on line 27
No Comments.
©: Sven x
--------------------------------------------------------------
Als hij toch niks uit de database kanhalen dan maakt hij toch een 0 aan? Dus een bolean?
MvG. Sven
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$commsql = "SELECT name FROM comments WHERE blog_id = " . $row['id'] . " ORDER BY dateposted;";
$commresult = mysql_query($commsql);
$numrows_comm = mysql_num_rows($commresult); // foutmelding..
if($numrows_comm == 0){
echo "<p>No Comments.</p>";
}
[code]
etc.
$commsql = "SELECT name FROM comments WHERE blog_id = " . $row['id'] . " ORDER BY dateposted;";
$commresult = mysql_query($commsql);
$numrows_comm = mysql_num_rows($commresult); // foutmelding..
if($numrows_comm == 0){
echo "<p>No Comments.</p>";
}
[code]
etc.
Als iemand nog tips heeft... altijd welkom!
MvG. Sven
Toevoeging op 20/07/2011 17:39:05:
Hij doet in ieder geval connecten, omdat hij in de script ervoor nog een SELECT heeft, maar daar geeft hij geen error af. Dus hij connect wel, maar snap nog niet waarom die error gegeven wordt.
Bouw foutafhandeling in bij je query's.
Staat er al wel wat in de db?
Ja mijn db is helemaal opgezet. Als ik $numrows_comm echo dan krijg ik niks te zien. Dus hij geeft niks weer. Dus er gaat iets mis in mijn SELECT of in mijn connectie, maar mijn connectie heb ik al getest. Er valt naar mijn idee niet meer te echoen.
MvG. Sven
Toevoeging op 20/07/2011 18:23:42:
Oke, ik heb nog het een en ander geprobeerd. Ik heb op alle $variabelen een echo gedaan. Bij de SELECT functie komt het volgende eruit:
SELECT name FROM comments WHERE blog_id = ORDER BY dateposted;
Terwijl de code is:
Code (php)
1
$commsql = "SELECT name FROM comments WHERE blog_id = " . $row['id'] . " ORDER BY dateposted;";
Hij haalt geen $row['id' binnen], omdat er geen enkele blog in zit. De bovenstaande script kijkt of er een comment is en wanneer er geen blog bestaat kunnen er sowieso geen comments zijn.
Het is al zo vaak tegen je gezegd: Bouw eerst eens een nette foutafhandeling in. Je query is gewoon mislukt en bij een nette foutafhandeling krijg je precies te zien wat er fout gaat. Nu is het gokken.
Ik heb het al opgelost, maar bedankt. De juiste foutafhandeling tutorial ga ik nog een andere keer voor zitten.
Wat je nu zegt is zoals: "ik ga eerst 150km fietsen en daarna leren fietsen" fout fout fout, leer gewoon van begins af aan hoe je een een query netjes afhandelt.