8796 sujets

Développement web côté serveur, CMS

Pages :
bonjour à tous!!
je veux faire une liste deroulante en php qui va m'afficher des type_articles et je veux quand je selectionne un type_article sur la liste , il m'affiche dans un champs à coté le id de l'article qui va le recuperer de la meme table. sachant que le id est directement lié au titre de l'article et pas à son type, c'est à dire que dans un seul type d'article on peut trouver plusieurs articls donc plusieurs id. j'ai fait le code ci_dessous mais ça marche pas!!!


<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
<table align="center">
<tr valign="baseline">


<?php
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_Liste1 = "SELECT distinct type_article FROM shop_article";
$Liste1 = mysql_query($query_Liste1, $connexion) or die(mysql_error());
$row_Liste1 = mysql_fetch_assoc($Liste1);

?>
<?php
if(isset($_POST['liste1'])){
//si la liste a été "postée" c ad choix fait
$liste1=$_POST['liste1'];

}else{
$liste1=-1;
}
?>
<tr valign="baseline">
<td nowrap="nowrap" align="right"><p>S&eacute;lectionnez un article :</p></td>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<td nowrap="nowrap" align="left"><select name="type_article" id="type_article" onChange="afficher(this)">
<?php do { ?>
<option value= "<?php echo $row_Liste1['type_article'];?>" ><?php echo $row_Liste1['type_article'];?> </option>
<?php } while ($row_Liste1 = mysql_fetch_assoc($Liste1));
?>
</select></td></tr>

<!-- il faut cette ligne pour avoir obliagtoirement un changement -->

<?php
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_article = "SELECT id FROM shop_article order by id DESC ";
$article = mysql_query($query_article, $connexion) or die(mysql_error());
$row_article = mysql_fetch_assoc($article);

?>


<tr valign="baseline">
<td nowrap="nowrap" align="right">article:</td>
<?php /*?><tr><td><input name="id" type="hidden" value="<?php echo $id; ?>" /></td></tr>
<?php */?>
<td><input type="varchar" name="id" value="<?php echo $row_article['id'];?>" size="32" /></td>
</tr>

merci d'avance pour votre aide!!!!
Bonjour et bienvenue parmi nous Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

Bonne continuation Smiley smile

upload/1-code.gif
Explique avec des commentaires ce que tu tentes de faire, publie la structure de ta BDD et un jeu d'essai.

J'ai du mal à te suivre dans ton développement, pourquoi y'a-t-il deux formulaires ??
Bonjour,
j'ai testé ton code et visiblement il ne fonctionne pas. merci quand meme. sinon le truc a l'air utile, dis moi tu récupere bien le sdonnée dans la base pour construire ton menu ?
BONSOIR;
tout d'abord je tiens à vous remercier pour vos reponses!! et desolée si je n'étais pas assez clair, parce que c'est la premiere fois que je participe au forum c'est pour ça!! ben là je vais vous refaire le code et je vais essayer de le commenter et d'etre plus claire!!!


<p class="Style15">Ajouter un article :</p>

<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
<table align="center">
<tr valign="baseline">

//ici je me connecte à la base de donnée et je recupere les type_article de la table shop_article.
<?php
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_Liste1 = "SELECT distinct type_article FROM shop_article";
$Liste1 = mysql_query($query_Liste1, $connexion) or die(mysql_error());
$row_Liste1 = mysql_fetch_assoc($Liste1);

?>
// ici je voudrais faire du sorte que quand on selectionne un type d'article dans la liste deroulante, elle m'affiche le titre de l'article dans un champs à coté, ce titre il le recupere tjrs de la meme table
<?php
if(isset($_POST['liste1'])){
//si la liste a été "postée" c ad choix fait
$liste1=$_POST['liste1'];

}else{
$liste1=-1;
}
?>
//ici j'affiche les type_article dans une liste deroulante
<tr valign="baseline">
<td nowrap="nowrap" align="right"><p>S&eacute;lectionnez un article :</p></td>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<td nowrap="nowrap" align="left"><select name="type_article" id="type_article" onChange="afficher(this)">
<?php do { ?>
<option value= "<?php echo $row_Liste1['type_article'];?>" ><?php echo $row_Liste1['type_article'];?> </option>
<?php } while ($row_Liste1 = mysql_fetch_assoc($Liste1));
?>
</select></td></tr>

