Affichage de données en php

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. 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>
    1. j'avoue que je comprends pas ce que vous dites! suis un peu perdu!!!
      1. 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>
        1. Contributeur
          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 ?
        2. 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 ;-)
      2. Contributeur
        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.
        1. 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
          1. Contributeur
            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.