DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   PHP (http://www.daniweb.com/forums/forum17.html)
-   -   Explode and Post doesn't seem to work together (http://www.daniweb.com/forums/thread161942.html)

mikeabe Dec 12th, 2008 11:09 am
Explode and Post doesn't seem to work together
 
Hi
(In my php form, i'm getting a bunch of data to Mysql, all of which is working correctly except id and name. id and name are fed from Mysql to the form.)

Here's the problem area:

I'm getting an id AND name from a dropdown menu using EXPLODE.

With this code, all columns are fed correctly to Mysql EXCEPT sid and Student:
('$_POST[Teacher]','$_POST[sid]','$_POST[Student]','$_POST[Date]','$_POST[Tardy]','$_POST[Comment]','$_POST[Absent]','$_POST[Inhouse]','$_POST[Suspension]','$_POST[Allpresent]')";
With the code above, this is what's submitted to MYsql:
sid column is blank. Student column has id AND Student with pipe inbetween (ex: 468|Grundy Joe)




When i use this code:
('$_POST[Teacher]','$sid,'$student','$_POST[Date]','$_POST[Tardy]','$_POST[Comment]','$_POST[Absent]','$_POST[Inhouse]','$_POST[Suspension]','$_POST[Allpresent]')";
With the code above, this is what's submitted to MYsql:
sid column and Student columns are blank.





Here is the complete action code:
<html><a href="http://10.49.5.99/">Home </a><br><br>
<BODY BGCOLOR="EED6AF">
</html>

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("DisciplineIncoming", $con);

$part = explode("|", $_POST['student']);
// $part[0] is now client_id// $part[1] is now name
$sid=$part[0];
$student=$part[1];



$sql="INSERT INTO incoming (Teacher, sid, Student, Date, Tardy, Comment, Absent, Inhouse, Suspension, Allpresent)
VALUES


('$_POST[Teacher]','$sid','$tardy','$_POST[Date]','$_POST[Tardy]','$_POST[Comment]','$_POST[Absent]','$_POST[Inhouse]'

,'$_POST[Suspension]','$_POST[Allpresent]')";








if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }








echo "<h3>Thanks!
<br><br>Your input is now recorded on the master discipline/tardy spreadsheet.
<br><br>Click the Back arrow if you need to input data for another student.
<br><br>If you're finished, you can close this window.";

mysql_close($con)
?>


Can anybody see where i goofed up the code?

Thanks, Mike

robothy Dec 12th, 2008 11:21 am
Re: Explode and Post doesn't seem to work together
 
Where do you set the variable $tardy in your code?

mikeabe Dec 12th, 2008 11:28 am
Re: Explode and Post doesn't seem to work together
 
OH JEEZE, I had to leave and didn't have time to check it.
I'm sorry.
&tardy should be $student.

I'm such a dummy

mikeabe Dec 12th, 2008 11:32 am
Re: Explode and Post doesn't seem to work together
 
I have the correct code on my computer, but doesn't work properly as noted above.

sikka_varun Dec 12th, 2008 11:53 am
Re: Explode and Post doesn't seem to work together
 
Hii...
post your complete code.. also your main html code in here.... coz it will give us more clear idea about how the thing is working...

mikeabe Dec 12th, 2008 12:12 pm
Re: Explode and Post doesn't seem to work together
 
Here's the form code (to-web.php):
<html>
<body>
<a href="http://10.49.5.99/">Home </a>
<BODY BGCOLOR="EED6AF">
<h2><FONT COLOR="#FF0000">Discipline-Praise-Tardy-Absence-Form</FONT></h2>

<b>Click in the Teacher name field and choose your name</b>
</body>
</html>
<form action="incoming.php" method="post">       
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error
connecting to mysql');
$dbname = 'teacher';
mysql_select_db($dbname);
/*LOADS TEACHER NAMES*/
$query="SELECT tnames FROM tchnames ORDER BY tnames ASC";
$result = mysql_query ($query);
echo "<select name=Teacher>";
// printing the list box select command
while($nt=mysql_fetch_array($result)){//Array or records stored in $nt
echo "<option value='$nt[tnames]'>$nt[tnames]</option>";
/* Option values are added by looping through the array */
}
echo "</select>";// Closing of list box
?>
<html>
<body>
<br><br><br>
<b>Click in the Student name field and choose student</b>
<br>
</body>
</html>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die                      ('Error
connecting to mysql');
$dbname = 'student';
mysql_select_db($dbname);




//*LOADS STUDENT NAMES*/
$query="SELECT sid, snames FROM studnames ORDER BY snames ASC";
/* You can add order by clause to the sql statement if the names are to be displayed in
alphabetical order */
$result = mysql_query ($query);
echo "<select name=Student>";
// printing the list box select command
while($nt=mysql_fetch_array($result)){//Array or records stored in $nt



echo '<option value="'.$nt[sid].'|'.$nt[snames].'">' .$nt['snames'].'</option>';


/* Option values are added by looping through the array */
}
echo "</select>";// Closing of list box
?>
<html><body>
<br><br><br>
<b>You can change today's date to another date <FONT COLOR="#FF0000">IF</FONT> you need to.<b>
<br>
<b>Date :</b>
<input type="text" name="Date" value="<?php echo date("Y-m-d"); ?>" />
<br><br>
<b>Tardy:</b><input type="checkbox" name="Tardy" value = "1" /> &nbsp  &nbsp  &nbsp  &nbsp  &nbsp  &nbsp  &nbsp   
<b>Absent</b><input type="checkbox" name="Absent" value = "yes" />&nbsp  &nbsp  &nbsp  &nbsp  &nbsp  &nbsp  &nbsp
<b>All Present:</b><input type="checkbox" name="Allpresent" value = "yes" /> &nbsp  &nbsp  &nbsp  &nbsp  &nbsp  &nbsp  &nbsp 
<br><br>
<b>comment:</b>&nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp&nbsp<input type="submit" VALUE = "Click Here to Submit This Form"
<br>
<textarea rows="7" cols="60" name="Comment" wrap="physical"></textarea><br>
</form>
</body>
</html>




Here's the action code (incoming.php):
<html><a href="http://10.49.5.99/">Home </a><br><br>
<BODY BGCOLOR="EED6AF">
</html>

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("DisciplineIncoming", $con);




$sql="INSERT INTO incoming (Teacher, sid, Student, Date, Tardy, Comment, Absent, Inhouse, Suspension, Allpresent)
VALUES


('$_POST[Teacher]','$sid','$student','$_POST[Date]','$_POST[Tardy]','$_POST[Comment]','$_POST[Absent]','$_POST[Inhouse]'

,'$_POST[Suspension]','$_POST[Allpresent]')";


$part = explode("|", $_POST['student']);
// $part[0] is now client_id// $part[1] is now name
$sid=$part[0];
$student=$part[1];






if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }








echo "<h3>Thanks!
<br><br>Your input is now recorded on the master discipline/tardy spreadsheet.
<br><br>Click the Back arrow if you need to input data for another student.
<br><br>If you're finished, you can close this window.";

mysql_close($con)
?>


Thanks, Mike

sikka_varun Dec 12th, 2008 12:50 pm
Re: Explode and Post doesn't seem to work together
 
Hey.. in incoming.php file...
make sure that the explode is not called after the insert query..
Because in the code you pasted above.. it seems to be that explode is called after the $sid and $student are assigned to query..

put explode and $sid=$part[0]..... statement before $sql insert query statement...
Then check again..

mikeabe Dec 12th, 2008 1:33 pm
Re: Explode and Post doesn't seem to work together
 
It didn't make a difference.

<html><a href="http://10.49.5.99/">Home </a><br><br>
<BODY BGCOLOR="EED6AF">
</html>

<?php
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("DisciplineIncoming", $con);


$part = explode("|", $_POST['student']);
// $part[0] is now client_id// $part[1] is now name
$sid=$part[0];
$student=$part[1];



$sql="INSERT INTO incoming (Teacher, sid, Student, Date, Tardy, Comment, Absent, Inhouse, Suspension, Allpresent)
VALUES


('$_POST[Teacher]','$sid','$','$student','$_POST[Date]','$_POST[Tardy]','$_POST[Comment]','$_POST[Absent]','$_POST[Inhouse]'

,'$_POST[Suspension]','$_POST[Allpresent]')";









if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }








echo "<h3>Thanks!
<br><br>Your input is now recorded on the master discipline/tardy spreadsheet.
<br><br>Click the Back arrow if you need to input data for another student.
<br><br>If you're finished, you can close this window.";

mysql_close($con)
?>

I made another database and forms to debug with.

and when i use ($sid','$','$student',) by themselves, it posts id and student to Mysql, just like it's supposed to:




Thanks, Mike

sikka_varun Dec 14th, 2008 3:20 am
Re: Explode and Post doesn't seem to work together
 
Hi..
tried to find out the error in your code... i could not find any problem... if possible try to debug your code by using stub variables to display the intermediate values... so that you will know till wt point the values are coming correctly.. and you might reach to the trouble point in this way..

mikeabe Dec 14th, 2008 9:31 am
Re: Explode and Post doesn't seem to work together
 
Ok, I'll try that.
Thanks for taking the time to look at it.

Mike


All times are GMT -4. The time now is 10:57 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC