MisterHamper
asked on
Checkboxes for row-insert on my database
Hey I have this code here, that works pretty good. But what I would like is to add some checkboxes that you could click. If you clicked checkbox 2 and 3, it would then add $query = "INSERT INTO added_items (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username')"; into both added_items2 and added_items3
But I can't really seem to figure out how to do that. Its like my mind is completely blank here!
Would it be something like this:
IF checkbox 1 selected $query = "INSERT INTO added_items (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username')";
IF checkbox 2 selected $query = "INSERT INTO added_items (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username')";
IF checkbox 3 selected $query = "INSERT INTO added_items (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username')"; ?
Please help! Thanks ! :)
But I can't really seem to figure out how to do that. Its like my mind is completely blank here!
Would it be something like this:
IF checkbox 1 selected $query = "INSERT INTO added_items (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username')";
IF checkbox 2 selected $query = "INSERT INTO added_items (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username')";
IF checkbox 3 selected $query = "INSERT INTO added_items (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username')"; ?
Please help! Thanks ! :)
That is indeed how its done.
Only one thing that may cause a problem is that with 3 queries like that you should ideally use mysqli_multi_query from mysqli extension. Having 3 separate queries for each checkbox is straining for the DB.
If you want to stick with old mysql you can run a query every time php detects a selected checkbox:
if(isset($_POST['items1']) ){
$query = " INSERT INTO added_items1 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
mysql_query($query);
}
if(isset($_POST['items2']) ){
$query = " INSERT INTO added_items2 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
mysql_query($query);
}
If you want to use better mysqli extension then its cleaner:
$query = '';
if(isset($_POST['items1']) ){
$query .= " INSERT INTO added_items1 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
if(isset($_POST['item2'])) {
$query .= " INSERT INTO added_items2 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
if(isset($_POST['item3'])) {
$query .= " INSERT INTO added_items3 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
mysqli_multi_query($connec tion, $query);
Only one thing that may cause a problem is that with 3 queries like that you should ideally use mysqli_multi_query from mysqli extension. Having 3 separate queries for each checkbox is straining for the DB.
If you want to stick with old mysql you can run a query every time php detects a selected checkbox:
if(isset($_POST['items1'])
$query = " INSERT INTO added_items1 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
mysql_query($query);
}
if(isset($_POST['items2'])
$query = " INSERT INTO added_items2 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
mysql_query($query);
}
If you want to use better mysqli extension then its cleaner:
$query = '';
if(isset($_POST['items1'])
$query .= " INSERT INTO added_items1 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
if(isset($_POST['item2']))
$query .= " INSERT INTO added_items2 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
if(isset($_POST['item3']))
$query .= " INSERT INTO added_items3 (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
mysqli_multi_query($connec
ASKER
Thanks alot for that! It seems smart with the better Mysqli extension, so I just tried that.
It gives me this error here though.
SQL server version for the right syntax to use near 'WHERE username=\'Hamper\'' at line 1
It worked fine previously when there was no check-boxes
Maybe I have done something wrong? Could you take a look? Thanks! Else I will just try to go with the original script you posted
It gives me this error here though.
SQL server version for the right syntax to use near 'WHERE username=\'Hamper\'' at line 1
It worked fine previously when there was no check-boxes
Maybe I have done something wrong? Could you take a look? Thanks! Else I will just try to go with the original script you posted
<?php
if(isset($_POST['add']))
{
include 'config.php';
$connection = mysql_connect($server, $dbusername, $dbpassword) or die(mysql_error());
$db = mysql_select_db($db_name,$connection) or die(mysql_error());
$name = mysql_real_escape_string($_POST['name']);
$quantity = mysql_real_escape_string($_POST['quantity']);
$amount = mysql_real_escape_string($_POST['amount']);
$username = mysql_real_escape_string($_SESSION['user_name']);
$query = '';
if(isset($_POST['items1'])){
$query .= " INSERT INTO added_breakfast (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
if(isset($_POST['items2'])){
$query .= " INSERT INTO added_lunch (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
if(isset($_POST['items3'])){
$query .= " INSERT INTO added_brunch (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
if(isset($_POST['items4'])){
$query .= " INSERT INTO added_brunch (name, quantity, amount, username) VALUES ('$name', '$quantity', '$amount', '$username');";
}
mysqli_multi_query($connection, $query);
echo "'$name' have been added to your list";
}
else
{
?>
<form method="post">
<table width="400" border="0" cellspacing="1" cellpadding="2">
<tr>
<td width="100"><b>Name:</b></td>
<td><input name="name" type="text" id="name" maxlength="40"></td>
</tr>
<tr>
<td width="100"><b>Kcal:</b></td>
<td><input name="amount" type="text" id="amount" maxlength="3"></td>
</tr>
<tr>
<td width="100"><b>Priority:</b></td>
<td><input name="quantity" type="text" id="quantity" maxlength="2"></td>
</tr>
<tr>
<td width="100"> </td>
<td> </td>
</tr>
<tr>
</tr>
<td width="100"> </td>
<td><INPUT TYPE=CHECKBOX NAME="items1">items1<BR>
<INPUT TYPE=CHECKBOX NAME="items2">items2<BR>
<INPUT TYPE=CHECKBOX NAME="items3">items3<BR>
<INPUT TYPE=CHECKBOX NAME="items4">items4<BR>
<br><input name="add" type="submit" id="add" value="Add New item"></td>
</tr>
</table>
</form>
<?php
}
?>
the rest of the code needs readjusting to fit mysqli extension. While i do that, could you please provide versions of your php and mysql as well as check that mysqli extension is enabled using phpinfo();
ASKER
Oh wow, thanks alot :-)
Yeah sure. PHP version is 5.2.9, MySQL is 5.2.9, phpMyAdmin is 2.11.9.4
I couldn't quite see where phpinfo(): would be. I am using BlueHost as my hoster, they have a cPanel.
Yeah sure. PHP version is 5.2.9, MySQL is 5.2.9, phpMyAdmin is 2.11.9.4
I couldn't quite see where phpinfo(): would be. I am using BlueHost as my hoster, they have a cPanel.
ASKER
MySQL is 5.0.75-community-log, I mean
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
It seems mysqli extension was enabled, because it working ABSOLUTELY WONDERFULLY!
Thanks alot, my good sir!! :-) Have a nice day
Thanks alot, my good sir!! :-) Have a nice day
ASKER
Thanks alot!!
ASKER
Open in new window