<?php echo 'texte' ?> vide

Résolu
Bonta Messages postés 37 Statut Membre -  
Blunderer Messages postés 273 Date d'inscription   Statut Membre Dernière intervention   -
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. Utilisateur anonyme
     
    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...
    0
  2. Bonta Messages postés 37 Statut Membre 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
    0
  3. Bonta Messages postés 37 Statut Membre 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 ;-)
    0
  4. Blunderer Messages postés 273 Date d'inscription   Statut Membre Dernière intervention   83
     
    Si possible met résolu :)
    Merci ;)
    0