Formulaire

Petit nouveau ! | 3 Messages

12 avr. 2012, 19:02

Bonjour! à tous,
Je cherche seulement à faire un formulaire (une boite de texte) et un bouton (envoyer) pour interroger une base de données
et me retourner la réponse dans une autre page.

Ma base de données a seulement 3 champs (ID, NOM, DATE)
Nom de la base : Patronyme
Nom de la table : famille

Dans mon formulaire j'entre un nom, je soumets le formulaire et la base de données me renvoie la date qui correspond au nom.

Code de ma page formulaire.html
<html>
<head>
<title>Ma page de test</title>
</head>
<body>
<form action = "traitement.php" method="post">
Votre nom : <input type = "text" name = "patronyme"><br />
<input type = "submit" value = "Envoyer">
</form>
</body>
</html>


Code de ma page traitement.php
<?php
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', 'root');
mysql_select_db ('Patronyme', $base) ;
?>
<html>
<head>
<title>Ma page de traitement</title>
</head>
<body>
<?php
// lancement de la requete
$sql = 'SELECT * FROM famille WHERE patronyme = "date"';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);

// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();
?>
Vos ancetres sont arrive en:<br />
<?php
echo $data['date'];
?>
</body>
</html>


Merci! pour votre aide.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

12 avr. 2012, 19:56

Ta page traitement.php contient 2 erreurs bloquantes :
- date est un mot réservé. Tu ne peux donc l'utiliser pour nommer un champ.
- ta requête est fausse.

Renomme le champ date en date_arrivee, par exemple, et utilise cette requête :
$sql = "SELECT date_arrivee FROM famille WHERE patronyme = '".$_POST['patronyme']."'";
Ça marche mieux ?

Petit nouveau ! | 3 Messages

12 avr. 2012, 20:29

Bonjour! Albat,
J'ai fait les changements, tout fonctionne très bien.

Merci!
Je retourne étudier!

ViPHP
ViPHP | 2577 Messages

12 avr. 2012, 21:14

Bonjour,

Il y a un traitement à prévoir lorsque le nom n'a pas été saisi, lorsque le nom saisi ne correspond à rien dans la table et lorsque le nom contient une double quote.

Enfin, ca me semble un bonne suite à ton étude.

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

12 avr. 2012, 21:44

Mazarini a raison : mon code lève les deux erreurs bloquantes mais il ne suffit pas.
Il faut en effet que tu testes et valides la valeur de la variable que tu vas injecter dans ta requête SQL.

Ce sujet n'est donc pas résolu... ;)

Petit nouveau ! | 3 Messages

29 avr. 2012, 12:50

Bonjour!
Vous avez tous les deux raisons.

J'ai modifié mon code:
1. Je veux afficher les cinq champs avec une structure de phrase bien précise (en html), s'il y a une erreur d'orthographe je veux afficher "Aucun Résultat".

2. j'ai réussi une première phase avec une structure, mais sans faire une vérification du champ "patronyme".

3. En ce moment je suis à court d'idée.

Voici mes deux fichiers php

1. traitement.php (qui fonctionne mais sans vérification).
2. traitement2.php (avec verification, qui fonctionne plus ou moins bien et sans formatage en html).

Merci! beaucoup pour votre aide.
Archive.zip
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.