Affichage de données en php

Fermé
clovis - 19 avril 2013 à 13:48
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 19 avril 2013 à 17:29
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!!!
A voir également:

6 réponses

Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
19 avril 2013 à 13:56
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
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
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
19 avril 2013 à 14:21
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
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
Mihawk Messages postés 4313 Date d'inscription mercredi 29 mars 2006 Statut Contributeur Dernière intervention 6 janvier 2015 845
19 avril 2013 à 14:34
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
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
19 avril 2013 à 14:50
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
j'avoue que je comprends pas ce que vous dites! suis un peu perdu!!!
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
19 avril 2013 à 17:29
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