Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
  1. #1
    New Coder
    Join Date
    Nov 2011
    Posts
    21
    Thanks
    0
    Thanked 0 Times in 0 Posts

    UPDATE subject won't work

    Hello,

    I'm trying to make a CMS. I already can get the subjects and pages in my navigation, I can add new subjects and delete them. But it won't work to edit them. Does someone knows what the problem is?

    CONTENT.PHP

    PHP Code:
    <?php require_once("includes/functions.php"); ?>
    <?php 
    require_once("includes/connection.php"); ?>
    <?php find_selected_page
    (); ?>
    <?php 
    include("includes/header.php"); ?>
    <table id="structure">
        <tr>
            <td id="navigation">
                <?php echo navigation($sel_subject$sel_page); ?>
                <br />
                <a href="new_subject.php">+ Add a new subject</a>
            </td>
            <td id="page">
                <?php if(!is_null($sel_subject)) { ?>
                <h2><?php echo $sel_subject['menu_name']; ?></h2>
                <?php } elseif(!is_null($sel_page)) { ?>
                <h2><?php echo $sel_page['menu_name']; ?></h2>
                <div class="page-content">
                    <?php echo $sel_page['content']; ?>
                </div>
                <?php } else { ?>
                <h2>Select a subject or page to edit</h2>
                <?php ?><br />
             </td>
        </tr>
    </table>
    <?php include("require/footer.php"); ?>
    EDIT_SUBJECT.PHP
    PHP Code:
    <?php require_once("includes/functions.php"); ?>
    <?php 
    require_once("includes/connection.php"); ?>
    <?php
        
    if(intval($_GET['subj']) == 0) {
            
    redirect_to("content.php");
        }
        
        if(isset(
    $_POST['submit'])) {
            
    $errors = array();
        
            
    $required_fields = array('menu_name''position''visible');
            foreach(
    $required_fields as $fieldname) {
                if(!isset(
    $_POST[$fieldname]) || empty($_POST[$fieldname])) {
                    
    $errors[] = $fieldname;    
                }
            }
            
            
    $fields_with_lengths = array('menu_name' => 30);
            foreach(
    $fields_with_lengths as $fieldname => $maxlenght) {
                if(
    strlen(trim(mysql_prep($_POST[$fieldname]))) > $maxlength) {
                    
    $errors[] = $fieldname;
                }
            }    
            
            if(empty(
    $errors)) {
                
    $id mysql_prep($_GET['subj']);
                
    $menu_name mysql_prep($_POST['menu_name']);
                
    $position mysql_prep($_POST['position']);
                
    $visible mysql_prep($_POST['visible']);
            
                
    $query "UPDATE subjects SET
                            menu_name = '{$menu_name}',
                            position = {$position},
                            visible = {$visible}
                         WHERE id = {$id}"
    ;
                
    $result mysql_query($query$connection);
                if(
    mysql_affected_rows() == 1) {
                    
    // Succes
                    
    $message "The subject was successfully updated.";
                } else {
                    
    // Failed
                    
    $message "The subject update failed.";
                    
    $message .= "<br />" mysql_error();
                }
            } else {
                
    // Errors occurred    
                
    $message "There were " count($errors) . " errors in the form";
            }    
        }
    ?>
    <?php find_selected_page
    (); ?>
    <?php 
    include("includes/header.php"); ?>
    <table id="structure">
        <tr>
            <td id="navigation">&nbsp;
                <?php echo navigation($sel_subject$sel_page); ?>
            </td>
            <td id="page">
                <h2>Edit Subject: <?php echo $sel_subject['menu_name']; ?></h2>
                <?php
                    
    if(!empty($message)) {
                        echo
    "<p class=\"message\">" $message "</p>";    
                    }
                
    ?>
                <?php
                    
    if(!empty($errors)) {
                        echo 
    "<p class=\"errors\">";
                        echo 
    "Please review the following fileds:<br />";
                        foreach(
    $errors as $error) {
                            echo 
    " - " $error "<br />";    
                        }
                        echo 
    "</p>";
                    }
                
    ?>
                <form action="edit_subject.php?subj=<?php echo 
                
    urlencode($sel_subject['id']); ?>" method="post">
                    <p>Subject name:
                        <input type="text" name="menu_name" value="<?php echo 
                        
    $sel_subject['menu_name']; ?>" id="menu_name" />
                    </p>
                    <p>Position:
                        <select name="position">
                            <?php
                                $subject_set 
    get_all_subjects();
                                
    $subject_count mysql_num_rows($subject_set);
                                for(
    $count=1$count <= $subject_count+1$count++) {
                                    echo 
    "<option value=\"{$count}\"";
                                    if(
    $sel_subject['position'] == $count) {
                                        echo 
    " selected";    
                                    }
                                    echo 
    ">{$count}</option>";    
                                }
                            
    ?>
                        </select>
                    </p>
                    <p>Visible:
                        <input type="radio" name="visible" value="0"<?php
                        
    if($sel_subject['visible'] == 0) { echo " checked"; }
                        
    ?> /> No
                        &nbsp;
                        <input type="radio" name="visible" value="1"<?php
                        
    if($sel_subject['visible'] == 1) { echo " checked"; }
                        
    ?> /> Yes
                    </p>
                    <input type="submit" name="submit" value"Edit Subject" /> 
                    &nbsp;&nbsp;
                    <a href="delete_subject.php?subj=<?php echo 
                    
    urlencode($sel_subject['id']); ?>" onclick="return confirm('Are you sure?');">Delete Subject</a>  
                </form>
                <br />
                <a href="content.php">Cancel</a>
            </td>
        </tr>
    </table>
    <?php include("includes/footer.php"); ?>
    FUNCTIONS.PHP
    PHP Code:
    <?php
        
    function mysql_prep($value) {
        
    $magic_quotes_active get_magic_quotes_gpc();
        
    $new_enough_php function_exists("mysql_reql_escqpe_string");    
        if(
    $new_enough_php) {
            if(
    $magic_quotes_active) { $value stripslashes($value); }
                
    $value mysql_real_escape_string($value);
            } else {
                if(!
    magic_quotes_active) { $value addslashes($value); }
        }
        return 
    $value;
    }

    function 
    redirect_to($location NULL) {
        if(
    $location != NULL) {
            
    header("Location: {$location}");
            exit;        
        }
    }

    function 
    confirm_query($result_set) {
        if(!
    $result_set) {
            die(
    "Database query failed: " .mysql_error());
        }
    }

    function 
    get_all_subjects() {
        global 
    $connection;
        
    $query "SELECT * 
                 FROM subjects 
                 ORDER BY position ASC"
    ;
        
    $subject_set mysql_query($query$connection);
        
    confirm_query($subject_set);
        return 
    $subject_set;    
    }

    function 
    get_pages_for_subject ($subject_id) {
        global 
    $connection;
        
    $query "SELECT * 
                 FROM pages 
                 WHERE subject_id = {$subject_id} 
                 ORDER BY position ASC"
    ;
        
    $page_set mysql_query($query$connection);
        
    confirm_query($page_set);
        return 
    $page_set;
    }

    function 
    get_subject_by_id($subject_id) {
        global 
    $connection;
        
    $query "SELECT * "
        
    $query .= "FROM subjects ";
        
    $query .= "WHERE id=" $subject_id " "
        
    $query .= "LIMIT 1";
        
    $result_set mysql_query($query$connection);
        
    confirm_query($result_set);
        if(
    $subject mysql_fetch_array($result_set)) {
            return 
    $subject;
        } else {
            return 
    NULL;    
        }
    }

    function 
    get_page_by_id($page_id) {
        global 
    $connection;
        
    $query "SELECT * "
        
    $query .= "FROM pages ";
        
    $query .= "WHERE id=" $page_id " "
        
    $query .= "LIMIT 1";
        
    $result_set mysql_query($query$connection);
        
    confirm_query($result_set);
        if(
    $page mysql_fetch_array($result_set)) {
            return 
    $page;
        } else {
            return 
    NULL;    
        }
    }

    function 
    find_selected_page() {
        global 
    $sel_subject;
        global 
    $sel_page;
        if(isset(
    $_GET['subj'])) {
            
    $sel_subject get_subject_by_id($_GET['subj']);    
            
    $sel_page NULL;
        } elseif(isset(
    $_GET['page'])) {
            
    $sel_subject NULL;
            
    $sel_page get_page_by_id($_GET['page']);    
        } else {
            
    $sel_subject NULL;
            
    $sel_page NULL;    
        }
    }

    function 
    navigation($sel_subject$sel_page) {
        
    $output =  "<ul class=\"subjects\">";
        
    $subject_set get_all_subjects();
        
        while(
    $subject mysql_fetch_array($subject_set)) {
            
    $output .= "<li";
            if (
    $subject["id"] == $sel_subject['id']) { $output .= 
                class=\"selected\""
    ;    }
            
    $output .= "><a href=\"edit_subject.php?subj=" urlencode($subject["id"]) . 
                
    "\">{$subject["menu_name"]}</a></li>";
            
    $page_set get_pages_for_subject($subject["id"]);
            
    $output .= "<ul class=\"pages\">";
            
            while(
    $page mysql_fetch_array($page_set)) {
                
    $output .= "<li";
                if (
    $page["id"] == $sel_page['id']) { $output .= " class=\"selected\""; }
                
    $output .= "><a href=\"content.php?page=" urlencode($page["id"]) . 
                    
    "\">{$page["menu_name"]}</a></li>";
            }
            
    $output .= "</ul>";
        }
        
    $output .= "</ul>";
        return 
    $output;
    }

    ?>
    Last edited by RDLyTN; 01-12-2012 at 11:01 AM.

  • #2
    Senior Coder
    Join Date
    Feb 2011
    Location
    Your Monitor
    Posts
    4,091
    Thanks
    51
    Thanked 506 Times in 493 Posts
    Have you tried running that SQL update statement manually via phpmyadmin? - That is one of the best ways to test your SQL.

    Also some of your values don't have ' either side of them in the SQL. While not strictly necessary for integers it still works and I've often found its better to use them.
    My helpful sig is on vacation trying to loose some weight. It got a bit fat and caused a few problems but it will be back at some point!


  •  

    Posting Permissions

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