php form does not save in mysql

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
gwolff2005
Forum Commoner
Posts: 68
Joined: Sun Apr 05, 2009 10:58 am

php form does not save in mysql

Post by gwolff2005 »

Hi guys,
the form I have does not save anything in the mysql table. I have no clue what the reason could be: When I press the go on button it just goes on an empty page but does not save anything. It needs to ADD!!!!! the values to the mysql table and when pressing the button it needs to go to the page passiontest2.php. Please help!!!! Thanks

Code: Select all

<?php require_once('Connections/Login.php'); ?>
<?php
session_start();
?>
<?php
//You will need to update all the below variables
$mysqlhost = "localhost";
$mysqluser = ""***";";
$mysqlpass = ""***";";
$mysqldb = ""***";";
$mysqltable = "users";
$username = "username";
 
// End Variables
 
mysql_connect($mysqlhost, $mysqluser, $mysqlpass);
mysql_select_db($mysqldb);
 
$query = "SELECT * FROM " . $mysqltable . " WHERE username='" . $username . "'";
 
$result = mysql_query($query) or die("There was a mysql error");
while($row = mysql_fetch_array($result)){
    $currentpo = $row['resultspo'];
    $currentmo = $row['resultsmo'];
}
 
function showForm () {
    echo <<<SHOWFORM
<form id="form1" name="form1" method="post" action="">
  <table width="699" border="0" align="center" cellspacing="5" class="style1">
    <tr>
      <td colspan="3"><div align="center"><span class="style4">Your Passion Test</span></div></td>
    </tr>
    <tr>
      <td width="24">&nbsp;</td>
      <td width="429">&nbsp;</td>
      <td width="220"><div align="right">Saturday, 03/28/09</div></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><div align="right">$_SESSION[MM_firstname]</div></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><div align="right"></div></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>1</td>
      <td><strong>I like talking to people. </strong><br />
          </b></td>
      <td><div align="left">
          <input name="po1" type="radio" value="0" />
        0
        <input name="po1" type="radio" value="1" />
        1
        <input name="po1" type="radio" value="2" />
        2
        <input name="po1" type="radio" value="3" />
        3
        <input name="po1" type="radio" value="4" />
        4
        <input name="po1" type="radio" value="5" />
        5</div></td>
    </tr>
    <tr>
      <td>2</td>
      <td>It is important for me what other people think. </td>
      <td><p>
          <label></label>
          <label></label>
          <input name="mo2" type="radio" value="0" />
        0
        <input name="mo2" type="radio" value="1" />
        1
        <input name="mo2" type="radio" value="2" />
        2
        <input name="mo2" type="radio" value="3" />
        3
        <input name="mo2" type="radio" value="4" />
        4
        <input name="mo2" type="radio" value="5" />
        5<br />
        <br />
      </p></td>
    </tr>
    <tr>
      <td>3</td>
      <td class="style1">My level of excitement is high right now. </td>
      <td><p>
          <label></label>
          <input name="mo3" type="radio" value="0" />
        0
        <input name="mo3" type="radio" value="1" />
        1
        <input name="mo3" type="radio" value="2" />
        2
        <input name="mo3" type="radio" value="3" />
        3
        <input name="mo3" type="radio" value="4" />
        4
        <input name="mo3" type="radio" value="5" />
        5<br />
      </p></td>
    </tr>
    <tr>
      <td>4</td>
      <td>I like solving mathematical tasks. </td>
      <td><input name="po4" type="radio" value="0" />
        0
        <input name="po4" type="radio" value="1" />
        1
        <input name="po4" type="radio" value="2" />
        2
        <input name="po4" type="radio" value="3" />
        3
        <input name="po4" type="radio" value="4" />
        4
        <input name="po4" type="radio" value="5" />
        5</td>
    </tr>
  </table>
  <p align="center">
    <input name="Submit" type="submit" class="style1" value="go on" />
  </p>
</form>
SHOWFORM;
}//Close showForm()
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Your Passion Test</title>
<style type="text/css">
<!--
.style1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: bold;
    color: #000033;
}
.style3 {font-family: Verdana, Arial, Helvetica, sans-serif}
.style4 {
    font-size: 20px;
    color: #996600;
}
-->
</style>
</head>
 
<body>
<?php 
if (!isset($_POST['Submit'])) {
showForm();
} else {
$pagepo = ($_POST['po1'] + $_POST['po4']);
$pagemo = ($_POST['mo2'] + $_POST['mo3']);
 
$newpo = ($currentpo + $pagepo);
$newmo = ($currentmo + $pagemo);
} 
$query = "UPDATE ".$mysqltable." SET resultspo = '".$newpo."', resultsmo = '".$newmo."' WHERE username = '".$username."' AND id = '".$_SESSION['id']."'";
 
 mysql_query($query) or die("There was a mysql error<br />Query: {$query}<br />Error Returned: " . mysql_error());
   //JavaScript page redirect...
// Close if/else
 
 
?>
</body>
</html>
Last edited by John Cartwright on Fri Apr 24, 2009 2:48 pm, edited 1 time in total.
Reason: Fixed [php][/php] tags and removed db credentials
gwolff2005
Forum Commoner
Posts: 68
Joined: Sun Apr 05, 2009 10:58 am

Re: php form does not save in mysql

Post by gwolff2005 »

Hi guys,

What I dont understand is the fiollowing when I answer the questions and press go on the following comes up:

Notice: Undefined variable: currentpo in /home/guntmar/public_html/passiontest.php on line 169
Notice: Undefined variable: currentmo in /home/guntmar/public_html/passiontest.php on line 170

I defined the variables at the beginning: What is wrong??

Code: Select all

 
//You will need to update all the below variables
$mysqlhost = "localhost";
$mysqluser = "guntmar";
$mysqlpass = "";
$mysqldb = "";
$mysqltable = "users";
$username = "username";
$currentpo = "resultspo";
$currentmo = "resultsmo";
 
Last edited by Benjamin on Fri Apr 24, 2009 8:41 pm, edited 2 times in total.
Reason: Added code tags, Removed database password and database name
kaiser0427
Forum Newbie
Posts: 9
Joined: Thu Apr 23, 2009 3:38 pm

Re: php form does not save in mysql

Post by kaiser0427 »

from first glance you've not supplied an action for the form.

replace line 29 with this

Code: Select all

<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
another thing I saw use the INSERT INTO instead of UPDATE (if these are new additions to the database) on this line

Code: Select all

 
$query = "UPDATE ".$mysqltable." SET resultspo = '".$newpo."', resultsmo = '".$newmo."' WHERE username = '".$username."' AND id = '".$_SESSION['id']."'";
 
Last edited by Benjamin on Fri Apr 24, 2009 8:42 pm, edited 2 times in total.
Reason: Fixed code tags
irshad_sheikh
Forum Newbie
Posts: 7
Joined: Mon Jan 19, 2009 1:57 am

Re: php form does not save in mysql

Post by irshad_sheikh »

hey Hello;

You have not specified the form action,
You have to specify like this

Code: Select all

 
<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
 
:)
eskio
Forum Commoner
Posts: 66
Joined: Tue Apr 01, 2008 1:00 am

Re: php form does not save in mysql

Post by eskio »

you do not have to specify the action attribute of the form. You can leave it blank as far as you call the same page, isset($_POST['Submit']) is on the same page.
if (!isset($_POST['Submit'])) {
showForm();
} else {
$pagepo = ($_POST['po1'] + $_POST['po4']);
$pagemo = ($_POST['mo2'] + $_POST['mo3']);

$newpo = ($currentpo + $pagepo);
$newmo = ($currentmo + $pagemo);
}
$query = "UPDATE ".$mysqltable." SET resultspo = '".$newpo."', resultsmo = '".$newmo."' WHERE username = '".$username."' AND id = '".$_SESSION['id']."'";

mysql_query($query) or die("There was a mysql error<br />Query: {$query}<br />Error Returned: " . mysql_error());
the query ($query and mysql_query($query)) should be inside the if statement
gwolff2005
Forum Commoner
Posts: 68
Joined: Sun Apr 05, 2009 10:58 am

Re: php form does not save in mysql

Post by gwolff2005 »

Thanks. It works now!
Post Reply