Problème de création de boite de réception
RésoluFanEcureuil831 Messages postés 81 Statut Membre -
Je bloque sur un petit problème lors de la création d'une sorte de boite de réception.
Ma page reste blanche, j'ai vérifié mes points-virgule, mes crochets et autre... mais sans succès. Et mes recherches sur les différents forums se sont révélé infructueuses.
Ma base de donnée comprend une table 'recpt_mail'
Avec des champ 'num_mail', 'date', 'heure', 'nomexp', 'prenomexp', 'nom_ent', mailexp', 'tel', 'fax', 'objet', 'texte_mail'.
Mon code PHP ne me sert uniquement pour afficher dans un tableau les champs 'date', 'heure', 'nomexp', 'prenomexp', 'nom_ent', 'objet'.
J'ai utilisé la boucle WHILE pour cela.
Si quelqu'un de gentil pouvait m'indiquer l'endroit de mon erreur, parce que je galère là :/
Merci beaucoup! ;) et voici mon code:
<tbody>
<tr class="list_mail">
<?php
$BDD = mysql_connect('localhost', 'root', 'root') or die('Erreur de connexion '.mysql_error());
mysql_select_db('protonic',$BDD) or die('Erreur de selection '.mysql_error());
$donnees=mysql_query("SELECT num_mail FROM recpt_mail",$BDD);
$i=mysql_result($donnees,0,0);
$SQL="SELECT date,heure,nomexp,prenomexp,nom_ent,objet FROM recpt_mail WHERE num_mail=$i";
$donnees=mysql_query("SELECT num_mail FROM recpt_mail",$BDD);
while($valeurs=mysql_fetch_array($donnees))
{
echo '<td>'.$valeurs[0].'</td>';
echo'<td>'.$valeurs[1].'</td>';
echo'<td>'.$valeurs[2].'</td>';
echo'<td>'.$valeurs[3].'</td>';
echo'<td>'.$valeurs[4].'</td>';
echo'<td>'.$valeurs[5].'</td>';
echo'<td class="sup">'Supprimer'</td>';
};
mysql_close();
?>
</tr>
</tbody>
7 réponses
Le problème porte sur l'affichage d'une boîte de réception sous forme de tableau à partir de la table recpt_mail, avec les champs date, heure, nomexp, prenomexp, nom_ent et objet. Le code tente d'établir une connexion MySQL et d'utiliser une boucle while sur des résultats pour afficher les colonnes, mais les requêtes et l'extraction des valeurs semblent mal alignées. Les réponses recommandent d'exécuter correctement la requête construite (utiliser $SQL dans mysql_query) et de récupérer les résultats avec les noms de colonnes appropriés, en corrigeant l'usage de $i et l'ordre des appels. Des corrections spécifiques ajoutent aussi de remplacer mysql_result par mysql_fetch_assoc, afficher les valeurs par noms de colonnes et fermer correctement la connexion afin d'éviter les résultats partiels et les erreurs.
-
Bonjour,
Ajoutes des "or Die" après tes mysql_query.
Déjà. à quoi correspond ton $i ??
Tu es sûr que là .. comme ça.. tu récupères bien quelque chose via ta requête :$donnees=mysql_query("SELECT num_mail FROM recpt_mail",$BDD); $i=mysql_result($donnees,0,0);
Ensuite.. tu créés une requête ($SQL) mais tu ne l'appelles pas....$SQL="SELECT date,heure,nomexp,prenomexp,nom_ent,objet FROM recpt_mail WHERE num_mail=$i"; $donnees=mysql_query($SQL,$BDD) or die('<br> Erreur de reqête <br>'.$sql."<br>".mysql_error(); $Nb_rows = mysql_num_rows($donnees); if($Nb_rows){ while($valeurs=mysql_fetch_array($donnees)){ echo '<td>'.$valeurs['date'].'</td>'; echo'<td>'.$valeurs['heure'].'</td>'; echo'<td>'.$valeurs['nomexp'].'</td>'; echo'<td>'.$valeurs['prenomexp'].'</td>'; echo'<td>'.$valeurs['nom_ent'].'</td>'; echo'<td>'.$valeurs['objet'].'</td>'; echo'<td class="sup">'Supprimer'</td>'; } }else{ echo "<br> Aucun résultat trouvé.<br><b> REQUETE =></b><br>".$sql; } mysql_close(); ?>
-
je vais mettre mes "or die" ^^
et $i me sert pour récuperer les numéro d'email et le mettre dans ma requête $sql
Et tu à raison pour $sql qui ne sert a rien si je ne l'utilise pas :/ j'avais pas fait attention
Je vais essayer ^^-
-
J'ai modifié, ma page n'est plus blanche!
J'ai uniquement le haut de ma page (avant le code php) qui s'affiche par contre.
Tout ce qui est après ne s'affiche pas, et le code php ne s'exécute pas non plus ^^
Edit: en regardant de plus près, et le code source de la page, on peu voir que il s'arrête jsute avant le 'include' et tout ce qui est après ne s'affiche pas :/ -
-
-
-
-
Voici le code de ma page:
<!DOCTYPE html> <html> <head> <title> Boite Mail - LA PROTONIC </title> <?php include("head.php"); ?> </head> <div class="fond_principal"> <body> <div class="cadre_acceuil"> <h2 class="deconnecte"><a href="connect_lapro_mail.php">Deconnexion</a></h2> <h1 class="titre_page"><div class="color_blue">Boite de réception</div></h1></br> <table> <caption>Messages reçus:</caption> <thead> <tr class="list_mail"> <th> Date </th> <th> Heure </th> <th> Nom de l\'expediteur </th> <th> Prénom de l\'expediteur </th> <th> Nom de l\'entreprise </th> <th> Objet </th> <th class="sup"> Supprimer </th> </tr> </thead> <tbody> <?php include("mail.inc.php"); ?> </tbody> <tfoot> <tr class="list_mail"> <th> Date </th> <th> Heure </th> <th> Nom de l\'expediteur </th> <th> Prénom de l\'expediteur </th> <th> Nom de l\'entreprise </th> <th> Adresse mail </th> <th class="sup"> Supprimer </th> </tr> </tfoot> </table> <!--FIN CODE A GARDER--> </div> </body> </div> </html>
Et celui du php:
<?php echo '<tr class="list_mail">';'; $BDD = mysql_connect('localhost', 'proto', 'proto') or die('Erreur de connexion '.mysql_error()); mysql_select_db('protonic',$BDD) or die('Erreur de selection '.mysql_error()); $ligne=mysql_query("SELECT num_mail FROM recpt_mail",$BDD); $i=mysql_result($ligne,0,0); $SQL="SELECT date,heure,nomexp,prenomexp,nom_ent,objet FROM recpt_mail WHERE num_mail=$ligne"; $donnees=mysql_query($SQL,$BDD) or die('<br> Erreur de reqête <br>'.$sql."<br>".mysql_error(); $Nb_rows = mysql_num_rows($donnees); if($Nb_rows){ while($valeurs=mysql_fetch_array($donnees)) { echo '<td>'.$valeurs['date'].'</td>'; echo'<td>'.$valeurs['heure'].'</td>'; echo'<td>'.$valeurs['nomexp'].'</td>'; echo'<td>'.$valeurs['prenomexp'].'</td>'; echo'<td>'.$valeurs['nom_ent'].'</td>'; echo'<td>'.$valeurs['objet'].'</td>'; echo'<td class="sup">'Supprimer'</td>'; } }else{ echo "<br> Aucun résultat trouvé.<br><b> REQUETE =></b><br>".$sql; } mysql_close($BDD); echo'</tr>'; ?>
Your soul is mine to keep -
Place ta connexion à ta BDD dans un fichier à part.(tu n'auras qu'à l'include au besoin)
connexion_bdd.php$BDD = mysql_connect('localhost', 'proto', 'proto') or die('<br>Erreur de connexion '.mysql_error()); mysql_select_db('protonic',$BDD) or die('<br>Erreur de selection '.mysql_error());
Et dans mail.inc.php<?php //Include de la page de connexion à la BDD require_once("connexion_bdd.php"); echo '<tr class="list_mail">'; $sql = "SELECT num_mail FROM recpt_mail"; $ligne=mysql_query($sql,$BDD) or die('<br> Erreur de reqête <br>'.$sql."<br>".mysql_error(); $i=mysql_result($ligne,0,0); $SQL="SELECT date,heure,nomexp,prenomexp,nom_ent,objet FROM recpt_mail WHERE num_mail=$ligne"; $donnees=mysql_query($SQL,$BDD) or die('<br> Erreur de reqête <br>'.$sql."<br>".mysql_error(); $Nb_rows = mysql_num_rows($donnees); if($Nb_rows){ while($valeurs=mysql_fetch_array($donnees)) { echo '<td>'.$valeurs['date'].'</td>'; echo'<td>'.$valeurs['heure'].'</td>'; echo'<td>'.$valeurs['nomexp'].'</td>'; echo'<td>'.$valeurs['prenomexp'].'</td>'; echo'<td>'.$valeurs['nom_ent'].'</td>'; echo'<td>'.$valeurs['objet'].'</td>'; echo'<td class="sup">'Supprimer'</td>'; } }else{ echo "<br> Aucun résultat trouvé.<br><b> REQUETE =></b><br>".$sql; } mysql_close($BDD); echo'</tr>'; ?>
Testes ça et dis moi ce que ça donne.
-
-
-
-
Le tableau ne se créé pas, il s'arrete au <tbody>
Code source de la page:<!DOCTYPE html> <html> <head> <title> Boite Mail </title> <!-- head le même pour chaque page --> <head> <meta charset="utf-8"/> <link rel="stylesheet" href="style sheet.css"/> <link rel="stylesheet" media="screen and (max-width: 1024px)" href="mobile.css" /> <meta name="viewport" content="width=device-width, target-densitydpi=device-dpi"/> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> </head> </head> </head> <div class="fond_principal"> <body> <div class="cadre_acceuil"> <h2 class="deconnecte"><a href="connect_lapro_mail.php">Deconnexion</a></h2> <h1 class="titre_page"><div class="color_blue">Boite de réception</div></h1></br> <table> <caption>Messages reçus:</caption> <thead> <tr class="list_mail"> <th> Date </th> <th> Heure </th> <th> Nom de l\'expediteur </th> <th> Prénom de l\'expediteur </th> <th> Nom de l\'entreprise </th> <th> Objet </th> <th class="sup"> Supprimer </th> </tr> </thead> <tbody> -
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Je me demande si le souci ne viendrait pas de ma fonction pour inclure les fichiers....
Testes comme ceci :<?php // Affichage des erreurs de code sur la page error_reporting(-1); // Fonctions utiles (à mettre éventuellement dans un autre fichier à include...) /** * Fonction pour afficher du debug. */ function debug($value,$title=NULL){ echo "<pre>"; echo "--> debug:"; if ($title){ echo "<b>".$title." : </b>"; } if(is_array($value)){ echo "<br>"; print_r($value); }else{ echo $value; } echo "<br>"; var_dump(debug_backtrace()); echo "</pre>"; } ?> <!DOCTYPE html> <html> <head> <title> Boite Mail - LA PROTONIC </title> <?php if(file_exists("head.php"){ include("head.php"); }else{ debug("Fichier introuvable head.php","Error"); } ?> </head> <div class="fond_principal"> <body> <div class="cadre_acceuil"> <h2 class="deconnecte"><a href="connect_lapro_mail.php">Deconnexion</a></h2> <h1 class="titre_page"><div class="color_blue">Boite de réception</div></h1></br> <?php // Juste pour les tests... debug(" DEBUT DU TABLEAU","Test"); ?> <table> <caption>Messages reçus:</caption> <thead> <tr class="list_mail"> <th> Date </th> <th> Heure </th> <th> Nom de l\'expediteur </th> <th> Prénom de l\'expediteur </th> <th> Nom de l\'entreprise </th> <th> Objet </th> <th class="sup"> Supprimer </th> </tr> </thead> <tbody> <?php if(file_exists("mail.inc.php"){ require("mail.inc.php"); }else{ debug("Fichier introuvable mail.inc.php","Error"); } ?> </tbody> <tfoot> <tr class="list_mail"> <th> Date </th> <th> Heure </th> <th> Nom de l\'expediteur </th> <th> Prénom de l\'expediteur </th> <th> Nom de l\'entreprise </th> <th> Adresse mail </th> <th class="sup"> Supprimer </th> </tr> </tfoot> </table> <?php // Juste pour les tests... debug(" FIN DU TABLEAU","Test"); ?> <!--FIN CODE A GARDER--> </div> </body> </div> </html>
Et dans mail.inc.php <?php // Affichage des erreurs de code sur la page error_reporting(-1); //Include de la page de connexion à la BDD if(file_exists("connexion_bdd"){ require("connexion_bdd"); }else{ debug("Fichier introuvable connexion_bdd.php","Error"); } $sql = "SELECT num_mail FROM recpt_mail"; $ligne=mysql_query($sql,$BDD) or die('<br> Erreur de reqête <br>'.$sql."<br>".mysql_error(); $i=mysql_result($ligne,0,0); if($i){ $SQL="SELECT date,heure,nomexp,prenomexp,nom_ent,objet FROM recpt_mail WHERE num_mail=$i"; $donnees=mysql_query($SQL,$BDD) or die('<br> Erreur de reqête <br>'.$sql."<br>".mysql_error(); $Nb_rows = mysql_num_rows($donnees); if($Nb_rows){ while($valeurs=mysql_fetch_array($donnees)) { echo '<tr class="list_mail">'; echo '<td>'.$valeurs['date'].'</td>'; echo'<td>'.$valeurs['heure'].'</td>'; echo'<td>'.$valeurs['nomexp'].'</td>'; echo'<td>'.$valeurs['prenomexp'].'</td>'; echo'<td>'.$valeurs['nom_ent'].'</td>'; echo'<td>'.$valeurs['objet'].'</td>'; echo'<td class="sup">Supprimer</td>'; echo'</tr>'; } }else{ echo '<tr class="list_mail"><td colspan="7">'; debug("Aucun résultat trouvé.<br><b> REQUETE =></b><br>".$sql," NO RESULT >> donnees"); echo '</td></tr>'; } }else{ echo '<tr class="list_mail"><td colspan="7">'; debug(" i est vide "," >> i :!"); echo '</td></tr>'; } mysql_close($BDD); ?>
-
-
J'ai du mal à comprendre où est le souci....
testes ça<?php // Affichage des erreurs de code sur la page //error_reporting(-1); // Fonctions utiles (à mettre éventuellement dans un autre fichier à include...) /** * Fonction pour afficher du debug. */ function debug($value,$title=NULL){ echo "<pre>"; echo "--> debug:"; if ($title){ echo "<b>".$title." : </b>"; } if(is_array($value)){ echo "<br>"; print_r($value); }else{ echo $value; } echo "<br>"; var_dump(debug_backtrace()); echo "</pre>"; } ?> <!DOCTYPE html> <html> <head> <title> Boite Mail - LA PROTONIC </title> <?php debug("Import du HEAD.PHP",""); ?> </head> <div class="fond_principal"> <body> <div class="cadre_acceuil"> <h2 class="deconnecte"><a href="connect_lapro_mail.php">Deconnexion</a></h2> <h1 class="titre_page"><div class="color_blue">Boite de réception</div></h1></br> <?php // Juste pour les tests... debug(" DEBUT DU TABLEAU","Test"); ?> <table> <caption>Messages reçus:</caption> <thead> <tr class="list_mail"> <th> Date </th> <th> Heure </th> <th> Nom de l\'expediteur </th> <th> Prénom de l\'expediteur </th> <th> Nom de l\'entreprise </th> <th> Objet </th> <th class="sup"> Supprimer </th> </tr> </thead> <tbody> <tr class="list_mail"> <td> test </td> <td> test </td> <td> test </td> <td> test </td> <td> test </td> <td> test </td> </tr> </tbody> <tfoot> <tr class="list_mail"> <th> Date </th> <th> Heure </th> <th> Nom de l\'expediteur </th> <th> Prénom de l\'expediteur </th> <th> Nom de l\'entreprise </th> <th> Adresse mail </th> <th class="sup"> Supprimer </th> </tr> </tfoot> </table> <?php // Juste pour les tests... debug(" FIN DU TABLEAU","Test"); ?> <!--FIN CODE A GARDER--> </div> </body> </div> </html>
-
-
Moi aussi je t'avoue, j'ai réussi à résoudre les problèmes que j'avais sur les autres parties du site, mais sur ça je bloque complètement :/
Merci de m'aider ;)
Voici le résulat:
--> debug:Import du HEAD.PHP
array(1) {
[0]=>
array(4) {
["file"]=>
string(75) "C:\Users\maxime\Desktop\UniServerZ\www\LA PROTONIC Site-Web\lapro_mail.php"
["line"]=>
int(34)
["function"]=>
string(5) "debug"
["args"]=>
array(2) {
[0]=>
&string(18) "Import du HEAD.PHP"
[1]=>
&string(0) ""
}
}
}
Deconnexion
Boite de réception
--> debug:Test : DEBUT DU TABLEAU
array(1) {
[0]=>
array(4) {
["file"]=>
string(75) "C:\Users\maxime\Desktop\UniServerZ\www\LA PROTONIC Site-Web\lapro_mail.php"
["line"]=>
int(47)
["function"]=>
string(5) "debug"
["args"]=>
array(2) {
[0]=>
&string(17) " DEBUT DU TABLEAU"
[1]=>
&string(4) "Test"
}
}
}
Messages reçus:
Date Heure Nom de l\'expediteur Prénom de l\'expediteur Nom de l\'entreprise Objet Supprimer
test test test test test test
Date Heure Nom de l\'expediteur Prénom de l\'expediteur Nom de l\'entreprise Adresse mail Supprimer
--> debug:Test : FIN DU TABLEAU
array(1) {
[0]=>
array(4) {
["file"]=>
string(75) "C:\Users\maxime\Desktop\UniServerZ\www\LA PROTONIC Site-Web\lapro_mail.php"
["line"]=>
int(100)
["function"]=>
string(5) "debug"
["args"]=>
array(2) {
[0]=>
&string(15) " FIN DU TABLEAU"
[1]=>
&string(4) "Test"
}
}
}
Your soul is mine to keep-
-
-
Il y a ça:
--> debug:Test : DEBUT DU TABLEAU
array(1) {
[0]=>
array(4) {
["file"]=>
string(75) "C:\Users\martine\Desktop\UniServerZ\www\LA PROTONIC Site-Web\lapro_mail.php"
["line"]=>
int(51)
["function"]=>
string(5) "debug"
["args"]=>
array(2) {
[0]=>
&string(17) " DEBUT DU TABLEAU"
[1]=>
&string(4) "Test"
}
}
}
Ici mon tableau avec la mise en forme et la ligne remplie de 'test'
et le debug
--> debug:Test : FIN DU TABLEAU
array(1) {
[0]=>
array(4) {
["file"]=>
string(75) "C:\Users\martine\Desktop\UniServerZ\www\LA PROTONIC Site-Web\lapro_mail.php"
["line"]=>
int(104)
["function"]=>
string(5) "debug"
["args"]=>
array(2) {
[0]=>
&string(15) " FIN DU TABLEAU"
[1]=>
&string(4) "Test"
}
}
} -
-
Sachant que dans le fichier mail.inc.php il y a une erreur dans l'include au fichier de connexion à la BDD.
Il faut corriger en remplaçant par ceci :
//Include de la page de connexion à la BDD if(file_exists("connexion_bdd")){ require("connexion_bdd"); }else{ debug("Fichier introuvable connexion_bdd.php","Error"); }
EDIT : Tu as bien créé le fichier connexion_bdd.php ? (dans lequel tu as mis les infos de connexion à ta base ? )
-