Mysql_fetch_array() expects parameter 1 to be resource

Fermé
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 - 25 sept. 2013 à 09:42
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 - 11 nov. 2013 à 11:46


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 !
A voir également:

69 réponses

sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
25 sept. 2013 à 10:36
Merci pour votre réponse !
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
1
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
25 sept. 2013 à 10:44
Le champ est-it bien présent dans ta database ?
0
Utilisateur anonyme
30 sept. 2013 à 10:44
empty ne teste pas si une variable est vide, mais si son contenu est nul.

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.
1
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
25 sept. 2013 à 10:02
Bonjour,

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
boolean
comme te le dit l'erreur. (
true
ou
false
si é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,
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
25 sept. 2013 à 10:49
Le champ Enseignant ? Oui il est bien présent dans ma table info_tbl
0

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

Posez votre question
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
25 sept. 2013 à 11:13
Ton erreur n'est pas plus détaillée que cela ?
Si est l'est, met tout dans ton post.

Aussi, dans la requête SELECT tu as oublié le FROM.
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
25 sept. 2013 à 11:19
Ouai j'ai vu ! Je viens de l ajouter !

<?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 ;)
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
25 sept. 2013 à 12:53
En effet j'avais pas fait attention mais en utilisant
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,
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
25 sept. 2013 à 12:53
Et voici la documentation qui va avec : https://www.php.net/manual/fr/function.mysql-fetch-array.php
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
25 sept. 2013 à 13:51
J'ai ajouté MYSQL_ASSOC mais j ai toujours le meme message d erreur

<?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
}
?>
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
25 sept. 2013 à 14:14
Salut, voir commentaires
<?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
}
?>
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
26 sept. 2013 à 08:56
Toujours le même message d erreur :(
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
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
26 sept. 2013 à 09:01
En effet le champ Type n existait pas dans ma table je vais le rajouter, c est peut etre ca qui pose problème....
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
26 sept. 2013 à 09:27
Après modifications :

<?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 !
0
Utilisateur anonyme
26 sept. 2013 à 09:51
Bonjour

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.
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
26 sept. 2013 à 09:56
!!!Ah ouai...à l'avenir j'éviterai le copier/coller , ça évitera les fautes d'étourderies !
Merci bcp , ça marche à présent ;)
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 26/09/2013 à 13:17
ça fonctionne mais tu as qd même un bizarrerie

......
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
....
0
Aucune anomalie.
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.
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
26 sept. 2013 à 13:31
Je pense que c'est une erreur d'inattention de sa part.

@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,

0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
Modifié par Alain_42 le 26/09/2013 à 14:06
pour l'homogénéité du code perso je préfère mettre des accolades tout le temps, si pour debugger on doit rajouter une instruction c'est plus commode

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é"
0
juliencolin54 Messages postés 217 Date d'inscription dimanche 22 juillet 2012 Statut Membre Dernière intervention 1 octobre 2013 55
26 sept. 2013 à 14:13
Les blocs ont leurs propriétés qui différent en fonction du langage.

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 :
<?php
{
$a = 0;
echo $a;
}
echo $a
?>
Le deuxième echo affiche bien 0

Tandis qu'en C par exemple :
int main(void)
{
{
int a = 5;
printf("%d\n", a);
}
printf("%d\n", a); // a non défini
}
Le code ne compile pas car la variable a est définie seulement à l'intérieur du bloc.

Quoiqu'il en soit, un bloc n'a pas besoin de structure conditionnelle pour exister.
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
30 sept. 2013 à 10:25
Dernière petite question concernant mon projet : comment faire pour vérifier que chacun des champs a bien été saisi ?
Faut il que je remplace "isset" par "empty" ?
Merci tout le monde !
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
30 sept. 2013 à 11:36
Merci pour ta réponse, je vais donc voir comment inclure strlen dans mon code afin qu il calcule la taille de ma chaine de caractère et vérifier qu'elle n est pas nulle...
0