IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

une page contenu.php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Par défaut une page contenu.php
    bonjour,

    je débute, et j'ai suivi les cours...

    Je voudrais faire une page contenu.php dont la structure serra:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    STRUCTURE DE LA PAGE contenu.php
    inclure fonctions.inc.php
    
    // affichage permanent:
    --------------------------------------
    				bannière
    --------------------------------------
    				corps
    	-récupère les valeurs de la base catalogue, de la table armoirea 
    	- affiche  les données : photos (100px*100px)   /    Désignation  /  Description /  /+ 1 bouton proposer un prix (pour chaque article)
    	
    	si (1 des boutons [proposer un prix] a été cliqué
    	{
    		affiche : la fiche du produit correspondant   /  votre prix:($prix) bouton ok 
    		 si (ok est cliqué)
    		 {
    		-récupérer la valeur; 
    		-comparer ($prix); (fonction dans fonctions.inc.php ,  conditionne $réponse en fonction de $resultat=$prix-$prixmin )
    		-afficher  vous proposez : $prix pour cet article 
    					et la réponse $reponse correspondante
    			si ($résultat<0)
    			{
    				-affiche bouton [reproposer un prix]
    					si (bouton [reproposer un prix] est cliqué)
    					{
    					-vider le formulaire 
    					-effacer la réponse
    				(en gros, retour à la ligne 12)
    					}
    			
    			}
    			si ( $résultat>=0)
    			{
    				-affiche bouton [top la]
    					si(bouton [top la] cliqué)
    					{
    						- insérer les données dans le panier
    					}
    			}
    		-affiche bouton [retour au catalogue]	
    			si (bouton [retour au catalogue] cliqué)
    			{
    				- tout effacer
    			(en gros, retour à la ligne 9)
    			}
    			
    		}
    	}
    ----------------------------------------
    					pied
    ce bouton (en rouge dans le code) doit être lié a l'article de la ligne....
    et ne doit prendre en compte que les valeurs correspondantes....
    et là je ne vois pas comment faire...

    un p'tit coup de main s'il vous plait ???

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si c'est de la gestion de panier, tu peux regarder ici :
    - Tutoriel sur la création d'un panier en PHP

    Mais si tu débute, commence par ici :
    - Les meilleurs cours et tutoriels PHP : initiation

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Par défaut
    Bonjour, et merci de la réponse...

    je suis les cours pour grands débutants, j'en suis a la partie qui concerne la relation entre la base de données et php....pas encore dans la gestion du panier...

    non en fait, j'ai donc les données de ma base qui s'affichent, et sur chaque "ligne" de mon catalogue se trouve un bouton dont l'action fait que je récupère 1 valeur donnée par l'utilisateur, pour l'article concerné...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <?php include ("fonctions.php");
    //si action de l'utilisateur 
    if (isset ($_POST['prop'] AND $_POST['prix']!=0)){
    connectMaBase();
     
    /*récupérer les champs DE L'ARTICLE 
    pour afficher designation et description (et une photo, mais j'ai pas encore vu ce châpitre)
    et la valeur prixmin incluse dans ma base mais non affichée ($prixmin)
    
    
    
    */
     
     
    $prix=$_POST['prix'];
    compare($prix);
    echo '<table>
    		<tr>
    			<td>
    				<table>
    					<tr>
    						<td>photo</td>
    					</tr>
    					<tr>
    						<td>'.$data['designation'].'</td>
    					</tr>
    					<tr>
    						<td> '.$data['description'].' </td>
    					</tr>
    				</table>
    			</td>
    			<td>
    				Votre prix pour cet article est de '.$prix.' €</br>
    				Ma réponse : '.$reponse.'
    			</td>
    		</tr>
    	   </table>'
     
     
     
    }
    ?>
     
    <!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>L'ARMOIRE DES GRANDS</title>
    </head>
     
    <body>      
    <h2> L'ARMOIRE DES GRANDS</h2>
    <?php 
     
    	connectMaBase();
    	//On prépare la requête SQL qui récupère les champs
    	$sql = 'SELECT * FROM armoirea'; 
    	/* On lance la requête (mysql_query) 
    		et on impose un message d'erreur si la requête ne passe pas (or die) */ 
    	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    	//on organise $req en tableau associatif  $data['champ']
    	//en scannant chaque enregistrement récupéré
    	//on en profite pour gérer l'affichage
    	//boucle
    	while ($data = mysql_fetch_array($req)) { 
    	// on affiche les résultats 
    		echo '<table border="1">
    				<tr>
    					<td> '.$data['reference'].' </td>
    					<td> '.$data['designation'].' </td>
    					<td> '.$data['description'].' </td>
    					<td>
    						<form name="votre_prix" method="post" action="armoire_a.php">
    						<input type="text" name="prix"><input type="submit" value="proposer un prix" name="prop">
    						</form>
    						</td>
    				</tr>
    				</table>';
    	}
    						//On libère la mémoire mobilisée pour cette requête dans sql
    						//$data de PHP lui est toujours accessible !
    						mysql_free_result ($req);  
     
    						//On ferme sql
    						mysql_close (); 
    ?>
    </body>
    </html>
    j'ai laissé en blanc là ou je cale...
    /*récupérer les champs DE L'ARTICLE
    pour afficher designation et description (et une photo, mais j'ai pas encore vu ce châpitre)
    et la valeur prixmin incluse dans ma base mais non affichée ($prixmin)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je ne comprends pas ton problème, puisque le principe est dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
     	// connexion a la BdD
    	connectMaBase();
    	// la requête SQL
    	$sql = "SELECT * FROM armoirea"; 
    	// On lance la requête (mysql_query) + message d'erreur si la requête ne passe pas (-> or die)
    	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    	//on organise $req en tableau associatif  $data['champ'] en scannant chaque enregistrement récupéré
    	// boucle "tant qu'il y a des fiches"
    	while ($data = mysql_fetch_array($req)) { 
    		// on affiche les résultats 
    		// .................
    	}
    ?>
    Il suffit de faire la bonne requête, et récupérer les bons champs ...

    Remarque :
    - en début de document (1 seule fois)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
     	// connexion a la BdD
    	connectMaBase();
    ?>
    - en fin de document (1 seule fois)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php 
    	//On ferme sql
    	mysql_close (); 
    ?>

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2011
    Messages : 33
    Par défaut
    Hé bien mon soucis est que cette requête ne concerne qu'un seul article...

    Pour que ma base me renvoie les données ne concernant que cet article,
    ma requête doit indiquer que seul cet article est concerné..

    J'ai donc pensé envoyer la valeur donné par l'utilisateur dans ma base, dans un champ 'prix'
    et mettre en requête "quand le champs prix est renseigné "

    seulement, cette donnée dans ma base reste, et si je refais une proposition de prix pour un un autre article, il me donne 2 réponses..

    j'ai pas encore vu ça, mais existe t'il une requête qui efface les champs de la base ????

    j'en suis là du code mais ça ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <?php include ("fonction.php");
    connectMaBase();
    //si action de l'utilisateur 
    if (isset ($_POST['prop'])){
    //envoyer la valeur prix dans la base
     $sql = 'INSERT INTO armoirea VALUES("'.$prix.'")';
     mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
     
    /*récupérer les champs DE L'ARTICLE 
    pour afficher designation et description (et une photo, mais j'ai pas encore vu ce châpitre)
    et la valeur prixmin incluse dans ma base mais non affichée ($prixmin)*/
     
    	$sql = 'SELECT * FROM armoirea Where prix!="0"'; 
     
     /* On lance la requête (mysql_query) 
    		et on impose un message d'erreur si la requête ne passe pas (or die) */ 
     
    	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    	$prixmin=$data['prixmin']
    	$prix=$_POST['prix'];
    	compare($prix);
    	while ($data = mysql_fetch_array($req)) { 
     
    // on affiche les résultats 
    echo '<table>
    		<tr>
    			<td>
    				<table>
    					<tr>
    						<td>photo</td>
    					</tr>
    					<tr>
    						<td>'.$data['designation'].'</td>
    					</tr>
    					<tr>
    						<td> '.$data['description'].' </td>
    					</tr>
    				</table>
    			</td>
    			<td>
    				Votre prix pour cet article est de '.$prix.' €</br>
    				Ma réponse : '.$reponse.'
    			</td>
    		</tr>
    	   </table>'
     
     
     }
    }
    ?>
     
    <!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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>L'ARMOIRE DES GRANDS</title>
    </head>
     
    <body>      
    <h2> L'ARMOIRE DES GRANDS</h2>
    <?php 
     
    	connectMaBase();
    	//On prépare la requête SQL qui récupère les champs
    	$sql = 'SELECT * FROM armoirea'; 
    	/* On lance la requête (mysql_query) 
    		et on impose un message d'erreur si la requête ne passe pas (or die) */ 
    	$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    	//on organise $req en tableau associatif  $data['champ']
    	//en scannant chaque enregistrement récupéré
    	//on en profite pour gérer l'affichage
    	//boucle
    	while ($data = mysql_fetch_array($req)) { 
    	// on affiche les résultats 
    		echo '<table border="1">
    				<tr>
    					<td> '.$data['reference'].' </td>
    					<td> '.$data['designation'].' </td>
    					<td> '.$data['description'].' </td>
    					<td>
    						<form name="votre_prix" method="post" action="armoire_a.php">
    						<input type="text" name="prix"><input type="submit" value="proposer un prix" name="prop">
    						</form>
    						</td>
    				</tr>
    				</table>';
    	}
    						//On libère la mémoire mobilisée pour cette requête dans sql
    						//$data de PHP lui est toujours accessible !
    						mysql_free_result ($req);  
     
    						//On ferme sql
    						mysql_close (); 
    ?>
    </body>
    </html>

  6. #6
    Invité
    Invité(e)
    Par défaut
    ok ok.
    C'est dans le(s) formulaire qu'il faut indiquer/transmettre l'IDENTIFIANT de l'article/produit concerné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    		echo '<table border="1">
    				// ...
    						<form name="votre_prix" method="post" action="armoire_a.php">
    						<input type="hidden" name="idProduit" value="'.$data['id_produit'].'" />
    						<input type="text" name="prixProp" value="'.$data['prix'].'" />
    						<input type="submit" value="proposer un prix" name="prop" />
    						</form>
    // ...
    		</table>';
    ?>
    Où id_produit est l'identifiant du produit dans la BD.

    Comme si s'agit d'un produit existant -> requete UPDATE (et pas INSERT)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if (isset ($_POST['prixProp']) && isset ($_POST['idProduit'])){
    	// recuperation et PROTECTION des donnees transmises
    	$idProduit = mysql_real_escape_string($_POST['idProduit']);
    	$prixProp = mysql_real_escape_string($_POST['prixProp']);
    	// modification dans la base
    	$sql = "UPDATE armoirea SET ".
    		" prix = '".$prixProp."' ".
    		" WHERE id_produit = '".$idProduit."';";
    	mysql_query($sql) or die('Erreur SQL :<br />'.$sql.'<br />'.mysql_error());
    }
    ?>
    Dernière modification par Invité ; 15/07/2011 à 10h01.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Modifier un tableau sur une page en PHP
    Par leclone dans le forum Langage
    Réponses: 12
    Dernier message: 02/01/2007, 14h06
  2. activer une fonction d'une page contenue dans une popup.
    Par manutudescends dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/08/2006, 14h32
  3. [Configuration] Peut on mettre de l'asp dans une page en .php
    Par Alain15 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 31/07/2006, 12h23
  4. Réponses: 3
    Dernier message: 27/04/2006, 14h23
  5. Réponses: 2
    Dernier message: 12/02/2006, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo