2016-10-12 2 views
1

J'ai créé une liste déroulante ainsi qu'un type d'entrée pour la catégorie et le nom, mais dans le cas où je clique ensuite, elle me dirige vers une autre page mais rien ne sauve dans ma base de données. company_account est le nom de la table dans laquelle les données doivent être insérées il a quatre lignes id, catégorie, CNAME, environInsérer des données dans la base de données 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

le nom de fichier est payment.php? – shubham715

+0

oui c'est le fichier qui s'ouvre en un clic Suivant – sanchit

+0

Que voulez-vous dire par "il me dirige vers une autre page"? – arkascha

Répondre

2

Note:mysql: Cette extension a été dépréciée en PHP 5.5.0, et il a été supprimé en PHP 7.0.0. Au lieu de cela, l'extension MySQLi ou PDO_MySQL doit être utilisée.

Vous avez fourni le form action et le redirigera après avoir cliqué sur le bouton "Envoyer".

Vous avez écrit INSERT STATEMENT dans la même page et cela ne fonctionnera même pas pour vous.

Commencez par supprimer le code action="", puis redirigez-le en fonction des données enregistrées.

HTML:

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

Et vous valeur d'option est manquant sur des valeurs et une fois le formulaire soumis les valeurs ne seront pas entrées dans le DB. Par conséquent, vous devez faire ce qui suit.

Remplacer:

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

Avec:

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

code PHP pour Insérer:

vous insérez le code ne fonctionnera pas puisque vous n'avez pas fourni avec les valeurs de la table pour les opérations d'insertion.

Syntaxe:

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

Par conséquent, il est conseillé d'utiliser la structure de la table correcte pour les opérations et insérer les données.

QUERY INSERT:

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

Vous insert all in the single query peut lui-même puis rediriger en utilisant l'emplacement d'en-tête.

Utilisez header Location pour la redirection vers une page particulière après l'enregistrement des données.

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

PHP PARTIE:

<?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; 
    } 
} 
?> 

Note:$about vous utilisez dans l'état d'insertion mais aucune valeur sont fournis sur la Déclaration d'insertion. S'il vous plaît vérifier à cela.

+0

j'ai changé action = "" il enregistre cname à la base de données qu'en est-il de la catégorie? crée également deux lignes dans la table au lieu d'une! – sanchit

+0

où utiliser l'emplacement d'en-tête – sanchit

+0

@sanchit. Vérifiez ma requête d'insertion sur la réponse –

5

Vous avez quelques questions là, la première est que vous utilisez MySQL, soit le mettre à jour mysqli ou mieux encore PDO.

Deuxième votre formulaire est soumis en utilisant POST et pourtant vous essayez de recueillir la catégorie en utilisant GET.

Vous devez également fournir le contenu de votre fichier connect.inc.php SANS L'IP ET LE MOT DE PASSE afin que les utilisateurs puissent voir la configuration.

Je suggérerais avant d'aller plus loin que vous avez lu ici et obtenir une meilleure compréhension avant de continuer.

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

Bonne chance.

+0

+1 Aussi je voudrais recommande de regarder la chaîne youtube d'Alex, codecourse pour une bonne compréhension des principes fondamentaux de php et de bonnes pratiques. –