<?php echo 'texte' ?> vide

Résolu
Bonjour,

Je suis entrain de créer une base de site internet dans lequel j'ai un formulaire (une simple case a remplir) mais je ne parviens pas a afficher le résultat de ma requête SQL. la page est tout bêtement vide et lorsque je remplace la variable 'ref1' dans la requête j'obtiens une erreur Ressource id #4
au secours ! :'(

1. code du Formulaire

<h1> Formulaire </h1>

<FORM ACTION="resultat.php" METHOD=POST>

<p>
REF: <INPUT TYPE=TEXT SIZE=10 NAME='ref1' VALUE=''> <BR>
<p>

<p>
<p>
<INPUT TYPE=SUBMIT VALUE='rechercher'>
</FORM>

ma variable se nomme donc 'ref1'

2.code de la page suivante

<?php
require ("connect.php");
$connexion = mysql_pconnect (SERVEUR,NOM,PASSE);
$resultat = mysql_query ("SELECT qte_depot1,qte_depot2,qte_depot3 FROM catalogue WHERE ref='ref1' AND depot1 <> 0 OR ref='ref1' AND depot2 <>0 OR ref='ref1' AND depot3 <> 0 ", $connexion);

// si résultat -> on affiche.
if ($resultat)
while ($r = mysql_fetch_array($resultat))
{
echo $resultat;
}
else
{
echo "<B>erreur dans l'execution de la requete.</B><BR>";
echo "<B>message de MySQL:</B>" . mysql_error($connexion);
}
?>

4 réponses

  1. Bonjour

    Ta variable $resultat est une ressource mysql, tu ne peux pas afficher son contenu avec echo.
    Par contre, $r est un tableau qui contient les champs demandés dans ta requête, tu peux donc faire
    echo $r['qte_depot1'],' ',$r['qte_depot1'], etc...
    1. Oui effectivement c'est à cela que sert la ligne while ($r = mysql_fetch_array($resultat)) bete erreur de ma part.

      Merci bcp

      Cependant cela ne fonctionne toujours pas... Enfin oui et non. Cela fontionne pas avec 'ref1' mais lorsque je met une valeur fixe (correspondant a ma base de données) oui.
      J'ai lu que cela pouvais provenir de la désactivation des variables globales je teste et reviens sur ce topic(en espérant que cela puisse aider d'autres)

      Maj: Cela ne fonctionne pas. Peut être est-ce lié au fait que j'essayes d'utiliser ma variable globale directement dans ma requête sql
      1. Le problème provenais bien le la. En espérant que cela puisse aider d'autre utilisateurs voici un bout du cote mis à jour:

        //SI LA CONNEXION EST OK -> REQUETE
        $variable = $_POST['ref1'];
        $resultat = mysql_query ("SELECT qte_depot1,qte_depot2,qte_depot3 FROM catalogue WHERE ref='$variable' AND depot1 <> 0 OR ref='$variable' AND depot2 <>0 OR ref='$variable' AND depot3 <> 0 ", $connexion);

        // si résultat -> on affiche.
        if ($resultat)
        while ($r = mysql_fetch_array($resultat))
        {
        echo $r['qte_depot1'],$r['qte_depot2'],$r['qte_depot3'];
        }
        else
        {
        echo "<B>erreur dans l'execution de la requete.</B><BR>";
        echo "<B>message de MySQL:</B>" . mysql_error($connexion);
        }

        J'ai ajouté $variable = $_POST['ref1']; dans la seconde ligne et édité ma requête en utilisant '$variable'
        Cela fonctionne. encore merci à toi père ;-)