Jump to content

Archived

This topic is now archived and is closed to further replies.

bxmachines77

Won't Post To SQL

Recommended Posts

Hello,
I'm very new at PHP and SQL with enough knowledge to first build a table and try to fill it with the code below. The problem is even though it says your information was posted to the server, nothing is there. I don't know if I need to query it but it's suppose to post into the table which is in the script. I appreciate any help and thanks in advance.

<?php
$textbox1name = $_POST['textbox1name'];
$textbox2date = $_POST['textbox2date'];
$check1male = $_POST['check1male'];
$check2female = $_POST['check2female'];
$text3phone = $_POST['text3phone'];
$textbox4county = $_POST['textbox4county'];
$check3personwithimpairment = $_POST['check3personwithimpairment'];
$check4family_member_significant_other = $_POST['check4family_member_significant_other'];
$textbox5other_specify = $_POST['textbox5other_specify'];
$textbox6business_agency = $_POST['textbox6business_agency'];
$chech5advocacy_legal_services = $_POST['chech5advocacy_legal_services'];
$check9_architectual_barrier_services = $_POST['check9_architectual_barrier_services'];
$check7_assistive_devices_equipment_services = $_POST['check7_assistive_devices_equipment_services'];
$check8_benefits_advisment = $_POST['check8_benefits_advisment'];
$check10_business_industry_agency_services = $_POST['check10_business_industry_agency_services'];
$check11_childrens_services = $_POST['check11_childrens_services'];
$check12_communication_services = $_POST['check12_communication_services'];
$check13_family_services = $_POST['check13_family_services'];
$check14_housing_home_modification_other_shelter_services = $_POST['check14_housing_home_modification_other_shelter_services'];
$chech15_il_skills_traing_life_skills_training = $_POST['chech15_il_skills_traing_life_skills_training'];
$check16_inforamtion_referral = $_POST['check16_inforamtion_referral'];
$check17_mobility_training = $_POST['check17_mobility_training'];
$check18_peer_counseling_services= $_POST['check18_peer_counseling_services'];
$check19_preventative_services = $_POST['check19_preventative_services'];
$check20_prostheses_orthics_other_appliances = $_POST['check20_prostheses_orthics_other_appliances'];
$check21_recreational_services = $_POST['check21_recreational_services'];
$check22_rehabilitation_technology_services = $_POST['check22_rehabilitation_technology_services'];
$check24_transportation_services = $_POST['check24_transportation_services'];
$check25_youth_services = $_POST['check25_youth_services'];
$check26_vocational_services = $_POST['check26_vocational_services'];
$check27_voter_reistration = $_POST['check27_voter_reistration'];
$textbox7_staff_person_date1 = $_POST['textbox7_staff_person_date1'];
$textbox8_staff_person_date2 = $_POST['textbox8_staff_person_date2'];
mysql_connect("localhost.org.com", "61606", "password") or die(mysql_error());
mysql_select_db("61606") or die(mysql_error());
mysql_query("INSERT INTO `servicerecord` VALUES ('$textbox1name', '$textbox2date', '$check1male', '$check2female', '$text3phone', '$textbox4county', '$check3personwithimpairment', '$check4family_member_significant_other', '$textbox5other_specify', '$textbox6business_agency', '$chech5advocacy_legal_services', '$check9_architectual_barrier_services', '$check10_business_industry_agency_services', '$check11_childrens_services', '$check12_communication_services', '$check13_family_services', '$check14_housing_home_modification_other_shelter_services', '$chech15_il_skills_traing_life_skills_training', '$check16_inforamtion_referral', '$check17_mobility_training', '$check18_peer_counseling_services', '$check19_preventative_services', '$check20_prostheses_orthics_other_appliances', '$check21_recreational_services', '$check22_rehabilitation_technology_services', '$check24_transportation_services', '$check25_youth_services', '$check26_vocational_services', '$check27_voter_reistration', '$textbox7_staff_person_date1', '$textbox8_staff_person_date2')");
Print "Your information has been successfully added to the database.";
?>

Share this post


Link to post
Share on other sites
your query needs to be like this:

