2016-10-12 15 views
1

Я создал ниспадающий список, а также тип ввода для категории и имени, но в обоих случаях, когда я нажимаю, он направляет меня на другую страницу, но в моей базе данных ничего не сохраняется. company_account это имя таблицы, в которой данные должны быть вставлены он имеет четыре ряда идентификационный код, категория CNAME, оВставка данных в базу данных Mysql

<?php include("./inc/header.inc.php"); 
require("./inc/connect.inc.php"); ?> 

<div> 
<form action = "payment.php" method= "POST"> 
<select id="category" name="category" class="old_ui_selector"> 
    <option value="0" selected="1">Choose your category</option> 
    <option value="">Accounting Firm</option> 
    <option value="">Agriculture</option> 
    <option value="">Automotive</option> 
    <option value="">Aerospace/Defence</option> 
    <option value="">Building Material</option> 

</select> 
</div> 
<br> 
<input type = "text" name="cname" placeholder= "Name"/> 
<br><br> 
By clicking Next you agree to the <a href="terms.php" style="color: #008781">Terms and Conditions.</a> 
<br> 
<input type = "submit" name="comp" value="Next"/> 
</form> 

<?php 
if(isset($_POST['comp'])) 
{ 
    $category=$_GET['category']; 
    $cname = $_POST['cname']; 
    $ins=mysql_query("insert into company_account (category) values ('$category')"); 
    $insert = mysql_query("INSERT INTO company_account VALUES ('','$category','$cname','$about')"); 
    if($ins) 
     if($insert) 
    { 
     echo "<br>".$category."inserted"; 
    } 
    else 
    { 
     echo mysql_error(); 
    } 
} 
?> 
+0

имя файла платежа.php? – shubham715

+0

Да, это файл, который открывается одним щелчком мыши на следующем – sanchit

+0

Что именно вы подразумеваете под «он направляет меня на другую страницу»? – arkascha

ответ

2

Примечание:mysql: Это расширение было устаревшим в PHP 5.5.0, и он был удален в PHP 7.0.0. Вместо этого следует использовать расширение MySQLi или PDO_MySQL.

Вы предоставили form action и перенаправит его после нажатия кнопки отправки.

Вы написали INSERT STATEMENT на той же самой странице, и это даже не сработает для вас.

Сначала удалите action="", а затем перенаправите его на основе сохраненных данных.

HTML:

<form action = "" method= "POST"> 
</form> 

И значение параметра отсутствует из значений и после отправки формы значения не будут введены в БД. Следовательно, вам нужно сделать следующее.

Заменить:

<option value="">Accounting Firm</option> 

С:

<option value="Accounting Firm">Accounting Firm</option> 

PHP Код для вставки:

Вы Вставить код не будет работать, так как вы не предоставили с табличными значениями для операций вставки.

Синтаксис:

INSERT INTO TABLENAME(`columnname1`,`columnname2`,.....) VALUES(VALUE1,VALUE1,....) 

Поэтому мы рекомендуем использовать правильную структуру таблицы для операций, а затем вставить данные.

ВСТАВИТЬ QUERY:

$insert = mysql_query("INSERT INTO company_account(`category`,`name`,`about`) VALUES ('$category','$cname','$about')"); 

Вы можете insert all in the single query сам, а затем перенаправить используя расположение заголовка.

Использовать header Location для перенаправления на определенную страницу после сохранения данных.

header('location : http://www.google.co.in'); 

PHP ЧАСТЬ:

<?php 
if(isset($_POST['comp'])) 
{ 
    $category=$_POST['category']; 
    $cname = $_POST['cname']; 
    $insert = mysql_query("INSERT INTO company_account(`category`,`name`,`about`) VALUES ('$category','$cname','$about')"); 
    $rows = mysql_affected_rows(); 
    if($rows=0) 
    { 
     echo mysql_error(); 
    } 
    else 
    { 
     ob_start(); // Refresh the Output Buffer 
     header('location: http://www.google.co.in'); 
     exit; 
    } 
} 
?> 

Примечание:$about вы используете в Заявлении Insert, но значения не приводятся к Заявлении Insert. Пожалуйста, проверьте это.

+0

Я изменил действие = "" он сохраняет cname в базе данных, а что касается категории? также создает две строки в таблице вместо одной! – sanchit

+0

где использовать заголовок местоположения – sanchit

+0

@sanchit. Проверьте мой запрос на вставку на ответ –

5

У вас есть несколько вопросов, там, во-первых, вы используете MySQL, либо обновить его mysqli или еще лучше PDO.

Во-вторых, ваша форма отправляется с использованием POST, но вы пытаетесь собрать категорию с помощью GET.

Вам также необходимо предоставить содержимое вашего connect.inc.php БЕЗ И IP И ПАРОЛЯ, чтобы люди могли посмотреть на конфигурацию.

Я бы предложил, прежде чем идти дальше, вы прочитали здесь и получите лучшее понимание, прежде чем продолжить.

https://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059

удачи.

+0

+1 Также я бы рекомендуем посмотреть на канал YouTube youtube, codecourse для полного понимания основ php и хорошей практики. –

Смежные вопросы