Page 1 sur 1

Faire ressortir un prix dans un tableau

Posté : 11 juin 2009, 18:51
par vinya
Bonjour,

Alors voilà, je dois créer un site et dans celui ci, faire un formulaire dont les données saisies feront ressortir un prix dans un tableau. Est-ce possible?

Si oui, avez-vous des indications à me donner.

je dois aussi faire une page où après saisi d'un numéro de dossier et d'un mot de passe, faire apparaître le fichier correspondant à l'écran.

Voilà des trucs tout simple en apparence mais plus dur que je pensais

D'avance merci pour votre aide

vinya

Posté : 11 juin 2009, 19:17
par Calimero
Bonjour,

Commence déjà par faire les tutoriaux (colonne de droite) de http://phpdebutant.org/. Cela te donnera les bases pour mieux appréhender le travail que tu as à faire.

Posté : 11 juin 2009, 19:31
par albat
Modération :
vinya, merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP !", "Aidez-moi", "J'ai un problème", "Ça marche pas",...
n'apportent rien à la compréhension de ta demande.

Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.

Posté : 11 juin 2009, 23:37
par dunbar
Salut,

Alors comme je suis de bonne humeur aujourd'hui :wink:
Voici un exemple, j'ai créer ça à la va vite alors évidemement c'est une piste, et pas un script a prendre et à coler comme ça.
L'idée est de créer deux fichier un fichier de connexion et un autre qui reprend toute les fonctions, dans l'exemple il y à le fichier login_vinya.php et le fichier vinya.php .
Le fichier login_vinya.php reprend uniquement le formulaire de connexion qui fera appel à vinya.php .

Le fichier vinya.php contient les fonction suivante

:arrow: Le formulaire de commande uniquement .
:arrow: Un fonction qui va générer une chaîne de caractère unique pour chaque commande.
:arrow: Un tableau avec le prix des articles.
:arrow: La requête d'insertion pour les commandes.
:arrow: La fonction qui vérifie le login.
:arrow: Et la fonction basic qui reprend le tableau de toute les commandes.


Donc je reprécise que c'est une piste à toi d'améliorer le script.
login_vinya.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="fr-be" http-equiv="Content-Language" />
<meta content="text/html; charset=iso-8859-15" http-equiv="Content-Type" />
<title>sans titre 1</title>
</head>

<body>
<?php
	echo '<form action="vinya.php?action=verif_login" method="post">
							<table style="width: 100%">
								<tr>
									<td style="width: 185px">Login :</td>
									<td><input name="login" type="text" /></td>
								</tr>
								<tr>
									<td style="width: 185px">Password :</td>
									<td><input name="password" type="password" /></td>
								</tr>
								<tr>
									<td colspan="2">
									<input name="Submit1" type="submit" value="soumettre" /></td>
								</tr>
							</table>
						</form> ';
?>
</body>

</html>
vinya.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="fr-be" http-equiv="Content-Language" />
<meta content="text/html; charset=iso-8859-15" http-equiv="Content-Type" />
<title>sans titre 1</title>
</head>

