Mysql_fetch_array() expects parameter 1 to be resource
sylvain83 Messages postés 64 Statut Membre -
Salut a tous,
voila j'ai pour projet de créer un formulaire qui récoltera des informations, pour les insérer dans une table pour ensuite les afficher dans un tableau...j'ai donc essayer de coder en PHP et voila ce que ca a donné :
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=$_POST['Enseignant'];
else $Enseignant="";
if(isset($_POST['Salle'])) $Salle=$_POST['Salle'];
else $Salle="";
if(isset($_POST['Date'])) $Date=$_POST['Date'];
else $Date="";
if(isset($_POST['Horaire'])) $Horaire=$_POST['Horaire'];
else $Horaire="";
if(isset($_POST['Numero'])) $Numero=$_POST['Numero'];
else $Numero="";
if(isset($_POST['Titre'])) $Titre=$_POST['Titre'];
else $Titre="";
if(isset($_POST['Nouvelle'])) $Nouvelle=$_POST['Nouvelle'];
else $Nouvelle="";
if(isset($_POST['Remarque'])) $Remarque=$_POST['Remarque'];
else $Remarque="";
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on écrit la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero','$Titre','$Nouvelle','$Remarque')";
// on insère les informations du formulaire dans la table
$result = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on ete ajoutees.';
// on affiche les données saisies dans un tableau
echo"<table><tr><th>ID</th><th>Enseignant</th><th>Salle</th><th>Date</th><th>Horaire</th><th>Numero</th><th>Type</th><th>Titre</th><th>Nouvelle</th><th>Remarque</th></tr>" ;
while($row = mysql_fetch_array($result))
{
echo "<tr><td>".$row['Enseignant'] . "</td><td> ". $row['Salle'] . "</td><td> ". $row['Date'] . "</td><td> ". $row['Horaire'] . "</td><td> ". $row['Numero'] . "</td><td> ". $row['Type']. "</td><td> ". $row['Titre']. "</td><td> ". $row['Nouvelle']. "</td><td> ". $row['Remarque']. "</td><td></tr>";
}
echo "</table";
mysql_close();
// on ferme la connexion
}
?>
Le problème est que je recois a chaque fois le message d'erreur : "Vos infos on ete ajoutees.
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-12.1\www\add.php on line 45
ID Enseignant Salle Date Horaire Numero Type Titre Nouvelle Remarque "
Auriez vous une idée ? Je recherche un peu partout sur le net et sur les forums , et étant un novice en PHP j avoue être un peu perdu...merci d avance pour votre aide !
- Mysql_fetch_array() expects parameter 1 to be resource
- Qwerty to azerty - Guide
- Vlc cast to tv - Guide
- Mb to mo - Forum Matériel & Système
- Différence entre Mo et MB ✓ - Forum Matériel & Système
- Reboot to bootloader - Guide
69 réponses
- 1
- 2
- 3
- 4
Problème : un formulaire PHP doit collecter des informations, les insérer dans une table MySQL et les afficher, mais l’insertion et l’affichage échouent. Des erreurs récurrentes incluent Warning: mysql_fetch_array() expects parameter 1 to be resource et 'Champ inconnu', indiquant une insertion ratée ou des noms de colonnes incorrects. Pour remédier, plusieurs réponses recommandent strlen plutôt que empty et la vérification d’un champ existant, ainsi que de tester que les données saisies sont raisonnables. En pratique, il est conseillé de séparer le traitement du formulaire dans un fichier PHP dédié, d’utiliser MySQLi ou PDO et d’afficher le tableau via une requête SELECT adaptée.
J'ai donc essayé de suivre vos instructions et créant une nouvelle requête :
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=$_POST['Enseignant'];
else $Enseignant="";
if(isset($_POST['Salle'])) $Salle=$_POST['Salle'];
else $Salle="";
if(isset($_POST['Date'])) $Date=$_POST['Date'];
else $Date="";
if(isset($_POST['Horaire'])) $Horaire=$_POST['Horaire'];
else $Horaire="";
if(isset($_POST['Numero'])) $Numero=$_POST['Numero'];
else $Numero="";
if(isset($_POST['Titre'])) $Titre=$_POST['Titre'];
else $Titre="";
if(isset($_POST['Nouvelle'])) $Nouvelle=$_POST['Nouvelle'];
else $Nouvelle="";
if(isset($_POST['Remarque'])) $Remarque=$_POST['Remarque'];
else $Remarque="";
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT Enseignant,Salle,Date,Horaire,Numero,Titre,Nouvelle,Remarque';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on ete ajoutees.';
// on affiche les données saisies dans un tableau
echo"<table><tr><th>ID</th><th>Enseignant</th><th>Salle</th><th>Date</th><th>Horaire</th><th>Numero</th><th>Type</th><th>Titre</th><th>Nouvelle</th><th>Remarque</th></tr>" ;
while($row = mysql_fetch_array($req))
{
echo "<tr><td>".$row['Enseignant'] . "</td><td> ". $row['Salle'] . "</td><td> ". $row['Date'] . "</td><td> ". $row['Horaire'] . "</td><td> ". $row['Numero'] . "</td><td> ". $row['Type']. "</td><td> ". $row['Titre']. "</td><td> ". $row['Nouvelle']. "</td><td> ". $row['Remarque']. "</td><td></tr>";
}
echo "</table";
mysql_close();
// on ferme la connexion
}
?>
Seulement j'ai un nouveau message d erreur :
Erreur SQL !INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Titre, Nouvelle, Remarque) VALUES('','Enseignant','Salle','Date','Horaire','Numero','Titre','Nouvelle','Remarque')
Champ 'Enseignant' inconnu dans field list
En particulier, une variable est "empty" même si elle contient le nombre 0 ou la chaîne "0", ou la valeur booléenne "false"
Pour voir s'il y a "quelque chose" dans un champ de formulaire, le plus sûr est encore strlen. De plus, il faut toujours des tests complémentaires pour vérifier que la saisie est 'raisonnable' . Au strict minimum, qu'un nombre est bien un nombre.
Ton
mysql_fetch_array($result)est, je pense que tu l'as compris, un itérateur sur l'objet
$result.
Or qu'est ce que
$resultà l'endroit où tu fait ton
mysql_fetch_array($result)?
C'est simplement le résultat de ta requête.
Ta requête réalisée est un INSERT donc elle renvoie en
booleancomme te le dit l'erreur. (
trueou
falsesi échec ou réussite) .
Donc il faut que tu fasses une deuxième requête, cette fois-ci un SELECT, qui te renvoie les données que tu désires.
Cordialement,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSi est l'est, met tout dans ton post.
Aussi, dans la requête SELECT tu as oublié le FROM.
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=$_POST['Enseignant'];
else $Enseignant="";
if(isset($_POST['Salle'])) $Salle=$_POST['Salle'];
else $Salle="";
if(isset($_POST['Date'])) $Date=$_POST['Date'];
else $Date="";
if(isset($_POST['Horaire'])) $Horaire=$_POST['Horaire'];
else $Horaire="";
if(isset($_POST['Numero'])) $Numero=$_POST['Numero'];
else $Numero="";
if(isset($_POST['Titre'])) $Titre=$_POST['Titre'];
else $Titre="";
if(isset($_POST['Nouvelle'])) $Nouvelle=$_POST['Nouvelle'];
else $Nouvelle="";
if(isset($_POST['Remarque'])) $Remarque=$_POST['Remarque'];
else $Remarque="";
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT Enseignant,Salle,Date,Horaire,Numero,Titre,Nouvelle,Remarque FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$result.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on ete ajoutees.';
// on affiche les données saisies dans un tableau
echo"<table><tr><th>ID</th><th>Enseignant</th><th>Salle</th><th>Date</th><th>Horaire</th><th>Numero</th><th>Type</th><th>Titre</th><th>Nouvelle</th><th>Remarque</th></tr>" ;
while($row = mysql_fetch_array($req))
{
echo "<tr><td>".$row['Enseignant'] . "</td><td> ". $row['Salle'] . "</td><td> ". $row['Date'] . "</td><td> ". $row['Horaire'] . "</td><td> ". $row['Numero'] . "</td><td> ". $row['Type']. "</td><td> ". $row['Titre']. "</td><td> ". $row['Nouvelle']. "</td><td> ". $row['Remarque']. "</td><td></tr>";
}
echo "</table";
mysql_close();
// on ferme la connexion
}
?>
Ca marche presque ! Mais j ai toujours un message d erreur :
Vos infos on ete ajoutees.
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
ID Enseignant Salle Date Horaire Numero Type Titre Nouvelle Remarque
M.Souyri B0123x 205 9 8345355 greubi B078 muuuz
M.Rigoli Aj111 20583 900 09897873 Maxamud Aj211 gnaaaaa
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
vvvvv mmmmmm 0 0 nnnnnnnn ddddddddd vvvvvvvv Remujkukz
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
Enseignant Salle 0 0 Numero Titre Nouvelle Remarque
souyri Salle 0 0 Numero Titre Nouvelle Remarque
Apparemment un problème a cause de l index...j avance à petit pas ! Merci pour ton aide ;)
mysql_fetch_array($something)sans options, tu ne peux pas accéder aux cases en faisant
$row[CHAMP_DE_TABLE], mais seulement comme ceci
$row[0], row[1], etc.
Si tu veux pouvoir accéder au champs tel que le fait actuellement, il faut que tu fasses un
$row = mysql_fetch_array($req, MYSQL_ASSOC)plutôt.
Cdlt,
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=$_POST['Enseignant'];
else $Enseignant="";
if(isset($_POST['Salle'])) $Salle=$_POST['Salle'];
else $Salle="";
if(isset($_POST['Date'])) $Date=$_POST['Date'];
else $Date="";
if(isset($_POST['Horaire'])) $Horaire=$_POST['Horaire'];
else $Horaire="";
if(isset($_POST['Numero'])) $Numero=$_POST['Numero'];
else $Numero="";
if(isset($_POST['Titre'])) $Titre=$_POST['Titre'];
else $Titre="";
if(isset($_POST['Nouvelle'])) $Nouvelle=$_POST['Nouvelle'];
else $Nouvelle="";
if(isset($_POST['Remarque'])) $Remarque=$_POST['Remarque'];
else $Remarque="";
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT Enseignant,Salle,Date,Horaire,Numero,Titre,Nouvelle,Remarque FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$result.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on ete ajoutees.';
// on affiche les données saisies dans un tableau
echo"<table><tr><th>Enseignant</th><th>Salle</th><th>Date</th><th>Horaire</th><th>Numero</th><th>Type</th><th>Titre</th><th>Nouvelle</th><th>Remarque</th></tr>" ;
while($row = mysql_fetch_array($req, MYSQL_ASSOC))
{
echo "<tr><td>".$row['Enseignant'] . "</td><td> ". $row['Salle'] . "</td><td> ". $row['Date'] . "</td><td> ". $row['Horaire'] . "</td><td> ". $row['Numero'] . "</td><td> ". $row['Type']. "</td><td> ". $row['Titre']. "</td><td> ". $row['Nouvelle']. "</td><td> ". $row['Remarque']. "</td><td></tr>";
}
echo "</table";
mysql_close();
// on ferme la connexion
}
?>
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=$_POST['Enseignant'];
else $Enseignant="";
if(isset($_POST['Salle'])) $Salle=$_POST['Salle'];
else $Salle="";
if(isset($_POST['Date'])) $Date=$_POST['Date'];
else $Date="";
if(isset($_POST['Horaire'])) $Horaire=$_POST['Horaire'];
else $Horaire="";
if(isset($_POST['Numero'])) $Numero=$_POST['Numero'];
else $Numero="";
if(isset($_POST['Titre'])) $Titre=$_POST['Titre'];
else $Titre="";
if(isset($_POST['Nouvelle'])) $Nouvelle=$_POST['Nouvelle'];
else $Nouvelle="";
if(isset($_POST['Remarque'])) $Remarque=$_POST['Remarque'];
else $Remarque="";
//A quoi correspond l' accolade ci dessous ?
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
//très mauvaise idée de nommer ta base phpmyadmin !
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql INSERT
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero','$Titre','$Nouvelle','$Remarque')";
// on insère les informations du formulaire dans la table
$insert=mysql_query($sql) or die('Erreur req INSERT'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur (en cas de réussite !)
if($insert){
echo 'Vos infos on ete ajoutees.';
}else {
echo 'Pb les données n\'ont pas été insérées';
}
//affichage
// requette SELECT.
$result = 'SELECT * FROM infos_tbl'; //mets * comme cela tu sera sur de lire tous les champs
$req = mysql_query($result) or die('Erreur req SELECT !'.$req.'<br>'.mysql_error()); //si tu veux afficher le texte de la requette la variable c'est $req et pas $result
// on affiche les données saisies dans un tableau
echo"<table><tr><th>Enseignant</th><th>Salle</th><th>Date</th><th>Horaire</th><th>Numero</th><th>Type</th><th>Titre</th><th>Nouvelle</th><th>Remarque</th></tr>" ;
while($row = mysql_fetch_array($req)){
//mysql_fetch_array te permet de fiare soit $row[0] soit $row['Enseignant'] etc...
//mysql_fetch_assoc permet seulement $row['Enseignant'] etc..
//Mais es tu sur que le champ Type existe dans ta table ??
//de toute façon tu ne l'avait pas mis dans ta requette SELECT Enseignant,Salle,Date,Horaire,Numero,Titre,Nouvelle,Remarque FROM infos_tbl'; c'est pour cela que c'est mieux de mettre *
echo "<tr><td>".$row['Enseignant'] . "</td><td> ". $row['Salle'] . "</td><td> ". $row['Date'] . "</td><td> ". $row['Horaire'] . "</td><td> ". $row['Numero'] . "</td><td> ". $row['Type']. "</td><td> ". $row['Titre']. "</td><td> ". $row['Nouvelle']. "</td><td> ". $row['Remarque']. "</td></tr>";
//ci dessus tu avait un <td> en trop à la fin juste avant le </tr>
}
echo "</table>"; //la il te manquait >
mysql_close();
// on ferme la connexion
}
?>
C est bizarre parce que ca affiche bien le contenu de la table dans mon tableau mais j ai tout de même le message d erreur
Notice: Undefined index: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 53
<?php
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=$_POST['Enseignant'];
else $Enseignant="";
if(isset($_POST['Salle'])) $Salle=$_POST['Salle'];
else $Salle="";
if(isset($_POST['Date'])) $Date=$_POST['Date'];
else $Date="";
if(isset($_POST['Horaire'])) $Horaire=$_POST['Horaire'];
else $Horaire="";
if(isset($_POST['Numero'])) $Numero=$_POST['Numero'];
else $Numero="";
if(isset($_POST['Type'])) $Numero=$_POST['Type'];
else $Type="";
if(isset($_POST['Titre'])) $Titre=$_POST['Titre'];
else $Titre="";
if(isset($_POST['Nouvelle'])) $Nouvelle=$_POST['Nouvelle'];
else $Nouvelle="";
if(isset($_POST['Remarque'])) $Remarque=$_POST['Remarque'];
else $Remarque="";
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('phpmyadmin',$db) or die('Erreur de selection '.mysql_error());
// on crée la requête sql
$sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Type, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero', '$Type','$Titre','$Nouvelle','$Remarque')";
// on selectionne les informations à afficher dans le tableau
$result = 'SELECT * FROM infos_tbl';
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on envoie la seconde requete
$req = mysql_query($result) or die('Erreur SQL !'.$result.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on ete ajoutees.';
// on affiche les données saisies dans un tableau
echo"<table>
<tr>
<th>Enseignant</th>
<th>Salle</th>
<th>Date</th>
<th>Horaire</th>
<th>Numero</th>
<th>Type</th>
<th>Titre</th>
<th>Nouvelle</th>
<th>Remarque</th>
</tr>" ;
while($row = mysql_fetch_array($req, MYSQL_ASSOC))
{
echo "<tr>
<td>".$row['Enseignant'] . "</td>
<td> ". $row['Salle'] . "</td>
<td> ". $row['Date'] . "</td>
<td> ". $row['Horaire'] . "</td>
<td> ". $row['Numero'] . "</td>
<td> ". $row['Type']. "</td>
<td> ". $row['Titre']. "</td>
<td> ". $row['Nouvelle']. "</td>
<td> ". $row['Remarque']. "</td>
</tr>";
}
echo "</table";
mysql_close();
// on ferme la connexion
}
?>
Ca marche mieux ! Mais toujours un tout petit message d erreur :
Notice: Undefined variable: Type in C:\Program Files\EasyPHP-12.1\www\add.php on line 38
line 38 : $sql = "INSERT INTO infos_tbl(id, Enseignant, Salle, Date, Horaire, Numero, Type, Titre, Nouvelle, Remarque) VALUES('','$Enseignant','$Salle','$Date','$Horaire','$Numero', '$Type','$Titre','$Nouvelle','$Remarque')";
Dois je mettre quelque chose pour l' id ???
Merci !
Le message te dit que la variable $Type n'existe pas. Il suffit de lire :
if(isset($_POST['Type'])) $Numero=$_POST['Type'];
Tu n'as pas à initialiser id si ce champ est bien défini en autoincrement. Tu peux lui mettre une valeur vide comme tu l'as fait, mais il est encore plus simple de ne pas le mettre du tout : ni dans la liste des champs, ni de valeur vide.
Merci bcp , ça marche à présent ;)
......
if(isset($_POST['Remarque'])) $Remarque=$_POST['Remarque'];
else $Remarque="";
{ //la que fait cette accolade toute seule elle devrait être après un test conditionnel
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
....
par exemple:
......
if(isset($_POST['Remarque'])) $Remarque=$_POST['Remarque'];
else $Remarque="";
if(isset($_POST['submit'])){ //si le name de ton bouton submit du formualire est bien "submit" sinon change
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
// sélection de la base
....
L'accolade en PHP sert juste à délimiter un bloc d'instructions.
Si on la trouve après les if et autres while, c'est parce qu'il faut bien indiquer au if ou au while sur quel bloc d'instructions porte le test. D'ailleurs on n'a pas besoin des accolades si il porte sur une seule instruction, comme c'est le cas dans son exemple.
Mais ça n'empêche pas de définir un bloc indépendamment de tout if.
@alain_42, les accolades ne sont pas obligatoirement précédées d'un test conditionnel.
Elles ont pour but de délimiter un bloc.
En effet, une structure de contrôle a besoin d'opérer sur une instruction ou sur un bloc d'instructions.
Mais, la réciproque est fausse; un bloc d'instructions n'a pas besoin d'une structure de contrôle.
Cdlt,
et je ne voit pas l'intérêt pour délimiter un bloc de mettre des accolades
et il est plus judicieux d'ailleurs de conditionner l'exécution de cette partie de code au test de formulaire "posté"
Ils agissent surtout sur la portée des variables.
Je n'ai pas l'impression que ça ait grande influence en PHP après avoir testé ceci sur un interpreteur online :
<?phpLe deuxième echo affiche bien 0
{
$a = 0;
echo $a;
}
echo $a
?>
Tandis qu'en C par exemple :
int main(void)Le code ne compile pas car la variable a est définie seulement à l'intérieur du bloc.
{
{
int a = 5;
printf("%d\n", a);
}
printf("%d\n", a); // a non défini
}
Quoiqu'il en soit, un bloc n'a pas besoin de structure conditionnelle pour exister.
- 1
- 2
- 3
- 4