По этому коду я могу вставить значения флажка в базу данных. Но мне нужно добавить один столбец в phpmyadmin, и в этом столбце мне нужно сохранить значения, например, если я выбрал 2 флажок, мне нужно сохранить значения ckeckbox в одном столбце в другом столбце. Мне нужно сохранить выбранный флажок как ДА и невыделенные значения как НЕТ , Но я хочу, чтобы оба столбца
вот мой код
<input type="checkbox" name="checkbox[]" value="Home" id="pageHome" onChange="toggleVisibility('home');" /><label for="pageHome"> Home</label><img id="home" src="images/icon-tick.png" style="visibility:hidden"/><br/> <input name="checkbox[]" value="About_us" id="page_Aboutus" type="checkbox" onChange="toggleVisibility('aboutus');"><label for="page_Aboutus"> About Us</label><img id="aboutus" src="images/icon-tick.png" style="visibility:hidden" /><br/> <input name="checkbox[]" value="Services" id="pageServices" type="checkbox" onChange="toggleVisibility('services');"><label for="pageServices"> Services</label><img id="services" src="images/icon-tick.png" style="visibility:hidden" /><br/> <input name="checkbox[]" value="Products" id="pageProducts" type="checkbox" onChange="toggleVisibility('products');"><label for="pageProducts"> Products</label><img id="products" src="images/icon-tick.png" style="visibility:hidden"/><br/><br> <input name="checkbox[]" value="Enquiry" id="pageEnquiry" type="checkbox" onChange="toggleVisibility('enquiry');"><label for="pageEnquiry"> Enquiry</label><img id="enquiry" src="images/icon-tick.png" style="visibility:hidden"/><br/><br> <input name="checkbox[]" value="Contact_us" id="pageContact" type="checkbox" onChange="toggleVisibility('Contact');"><label for="pageContact">Contact Us</label><img id="Contact" src="images/icon-tick.png" style="visibility:hidden" /><br/>
PHP-код
$required_pages = implode(',', $_REQUEST['checkBox']); $sql="insert into request_quote(customer_name,organisation,phone_num,email,country,state,city,zipcode,project_type,website_url,website_purpose,website_keyword,Competitors,sample_websites,no_of_updation,required_pages,additional_page,other_details) values('$customer_name','$organisation','$phone_num','$email','$country','$state','$city','$zipcode','$project_type','$website_url','$website_purpose','$website_keyword','$Competitors','$sample_websites','$no_of_updation','$required_pages','$additional_page','$other_details')"; mysql_query($sql) or die(mysql_error());
Вы можете добавить атрибут value='YES'
для каждого из ваших флажков. Затем создайте массив, в котором вы не установили флажок. Потому что, когда мы итерации позже, только проверенные флажки будут отправлены через $_REQUEST
.
$checkBoxes['customer_name']="NO"; $checkBoxes['organisation']="NO"; $checkBoxes['phone_num']="NO"; $checkBoxes['email']="NO"; $checkBoxes['country']="NO"; $checkBoxes['state']="NO"; $checkBoxes['city']="NO"; $checkBoxes['zipcode']="NO"; $checkBoxes['project_type']="NO"; $checkBoxes['website_url']="NO"; $checkBoxes['website_purpose']="NO"; $checkBoxes['website_keyword']="NO"; $checkBoxes['Competitors']="NO"; $checkBoxes['sample_websites']="NO"; $checkBoxes['no_of_updation']="NO"; $checkBoxes['required_pages']="NO"; $checkBoxes['additional_page']="NO"; $checkBoxes['other_details']="NO"; // Only the checked checkboxes wil be itterated below. // This will mean the $value would be YES no matter what. // So I write it literal for SQL-Injection-security foreach ($_REQUEST['checkbox'] as $checkboxName=>$value){ $checkBoxes[$checkBoxName]="YES"; }
И в вашем SQL-Query замените переменные элементами из массива. IE
$sql="insert into request_quote(customer_name) values('".$checkBoxes['customer_name']."')";
Кроме того, непосредственная вставка пользовательского ввода может представлять собой огромный риск для безопасности. Используйте mysql_real_escape_string($value)
для всех пользовательских значений ввода, которые вы планируете использовать в SQL-запросе.
Вы должны посмотреть в $ _POST. W3Schools помогут вам: http://www.w3schools.com/php/php_forms.asp .
Вы должны использовать 3 таблицы и соотносить друг друга
table 1 -> customers (id, name, etc)
table 2 -> required_pages (id, name)
– здесь вы добавите свои опции из флажка (Home, About_us и т. д.). table 3 -> customers_required_pages (id, customer_id, required_page_id)
При сохранении данных вам придется сохранять последовательные:
Ваш клиент:
$sql = "INSERT INTO customers (field1, field2, fieldn...)" $qry = mysql_query($sql);
Получить идентификатор клиента:
$sql = "SELECT LAST_INSERT_ID() AS customerId"; $qry = mysql_query($sql); $customerId = mysql_fetch_assoc($qry);
Сохраните отношения между клиентами и required_pages
<?php foreach ($_REQUEST['checkBox'] as $oneCheckbox => $checkboxValue) { $sql = "INSERT INTO customers_required_pages (customer_id, required_page_id) VALUES ({$customerId['customerId']}, '{$checkboxValue}')"; } ?>
При извлечении ваших данных вы выберете значения из таблицы2, используя левое соединение с таблицей 3, таким образом вы сможете узнать, какие значения или где они выбраны из списка флажков
$sql = "SELECT rp.id, rp.name, IF(crp.customer_id IS NULL, 'NO', 'YES') AS checked FROM required_pages rp LEFT JOIN customers_required_pages crp ON rp.id = crp.required_page_id";
В качестве дополнительного рассмотрим использование MySQLi или PDO вместо mysql в качестве вашей библиотеки баз данных, поскольку использование mysql lib было обескуражено
У меня возникла проблема с сохранением множественного флажка в таблице mysql, но теперь он отлично работает с этим кодом:
<html> <head> <title>Registration Page</title> </head> <body> <?php require("config.php"); ?> <?php if(isset($_POST['submit'])){ $fname = $_POST['fname']; $lname = $_POST['lname']; $gender = $_POST['gender']; $hobbies = implode(",",$_POST['hobbies']); echo $hobbies; $country = $_POST['country']; // echo $hobbies; //foreach($hobbies as $hobbies1){ //echo $hobbies1; //$implode = implode(',',$hobbies1); $sql = "INSERT INTO `userinfo`(`fname`,`lname`,`gender`,`hobbies`,`country`) values('$fname','$lname','$gender','$hobbies','$country')"; //} //$sql = "INSERT INTO `userinfo`(`fname`,`lname`,`gender`,`hobbies`,`country`) // values('$fname','$lname','$gender','$hobbies1','$country')"; $query = mysql_query($sql) or die(mysql_error()); if ($query){ echo "<h1>Data inserted .. Happy coding</h1>"; }else{ echo "<h1>Please check the problem</h1>"; } } //} ?> <form name="registration" method="post" action=""> <table border="1" cellpadding="2" cellspacing="2" align="center"> <tr> <td>First Name:</td><td><input type="text" name="fname" required=""></td> </tr> <tr> <td>Last Name:</td><td><input type="text" name="lname" required=""></td> </tr> <tr> <td>Gender:</td><td><input type="radio" name="gender" value="male" required="">Male <input type="radio" name="gender" value="female" >Female</td> </tr> <tr> <td>Hobbies:</td><td><input type="checkbox" name="hobbies[]" value="tennis">Tennis <br> <input type="checkbox" name="hobbies[]" value="cricket">Cricket <br> <input type="checkbox" name="hobbies[]" value="dance">Dance7 <br> <input type="checkbox" name="hobbies[]" value="sketching">Sketching </td> </tr> <tr> <td>Country:</td> <td> <select name="country"> <option >----select----</option> <option>India</option> <option>Pakistan</option> <option>UAE</option> </select> </td> </tr> <tr> <td><input type="submit" name="submit" value="Register me"></td> </tr> </table> </form> </body> </html>