[!--sql--][div class=\'sqltop\']SQL[/div][div class=\'sqlmain\'][!--sql1--][span style=\'color:blue;font-weight:bold\']INSERT[/span] [color=green]INTO[/color] [color=orange]tablename[/color] (column1, column2, column3) VALUES ([color=red]'$value1'[/color],[color=red]'$value2'[/color],[color=red]'$value3'[/color])
[!--sql2--][/div][!--sql3--]

Share this post


Link to post
Share on other sites
This script is a bit harsh. Too much code
I would advise using the following method:

$sql = "";
foreach ($_POST as $field => $value)
{
if ($value != "")
{
$append = ($sql == "") ? "" : ", ";
$sql .= "$append'$value'";
}
}
$query = "INSERT INTO `db` VALUES ($sql)";

and if that does work out add another $sql for the field names according to the form input names, and match them with the db field names.

Share this post


Link to post
Share on other sites
[!--quoteo(post=382261:date=Jun 10 2006, 12:43 PM:name=joquius)--][div class=\'quotetop\']QUOTE(joquius @ Jun 10 2006, 12:43 PM) [snapback]382261[/snapback][/div][div class=\'quotemain\'][!--quotec--]
This script is a bit harsh. Too much code
I would advise using the following method:

$sql = "";
foreach ($_POST as $field => $value)
{
if ($value != "")
{
$append = ($sql == "") ? "" : ", ";
$sql .= "$append'$value'";
}
}
$query = "INSERT INTO `db` VALUES ($sql)";

and if that does work out add another $sql for the field names according to the form input names, and match them with the db field names.
[/quote]


Could you please tell me what I need to insert into this and where? I'm really new at this. The colum didn't work. I appreciate your help. Thanks.

Share this post


Link to post
Share on other sites
Could someone please explain what to put into and were to put it into the above code so it works? I'm desperate to get this working for a non profit agency. Thanks in advance for your input.

Share this post


Link to post
Share on other sites
you pretty much throw away your old code and use that instead. except, use the correct table name in your sql query (servicerecord)

Share this post


Link to post
Share on other sites
[!--quoteo(post=382421:date=Jun 11 2006, 01:56 AM:name=Crayon Violent)--][div class=\'quotetop\']QUOTE(Crayon Violent @ Jun 11 2006, 01:56 AM) [snapback]382421[/snapback][/div][div class=\'quotemain\'][!--quotec--]
you pretty much throw away your old code and use that instead. except, use the correct table name in your sql query (servicerecord)
[/quote]
Could some one teel me what to insert into the new code and were. Please be specific, I'm really new at this. Thanks in advance.

Share this post


Link to post
Share on other sites
bxmachines,

I have been as much a noobie as you, so I will make this simple.

1) All of the variable declarations -- $variable = $_POST['variable']; -- you can either leave all of these in (which is very verbose), or you can delete all of them & insert joquius's snippet of code instead. It really doesn't matter. To first get it working, you might leave this part as-is, then try his more efficient code later.

2) After you declare all your variables, your INSERT statement is incorrect. It is going to be a very, very LONG statement. Following Violet's suggestion:

[code]$query = "INSERT INTO servicerecord (textbox1name, textbox2name, check1male, check1female ...) VALUES ('$textbox1name', '$textbox2name', '$check1male', '$check1female', ...)";[/code]

EVERY table cell you want to insert data into must be listed in the first set of parentheses(), THEN its matching $variable must be listed in the second set of parentheses(), IN THE SAME ORDER. Also, be sure to follow my (or Violet's) lead as to which things have single & double quotes. Obviously, do not leave the "..." in -- this is just to demonstrate that there will be more entries after it.

3) It is not a good idea to simply spit out "This worked" at the end without checking it somehow. At least until you have debugged your script, add a simple IF statement to check it:

[code]if (mysql_affected_rows == 1) {
   echo "Succeeded";
   }else{
   echo "Failed: ".mysql_affected_rows()." affected rows with Query: ".$query."<br />Error:".mysql_error();
   }[/code]

The above will help you figure out what is going on by giving you the returned error messages (if any). It is also a good idea to leave these statements in, but change them to something like "An Error occurred: please contact the webmaster" so that the poor non-profit people aren't thinking things always worked if they DIDN'T.

Wendy

Can I make a suggestion?

Instead of having checkboxes for Male & Female, instead make these radio buttons. Give them the same name but values of M or F, so that no one can check BOTH of them!

<input type="radio" name="gender" value="M"> Male
<input type="radio" name="gender" value="F"> Female

Then you can simplify to ONE table in your database called "Gender" and assign in the value of $_POST['gender'].

Just an idea --

Wendy

--Always assume the user will screw it up somehow.

Share this post


Link to post
Share on other sites
Try this ok.
[code]
<?php

$textbox1name = $_POST['textbox1name'];
$textbox2date = $_POST['textbox2date'];
$check1male = $_POST['check1male'];
$check2female = $_POST['check2female'];
$text3phone = $_POST['text3phone'];
$textbox4county = $_POST['textbox4county'];
$check3personwithimpairment = $_POST['check3personwithimpairment'];
$check4family_member_significant_other = $_POST['check4family_member_significant_other'];
$textbox5other_specify = $_POST['textbox5other_specify'];
$textbox6business_agency = $_POST['textbox6business_agency'];
$chech5advocacy_legal_services = $_POST['chech5advocacy_legal_services'];
$check9_architectual_barrier_services = $_POST['check9_architectual_barrier_services'];
$check7_assistive_devices_equipment_services = $_POST['check7_assistive_devices_equipment_services'];
$check8_benefits_advisment = $_POST['check8_benefits_advisment'];
$check10_business_industry_agency_services = $_POST['check10_business_industry_agency_services'];
$check11_childrens_services = $_POST['check11_childrens_services'];
$check12_communication_services = $_POST['check12_communication_services'];
$check13_family_services = $_POST['check13_family_services'];
$check14_housing_home_modification_other_shelter_services = $_POST['check14_housing_home_modification_other_shelter_services'];
$chech15_il_skills_traing_life_skills_training = $_POST['chech15_il_skills_traing_life_skills_training'];
$check16_inforamtion_referral = $_POST['check16_inforamtion_referral'];
$check17_mobility_training = $_POST['check17_mobility_training'];
$check18_peer_counseling_services= $_POST['check18_peer_counseling_services'];
$check19_preventative_services = $_POST['check19_preventative_services'];
$check20_prostheses_orthics_other_appliances = $_POST['check20_prostheses_orthics_other_appliances'];
$check21_recreational_services = $_POST['check21_recreational_services'];
$check22_rehabilitation_technology_services = $_POST['check22_rehabilitation_technology_services'];
$check24_transportation_services = $_POST['check24_transportation_services'];
$check25_youth_services = $_POST['check25_youth_services'];
$check26_vocational_services = $_POST['check26_vocational_services'];
$check27_voter_reistration = $_POST['check27_voter_reistration'];
$textbox7_staff_person_date1 = $_POST['textbox7_staff_person_date1'];
$textbox8_staff_person_date2 = $_POST['textbox8_staff_person_date2'];

mysql_connect("localhost.org.com", "61606", "password") or die(mysql_error());
mysql_select_db("61606") or die(mysql_error());

$query="INSERT INTO servicerecord VALUES
('$textbox1name', '$textbox2date', '$check1male', '$check2female', '$text3phone', '$textbox4county', '$check3personwithimpairment', '$check4family_member_significant_other', '$textbox5other_specify', '$textbox6business_agency', '$chech5advocacy_legal_services', '$check9_architectual_barrier_services', '$check10_business_industry_agency_services', '$check11_childrens_services', '$check12_communication_services', '$check13_family_services', '$check14_housing_home_modification_other_shelter_services', '$chech15_il_skills_traing_life_skills_training', '$check16_inforamtion_referral', '$check17_mobility_training', '$check18_peer_counseling_services', '$check19_preventative_services', '$check20_prostheses_orthics_other_appliances', '$check21_recreational_services', '$check22_rehabilitation_technology_services', '$check24_transportation_services', '$check25_youth_services', '$check26_vocational_services', '$check27_voter_reistration', '$textbox7_staff_person_date1', '$textbox8_staff_person_date2')";

$check="select * from servicerecord where id='$id' ";

$check_result=mysql_query($check);

while($record=mysql_fetch_assoc($check_result) {

if($record["id"]==1) {

echo " Thank You Data Entered Into Database";
exit;


}else{

echo"Sorry There Was A Problam Please Try Agin";
exit;
}
?>
[/code]


ps. program how you want ok good luck mate.

Share this post


Link to post
Share on other sites
Hello all,
Thanks so much for your kind help. It was at least giving me error messages with the added error code but now I get the white screen of death with my code and the one above. The error code was that the values couldn't have '', so I tried nothing and; [''],[],[];['']; and all gave a sytax error but nothing but a white screen now. I'm doing this for a non profit place so any more ideas would be great. Thanks in advance.

Share this post


Link to post
Share on other sites
Hello,
I figured out the syntax error and it now posts the check boxes to the server but not any of the text. I appreciate your help if anyone has any ideas. The server side looks like it's setup right and it wants to give an error message after posting but it's blank after the word error. Thanks again,

Share this post


Link to post
Share on other sites
are you sure your columns are the correct data type for what you are trying to insert into them? that is, you cannot insert text into a column that is a number type, like int.

Share this post


Link to post
Share on other sites
[!--quoteo(post=382762:date=Jun 12 2006, 01:26 AM:name=Crayon Violent)--][div class=\'quotetop\']QUOTE(Crayon Violent @ Jun 12 2006, 01:26 AM) [snapback]382762[/snapback][/div][div class=\'quotemain\'][!--quotec--]
are you sure your columns are the correct data type for what you are trying to insert into them? that is, you cannot insert text into a column that is a number type, like int.
[/quote]


Hello,
Yes, I'm certain that part is right except I didn't know what to use for check marks and have it as bool. I don't know if that's right. It doesn't post any of the info for some reason.

Share this post


Link to post
Share on other sites
For checkmarks, it will submit the value=" " in your <input> area.

If you have <input type="checkbox" value="male" name="gender" /> then it will try to submit "male" if that box is checked. Those should be char or varchar. Look up the definitions of what each type will hold.

Try taking out your "insert" query for a moment & just ask it to echo back to you what was submitted in the form. When you can debug & get it to echo back properly, take out the echo & put your insert command back in.

Wendy

Share this post


Link to post
Share on other sites
Thanks to everyone it's now up and running fine. I couldn't have done it without your kind help. It's for a good cause. Best regards,
Bill

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.