SitePoint Sponsor

User Tag List

Results 1 to 13 of 13

Threaded View

  1. #1
    SitePoint Member
    Join Date
    Aug 2013
    Posts
    15
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    No result from fetchAll();

    Hi,

    I'm totally a newbie in the world of PHP and MySQL. I am reading the book of Kevin Yank and while doing one of his examples, I encountered a weird outcome. I'm sure I followed and typed correctly the code written on his book but I wondered why I'm not getting the same result. I've checked the code back and forth and sure that it is right or maybe I'm missing something.

    I'm posting this here because I know a lot from here are very helpful and very kind to starters like me. Any inputs are highly appreciated. Looking forward for comments so that I can proceed with my studies because I think I am stuck because of this weird error.

    Please see below code for your reference.

    index.html
    HTML Code:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="utf-8">
    	<title>Joke CMS</title>
    </head>
    <body>
    	<h1>Joke Management System</h1>
    	<ul>
    		<li><a href="jokes/">Manage Jokes</a></li>
    		<li><a href="authors/">Manage Authors</a></li>
    		<li><a href="categories/">Manage Joke Categories</a></li>
    	</ul>
    </body>
    </html>
    index.php
    PHP Code:
    <?php
    if (get_magic_quotes_gpc())
    {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list(
    $key$val) = each($process))
    {
    foreach (
    $val as $k => $v)
    {
    unset(
    $process[$key][$k]);
    if (
    is_array($v))
    {
    $process[$key][stripslashes($k)] = $v;
    $process[] = &$process[$key][stripslashes($k)];
    }
    else
    {
    $process[$key][stripslashes($k)] = stripslashes($v);
    }
    }
    }
    unset(
    $process);
    }

    //Display author list
    include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php';
    try {
        
    $result $pdo->query('SELECT id, name FROM author');
    } catch (
    PDOException $e){
        
    $error 'Error fetching authors from database! ' $e->getMessage();
        include 
    'error.html.php';
        exit();


    if (isset(
    $_POST['action']) and $_POST['action'] == 'Delete')
        {
            include 
    $_SERVER['DOCUMENT_ROOT'] . '/includes/db.inc.php';
            
    //Get jokes belonging to author
            
    try {
                
    $sql 'SELECT id FROM joke WHERE authorid = :id';
                
    $s $pdo->prepare($sql);
                
    $s->bindValue(':id'$_POST['id']);
                
    $s->execute();
            } catch (
    PDOException $e){
                
    $error 'Error fetching authors with their jokes! ' $e->getMessage();
                include 
    'error.html.php';
                exit();
            }
            
            
    $result $s->fetchAll();

            
    //Delete joke category entries
            
    try {
                
    $sql 'DELETE FROM jokecategory WHERE jokeid = :id';
                
    $s $pdo->prepare($sql);

                
    //For each joke
                
    foreach ($result as $row)
                    {
                        
    $jokeId $row['id'];
                        
    $s->bindValue(':id'$jokeId);
                        
    $s->execute();
                    }
            } catch (
    PDOException $e){
                
    $error 'Error deleting joke category! ' $e->getMessage();
                include 
    'error.html.php';
                exit();
            }

            
    //Delete jokes belonging to author
            
    try {
                
    $sql 'DELETE FROM joke WHERE authorid = :id';
                
    $s $pdo->prepare($sql);
                
    $s->bindValue(':id'$_POST['id']);
                
    $s->execute();
            } catch (
    PDOException $e){
                
    $error 'Error deleting joke from a specific author! ' $e->getMessage();
                include 
    'error.html.php';
                exit();
            }

            
    //Delete the author
            
    try {
                
    $sql 'DELETE FROM author WHERE id = :id';
                
    $s $pdo->prepare($sql);
                
    $s->bindValue(':id'$_POST['id']);
                
    $s->execute();
            } catch (
    PDOException $e){
                
    $error 'Error deleting the author from database! ' $e->getMessage();
                include 
    'error.html.php';
                exit();
            }

            
    header('Location: .');
            exit();
        }

    foreach (
    $result as $row){
        
    $authors[] = array(
            
    'id' => $row['id'],
            
    'name' => $row['name']
            ); 


    include 
    'authors.html.php';
    ?>
    authors.html.php
    PHP Code:
    <?php
    include_once $_SERVER['DOCUMENT_ROOT'] . '/includes/helper.inc.php';
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8"/>
        <title>Manage Authors</title>
    </head>
    <body>
        <h1>Manage Authors</h1>
        <p><a href="?add">Add new author</a></p>
        <ul>
            <?php foreach($authors as $author): ?>
                <li>
                    <form action="" method="post">
                        <div>
                            <?php echo htmlout($author['name']); ?>
                            <input type="hidden" value="<?php echo htmlout($author['id']); ?>"/>
                            <input type="submit" name="action" value="Edit"/>
                            <input type="submit" name="action" value="Delete"/>
                        </div>
                    </form>
                </li>
            <?php endforeach; ?>
        </ul>
        <p><a href="..">Return to JMS home</a></p>
    </body>
    </html>
    Best regards,
    Karl
    Last edited by Mittineague; Mar 2, 2014 at 22:33.


Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •