foutje in tutorial blog

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen Plum

Jeroen Plum

29/06/2011 09:45:29
Quote Anchor link
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
 
PHP hulp

PHP hulp

10/04/2021 16:49:26
 
- SanThe -

- SanThe -

29/06/2011 10:14:59
Quote Anchor link
Aan de fout te zien is de query mislukt. Bouw goede foutafhandeling in dan krijg je waarschijnlijk een duidelijkere error te zien.
 
Jeroen Plum

Jeroen Plum

29/06/2011 10:36:46
Quote Anchor link
- 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
 
Jasper DS

Jasper DS

29/06/2011 10:38:11
Quote Anchor link
JEROEN pLUM op 29/06/2011 10:36:46:
- 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
 
- SanThe -

- SanThe -

29/06/2011 10:38:16
 
Kevin van Leeuwen

Kevin van Leeuwen

29/06/2011 15:53:45
Quote Anchor link
Inderdaad,

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
 
Jack Sierkstra

Jack Sierkstra

29/06/2011 17:19:30
Quote Anchor link
Geef eens een kopie van de code van : includes.php.
 
Pieter van Linschoten

Pieter van Linschoten

29/06/2011 17:49:36
Quote Anchor link
Op regel 15 of 16 van includes.php staat het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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");
?>


Maak daar eens van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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");  
?>
 
Jack Sierkstra

Jack Sierkstra

29/06/2011 18:36:54
Quote Anchor link
in je includes.php :

Regel 9 t/m 32

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
}


?>


in blogpost.php :

regel 6 t/m 13

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

public $id;
public $title;
public $post;
public $author;
public $date;

function
__construct($inId=null, $inTitle=null, $inPost=null, $inAuthorId=null, $inDatePosted=null)
{


?>


in je index.php:

regel 15 t/m 28

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
    }

?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
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
 
Jeroen Plum

Jeroen Plum

30/06/2011 07:17:08
Quote Anchor link
nou ik krijg nu tock veel fouten ik zal vandaag wel opnieuw beginnen

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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
}


?>


in blogpost.php :

regel 6 t/m 13

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

public $id;
public $title;
public $post;
public $author;
public $date;

function
__construct($inId=null, $inTitle=null, $inPost=null, $inAuthorId=null, $inDatePosted=null)
{


?>


in je index.php:

regel 15 t/m 28

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>";
    }

?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
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.
 
Jack Sierkstra

Jack Sierkstra

30/06/2011 11:27:03
Quote Anchor link
Apart.. Maar ik zal even een kleine tutorial voor je schrijven:

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>");

?>


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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
    }

?>


Met het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);

    }

?>


13. Als je nu de index.php pagina veranderd zul je zien dat de foutmeldingen weg zijn.
 
Jeroen Plum

Jeroen Plum

02/07/2011 02:44:45
Quote Anchor link
<php>
$blogPosts = GetBlogPosts();
?>

Foutmelding lijn 18

Uw tutorial is perfect, ik importeerde niet het bestand maar maakte de database zelf

Toch weer deze foutmelding
 
Niels K

Niels K

02/07/2011 10:19:50
Quote Anchor link
Nogmaals.. Let op je fouten afhandeling!



Daarnaast, welke foutmelding krijg je nu?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.