<body>
<?php
session_start();
	//-->Identifiant de connexion.--//
	$db_host = 'localhost';
	$db_user = '';
	$db_pass = '';
	$db_base = 'vinya';

                           //-->Connexion base.--//
                           $link = mysql_connect($db_host, $db_user, $db_pass)
                              or die ("Connexion impossible avec MySQL");
                            //-->Connexion a la Table.--//
                            mysql_select_db ($db_base)
                              or die ("Connexion impossible avec la base".$db_base);

    //-->Initialisation variable $action.--//
	$action = isset($_GET['action'])? $_GET['action'] : '';
     switch($action)
       {
           case "commande" : //-->Formulaire de commande.--//

				      echo '<form action="vinya.php?action=insert" method="post">
								<table style="width: 100%">
									<tbody>
									<tr>
										<td style="width: 122px">Article :</td>
										<td style="width: 138px"><select name="article" style="width: 78px">
										<option selected="selected" value="Choix">Choix</option>
										<option value="Article1">Article1</option>
										<option value="Article2">Article2</option>
										<option value="Article3">Article3</option>
										</select></td>
										<td valign="top">Quantité :
										<input name="quantite" size="10" type="text" /></td>
									</tr>
									<tr>
										<td colspan="3">
										<input name="Submit1" type="submit" value="soumettre" /></td>
									</tr>
								</tbody>
								</table>
							</form>';
					break;

			case "insert" :



              		/* (1)generation d'une chaine de caractère unique pour le n° dossier.*/
						 function gen_reg_key()
						   {

							  $key = "";   /*on initialise la variable $key à "vide" */
							  $max_length_reg_key = 10;   /*on définit la taille de la chaine (10 caractères ca suffit ;))*/

							  /*on définit le type de caractères ascii de la chaine (l'alphabet suffit amplement, mais libre a vous) */
							                 $chars = array( "a","b","c","d","e","f","g","h","i","j","k","l",
							                                 "m","n","o","p","q","r","s","t","u","v","w","x",
							                                 "y","z","1","2","3","4","5","6","7","8","9","0");


							  $count = count($chars) - 1;    /*on comptabilise le nombre total de caractères possibles (26 pour l'alphabet) */
							  srand((double)microtime()*1000000);  /*on initialise la fonction rand pour le tirage aléatoire*/
							  for($i = 0; $i < $max_length_reg_key; $i++) $key .= $chars[rand(0, $count)]; /*on tire aléatoirement les $max_length_reg_key carac de la chaine*/
							  return($key);  /*on renvois la clé générée */
						  }
					/* Fin (1) */

                    //-->Fuseau horraire.--//
                    date_default_timezone_set("Europe/Paris");

                    //-->Declaration des variables.--//
           			$article = mysql_real_escape_string($_POST['article']);
           			$quantite = mysql_real_escape_string($_POST['quantite']);
           			$client = $_SESSION['id_client'];
           			$dossier = gen_reg_key();

                    //-->Tableau qui reprend le prix des article.--//
                    $prix = array ('Article1' => '10',
                    			   'Article2' => '20',
                    			   'Article3' => '40');

                    $art = $prix[$article];
                    $total_commande = $art * $quantite;


                    //-->Requête d'insertion de la commande.--//
           			$sql = "INSERT INTO commande SET
                  					id_commande = '',
                  					article = '" . $article . "',
                  					prix = '".$art."',
                  					quantite = '" . $quantite . "',
                  					client_id = '" . $client . "',
                  					dossier = '" . $dossier . "',
                  					total_commande = '" . $total_commande . "'";

                  					$result = mysql_query($sql) or die
                  					("Erreur MySQL : Impossible de valider la commande");

                   echo 'Commande OK';
                   echo '<a href="vinya.php?action=array_commande">Tableau des commandes</a>';

            break ;
                     //--->Partie qui vérifie que le login et pass existe.--//
			case "verif_login" :

						$client = mysql_real_escape_string($_POST['login']);
						$password = mysql_real_escape_string($_POST['password']);

						$sql = "SELECT password, id_client, client, dossier
										FROM clients
										WHERE client = '" . $client . "'
										AND password = '" . md5($password) . "'";
                        $result = mysql_query($sql) or die
                  					("Erreur MySQL : Recup des données impossible");
                  		$verif = mysql_num_rows($result);

                  		if ($verif == 1)
                  			{
                  				echo 'Connexion OK<br>';
                  				echo '<a href="vinya.php?action=commande">Commande</a>';
                  				}else
                  					{
                  						echo 'Message erreur';
                  						}

            break ;

            case "array_commande" :


                        $html = '<table  style="width: 100%">';
                        $field_listed = false;
                        $fields = array();
                        //On fait la requête
                        $sql = "SELECT * FROM commande";
                        $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
                        //On boucle sur les résutats
                        while($row = mysql_fetch_assoc($req))
                        {
                            //Si on a pas encore construit la liste des champs, on le fait
                            if(!$field_listed)
                            {
                                //-->On liste tous les champs retournés
                                $fields = array_keys($row);

                                //On affiche la liste des champs
                                $html .= '<tr>';
                                foreach($fields as $k => $field)
                                    $html .= '<th>'.$field.'</th>';
                                $html .= '</tr>';

                                //-->On flag a true pour ne plus rentrer dans cette condition lors de la prochaine boucle
                                $field_listed = true;
                            }

                            //--> On affiche le contenu du tuple courant
                            $html .= '<tr>';
                            foreach($fields as $k => $field)
                            {
                                $html .= '<td>'.$row[$field].'</td>';
                            }
                            $html .= '</tr>';
                        }
                        $html .= "</table>";

                        echo $html;




            break;

         }



?>





</body>

</html>
Et cerise sur le :anniversaire: la table créer pour le test
-- phpMyAdmin SQL Dump
-- version 3.1.3
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 11 Juin 2009 à 23:35
-- Version du serveur: 5.1.32
-- Version de PHP: 5.2.9-2

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `vinya`
--

-- --------------------------------------------------------

--
-- Structure de la table `clients`
--

CREATE TABLE IF NOT EXISTS `clients` (
  `id_client` int(5) NOT NULL AUTO_INCREMENT,
  `password` varchar(50) NOT NULL,
  `client` varchar(50) NOT NULL,
  `dossier` int(50) NOT NULL,
  PRIMARY KEY (`id_client`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;


-- --------------------------------------------------------

--
-- Structure de la table `commande`
--

CREATE TABLE IF NOT EXISTS `commande` (
  `article` varchar(100) NOT NULL,
  `prix` varchar(10) NOT NULL,
  `client_id` int(10) NOT NULL,
  `dossier` varchar(100) NOT NULL,
  `quantite` int(10) NOT NULL,
  `id_commande` int(10) NOT NULL AUTO_INCREMENT,
  `total_commande` int(20) NOT NULL,
  PRIMARY KEY (`id_commande`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;

--
-- Contenu de la table `commande`
--

INSERT INTO `commande` (`article`, `prix`, `client_id`, `dossier`, `quantite`, `id_commande`, `total_commande`) VALUES
('Article3', '40', 1, '986nfh0tud', 30, 22, 0),
('Article1', '10', 1, 'ijbina8iqf', 2, 21, 0),
('Article3', '40', 1, 'u07bgqr7kh', 3, 23, 120),
('Article1', '10', 1, 'jwh2p9c5f0', 10, 24, 100),
('Article1', '10', 1, '93obw25ggq', 22, 25, 220),
('Article1', '10', 1, 'm0waxz3nb1', 2, 26, 20);