Posez votre question Signaler

{MySQL} Afficher une information d'une table

Cnedra - Dernière réponse le 15 janv. 2010 à 16:31
Bonjour,
je cherche à afficher le contenu d'un champ (une quantité en stock) d'une table en fonction de son nom de produit qui peut etre variable en entrée.
j'arrive pas a avoir cette information, quelqu'un pourrait'il m'aider
Voici mon code
<?php
$boutonradio="{radio0}";
$nomobjet="{nom_objet}";
$nomdepositaire="{nom_membre}";
$quantiter="{nb_objet}";
echo $boutonradio; echo $nomobjet; echo $nomdepositaire ;echo $quantiter; echo"<br>";
/*connexion bdd*/
$connexion = mysql_connect ($host, $user, "passworddb")or die ("connection bdd impossible" );
mysql_select_db ("mabase",$connexion);
/*operation de recup sur les stock actuel*/
$query='SELECT `nb_objet` FROM `matable` WHERE `matiere`=`$nomobjet`' ;
$dejaenstock=mysql_query($query,$connexion)or die ("result bdd impossible" );
$nbstock=mysql_fetch_array($dejaenstock);
echo "test select";
echo $nbstock[0];
echo $nbstock[1];
print_r($nbstock);
?>
Lire la suite 

{MySQL} Afficher une information d'une table »

6 réponses
Réponse
+0
moins plus
Bonjour

$query='SELECT `nb_objet` FROM `matable` WHERE `matiere`=`$nomobjet`' ; 

Si tu mets $nomobjet entre accents graves `` comme `matiere`, alors mysql le prend pour un nom de champ. Pour qu'il le prenne comme une donnée, il faut le mettre entre apostrophes ' :
$query='SELECT `nb_objet` FROM `matable` WHERE `matiere`='$nomobjet'' ; 


D'autre part :
echo $boutonradio; echo $nomobjet; echo $nomdepositaire ;echo $quantiter; echo"<br>"; 

Ce n'est pas une erreur, mais c'est lourd... écris simplement
echo "$boutonradio $nomobjet  $nomdepositaire  $quantiter <br>"; 
Ajouter un commentaire
Réponse
+0
moins plus
En me relisant ... grosse erreur
Pour que $nomobjet soit pris comme une variable, la chaîne tout entière doit être entre doubles quotes
$query="SELECT `nb_objet` FROM `matable` WHERE `matiere`='$nomobjet'" ;
Ajouter un commentaire
Réponse
+0
moins plus
Je viens de test avec les correction que vous m'avez proposé mais je n'ai toujours pas le renvois de la valeur dans le test 2 alors que lorsque j'inscris manuellement le contenu d'une case de ma table comme dans le test 1 j'ai bien le renvoie correspondant,j'ai tester également dans le troisiéme test avec une inscription hasardeuse avec la variable globale html qui me raporte la premiere valeur mais ça ne fonctionne toujours pas, il doit y avoir une subtilité de syntaxe que je ne maitrise pas.

/*operation de recup sur les stock actuel*/
$query="SELECT nb_objet FROM matable WHERE matiere='Minerai_de_Fer'" ;

$dejaenstock=mysql_query($query,$connexion)or die ("result bdd impossible" );

while($nbstock=mysql_fetch_array($dejaenstock))
{
echo "test select";
echo $nbstock[0];
}

/*test2*/
$query2="SELECT `nb_objet` FROM `matable` WHERE `matiere`='$nomobjet'" ;
$dejaenstock2=mysql_query($query2,$connexion)or die ("result2 bdd impossible" );

while($nbstock2=mysql_fetch_array($dejaenstock2))
{
echo "<br>test select2";
echo $nbstock2[0];
}

/*test3*/
$query3="SELECT nb_objet FROM matable WHERE matiere='{nom_objet}' " ;
$dejaenstock3=mysql_query($query3,$connexion)or die ("result3 bdd impossible" );

while($nbstock3=mysql_fetch_array($dejaenstock3))
{
echo "<br>test select3";
echo $nbstock3[0];
}
Ajouter un commentaire
Réponse
+0
moins plus
Je ne vois pas d'erreur dans ton test2.
J'ai tendance à penser que $nomobjet ne contient pas ce que tu crois.
D'où vient sa valeur ? Montre la partie de code où tu initialises cette variable.

Insère une ligne pour vérifier ce qu'il y a vraiment dans $nomobjet

/*test2*/
echo "nom objet contient : $nomobjet <br />";
$query2="SELECT `nb_objet` FROM `matable` WHERE `matiere`='$nomobjet'" ; 
Ajouter un commentaire
Réponse
+0
moins plus
Je crois que je viens de comprendre en relisant le script de ta question initiale.
tu fais $nomobjet="{nom_objet}"; , ce qui répond à la question que je te posais dans le message précédent.
Mias quand je t'entends parler de "variable globale html" j'ai l'impression que tu crois que tu récupères une valeur saisie dans un formulaire. C'est faux, il faut faire $nomobjet = $_POST['nom_objet']; si ta variable vient d'un formulaire envoyé par la méthode POST qui contient un champ qui s'appelle nom_objet.
Si ce n'est pas ça, qu'entends-tu par "variable globale html" ? Il n'y a pas de variables en html, ni locales, ni globales...
cnedra - 15 janv. 2010 à 16:31
Merci beaucoup de votre aide, c'est bien ça, ça fait deux jour que l'on planche sur le problème, encore merci
Ajouter un commentaire
Ce document intitulé « {MySQL} Afficher une information d'une table » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?