www.webdeveloper.com
Results 1 to 6 of 6

Thread: Exercises won't work

  1. #1
    Join Date
    May 2007
    Location
    London, United Kingdom
    Posts
    430

    Exercises won't work

    *sigh* Its been one of "those" evenings of studying where nothing makes sense and nothing works...

    Admin Page
    PHP Code:
    <?php

    require_once('dbc.php');
    require_once(
    'apps.php');

    $dbc mysqli_connect(DB_HOSTDB_USERDB_PASSWORD) or die('Problem Connecting' mysqli_connect_error());
        
    mysqli_select_db($dbcDB_NAME);
        
    $query "SELECT * FROM guitarwars ORDER BY score DESC, date ASC";
    $data mysqli_query($dbc$query) or die('Problem Querying' mysqli_connect_error());;

    echo 
    '<table cellpadding="5">';
    while(
    $row mysqli_fetch_array($data))
        {    echo 
    '<tr><td><strong>' $row['name'] . '</strong></td>';
            echo 
    '<td>' $row['date'] . '</td>';
            echo 
    '<td>' $row['score'] . '</td>';
            echo 
    '<td><a href="removescore.php?id='.$row['id'].'&amp;date='.$row['date'].'&amp;name='.$row['name'].'&amp;score='.$row['score'].'&amp;screenshot='.$row['screenshot'].'">Remove</a></td></tr>';    
        }
    echo 
    '</table>';

    mysqli_close($dbc);

    ?>
    Remove Score Script:
    PHP Code:
    <?php
      
    require_once('dbc.php');
    require_once(
    'apps.php');

        if(isset(
    $_GET['id']) && isset($_GET['date']) && isset($_GET['name']) && isset($_GET['score']) && isset($_GET['screenshot']))
        {    
    //grab score data
            
    $id $_GET['id'];
            
    $date $_GET['date'];
            
    $name $_GET['name'];
            
    $score $_GET['score'];
            
    $screenshot $_GET['screenshot'];
        }
        elseif(isset(
    $_POST['id']) && isset($_POST['name']) && isset($_POST['score']))
        {    
    //grab the post data
            
    $id $_POST['id'];
            
    $name $_POST['name'];
            
    $score $_POST['score'];
        }
        else {    echo 
    '<p class="error">Sorry, no score was specified for removal.</p>'; }

        if(isset(
    $_POST['submit']))
        {    if(
    $_POST['confirm'] == 'Yes')
            {    
    //delete the screenshot image from file
                
    @unlink(GW_UPLOADPATH $screenshot);
                
                
    //connect to database
                
    $dbc mysqli_connect(DB_HOSTDB_USERDB_PASSWORD) or die('Problem Connecting' mysqli_connect_error());
                
    mysqli_select_db($dbcDB_NAME);
                
                
    //delete score data from db
                
    $query "DELETE FROM guitarwars WHERE id = $id LIMIT = 1";
                
                
    mysqli_query($dbc$query);
                
    mysqli_close($dbc);
                
                
    //confirmation
                
    echo '<p>The high score of ' .$score ' for ' $name ' was succesfully deleted.</p>';
            }
            else {    echo 
    '<p class="error">The high score was not removed.</p>'; }
        }
        
        elseif(isset(
    $id) && isset($name) && isset($date) && isset($score))
        {
            echo 
    '<p>Are you sure that you want to delete the following score?</p>';
            echo 
    '<p><strong>Name: </strong>' $name '<br /><strong>Date: </strong>' $date '<br /><strong>Score: </strong>' $score '</p>';
            echo 
    '<form method="post" action="removescore.php">';
            echo 
    '<input type="radio" name="confirm" value="Yes" /> Yes ';
            echo 
    '<input type="radio" name="confirm" value="No" checked="checked" /> No <br />';
            echo 
    '<input type="submit" value="Submit" name="submit" />';
            
            echo 
    '<input type="hidden" name="id" value="' $id '" />';
            echo 
    '<input type="hidden" name="name" value="' $name '" />';
            echo 
    '<input type="hidden" name="score" value="' $score '" />';
            echo 
    '</form>';
        }
        
        echo 
    '<p><a href="admin.php">&lt;&lt; Back to Admin Page</a></p>';
        

    ?>
    It all runs and works all dandy, except, even though confirmation that a row was removed, it wasn't. Coz when you click the admin page link. The score is still there...

  2. #2
    Join Date
    Jan 2007
    Location
    Wisconsin
    Posts
    2,120
    On just about every data-modification call, you should probably run a few checks to ensure that the data was changed, rather than performing the query and assuming it worked:

    PHP Code:
    mysqli_query($dbc$query); 
    ... should be ...

    PHP Code:
    if (mysqli_query($dbc$query)) {
      
    // query ran ... did we alter any rows?
      
    if (mysqli_affected_rows() > 0) {
         
    // mission complete.

         // DEBUG:
         
    print "<p>mission complete.</p>\n";
      } else {
        
    // even etter-er failure.

        // DEBUG:
        
    print "<p>no rows affected ... ohnoz!</p>";
      }
    } else {
      
    // utter failure.

      // DEBUG:
      
    print "<p>MySQL error: " mysqli_error() . "</p>\n";

    Or something like that ... So, can you get some checking in there and let us know whether you're getting "mission complete" or MySQL error's, etc.?

  3. #3
    Join Date
    May 2007
    Location
    London, United Kingdom
    Posts
    430

    Doesn't work

    PHP Code:
    //connect to database
            
    $dbc mysqli_connect(DB_HOSTDB_USERDB_PASSWORDDB_NAME) or die('Problem Connecting' mysqli_connect_error());
            
    $query "DELETE FROM guitarwars WHERE id = $id LIMIT 1";
            
            if(
    mysqli_query($dbc$query))
                {    if(
    mysqli_affected_rows() > 0)
                    {
                        print 
    '<p>Mission Complete</p>';
                    }
                    else { print 
    '<p>No rows Affected</p>'; }
                }
            
    mysqli_close($dbc);
            
    //confirmation
            
    echo '<p>High score of '$score .' belonging to '$name .' was removed successfully.</p>'
    I got the script working... (Still not sure how and why it's written the way it is. Guess I will be sitting stuck on this chapter until I figure it out) But when I add mysqli_affected_rows(), it always prints No rows affected, even though rows from the DB are being removed...

  4. #4
    Join Date
    Nov 2008
    Posts
    2,477
    You need to pass the link identifier into the mysqli_affected_rows function.

  5. #5
    Join Date
    May 2007
    Location
    London, United Kingdom
    Posts
    430

    silly question

    Quote Originally Posted by Mindzai View Post
    You need to pass the link identifier into the mysqli_affected_rows function.
    Link identifier?

  6. #6
    Join Date
    Oct 2009
    Posts
    86
    Take a look at the second example here

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

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



Recent Articles