Erreur toute bete !

Fermé
Anoo - 20 juil. 2009 à 15:14
 Anoo - 20 juil. 2009 à 17:38
Bonjour,

Je m'entraine au PHP et voici mon code.

------------------
<?php

session_start();

mysql_connect($mysql["host"], $mysql["username"], $mysql["password"]);
mysql_select_db($mysql["name"]);
$commande = mysql_query("SELECT id_item FROM items WHERE id_item = 44 ");
?>
L'id item est : <?php $commande; ?>
------------------

En resultat j'ai le texte :

L'id item est :

Cependant le numero 44 ne s'affiche pas ! Pourtant la table s'appelle bien items et l'item avec l'id_item 44 existe bien.
Ou est le probleme ?

18 réponses

jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
20 juil. 2009 à 15:39
mysql_connect($mysql["host"], $mysql["username"], $mysql["password"]) or die(mysql_error());
mysql_select_db($mysql["name"])or die(mysql_error());
$commande = mysql_query("SELECT id_item FROM items WHERE id_item = 44 ")or die(mysql_error());
$reponse= mysql_fetch_array ($commande );
$id_item=$reponse[0];
echo ("L'id item est :$id_item");
1
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 15:18
Toute bête oui, il te manque un .commande['$id']. à la place de ton $commande et un echo !

<?php echo ("L'id item est : .commande['$id'].)" ?>

(pas sur du tout du contenu avec le .commande mais c'est un truc comme ça, au pire, essaye juste avec <?php echo ("L'id item est : $commande") ?>
0
J'ai change la derniere ligne en :
<?php echo ("L'id item est : $commande") ?>

Mais rien n'y fait...
Le meme probleme.
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 15:26
Normalement, je pense que t'es obligé de mettre un while ect...
Je suis pas chez moi donc je peux pas te donner ce que moi j'ai fait mais regarde sur le site du zéro et fait un système de while ! T'es sur la bonne voie !
0

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

Posez votre question
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 15:27
Autre chose, tes paramètres de connexion, c'est vraiment ce que t'as mis ou c'est juste modifié pour le forum ? Parceque c'est pas bon du tout et dans ce cas, je te réinvite à aller voir la section PHP du site du zéro !!
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 15:46
Hum, oui c'est ce que j'allais dire ! :p
0
Merci ! !

Ca marche !
Mais a quoi sert le $id_item=$reponse[0]; ? Sert-il a donner la premiere information contenu dans le fetch ?
Donc si je met 1, je n'aurai rien dans ce cas present ?
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 16:25
Exactement !

Au fait, je me serais planter alors pour les paramètre de connexion ? Sniouf :'(
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
20 juil. 2009 à 16:27
"Mais a quoi sert le $id_item=$reponse[0]; ? Sert-il a donner la premiere information contenu dans le fetch ?
Donc si je met 1, je n'aurai rien dans ce cas present ?"

Tout à fait ^^

le fetch_array, comme son nom l'indique, te renvoit la ligne récupérée dans la BDD sous forme de tableau
donc en faisant le [0], on récupère la première case du tableau, [1] la seconde, etc ...
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 16:52
Un petit "Résolu" peut-être ?
0
Heryu, je te rassure, tu avais raison :) !
J'ai rajoute un bout de code.

Je suis maintenant confronte a un autre probleme.
En effet, je veux retranscrire toutes les donnees de ma Session sur un tableau.
J'ai donc le code suivant :

if(is_numeric($_GET["id"]))
{
mysql_connect($mysql["host"], $mysql["username"], $mysql["password"]);
mysql_select_db($mysql["name"]);
$items_wow = mysql_query("SELECT * FROM items_wow WHERE id_cat = ".$_GET["id"]." ORDER BY name");
if(mysql_num_rows($items_wow) == 0)
{
echo "<div class=\"info\">Aucun item dans la catégorie</div>";
?>
<table width="100%">
<tr>
<th>Image</th>
<th>Article</th>
<th>Prix (crédit)</th>
<th>Quantité</th>
<th>Total</th>
</tr>
<?php
mysql_connect($mysql["host"], $mysql["username"], $mysql["password"]);
mysql_select_db($mysql["name"]);
$total = 0;
for($i = 0; $i < count($_SESSION["id_item"]); $i++)
{
if($_SESSION["quantite"][$i] > 0)
{
$commande = mysql_query("SELECT * FROM items WHERE id_item = ".$_SESSION["id_item"][$i]." ORDER BY id_item DESC");
$row = mysql_fetch_assoc($commande);
$categorie_base = $row["id_cat"];
while($categorie_base != -1)
{
$catddd = mysql_query("SELECT * FROM categories WHERE id_cat = '".$categorie_base."'");
$row2 = mysql_fetch_assoc($catddd);
if($row2["scat"]!= -1)
{
$categorie_base = $row2["id_scat"];
$name_categorie_base = $row2["name"];
}


}
echo "<tr>"
. " <td><img src=\"img/diablo/".$row["img"]."\" /></td>"
. " <td>".stripslashes($row["name"])." [".$name_categorie_base."]</td>"
. " <td>".$row["price"]."</td>"
. " <td><select name=\"quantite[]\">";
if($row["quantite"] < $_SESSION["quantite"][$i])
{
$quantite = $row["quantite"];
$_SESSION["quantite"][$i] = $quantite;
}
else
{
$quantite = $_SESSION["quantite"][$i];
}
if($row["quantite"] > 100)
{
$iii = 100;
} else { $iii = $row["quantite"]; }
for($j = 0; $j <= $iii; $j++){
if($j == $quantite)
{
echo "<option value=\"".$j."\" selected=\"selected\">".$j."</option>";
}
else
{
echo "<option value=\"".$j."\">".$j."</option>";
}
}
$total += $row["price"]*$quantite;
echo " </select>"
. " </td>"
. " <td>".$row["price"]*$_SESSION["quantite"][$i]."</td>"
. "</tr>";
}
}

?>



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

Le probleme est que seul le premier element de ma Session s'affiche sur la ligne. et je ne trouve pas le probleme dans mes boucles... Y a t'il un probleme qui stop la boucle ?
Je cherchai
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 17:03
C'est une seule et même page ça ? Dans ce cas, pourquoi mySQL est connecté deux fois ? Une seule fois suffit ^^ (je pense pas que ton problème vient de là)

Sinon désolé, c'est un gros tas de code et j'ai un peu de mal à traduire le tout (je serais sur mon pc avec le matériel qu'il faut je dis pas mais c'est pas le cas la ^^) ! Peut-être que jeangilles sais :p
0
Dans la precipitation j'ai double la connection
Merci :)

C'est tres sympa de ta part d'avoir pris du temps pour m'aider.
Encore merci !
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 17:10
T'as résolu ton problème ?
0
non :/
0
Heryu Messages postés 567 Date d'inscription mercredi 15 juillet 2009 Statut Membre Dernière intervention 28 juin 2016 62
20 juil. 2009 à 17:16
Lol ok, bah patiente, quelqu'un viendra bien t'aider ^^
0
S'il a le courage d'affronter le gros pave du dessus :)
En attendant, je continu a m'arracher les cheveux :D
0
Je suis parvenu a afficher tous les items !!!

Simplement en enlevant la ligne

if($_SESSION["quantite"][$i] > 0)
{

En fait, je crois que quand la boucle est lu pour la premiere fois, la valeur $_SESSION["quantite"] devient nulle a la fin de celle-ci et donc la boucle ne se repete pas, ce qui fait que seul le premier element s'affiche.

Je n'arrive pas a trouver ou se fait ce changement de valeur dans la Session.

Une idee Heryu ?
0