foutje in tutorial blog
http://net.tutsplus.com/tutorials/php/how-to-create-an-object-oriented-blog-using-php/
hier vind u hoe u een simpel blog kunt maken
ik heb alle database en tabellen maar krijg nog een foutmelding...
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/deb38778/domains/studieoverzicht.com/public_html/includes/includes.php on line 25
dit zegd me niks... kan iemand me helpen
hier vind u hoe u een simpel blog kunt maken
ik heb alle database en tabellen maar krijg nog een foutmelding...
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/deb38778/domains/studieoverzicht.com/public_html/includes/includes.php on line 25
dit zegd me niks... kan iemand me helpen
Aan de fout te zien is de query mislukt. Bouw goede foutafhandeling in dan krijg je waarschijnlijk een duidelijkere error te zien.
- SanThe - op 29/06/2011 10:14:59:
Aan de fout te zien is de query mislukt. Bouw goede foutafhandeling in dan krijg je waarschijnlijk een duidelijkere error te zien.
Beste:
Hoe kan ik dat het beste doen....
dus bijv.:
- var_dump($query);
- een DIE("Er is een fout in de query"); achter de query gezet om te kijken of er een fout in zit?
- de query zelf losgelaten in de phpmyadmin en kijken wat daar uitkomt?
dit vond ik op een forum
maar ik weet niet precies wat ik daar mee moet doen
JEROEN pLUM op 29/06/2011 10:36:46:
(...)
- een DIE("Er is een fout in de query"); achter de query gezet om te kijken of er een fout in zit?
(...)
- SanThe - op 29/06/2011 10:14:59:
Aan de fout te zien is de query mislukt. Bouw goede foutafhandeling in dan krijg je waarschijnlijk een duidelijkere error te zien.
(...)
- een DIE("Er is een fout in de query"); achter de query gezet om te kijken of er een fout in zit?
(...)
NOOIT NOOIT NOOIT DIE als foutafhandeling!
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/
Gewijzigd op 29/06/2011 10:38:34 door Jasper DS
Maar ik heb eens door die code gekeken en ik zou het niet pakken.
Waarom niet ?
Dit script kan zo gehackt worden :D:D:D.
zet in de query mysql_real_escape_string() en tis weer veilig ;)
groeten,
Kevin
Geef eens een kopie van de code van : includes.php.
Code (php)
1
2
3
2
3
<?
$query = mysql_query("SELECT blog_posts.* FROM blog_post_tags LEFT JOIN (blog_posts) ON (blog_post_tags.postID = blog_posts.id) WHERE blog_post_tags.tagID =" . $tagID . " ORDER BY blog_posts.id DESC");
?>
$query = mysql_query("SELECT blog_posts.* FROM blog_post_tags LEFT JOIN (blog_posts) ON (blog_post_tags.postID = blog_posts.id) WHERE blog_post_tags.tagID =" . $tagID . " ORDER BY blog_posts.id DESC");
?>
Maak daar eens van:
Code (php)
1
2
3
2
3
<?
$query = mysql_query("SELECT blog_posts.* FROM blog_post_tags LEFT JOIN blog_posts ON (blog_post_tags.postID = blog_posts.id) WHERE blog_post_tags.tagID =" . $tagID . " ORDER BY blog_posts.id DESC");
?>
$query = mysql_query("SELECT blog_posts.* FROM blog_post_tags LEFT JOIN blog_posts ON (blog_post_tags.postID = blog_posts.id) WHERE blog_post_tags.tagID =" . $tagID . " ORDER BY blog_posts.id DESC");
?>
Regel 9 t/m 32
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
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
<?php
function GetBlogPosts($inId=null, $inTagId =null)
{
if (!empty($inId))
{
$query = mysql_query("SELECT * FROM blog_posts WHERE id = " . $inId . " ORDER BY id DESC");
}
else if (!empty($inTagId))
{
$query = mysql_query("SELECT blog_posts.* FROM blog_post_tags LEFT JOIN (blog_posts) ON (blog_post_tags.postID = blog_posts.id) WHERE blog_post_tags.tagID =" . $tagID . " ORDER BY blog_posts.id DESC");
}
else
{
$query = mysql_query("SELECT * FROM blog_posts ORDER BY id DESC");
}
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
array_push($postArray, $myPost);
}
return $postArray;
}
?>
function GetBlogPosts($inId=null, $inTagId =null)
{
if (!empty($inId))
{
$query = mysql_query("SELECT * FROM blog_posts WHERE id = " . $inId . " ORDER BY id DESC");
}
else if (!empty($inTagId))
{
$query = mysql_query("SELECT blog_posts.* FROM blog_post_tags LEFT JOIN (blog_posts) ON (blog_post_tags.postID = blog_posts.id) WHERE blog_post_tags.tagID =" . $tagID . " ORDER BY blog_posts.id DESC");
}
else
{
$query = mysql_query("SELECT * FROM blog_posts ORDER BY id DESC");
}
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
array_push($postArray, $myPost);
}
return $postArray;
}
?>
in blogpost.php :
regel 6 t/m 13
Code (php)
in je index.php:
regel 15 t/m 28
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
include ("includes/includes.php");
$blogPosts = GetBlogPosts();
foreach ($blogPosts as $post)
{
echo "<div class='post'>";
echo "<h2>" . $post->title . "</h2>";
echo "<p>" . $post->post . "<p>";
echo "<span class='footer'>Posted on:". $post->date . " Posted By: " . $post->author . "</span>";
echo "</div>";
}
?>
include ("includes/includes.php");
$blogPosts = GetBlogPosts();
foreach ($blogPosts as $post)
{
echo "<div class='post'>";
echo "<h2>" . $post->title . "</h2>";
echo "<p>" . $post->post . "<p>";
echo "<span class='footer'>Posted on:". $post->date . " Posted By: " . $post->author . "</span>";
echo "</div>";
}
?>
Ik zal even een kleine toelichting geven naar aanleiding van het standaard script dat gedownload kon worden.
in de includes.php :
In deze regel maak je een object aan van BlogPost.
Daarin geef je een aantal variabelen mee welke een object aanmaakt:
Code (php)
1
2
3
2
3
<?php
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
?>
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
?>
Dit is dus de volgorde die wel juist is.
en deze regel van blogpost.php:
Code (php)
1
2
3
2
3
<?php
function __construct($inId=null, $inTitle=null, $inPost=null, $inAuthorId=null, $inDatePosted=null)
?>
function __construct($inId=null, $inTitle=null, $inPost=null, $inAuthorId=null, $inDatePosted=null)
?>
stond een verkeerde opbouw van variabelen. Dus maakt hij het object verkeerd aan en krijg je niet alle waardes uit het object.
Probeer dat eerst eens.
Ik heb het script zelf geprobeerd, dus hij moet het absoluut doen.
Gewijzigd op 29/06/2011 18:39:15 door Jack Sierkstra
Toevoeging op 30/06/2011 09:45:39:
Geachte Ht J. Sierkstra
Bij mij werken ze geloof ik niet
Ik krijg nu een andere foutmelding op lijn 73
Ik wil heel erg graag weten hoe ik dit simpelle blog werkend kan krijgen zodat ik het zelf uit kan bereiden
alle databases heb ik corect maar het werkt nog niet
Kan ik hier misschien bestanden insturen zodat u kun zien wat ik fout doe ?
Jack Sierkstra op 29/06/2011 18:36:54:
in je includes.php :
Regel 9 t/m 32
in blogpost.php :
regel 6 t/m 13
in je index.php:
regel 15 t/m 28
Ik zal even een kleine toelichting geven naar aanleiding van het standaard script dat gedownload kon worden.
in de includes.php :
In deze regel maak je een object aan van BlogPost.
Daarin geef je een aantal variabelen mee welke een object aanmaakt:
Dit is dus de volgorde die wel juist is.
en deze regel van blogpost.php:
stond een verkeerde opbouw van variabelen. Dus maakt hij het object verkeerd aan en krijg je niet alle waardes uit het object.
Probeer dat eerst eens.
Ik heb het script zelf geprobeerd, dus hij moet het absoluut doen.
Regel 9 t/m 32
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
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
<?php
function GetBlogPosts($inId=null, $inTagId =null)
{
if (!empty($inId))
{
$query = mysql_query("SELECT * FROM blog_posts WHERE id = " . $inId . " ORDER BY id DESC");
}
else if (!empty($inTagId))
{
$query = mysql_query("SELECT blog_posts.* FROM blog_post_tags LEFT JOIN (blog_posts) ON (blog_post_tags.postID = blog_posts.id) WHERE blog_post_tags.tagID =" . $tagID . " ORDER BY blog_posts.id DESC");
}
else
{
$query = mysql_query("SELECT * FROM blog_posts ORDER BY id DESC");
}
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
array_push($postArray, $myPost);
}
return $postArray;
}
?>
function GetBlogPosts($inId=null, $inTagId =null)
{
if (!empty($inId))
{
$query = mysql_query("SELECT * FROM blog_posts WHERE id = " . $inId . " ORDER BY id DESC");
}
else if (!empty($inTagId))
{
$query = mysql_query("SELECT blog_posts.* FROM blog_post_tags LEFT JOIN (blog_posts) ON (blog_post_tags.postID = blog_posts.id) WHERE blog_post_tags.tagID =" . $tagID . " ORDER BY blog_posts.id DESC");
}
else
{
$query = mysql_query("SELECT * FROM blog_posts ORDER BY id DESC");
}
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
array_push($postArray, $myPost);
}
return $postArray;
}
?>
in blogpost.php :
regel 6 t/m 13
Code (php)
in je index.php:
regel 15 t/m 28
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
include ("includes/includes.php");
$blogPosts = GetBlogPosts();
foreach ($blogPosts as $post)
{
echo "<div class='post'>";
echo "<h2>" . $post->title . "</h2>";
echo "<p>" . $post->post . "<p>";
echo "<span class='footer'>Posted on:". $post->date . " Posted By: " . $post->author . "</span>";
echo "</div>";
}
?>
include ("includes/includes.php");
$blogPosts = GetBlogPosts();
foreach ($blogPosts as $post)
{
echo "<div class='post'>";
echo "<h2>" . $post->title . "</h2>";
echo "<p>" . $post->post . "<p>";
echo "<span class='footer'>Posted on:". $post->date . " Posted By: " . $post->author . "</span>";
echo "</div>";
}
?>
Ik zal even een kleine toelichting geven naar aanleiding van het standaard script dat gedownload kon worden.
in de includes.php :
In deze regel maak je een object aan van BlogPost.
Daarin geef je een aantal variabelen mee welke een object aanmaakt:
Code (php)
1
2
3
2
3
<?php
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
?>
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
?>
Dit is dus de volgorde die wel juist is.
en deze regel van blogpost.php:
Code (php)
1
2
3
2
3
<?php
function __construct($inId=null, $inTitle=null, $inPost=null, $inAuthorId=null, $inDatePosted=null)
?>
function __construct($inId=null, $inTitle=null, $inPost=null, $inAuthorId=null, $inDatePosted=null)
?>
stond een verkeerde opbouw van variabelen. Dus maakt hij het object verkeerd aan en krijg je niet alle waardes uit het object.
Probeer dat eerst eens.
Ik heb het script zelf geprobeerd, dus hij moet het absoluut doen.
1. Download de source files van de bovenstaande link die je zelf gegeven heb.
2. Je krijgt nu als het goed is een .zip bestand met de naam: SimpleBlogFiles.zip
3. Pak ze uit in je root directory.
4. Ga naar je PHPMyAdmin en maak een nieuwe database aan met bijvoorbeeld de naam: blog.
5. Selecteer de database en druk vervolgens op het tabblad 'importeer'.
6. Nu krijg je een upload scherm, waar je het bestand selecteert die in het .zip bestandje staat genaamd: nettuts_blog.sql.
7. Als deze geupload is, krijg je een melding dat er een geslaagde query is uitgevoerd.
8. Nu zijn je database en je tabellen goed opgezet.
9. Om een verbinding met de database te maken heb je natuurlijk een verbinding nodig. Dus navigeer je naar het bestand: includes/includes.php
10. In het stukje volgende stukje code verander jij je gegevens:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$connection = mysql_connect('localhost', '***GEBRUIKERSNAAM***', '***WACHTWOORD***') or die ("<p class='error'>Sorry, we were unable to connect to the database server.</p>");
$database = "blog";
mysql_select_db($database, $connection) or die ("<p class='error'>Sorry, we were unable to connect to the database.</p>");
?>
$connection = mysql_connect('localhost', '***GEBRUIKERSNAAM***', '***WACHTWOORD***') or die ("<p class='error'>Sorry, we were unable to connect to the database server.</p>");
$database = "blog";
mysql_select_db($database, $connection) or die ("<p class='error'>Sorry, we were unable to connect to the database.</p>");
?>
11. Als je nu naar je index.php gaat zul je zien dat de site wel laadt maar er nog een aantal foutmeldingen te zien zijn.
12. Dus verander je het volgende stukje code:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['postfull'], $row["author_id"], $row['dateposted']);
array_push($postArray, $myPost);
}
?>
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['postfull'], $row["author_id"], $row['dateposted']);
array_push($postArray, $myPost);
}
?>
Met het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
array_push($postArray, $myPost);
}
?>
$postArray = array();
while ($row = mysql_fetch_assoc($query))
{
$myPost = new BlogPost($row["id"], $row['title'], $row['post'], $row['author_id'], $row['date_posted']);
array_push($postArray, $myPost);
}
?>
13. Als je nu de index.php pagina veranderd zul je zien dat de foutmeldingen weg zijn.
$blogPosts = GetBlogPosts();
?>
Foutmelding lijn 18
Uw tutorial is perfect, ik importeerde niet het bestand maar maakte de database zelf
Toch weer deze foutmelding
Daarnaast, welke foutmelding krijg je nu?