//je me connecte à nouveau à la bdd et je recupere de la table shop_article les id des articles
<?php
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_article = "SELECT id FROM shop_article order by id DESC ";
$article = mysql_query($query_article, $connexion) or die(mysql_error());
$row_article = mysql_fetch_assoc($article);

?>
//ici il affiche le id de l'article mais le probleme c'est que ce id ne correspond pas au ype d'article choisi dans la liste deroulante ci_dessus Smiley decu et c'est ça mon vrai prob!!!

<tr valign="baseline">
<td nowrap="nowrap" align="right">article:</td>

<td><input type="varchar" name="id" value="<?php echo $row_article['id'];?>" size="32" /></td>
</tr>
voilà, j'espere que j'étais un peux plu sclair cette fois-ci Smiley confused
en fait quelqu'un parmi vous m'as dis qu'il ya deux formulaire!! stp peux tu m'expliquer qu'est ce qu'il faut enlever de ce code pour avoir juste un formuleire!!! Smiley decu parce que je suis debutante en php et html, je connais pas trop!! merci pour votre aide!!
salut!!!!!
j'ai un autre petit probleme dans l'affichage des images avec le php!! en fait en local ça marche parfaitement mais en ligne il m'affiche qu'une crois!! j ne sais pas pouquoi et pourtant j'ai bien mis le dossier contenant les images à la racine du site et j'ai mis la table contenant les nom de mes images sur le serveur!! voici mon code!!

mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_article = "SELECT * FROM shop_article";
$article = mysql_query($query_article, $connexion) or die(mysql_error());
$row_article = mysql_fetch_assoc($article);
$totalRows_article = mysql_num_rows($article);


$colname_DetailRS1 = "-1";
if (isset($_GET['recordID'])) {
  $colname_DetailRS1 = $_GET['recordID'];
}
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_DetailRS1 = sprintf("SELECT * FROM shop_article WHERE id = %s", GetSQLValueString($colname_DetailRS1, "text"));
$DetailRS1 = mysql_query($query_DetailRS1, $connexion) or die(mysql_error());
$row_DetailRS1 = mysql_fetch_assoc($DetailRS1);
$totalRows_DetailRS1 = mysql_num_rows($DetailRS1);

$prix_ht =$row_DetailRS1['prix_ht'];	
$prix_ht_arrondi= number_format($prix_ht, 2, ',', ' '); 	


<?php

$req = mysql_query("select * FROM shop_article WHERE id = '".$_SESSION["id"]."'") or die(mysql_error());

$data = mysql_fetch_array($req);

$repertoire = "/images/";

?>
//affichage de l'image

<p><img src="<?php echo $repertoire.$row_DetailRS1['image']; ?>" alt="" width="465" height="472" align="absmiddle" /></p>



voilà ce code marche en local mais pas en ligne et autre chose que je ne comprend pas c'est que j'ai essayé le meme code dans une autre page php tjrs dans mon site mais il ne marche meme pas en local!!! Smiley rolleyes
Modifié par nounou85 (19 May 2011 - 22:33)
slt; je l'ai bien lu et quand j'ai inseré le code jai bien selectionné php dans la colorisation syntaxique , mais ça donne tjrs Smiley decu rien!!!
jespere que ça ira comme ça!!!
<p class="Style15">Ajouter un article :</p>

<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
<table align="center">
<tr valign="baseline">

