Recherche dans bdd

Fermé
john881115 - 18 nov. 2010 à 22:33
 john881115 - 19 nov. 2010 à 23:52
Bonjour,

Voilà, je viens de réaliser une page contenant un liste d'article (pour l'instant 2) c'est articles sont dans une base de donnée mysql.

J'arrive à aller chercher le premier article et il s'affiche bien comme je le veux la recherche se fait selon le numéro de l'article que j'ai mis dans la valeur de l'input.

Maintenant le problème et que sur une même page je voudrais afficher plusieurs produit et les mettre en session aussi.

2e problème je n'arrive pas à chercher la valeur de l'input et la mettre dans la variable il met undefined index: article.

voici mes codes
<?php
mysql_connect("localhost","root","");
mysql_select_db("client") or die('Impossible de sélectioner une bdd');

//On attribue une variable pour chaque champ du formulaire
$champ0 = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["article"])));

$requete = mysql_query("SELECT * FROM produit WHERE numart='$champ0'");

while ($donnees = mysql_fetch_array($requete) )
{ 
$_SESSION['photo'] = $donnees['photo'];
$_SESSION['libelle']= $donnees['libelle'];
$_SESSION['prixred'] = $donnees['prixred'];
$_SESSION['prixnor'] = $donnees['prixnor'];
$_SESSION['detail'] = $donnees['detail'];
}
?>
<form  name="article" method="POST">
<input type="hidden" name="article" value="1"/>
<tr class="list">
						<td class='produit'>
							<a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">
                <img class='image' src='star.jpg' alt="G-STAR" title="G-STAR" border="0"/>
							</a>
						</td>
						<td class="title">
							<h2><a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">G-STAR</a></h2> 
						</td>
						<td class="price">
							<div>								
									<span>21,90 €</span><br />au lieu de 24,90 €								</div>
						</td>
						<td class="addcart">
							<a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">
								<img src='../../../style/images/panier.jpg' alt='Ajouter au panier' title='Ajouter au panier' border="0" />
							</a>
						</td>
					</tr>
					</form>
					<form  name="article" method="POST">
<input type="hidden" name="article" value="2"/>

					<tr class="list">
						<td class='produit'>
							<a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/2.php">
                <img class='image' src='<?php echo $_SESSION['photo']?>' alt="G-STAR" title="G-STAR" border="0"/>
							</a>
						</td>
						<td class="title">
							<h2><a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/2.php"><?php echo $_SESSION['libelle']?></a></h2> 
						</td>
						<td class="price">
							<div>								
									<span><?php echo $_SESSION['prixred']?></span><br />au lieu de <?php echo $_SESSION['prixnor']?>								</div>
						</td>
						<td class="addcart">
							<a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/2.php">
								<img src='../../../style/images/panier.jpg' alt='Ajouter au panier' title='Ajouter au panier' border="0" />
							</a>
						</td>
					</tr>
					</form>


Merci de votre aide


5 réponses

coccoweb Messages postés 141 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 17 février 2015 27
19 nov. 2010 à 13:00
Voila j'espère que ça t'aidera.
Pour les articles du panier, un cookie ou un panier en SQL serai surement plus adapter. A toi de voir.

<?php
mysql_connect("localhost","root","");
mysql_select_db("shop") or die('Impossible de sélectioner une bdd');
// Juste pour créer la table
mysql_query("CREATE TABLE IF NOT EXISTS 'produit' (
  'numart' int(11) NOT NULL AUTO_INCREMENT,
  'photo' varchar(250) COLLATE latin1_general_ci NOT NULL,
  'libelle' varchar(250) COLLATE latin1_general_ci NOT NULL,
  'prixred' int(11) NOT NULL,
  'prixnor' int(11) NOT NULL,
  'detail' text COLLATE latin1_general_ci NOT NULL,
  PRIMARY KEY ('numart')
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=4 ;
")or die ("Création de la table echoué.<br />".mysql_error());


//On attribue une variable pour chaque champ du formulaire

	// Si $_POST article existe on recherche l'article
if (isSet($_POST["article"]))
	{
	$champ0 = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["article"])));
	$requete = mysql_query("SELECT * FROM produit WHERE numart='$champ0'");
	}
	// Sinon on affiche tout (C'est pas conseiller, il vaudrai mieux faire une pagination)
else 
	{
	$requete = mysql_query("SELECT * FROM produit");
	}


	echo '<form  name="article" method="POST">
