Problème d'affichage

stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 - 2 févr. 2006 à 13:29
obcstaff Messages postés 147 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 28 janvier 2008 - 3 févr. 2006 à 15:00
Bonjour,

J'ai un petit problème d'affichage et je comprend pas ou est le problème. Si quelqu'un pouvait m'aider se serait génial, car moi je ne vois vraiment pas ou est le problème. Voici le code source :

Le but du code est de pouvoir afficher des produits par catégorie à l'aide d'un menu déroulant. Anthomicro ma déjà aidé mais malgré tout sa fonctionne pas. Le problème c'est que je nai aucun message d'erreur qui s'affiche, donc aucune piste de travail.

<?php require_once('Connections/ecommerce.php'); ?>
<title>Articles</title>
<style type="text/css">
<!--
.Style1 {font-family: Arial, Helvetica, sans-serif}
body,td,th {
color: #FFFFFF;
font-family: Arial, Helvetica, sans-serif;
}
body {
background-color: #333333;
background-image: url(images/fondsite.gif);
}
a:link {
color: #FFFFFF;
text-decoration: none;
}
a:visited {
color: #FFFFFF;
text-decoration: none;
}
a:hover {
color: #FF0000;
text-decoration: none;
}
a:active {
text-decoration: none;
}
.Style4 {font-size: small}
.Style5 {
color: #FF0000;
font-size: small;
}
-->
</style>
Retour,
Attention !!! Atconcept se r&eacute;serve le droit de modifier ses prix sans pr&eacute;avis.,

----

Afficher :,
<form name="Afficher" method="post" action="articles.php" onchange='this.form.submit();'>

<select name="categorie">
<option value="1">Software</option>
<option value="2">Ecran</option>
<option value="3">Mémoire</option>
<option value="4">Portable</option>
<option value="5">Processeur</option>
</select>

</form>