//ici je me connecte à la base de donnée et je recupere les type_article de la table shop_article.
<?php
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_Liste1 = "SELECT distinct type_article FROM shop_article";
$Liste1 = mysql_query($query_Liste1, $connexion) or die(mysql_error());
$row_Liste1 = mysql_fetch_assoc($Liste1);

?>
// ici je voudrais faire du sorte que quand on selectionne un type d'article dans la liste deroulante, elle m'affiche le titre de l'article dans un champs à coté, ce titre il le recupere tjrs de la meme table
<?php
if(isset($_POST['liste1'])){
//si la liste a été "postée" c ad choix fait
$liste1=$_POST['liste1'];

}else{
$liste1=-1;
}
?>
//ici j'affiche les type_article dans une liste deroulante
<tr valign="baseline">
<td nowrap="nowrap" align="right"><p>S&eacute;lectionnez un article :</p></td>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">
<td nowrap="nowrap" align="left"><select name="type_article" id="type_article" onChange="afficher(this)">
<?php do { ?>
<option value= "<?php echo $row_Liste1['type_article'];?>" ><?php echo $row_Liste1['type_article'];?> </option>
<?php } while ($row_Liste1 = mysql_fetch_assoc($Liste1));
?>
</select></td></tr>

//je me connecte à nouveau à la bdd et je recupere de la table shop_article les id des articles
<?php
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_article = "SELECT id FROM shop_article order by id DESC ";
$article = mysql_query($query_article, $connexion) or die(mysql_error());
$row_article = mysql_fetch_assoc($article);

?>
//ici il affiche le id de l'article mais le probleme c'est que ce id ne correspond pas au ype d'article choisi dans la liste deroulante ci_dessus decu et c'est ça mon vrai prob!!!

<tr valign="baseline">
<td nowrap="nowrap" align="right">article:</td>

<td><input type="varchar" name="id" value="<?php echo $row_article['id'];?>" size="32" /></td>
</tr>

oofff!!! j'ai reussi à afficher le code bien comme il faut!!!! et là je pense qu'il plus clair!! donc j'espere bien avoir d'aide maintenant svp pour resoudre le prob d'affichage de l'id de l'article en selectionnant son type dans la liste deroulante!!
merci d'avance et desolée si j'étais un peu lente pour comprendre comment afficher le code!! mais bn !! c'est ça le debut....!!! et c'est de nos erreur qu'on vas apprendre!!!
salut!!!!!
j'ai un autre petit probleme dans l'affichage des images avec le php!! en fait en local ça marche parfaitement mais en ligne il m'affiche qu'une crois!! j ne sais pas pouquoi et pourtant j'ai bien mis le dossier contenant les images à la racine du site et j'ai mis la table contenant les nom de mes images sur le serveur!! voici mon code!!

mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_article = "SELECT * FROM shop_article";
$article = mysql_query($query_article, $connexion) or die(mysql_error());
$row_article = mysql_fetch_assoc($article);
$totalRows_article = mysql_num_rows($article);


$colname_DetailRS1 = "-1";
if (isset($_GET['recordID'])) {
  $colname_DetailRS1 = $_GET['recordID'];
}
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_DetailRS1 = sprintf("SELECT * FROM shop_article WHERE id = %s", GetSQLValueString($colname_DetailRS1, "text"));
$DetailRS1 = mysql_query($query_DetailRS1, $connexion) or die(mysql_error());
$row_DetailRS1 = mysql_fetch_assoc($DetailRS1);
$totalRows_DetailRS1 = mysql_num_rows($DetailRS1);

$prix_ht =$row_DetailRS1['prix_ht'];	
$prix_ht_arrondi= number_format($prix_ht, 2, ',', ' '); 	



<?php

$req = mysql_query("select * FROM shop_article WHERE id = '".$_SESSION["id"]."'") or die(mysql_error());

$data = mysql_fetch_array($req);

$repertoire = "/images/";

