Notice: Undefined index
Résolu
Evengeline
Messages postés
137
Statut
Membre
-
Evengeline Messages postés 137 Statut Membre -
Evengeline Messages postés 137 Statut Membre -
Bonjour,
J'ai la célèbre "Notice: Undefined index", sur mon code:
.
.
.
.
J'ai essayé en mettant ça au dessus, en dessous, au milieu des variables :
Fin bref j'ai essayé tous les if (isset($_POST['']) à tous les endroits possibles, mais rien n'y fait, je ne trouve pas. Est-ce qu'une âme charitable pourrait m'expliquer comment initialiser ces saletés de champs.
Merci beaucoup,
Cordialement
Evengeline
J'ai la célèbre "Notice: Undefined index", sur mon code:
//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";
}
.
.
.
.
J'ai essayé en mettant ça au dessus, en dessous, au milieu des variables :
if (isset($_POST['num']) && ($_POST['nom']) && ($_POST['nom2']) && ($_POST['num2']) && $_POST['num3'])
Fin bref j'ai essayé tous les if (isset($_POST['']) à tous les endroits possibles, mais rien n'y fait, je ne trouve pas. Est-ce qu'une âme charitable pourrait m'expliquer comment initialiser ces saletés de champs.
Merci beaucoup,
Cordialement
Evengeline
A voir également:
- Notice: Undefined index
- Notice gratuite - Guide
- Notice chromecast - Guide
- Notice télécommande universelle grundig - Forum Téléviseurs
- Uleway g381 notice - Forum Mobile
- Homday x-pert écouteur bluetooth notice ✓ - Forum Casque et écouteurs
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().
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.
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