<table width="761" border="0" cellpadding="0">
<tr>
<td width="97">N&deg;</td>
<td width="69">Catégorie</td>
<td>Nom d'article </td>
<td width="124">Prix HTVA en &euro; </td>
<td width="114">Prix TVAC en &euro; </td>
</tr>
<tr>
<?php
if(isset($_POST['categorie'])and is_numeric($_POST['categorie']))
{
mysql_select_db($database_ecommerce, $ecommerce);
$sql1='SELECT shop_articles.id, shop_articles.nom_article, shop_articles.prix_ht, shop_articles.prix_ttc, shop_articles.rubarticle1, shop_catégories.intitule
FROM shop_articles Inner join shop_catégories on shop_catégories.id=shop_articles.rubarticle1 where shop_articles.rubarticle1='.$_POST['categorie'];
$req=mysql_query($sql1) or die('Erreur SQL!
'.$sql1.'
'.mysql_error());


while ($row_articles=mysql_fetch_array($sql1))
{
?>
<tr>
<td height="19"><?php echo $row_articles[id]; ?></td>
<td height="19"><?php echo $row_articles[intitule]; ?></td>
<td width="259"><?php echo $row_articles[nom_article]; ?></td>
<td>
<?php echo $row_articles[prix_ht]; ?>
</td>
<td>
<?php echo $row_articles[prix_ttc]; ?>
</td>
</tr>
<?php '
'.$row_articles[id].' '.$row_articles[nom].' '.$row_articles[nom_article].' '.$row_articles[prix_ht].' '.$row_articles[prix_ttc].'';
}
}
mysql_close();
?>


Merci d'avance à tout ceux qui se pencherons sur mon problème.

@+

Stu76

35 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 févr. 2006 à 17:55
On y arrivera pas...
Là tu prends ton code PHP, moi je veux le HTML Généré!

echo $sql1;
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
2 févr. 2006 à 17:58
$_POST['categorie']; // tu as oublié les quotes non ?
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
2 févr. 2006 à 18:01
mysql ne connait pas $_POST['categorie'] (tu as d'ailleurs oublié les quotes)

mais je vois que dans le code tu as bien mis les quotes...
0
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
2 févr. 2006 à 18:27
J'ai essayé avec et sans les quotes, malalam je crois pas comprendre ce à quoi tu veux que j'arrive, tu veux un print screen de la page, ou quoi j'ai essayé les différent truc que tu as demandé et achaque fois
pareil. Je n'ai rien qui s'affiche, ou alors montre moi exactement le code, parce que je peut-être trop con que pour comprendre ce que tu me demande.

Voilà ce qui s'affiche quand je fais ce que tu demande c'est à dire rien. Comme je dit depuis le début le code HTML ne pose pas de prob il fonctionne, l'entièreté des éléments sont présent.
Pour moi le problème réside dans la requête SQL, qui n'arrive à pendre la valeur du POST car ici je fais une comparaisons entre deux clés une primaire l'autre secondaire. La valeur de la clés secondaire est fourniepar la valeur <option value" 1 ">Software</option> en clair shop_catégories.idshop_articles.rubarticle1.

Voilà si ca peu permettre a tout le monde de voir plus clair, je suis conscient que se problème est complexe car si il était simple je n'aurais pas solliciter la communauté.
Pour info il y a bcp de personne qui on commencé à chercher la solution, et maintenant on est de moins en moins vu le problème qui est plus complexe qu'il n'y parrait.

bonne soirée
0

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

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2006 à 09:21
Ca, on avait compris. Ce que je veux savoir moi, c'est si $sql1 contient ceci par exemple :

SELECT shop_articles.id, shop_articles.nom_article, shop_articles.prix_ht, shop_articles.prix_ttc, shop_articles.rubarticle1, shop_catégories.intitule
FROM shop_articles Inner join shop_catégories on shop_catégories.id=shop_articles.rubarticle1 where shop_articles.rubarticle1= 1
0
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
3 févr. 2006 à 10:28
Salut malalam,

Pour répondre a ta question non il ne retourne pas de valeur, il me retourne la réponse suivante :

SELECT shop_articles.id, shop_articles.nom_article, shop_articles.prix_ht, shop_articles.prix_ttc, shop_articles.rubarticle1, shop_catégories.intitule
FROM shop_articles Inner join shop_catégories on shop_catégories.id=shop_articles.rubarticle1 where shop_articles.rubarticle1=Erreur SQL!
SELECT shop_articles.id, shop_articles.nom_article, shop_articles.prix_ht, shop_articles.prix_ttc, shop_articles.rubarticle1, shop_catégories.intitule
FROM shop_articles Inner join shop_catégories on shop_catégories.id=shop_articles.rubarticle1 where shop_articles.rubarticle1=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 2

Pour moi le probléme réside donc bien dans le post que effectivement sql ne reconnait pas ou il y a une erreur de syntaxe, mais laquelle?

J'ai chercher dans mes book de sql et je ne vois pas de solution, du moins au niveau de la syntaxe.
J'analyse pour l'instant des sources pour voir après une autre solution pour l'affichage par catégorie.
Eventuellement par le renvoi d'une valeur par l'url ou autre.

Parce que ici je vois pas du tout la solution au prob.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2006 à 10:35
Ah ben vlà...
Non il n'y a pas de syntaxe particulière.
Ton post n'existe pas, visiblement. Mais ce qui m'intrigue c'est que tu le testes, avant, si j'ai bien lu ton code, donc tu rentres dans ta condition.
Juste après ta condition, affiche le aussi : echo 'categorie = ', $_POST['categorie'];
0
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
3 févr. 2006 à 10:44
Merci malalam pour ton aide,

J'ai fais le test que tu ma demandé echo 'categorie = ', $_POST['categorie']; voici le résultat:
categorie =
Il ne donne rien mes j'ai fais une petite modif dans le code vois ci-dessous on arrive au même résultat :

<?php
if(isset($_POST['categorie']) and is_numeric($_POST['categorie']))
{
$id=1;
}
mysql_select_db($database_ecommerce, $ecommerce);
$id=$_POST['categorie'];
$sql1="SELECT shop_articles.id, shop_articles.nom_article, shop_articles.prix_ht, shop_articles.prix_ttc, shop_articles.rubarticle1, shop_catégories.intitule
FROM shop_articles Inner join shop_catégories on shop_catégories.id=shop_articles.rubarticle1 where shop_articles.rubarticle1='$id'";
//echo $sql1;
echo 'categorie = ', $_POST['categorie'];
$req=mysql_query($sql1) or die('Erreur SQL!
'.$sql1.'
'.mysql_error());


while ($row_articles=mysql_fetch_row($req))
{

?>

j'ai affecté la valeur du post à une variable $id quand je fais un echo de dessus je n'ai plus de message d'erreur mais comme pour echo 'categorie = ', $_POST['categorie'];
il me retourne aucune valeur. Pq ?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2006 à 10:54
On reprend... :

<?php
if(isset($_POST['categorie']) and is_numeric($_POST['categorie']))
{
echo 'categorie => ', $_POST['categorie'];
$sql1='SELECT shop_articles.id, shop_articles.nom_article, shop_articles.prix_ht, shop_articles.prix_ttc, shop_articles.rubarticle1, shop_catégories.intitule
FROM shop_articles Inner join shop_catégories on shop_catégories.id=shop_articles.rubarticle1 where shop_articles.rubarticle1='.$_POST['categorie'];
echo '
Query => ', $sql1;
} else {
echo 'Le post de catégorie est VIDE!';
}

Tu remplaces ton code après le formulaire part ça stp.
Et tu me dis ce qu'il se passe.
0
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
3 févr. 2006 à 11:06
Voilà ce qui s'affiche,

Le post de catégorie est VIDE!Erreur SQL!

Query was empty
N°,
Catégorie,
Nom d'article ,
Prix HTVA en ? ,
Prix TVAC en ?
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2006 à 11:25
Ben voilà.
Le post n'arrive pas.
0
stu76 Messages postés 186 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 17 février 2008 1
3 févr. 2006 à 11:32
J'avais compris lol, mais pq, voici la partie html du menu déroulant :

<form name="Afficher" method="post" action="">


<select name="categorie">
<option value="1">Software</option>
<option value="2">Ecran</option>
<option value="3">Mémoire</option>
<option value="4">Portable</option>
<option value="5">Processeur</option>
</select>

</form>
Tout ce qui a de plus classique, la question que je me pose et en même temps à toi, comment peut-on récupérer la valeur d'un post et l'affecter à une variable.
0
obcstaff Messages postés 147 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 28 janvier 2008
3 févr. 2006 à 14:18
Pour affecter ton POST a une variable:



$variable = $_POST['categorie'];





Sinon pour ton pblm principal, tu devrais afficher ton form aprés avoir tester s'il y a eut un POST avec

la fonction if(extract($_POST))

{


si ya des post tu control

}

else

{


si ya pas de post tu affiche ton
form

}



Enfin je sais pas ce que tu en pense malalam....... *-*
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
3 févr. 2006 à 14:30
Ce n'est pas la peine en fait, tant qu'il teste.
Mais extract () n'est pas à utiliser tel quel, regarde les options disponibles, il faut faire très atttention à ce qu'on faait avec cette fonction dangereuse...
0
obcstaff Messages postés 147 Date d'inscription mardi 15 novembre 2005 Statut Membre Dernière intervention 28 janvier 2008
3 févr. 2006 à 15:00
Je suis debutant en php, moi j'utilise cette fonction de la meme maniere que je l'ai expliquée

plus haut mais je serais interréssé de savoir en quoi c'est dangereux, ca pourra m'éviter

peu etre d'avoir des probleme plus tard....lol...



peut tu m'expliquer stp? Et de quelle option parle tu sur extract( ) ?



merci *-*
0
Rejoignez-nous