?>


 <p class="Style15">Descriptif de l'article: <?php echo $row_DetailRS1['titre']; ?></p>
                <table width="464" border="1" class="Style17">
                  <tr>
                    <td width="157">Référence :</td>
                    <td width="188"><?php echo $row_DetailRS1['id']; ?> </td>
                  </tr>
                  <tr>
                    <td>Rubrique :</td>
                    <td><?php echo $row_DetailRS1['rubrique']; ?> </td>
                  </tr>
                  <tr>
                    <td>Titre :</td>
                    <td><?php echo $row_DetailRS1['titre']; ?> </td>
                  </tr>
                  <tr>
                    <td>Prix HT :</td>
                    <td><?php echo $prix_ht_arrondi ?>€ </td>
                  </tr>
                  <tr>
                    <td>Description :</td>
                    <td><?php echo $row_DetailRS1['description']; ?> </td>
                  </tr>
                  <tr>
                    <td>Stock :</td>
                    <td><?php echo $row_DetailRS1['stock']; ?> </td>
                  </tr>                  
                  <tr>
                    <td>Poids :</td>
                    <td><?php echo $row_DetailRS1['poids']; ?>gr. </td>
                  </tr>
                </table>
                <br />
                      <p><img src="<?php echo $repertoire.$row_DetailRS1['image']; ?>" alt="" width="465" height="472" align="absmiddle" /></p>
                 </td>
              </tr>
          </table>  
          


merci d'avance!! Smiley smile
Modifié par nounou85 (19 May 2011 - 23:53)
Pour ton problème d'image tu devrais faire un second post je pense mais c'est pas grave je vais te répondre malgré tout ici ^^

Généralement lorsque tu tentes d'afficher une image et qu'elle affiche une croix à la place c'est qu'il y a un problème de chemin c'est à dire ton <img src="ici c'est le chemin"...
Soit c'est le nom de ton image (j'en doute si tu dis qu'il fonctionne bien en local) soit c'est l'acheminement jusqu'à ton image et là je pense que je ne dois pas me tromper.

Lorsque tu met ton site en ligne, tu envois tes images avec tes scripts et est ce qu'elle sont bien positionné dans le bon répertoire ?
Modifié par mini-truc (20 May 2011 - 10:33)
La balise form indique le debut du formulaire :
Tout au début avant son <table> tu appelles ceci ...
<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">

Ensuite quelques lignes en dessous tu écris...
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">

deuxième formulaire et qui se nomme par le même nom oO name="form1"

Je te conseille de faire un formulaire simple en HTML tout basique que tu comprennes comment çà marche, tu récupères les valeurs et tu les affiches ensuite en php sur la page que tu précise dans <form action="ici"...

Désolé si c'est trop basique mais je ne connais pas ton niveau ... mais comme tu sembles perdu à ce point j'ai vraiment l'impression que tu viens de commencer à coder..
Pour ta liste déroulante, je suis en train d'essayer de comprendre comment tu t'y prends..

est ce que tu peux me donner ta structure de ta base de données afin que je puisse te faire la bonne requête et que je te montre comment faire ta liste déroulante ??

Sinon il me semble que tu appelles plusieurs fois une connexion à la base de données oO c'est bien dans le même script que tu appelles plusieurs fois la connexion ?

Une connexion à la base de données ne s'appelle qu'une fois et au début , voici un code typique de connexion que tu peux réutiliser plusieurs fois en changeant les paramètres à tes besoins :

// définition des variables de connexion
$serveur = "localhost"; //pour les serveurs local sinon tu remplace par celui de ton hébergeur
$utilisateur = "root";  //nom de l'utilisateur pour la connexion au serveur
$motdepasse = "root";  //mot de passe de connexion
$base = "bdd";  //nom de la base de données


$cx_rev = mysql_connect($serveur, $utilisateur, $motdepasse); 


 if(!$cx_rev)	
 {  
    print "Connexion au serveur $serveur impossible<br>";
 }
 else
 {
     // connexion à la base dans la variable $cx_base
     $cx_base= mysql_select_db($base, $cx_rev); 
	 
     // test de la variable $cx_srv
     if(!$cx_base)	
		{  
			print "Erreur dans la sélection de la base $base !<br>";
             
			 // fermeture de la connexion
             mysql_close($cx_rev);
		}
 }

