Page 1 of 1

php form does not save in mysql

Posted: Fri Apr 24, 2009 2:44 pm
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>

Re: php form does not save in mysql

Posted: Fri Apr 24, 2009 3:44 pm
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";
 

Re: php form does not save in mysql

Posted: Fri Apr 24, 2009 4:42 pm
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']."'";
 

Re: php form does not save in mysql

Posted: Sat Apr 25, 2009 2:05 am
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'] ?>">
 
:)

Re: php form does not save in mysql

Posted: Sat Apr 25, 2009 3:25 am
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

Re: php form does not save in mysql

Posted: Sat Apr 25, 2009 3:27 am
by gwolff2005
Thanks. It works now!