<input type="hidden" name="article" value="1"/>
<table border="1">';
// La boucle vide la table et remplis les tableaux
while ($donnees = mysql_fetch_array($requete) )
{ 
/* Donnée en sortie 
$donnees['photo'];
$donnees['libelle'];
$donnees['prixred'];
$donnees['prixnor'];
$donnees['detail'];
*/


// Ici j'ai laissé tel que c'était histoire de pas t'embrouiller
echo '<tr class="list">
	<td class="produit">
		<a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">
			<img class="image" src="'.$donnees['photo'].'" alt="'.$donnees['libelle'].'" title="'.$donnees['libelle'].'" border="0"/>
		</a>
	</td>
	<td class="title">
		<h2><a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">'.$donnees['libelle'].'</a></h2> 
	</td>
	<td class="price">
		<div>';
		// si le prix rouge est différent de vide on affiche
		if (!empty($donnees['prixred']))
			{
			echo '<span>'.$donnees['prixred'].' €</span><br />au lieu de '.$donnees['prixred'].' €';
			}
		// sinon on affiche de faon standard
		else
			{
			echo '<span>'.$donnees['prixred'].' €</span><br />';
			}
			
		echo '</div>
	</td>
	<td class="addcart">
		<a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">
			<img src="../../../style/images/panier.jpg" alt="Ajouter au panier" title="Ajouter au panier" border="0" />
		</a>
	</td>
</tr>';
}
echo '</table>
</form>';
1
coccoweb Messages postés 141 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 17 février 2015 27
19 nov. 2010 à 02:54
Tu fais une erreur en utilisant les variables global SESSION.
Ta requête recherche un article, pas la catégorie donc logique il affiche un article.

Envois moi la table SQL que tu dois exploité que j'y regarde
0
Voici ma table sql

-- Serveur: localhost
-- Généré le : Ven 19 Novembre 2010 à 08:50
-- Version du serveur: 5.1.36
-- Version de PHP: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
0
Merci pour ton aide, ca m'aide beaucoup j'ai modifié un peu le code et rajouté dans la table une colonne catégorie qui me permettra d'afficher tous les produits qui ont la catégorie que je désire c'est plus simple comme celà via une autre page je pourrais modifier supprimer et ajouter les produits de la base.

Voici le code

<?php
mysql_connect("localhost","root","");
mysql_select_db("client") or die('Impossible de sélectioner une bdd');

//On attribue une variable pour chaque champ du formulaire

$champ0 = mysql_real_escape_string(htmlspecialchars(stripcslashes(BoitiersVTT)));
	$requete = mysql_query("SELECT * FROM produit WHERE categorie='$champ0'");
	
	
// La boucle vide la table et remplis les tableaux
while ($donnees = mysql_fetch_array($requete) )
{ 
/* Donnée en sortie 
$donnees['photo'];
$donnees['libelle'];
$donnees['prixred'];
$donnees['prixnor'];
$donnees['detail'];
*/


// Ici j'ai laissé tel que c'était histoire de pas t'embrouiller
echo '
<tbody>
<tr class="list">
	<td class="produit">
		<a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">
			<img class="image" src="'.$donnees['photo'].'" alt="'.$donnees['libelle'].'" title="'.$donnees['libelle'].'" border="0"/>
		</a>
	</td>
	<td class="title">
		<h2><a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">'.$donnees['libelle'].'</a></h2> 
	</td>
	<td class="price">
		<div>';
		// si le prix rouge est différent de vide on affiche
		if (!empty($donnees['prixred']))
			{
			echo '<span>'.$donnees['prixred'].' €</span><br />au lieu de '.$donnees['prixnor'].' €';
			}
		// sinon on affiche de faon standard
		else
			{
			echo '<span>'.$donnees['prixred'].' €</span><br />';
			}
			
		echo '</div>
	</td>
	<td class="addcart">
		<a href="http://localhost/BikeForLife/VTT/Groupe/Boitier/1.php">
			<img src="../../../style/images/panier.jpg" alt="Ajouter au panier" title="Ajouter au panier" border="0" />
		</a>
	</td>
</tr>
</tbody>
';
}
?>


Maintenant le problème est le message d'erreur suivant:

Notice: Use of undefined constant BoitiersVTT - assumed 'BoitiersVTT' in C:\wamp\www\BikeForLife\VTT\Groupe\Boitier\Boitier.php on line 95

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
C'est bon j'ai trouvé l'erreur il manquait juste ' ' :s

merci de ton aide;)
0