Notice: Undefined index
Résolu/Fermé
Evengeline
Messages postés
117
Date d'inscription
mercredi 20 octobre 2010
Statut
Membre
Dernière intervention
21 octobre 2016
-
20 mars 2012 à 08:23
Evengeline Messages postés 117 Date d'inscription mercredi 20 octobre 2010 Statut Membre Dernière intervention 21 octobre 2016 - 26 mars 2012 à 11:57
Evengeline Messages postés 117 Date d'inscription mercredi 20 octobre 2010 Statut Membre Dernière intervention 21 octobre 2016 - 26 mars 2012 à 11:57
A voir également:
- Notice: Undefined index
- Notice d'utilisation - Guide
- Notice chromecast - Guide
- Montre mingrui notice ✓ - Forum Accessoires & objets connectés
- Montre ushuaia notice ✓ - Forum Loisirs / Divertissements
- Comment régler l'heure - Forum Accessoires & objets connectés
3 réponses
Bonjour,
Si tu récupères tes données en POST, tu dois avoir les champs de ton formulaire nommés ainsi (name) dans le code HTML :
- num
- nom
- nom2
- num2
- num3
Vérifies que c'est bien le cas car num est différent de Num ou encore de NUM.
Ensuite, pour tester que les valeurs sont bien transmises au script, fait un print_r($_POST) au tout début de ton script, dès que tu auras trouvé le problème tu pourras supprimer la fonction print_r().
Si tu récupères tes données en POST, tu dois avoir les champs de ton formulaire nommés ainsi (name) dans le code HTML :
- num
- nom
- nom2
- num2
- num3
Vérifies que c'est bien le cas car num est différent de Num ou encore de NUM.
Ensuite, pour tester que les valeurs sont bien transmises au script, fait un print_r($_POST) au tout début de ton script, dès que tu auras trouvé le problème tu pourras supprimer la fonction print_r().
Evengeline
Messages postés
117
Date d'inscription
mercredi 20 octobre 2010
Statut
Membre
Dernière intervention
21 octobre 2016
4
Modifié par Evengeline le 20/03/2012 à 13:39
Modifié par Evengeline le 20/03/2012 à 13:39
J'ai essayé de mettre le print_r($_POST) comme tu dis, mais il me dis toujours qu'il y a une erreur sur la ligne du dessous où je l'ai placé.
J'ai également vérifié les noms des champs qui sont corrects.
Voici le code qui joue peut-être sur cette erreur, y vois-tu des fautes? j'ai pourtant vérifié et revérifié
Le formulaire:
La partie qui affiche les champs voulus grâce à l'input de validation "bouton" définit au-dessus.
Ensuite la page affichageArticle.php où j'ai le code présenté plus haut:
il me sort les erreurs et ne prend pas en compte mon tableau puisqu'il me dit "pas d'enregistrements dans la table"
Pourtant la table est bien remplie puisque j'ai une partie qui affiche tout et ca marche niquel.
J'ai également vérifié les noms des champs qui sont corrects.
Voici le code qui joue peut-être sur cette erreur, y vois-tu des fautes? j'ai pourtant vérifié et revérifié
Le formulaire:
<div id="menu"> <form method="post" name="rechercheAvancee" action=""> <!--Requiert les infos de connexion à la base de données--> <?php require '../conf.php'; ?> <div id= "bloc-1"> <p> <label for="num">Numero </label> <input type="text" name="num" value="" /></br> <label for="nom">Nom </label> <input type="text" name="nom" value=""/></br> <label for="nom2">Nom2</label> <input type="text" name="nom2" value=""/></br> <label for="num2">Num2</label> <input type="text" name="num2" value=""/></br> <label for="num3">Num3 </label> <input type="text" name="num3" value="" /></br> <!--Validation pour afficher ensuite la page sur la droite de l'écran--> <input value="Valider" type="submit" name="bouton"/> </p> </div> </form>
La partie qui affiche les champs voulus grâce à l'input de validation "bouton" définit au-dessus.
<div id="menu2"> <form method="post"> <div id="affiche2"> <?php if(isset($_POST['bouton'])) { include('affichageArticle.php');/*affichageArticle.php est l'affichage du tableau d'après les paramètres entrés par l'utilisateur*/ } ?> </div> </form> </div>
Ensuite la page affichageArticle.php où j'ai le code présenté plus haut:
<?php //appel de la page de connexion à la base de données include ('../conf.php'); //le nom de la table $tablename = 'test'; $num = $_POST['num']; $nom= $_POST['nom']; $nom2= $_POST['nom2']; $num2 = $_POST['num2']; $num3 = $_POST['num3']; //on regarde si les cases sont vides ou remplies if ($num=="" AND $nom=="") { $select = "SELECT * FROM test WHERE nom2='$nom2' AND num2='$num2' AND num3='$num3' ORDER BY num DESC"; } else if ($num=="" AND $nom2=="") { $select = "SELECT * FROM test WHERE nom='$nom' AND num2='$num2' AND num3='$num3' ORDER BY num DESC"; } else if ($num=="" AND $num2=="") { $select = "SELECT * FROM test WHERE nom='$nom' AND nom2='$nom2' AND num3='$num3' ORDER BY num DESC"; } else if ($num=="" AND $num3=="") { $select = "SELECT * FROM test WHERE nom='$nom' AND nom2='$nom2' AND num2='$num2' ORDER BY num DESC"; } . . . . else { $select = "SELECT * FROM test WHERE nom2='$nom2' AND num='$num' AND nom='$nom' AND num2='$num2' AND num3='$num3' ORDER BY num DESC"; } $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error()); $total = mysql_num_rows($result); // on affiche le résultat if($total) { // debut du tableau echo '<table bgcolor="#FFFFFF">'."\n"; // première ligne on affiche les données dans 2 colonnes echo '<tr>'; echo '<td bgcolor="#0099aa"><b><u>num</u></b></td>'; echo '<td bgcolor="#0099aa"><b><u>nom</u></b></td>'; echo '<td bgcolor="#0099aa"><b><u>nom2</u></b></td>'; echo '<td bgcolor="#0099aa"><b><u>num2</u></b></td>'; echo '<td bgcolor="#0099aa"><b><u>num3</u></b></td>' ; echo '</tr>'."\n"; // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. while($row = mysql_fetch_array($result)) { echo '<tr>'; echo '<td bgcolor="#ADD8E6">'.$row["num"].'</td>'; echo '<td bgcolor="#ADD8E6">'.$row["nom"].'</td>'; echo '<td bgcolor="#ADD8E6">'.$row["nom2"].'</td>'; echo '<td bgcolor="#ADD8E6">'.$row["num2"].'</td>'; echo '<td bgcolor="#ADD8E6">'.$row["num3"].'</td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; // fin du tableau. } else echo 'Pas d\'enregistrements dans cette table...'; // on libère le résultat mysql_free_result($result); ?>
il me sort les erreurs et ne prend pas en compte mon tableau puisqu'il me dit "pas d'enregistrements dans la table"
Pourtant la table est bien remplie puisque j'ai une partie qui affiche tout et ca marche niquel.
Evengeline
Messages postés
117
Date d'inscription
mercredi 20 octobre 2010
Statut
Membre
Dernière intervention
21 octobre 2016
4
26 mars 2012 à 11:57
26 mars 2012 à 11:57
Bon bon, ja'i changé de solutions, mon idée était impossible avec beaucoup de champs à prendre en compte, voici une solution pour les prochains:
Je rappelle le but de ce code: Récupérer les paramètres d'un formulaires pour les afficher dans un tableau
Pour afficher:
Voilà, si vous avez besoin de détails n'hésitez pas
bye
Je rappelle le but de ce code: Récupérer les paramètres d'un formulaires pour les afficher dans un tableau
<?php //appel de la page de connexion à la base de données include ('../conf.php'); //le nom de la table $tablename = 'article'; $num= $_POST['num']; $nom= $_POST['nom']; $nom2= $_POST['nom2']; $num2= $_POST['num2']; $num3= $_POST['num3']; $param = ''; if ($num!='') { $param .= ' AND num= ' . $num . ' '; } if ($nom!='') { $param .= ' AND nom= ' . $nom . ' '; } if ($nom2!='') { $param .= ' AND nom2= ' . $nom2 . ' '; } . . . . $select = 'SELECT * FROM article WHERE 1=1 ' . $param; $result = mysql_query($select) or die ('Erreur : '.mysql_error()); $total = mysql_num_rows($result); ?>
Pour afficher:
<table class="affichage" border="2px" cellpadding="1" cellspacing="0" bgcolor="#FFFFFF"> <tr border="0"> <th>Num</th> <th>Nom</th> <th>Nom2</th> <th>Num2</th> <th>Num3</th> </tr> <?php $num = ''; $nom = ''; $nom2 = ''; $num2 = ''; $num3 = ''; <!--script permettant de colorier une ligne sur 2--> $cpt=1; while( $row=mysql_fetch_assoc($result)){ if($cpt % 2!=0) echo '<tr class="ligneimpair">'; else echo '<tr>'; ?> <td border="0"><?php echo $row['num'] ?></td> <td border="0"><?php echo $row['nom'] ?></td> <td border="0"><?php echo $row['nom2'] ?></td> <td border="0"><?php echo $row['num2'] ?></td> <td border="0"><?php echo $row['num3'] ?></td> </tr> <?php $cpt++; } ?> </table>
Voilà, si vous avez besoin de détails n'hésitez pas
bye