Affichage de données en php

clovis -  
jeremy.s Messages postés 1248 Statut Membre -
bonjour, voici mon code:

// on teste la déclaration de nos variables
if (isset($_POST['mat']) )
{
//on recupère les valeurs
$mat= $_POST['mat'];
}
// connexion au serveur
$con=mysql_connect("localhost","root","") or die("erreur de connexion au serveur");

//connexion à la base de données
$bd=mysql_select_db("m_berte") or die("erreur de connexion à la base de données");

//formulation de la requête de selection
$sql='SELECT * FROM information WHERE agen_mat= "'.$mat.'" ';

//execution de requête
$req=mysql_query($sql) or die("erreur de selection");

//
$affich=mysql_fetch_array($req);

//on libère l'espace mémoire pour cette interrogation à la base
mysql_free_result($req);

//fermeture de la connexion à la base de données
mysql_close();

//affichage des données sélectionnées dans la base
echo $affich["agen_mat"].''.$affich["agen_nom"].''.$affich["agen_pren"].''.$affich["agen_codexp"].''.$affich["agen_fonc"].''.$affich["agen_agce"].''.$affich["agen_obj"].''.$affich["agen_per"].''.$affich["agen_serv"].''.$affich["agen_real"].'<br/>';

nb: Mais rien ne s'affiche, ce qui m'etonne!
pouvez vous m'aidez? merci!!!

6 réponses

  1. Mihawk Messages postés 4753 Statut Contributeur 846
     
    Salut,

    Que donne le print_r() suivant ?

    print_r($affich);

    S'il affiche Array() c'est que ta requête ne récupère rien en base. À ce moment-là il faut carrément vérifier les premières lignes de ton code :

    if (isset($_POST['mat'])){
         $mat= $_POST['mat'];
    }

    Peut-être que ta variable POST est vide.
    0
  2. clovis
     
    voici mes corrections:

    // on teste la déclaration de nos variables
    if (isset($_POST['mat']) )
    {
    //on recupère les valeurs
    $mat= $_POST['mat'];
    }
    // connexion au serveur
    $con=mysql_connect("localhost","root","") or die("erreur de connexion au serveur");

    //connexion à la base de données
    $bd=mysql_select_db("m_berte") or die("erreur de connexion à la base de données");

    //formulation de la requête de selection
    $sql='SELECT * FROM information WHERE agen_mat= "'.$mat.'" ';

    //execution de requête
    $req=mysql_query($sql) or die("erreur de selection");

    //
    $affich=mysql_fetch_array($req);

    //on libère l'espace mémoire pour cette interrogation à la base
    mysql_free_result($req);

    //fermeture de la connexion à la base de données
    mysql_close();

    //affichage des données sélectionnées dans la base
    print_r($affich);
    /*echo $affich["agen_mat"].''.$affich["agen_nom"].''.$affich["agen_pren"].''.$affich["agen_codexp"].''.$affich["agen_fonc"].''.$affich["agen_agce"].''.$affich["agen_obj"].''.$affich["agen_per"].''.$affich["agen_serv"].''.$affich["agen_real"] .'<br/>';*/

    mais php me dit:"undefined variable mat " à la ligne 23 (au niveau de la requête sql) or tout parait correcte
    0
  3. Mihawk Messages postés 4753 Statut Contributeur 846
     
    Je crois que l'erreur PHP parle bien pourtant !

    if (isset($_POST['mat'])){ 
         $mat= $_POST['mat']; 
    }


    Tu ne passes pas dans ce IF car ta variables $_POST['mat'] n'existe pas !
    Donc tu ne déclares pas ta variable $mat

    Mets plutôt ceci :

    $mat = "";
    if (isset($_POST['mat'])){ 
         $mat= $_POST['mat']; 
    }

    Cela va supprimer ton erreur mais le problème ne sera pas résolu, car tu as apparemment un problème avec ton formulaire. Fais-moi voir le code HTML de ton form.
    0
  4. clovis
     
    ok le voici:

    <table width="600" border="0" height="200" align="center" bgcolor="#FFCC66">
    <caption><u><font color="#FFFFFF"><h3 align="center">Verification d'objectif</h3></font></u></caption>
    <form method="post" action="affichage.php">
    <tr>
    <td>Matricule agent:</td>
    <td><input type="text" name="mat" align="middle" /></td>
    </tr>
    <tr>
    <td colspan="2"><center><input type="submit" value="Rechercher" name="ok"/></center>
    </td>
    </tr>
    </form>
    </table>
    0
    1. Mihawk Messages postés 4753 Statut Contributeur 846
       
      Si dans ton PHP tu mets ça :

      $mat = "";
      if (isset($_POST['mat'])){ 
           $mat= $_POST['mat']; 
      }
      echo ($mat);


      Est-ce qu'il t'affiche bien la valeur que tu rentres dans ton formulaire ?
      0
    2. jeremy.s Messages postés 1248 Statut Membre 79
       
      Salut !

      Je pense savoir pourquoi ta variable est vide !
      Si je dis pas de bétise, on ne peut pas mettre de form dans des tables.
      https://forum.alsacreations.com/topic-2-24074-1.html
      (J'en ai fait l'experience dans un précédent dev)

      Donc soit tu enlèves ta <table>, soit il va falloir de mettre à l'AJAX ;-)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. clovis
     
    j'avoue que je comprends pas ce que vous dites! suis un peu perdu!!!
    0
  7. jeremy.s Messages postés 1248 Statut Membre 79
     
    Enfaite, tu ne peux pas mettre de <form> dans un <table>, a part dans un <td> priori, mais il faut que tout le <form> soit entièrement dans le <td>
    0