Modifié par mini-truc (20 May 2011 - 10:49)
<input name="id" type="hidden" value="<?php echo $id; ?>" />

<input type="varchar" name="id" value="<?php echo $row_article['id'];?>" size="32" />


hidden : champs caché

varchar : n'existe pas, type="text"

Là je crois vraiment que tu dois commencer par les bases ..

http://www.siteduzero.com/tutoriel-3-13596-les-formulaires.html#ss_part_1

Je pense que c'est un très bon tuto pour toi une fois que tu auras reconstruit ton formulaire correctement envoie moi un MP, je t'aiderai avec les liste déroulantes en PHP...
merci pour tes reponses,
en fait pour la connexion à la bdd je met tt au debut du fichier le code suivant :
<?php require_once('../Connections/connexion.php'); ?>

toutes les informations qui me permettent de se connecter à la bdd sont dans le fichier (connexion.php).
si j'ai bien compris ton msg c'est que ce n'est pas la peine que je mette :
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");
$query_DetailRS1 = sprintf("SELECT * FROM shop_article WHERE id = %s", GetSQLValueString($colname_DetailRS1, "text"));
$DetailRS1 = mysql_query($query_DetailRS1, $connexion) or die(mysql_error());

quand j'ai besoin d'interoger ma bdd!!!
donc je met directement:
$query_DetailRS1 = sprintf("SELECT * FROM shop_article WHERE id = %s", GetSQLValueString($colname_DetailRS1, "text"));
$row_DetailRS1 = mysql_fetch_assoc($DetailRS1);
$totalRows_DetailRS1 = mysql_num_rows($DetailRS1);
 
et pour ma bdd voici la structure de la table que j'utilise pour afficher la liste deroulante et le id de l'article:



-- Structure de la table `shop_article`
--

CREATE TABLE IF NOT EXISTS `shop_article` (
  `id` varchar(20) NOT NULL,
  `rubrique` float unsigned NOT NULL default '0',
  `titre` text NOT NULL,
  `prix_ht` float NOT NULL default '0',
  `description` text NOT NULL,
  `stock` float NOT NULL default '0',
  `poids` float NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `rubrique` (`rubrique`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
nounou85 a écrit :

donc je met directement:
$query_DetailRS1 = sprintf(&quot;SELECT * FROM shop_article WHERE id = %s&quot;, GetSQLValueString($colname_DetailRS1, &quot;text&quot;));
$row_DetailRS1 = mysql_fetch_assoc($DetailRS1);
$totalRows_DetailRS1 = mysql_num_rows($DetailRS1);
 



En gros oui, parcontre c'est quoi sprintf( ) ?? pour exécuter une requête, enfin ce que j'utilise $marequete = mysql_query( $req );
$monresultat = mysql_fetch_array( $marequete );

ensuite j'utilise un while :
while ($monresultat) {
        //option de la liste deroulante
        echo "<option value='".$monresultat["monchampid"]."'>".$monresultat["monchamptexte"]."</option>";
}


Un petit exemple pour ta liste déroulante, qui doit être entouré des balises html :
<select name="nom_du_select"></select>

Modifié par mini-truc (20 May 2011 - 12:10)
ben là je viens de supprimer le :
mysql_select_db($database_connexion, $connexion);
mysql_query("SET NAMES UTF8");

que j'avais mis pour la liste deoulante et quand j'ai essayé de l'executé , il m'affiche en local:
No database selected
malgré que je me suis connecté à la bdd tt au debut du fichier et mm je me suis reconnecté dans un script juste avant le script de la liste deroulante!!! du coup je pense que je dois me reconnecter à la bdd à chaqu fois que je l'utilise!!
Pages :