user2815059
user2815059

Reputation: 329

Cant update one column in Mysql database through html form

I really hope you can help me with my problem. I have my form completed and all buttons working and everything was hunky dory but today I've decided to add one extra column in my table. Column is called 'Country'. Now, all of my buttons are still working and data is added or updated no problem, except for that one column. Nothing goes there but I can retrieve data from that column no bother.Not sure where did I mess up. This is my first ever contact with php and mysql so please forgive me if I made some silly mistake.Can you help me please???

    <?php

     //adding functions
     function initVars() {
      //declaring variables
     global $ID, $First_name, $Last_name, $Address,$Country,
                     $Ph_number,$add,$find,$reset, $delete,     
                     $update, $next, $previous;

    $ID="";
    $First_name = "";
    $Last_name="";
    $Address = "";
    $Country="";
    $Ph_number="";
    $add = "";
    $find = "";
    $reset="";
    $delete="";
    $update="";
    $next="";
     $previous="";
    }

    initVars();

    function getRecord($query,$resultOffset){

    global $ID, $First_name, $Last_name, $Address,$Country, $Ph_number;
    $result = mysql_query($query);
    $resultCount = mysql_num_rows($result);
        echo "FOUND ", $resultCount, " RESULTS";//3
        $r=0;
        while ($r <= $resultOffset) {
              $rec = mysql_fetch_assoc($result);
            $r = $r + 1;
          }
        $ID=$rec['ID'];
        $First_name = $rec['First_name'];
        $Last_name = $rec['Last_name'];
        $Address = $rec['Address'];
        $Country= $rec['Country'];
        $Ph_number = $rec['Ph_number'];
        return($resultCount);
    }
    // collecting form input
    if ( isset($_POST['First_name'])) $First_name = $_POST['First_name'];
    if ( isset($_POST['Last_name'])) $Last_name = $_POST['Last_name'];
    if ( isset($_POST['Address'])) $Address = $_POST['Address'];
    if ( isset($_POST['Country'])) $$Country = $_POST['Country'];
    if ( isset($_POST['Ph_number'])) $Ph_number = $_POST['Ph_number'];
    if ( isset($_POST['add'])) $add = $_POST['add'];
    if ( isset($_POST['find'])) $find = $_POST['find'];
    if ( isset($_POST['reset'])) $reset = $_POST['reset'];
    if ( isset($_POST['delete'])) $delete = $_POST['delete'];
    if ( isset($_POST['update'])) $update = $_POST['update'];
    if ( isset($_POST['ID'])) $ID = $_POST['ID'];
    if ( isset($_POST['next'])) $next = $_POST['next'];
    if ( isset($_POST['previous'])) $previous = $_POST['previous'];

    if ( isset($_POST['resultOffset'])) $resultOffset = $_POST['resultOffset'];
    if ( isset($_POST['resultCount'])) $resultCount = $_POST['resultCount'];
    if ( isset($_POST['query'])) $query = $_POST['query'];


    // connecting to database
          $connection = mysql_connect('localhost', 'root', '*******')
          or die('Connection to MySql server failed');
           $db = mysql_select_db('myaddressbook', $connection)
        or die('Cannot connect');


    //////////////////////////////////////////////////////////////////////////////

    //BUTTONS

     if ( $add ) {
      if($First_name && $Last_name) {
        echo 'Adding to database'; 

        // adding records to database
        $ins = mysql_query("INSERT INTO people SET First_name='$First_name',       
                Last_name='$Last_name',
        Address='$Address', Country='$Country',Ph_number='$Ph_number'");

         if($ins) echo "Your address book was updated succesfully";
        else echo "Adding data failed";
        initVars(); 

    }
    else echo 'First and last name needed';

    }
    ////////////////////////////////////////////////////////////////////////
    if ( $find ) {
        if($First_name || $Last_name) {

    $query = " SELECT ID, First_name, Last_name, Address , Ph_number FROM people   WHERE  
    First_name LIKE '%{$First_name}%'";
    $result = mysql_query($query);//1
    $resultCount = mysql_num_rows($result);//2
    $resultOffset= 0;
    echo "FOUND ", $resultCount, " RESULTS";//3

    $rows = mysql_fetch_array($result, MYSQL_ASSOC);

    $ID=$rows['ID'];
    $First_name = $rows['First_name'];
    $Last_name = $rows['Last_name'];
    $Address = $rows['Address'];
    $Country= $rows['Country'];
    $Ph_number = $rows['Ph_number'];

    }
    else echo "Enter required field";
    }

     /////////////////////////////////////////////////////////////////

    if ($delete){

     mysql_query(" DELETE   FROM people  WHERE ID = '{$ID}'  ");

     echo('Record deleted'); 

     } 

    //////////////////////////////////////////////////////////////////////
    if ($update){ 

      mysql_query ("UPDATE people 
      SET  First_name='$First_name',
      Last_name='$Last_name',Address='$Address',Country='$Country', Ph_number='$Ph_number' 
      WHERE ID = '{$ID}'"); 
               echo ('Update succesfull');
    }


    /////////////////////////////////////////////////////
    if ($reset){
    initVars();
     }
     /////////////////////////////////////////////////////////////
    if($next){
     if ($resultOffset < $resultCount - 1){
         $resultOffset= $resultOffset + 1;

        $resultCount=getRecord($query,$resultOffset);

    }
    echo "next ", $resultOffset, " of ", $resultCount;
    }

    if ($previous){
    if ($resultOffset > 0){
        $resultOffset= $resultOffset - 1;

         $resultCount=getRecord($query,$resultOffset);

    }   
    echo "prev ", $resultOffset, " of ", $resultCount;

    }


     mysql_close($connection);
     ?> 

And my piece of HTML:

    <html>
    <head><h1 align="center">
    My Address Book </h1>
    <hr></br></br></br>
     </head>

    <body style="color: #000; background-color:#e0e2e6; background-image:url(C:/Users/Marta
    /Desktop/old.jpg);">

    <form action="people.php" method="post">
    <table "width="500"; border="0"; align="center">
    <tr>
    <th>ID:</th>
    <td><label for="textfield"></label>
    <input  type="text"name="ID" size="50" value="<?php echo $ID ?>"/></td>
    <tr><th>First Name:</th>
    <td><input type="text" name="First_name" size="50" value="<?php echo $First_name ?>"   
    /></td></tr>
    <tr><th>Last Name:</th>
    <td><input type="text" name="Last_name" size="50" value="<?php echo $Last_name ?>" 
    /></td></tr>
    <tr><th>Address:</th>
    <td><input type="text" name="Address" size="50" value="<?php echo $Address ?>" /></td> 
    </tr>
    <tr><th>Country:</th>
    <td><input type="text" name="Country" size="50" value="<?php echo $Country ?>" /></td> 
    </tr>
    <tr><th>Ph number:</th>
    <td><input type="text" name="Ph_number" size="50" value="<?php echo $Ph_number ?>" 
    /></td></tr></table>
    <hr>
    <table align="center">
    <tr><td>

    <td><input type="submit" name="find" value="Find" /></td>
    <td><input type="submit" name="add" value="Add" /></td>
    <td><input type="submit" name="delete" value="Delete"/></td>
    <td><input type="submit" name="update" value="Update"/></td>
    <td><input type="submit" name="previous" value="<< Previous" /></td>
    <td><input type="submit" name="next" value="Next >>" /></td>

    <td align="center" colspan="3"><input type="submit" name="reset" value="Reset"/>
    </td></tr></table>
    <input type="hidden" id="resultOffset" name="resultOffset" value="<?php echo   
    $resultOffset ?>">
    <input type="hidden" id="resultCount" name="resultCount" value="<?php echo 
    $resultCount ?>">
   <input type="hidden" id="query" name="query" value="<?php echo $query ?>">
   </form>
   </body>
   </html>

Upvotes: 0

Views: 655

Answers (1)

Guru
Guru

Reputation: 619

change your code: $Country = $_POST['Country']; instead of $$Country = $_POST['Country'];

Upvotes: 2

Related Questions