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

Utilisateur anonyme
3 oct. 2013 à 15:56
Dernière question ( je le jure !) Je vais faire semblant de ne pas avoir vu ; )
Si tu es redirigé à tous les coups, c'est bien qu'au moins un des champs est vide... Ajoute print_r($_POST) pour voir ce qui est réellement reçu. Si tu juges que c'est correct, fais un copier-coller du résultat ici.
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
3 oct. 2013 à 22:47
Bonsoir Sylvain,

Honnêtement je plaint l'utilisateur qui va remplir ce formulaire, si il ne remplit pas tous les champs tel que le code est fait:

1- on lui ré-affiche le formulaire sans aucun message d'erreur (je ne le voit nulle part)

2- s'il remplit 8 champs sur les 9 on lui ré-affiche le formulaire vide, donc il va devoir tout ressaisir

une solution en traitant le formulaire dans la même page, que tu renommeras scdform.php:

<?php
//variables de travail
$affich_form=true;
$affich_tableau=false;
$msg_erreur="";
$msg_ok="";
//init des variables à vide
$Enseignant="";
$Salle="";
//etc... pour tous les champs

///// traitement du formulaire ////
if(isset($_POST['envoyer'])){ //le formulaire a été envoyé
//verif des champs vides
if(empty($_POST['Enseignant']) || empty($_POST['Salle']) || empty($_POST['Date']) etc.. pour tous les chmaps obligatoires ) {
$msg_erreur='<font-color="red">Vous devez remplir tous les champs !</font>';
}else{
//tous les champs sont remplis on peut insérer
// 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 insère les informations du formulaire dans la table
$insert=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
if($insert){
//l'insertion a réussi => message
$msg_ok='<font-color="green">Vos Données ont été rajoutées dans la base.</font>';
$affich_form=false; // on ne réaffiche plus le formulaire
$affich_tableau=true; // on affiche le tableau
}else{
$msg_ok='<font-color="red">Vos Données n\'ont pas pu être rajoutées dans la base, suite à un problème technique.</font>';
}

}


}

if($affich_form){
//on affiche le formulaire (premier affichage ou si erreur)
//ci dessous value="<?php ... permet de réafficher en cas d'erreur les valeurs précedement saisies
//action="" form appele la même page
?>

<form name="form1" method="post" action="" >
<input type="text" name="Enseignant" id="Enseignant" value="<?php echo $Enseignant; ?>" /><br />
<input type="text" name="Classe" id="Classe" value="<?php echo $Classe; ?>" /><br />
<!-- etc pour tous les champs -->
<?php
//message d'erreur eventuel
if($msg_erreur !=""){ echo '<p>'.$msg_erreur.'</p>'; }
?>
<input type="submit" name="envoyer" id="envoyer" value="Envoyer" /><br />

</form>
<?php
} //fin if affich_form

// message insertion
if($msg_ok != ""){ echo '<p>'.$msg_ok.'</p>';}

if($affich_tableau){
//les données ont été rajoutées correctement on peut afficher le tableau
// on selectionne les informations à afficher dans le tableau
$sql2 = 'SELECT * FROM infos_tbl';
// on envoie la seconde requete
$req = mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<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>";
} //fin if affich tableau

// on ferme la connexion si besoin
if($db) { mysql_close($db); }

?>

Je n'ai pas testé il se peut qu'il subsiste des erreurs de frappe
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
4 oct. 2013 à 09:22
Merci le père et Alain !
J 'ai donc repris ton code Alain et j y ajouté les éléments manquants ( mais surement pas tous ) :

<?php
//variables de travail
$affich_form=true;
$affich_tableau=false;
$msg_erreur="";
$msg_ok="";
//init des variables à vide
$Enseignant="";
$Salle="";
$Date="";
$Horaire="";
$Numero="";
$Type="";
$Titre="";
$Nouvelle="";
$Remarque="";

///// traitement du formulaire ////
if(isset($_POST['envoyer'])){ //le formulaire a été envoyé
//verif des champs vides
if(empty($_POST['Enseignant']) || empty($_POST['Salle']) || empty($_POST['Date'])|| empty($_POST['Horaire'])|| empty($_POST['Numero']) || empty($_POST['Type']) || empty($_POST['Titre']) || empty($_POST['Nouvelle']) || empty($_POST['Remarque'])) {
$msg_erreur='<font-color="red">Vous devez remplir tous les champs !</font>';
}else{
//tous les champs sont remplis on peut insérer
// 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 insère les informations du formulaire dans la table
$insert=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
if($insert){
//l'insertion a réussi => message
$msg_ok='<font-color="green">Vos Données ont été rajoutées dans la base.</font>';
$affich_form=false; // on ne réaffiche plus le formulaire
$affich_tableau=true; // on affiche le tableau
}else{
$msg_ok='<font-color="red">Vos Données n\'ont pas pu être rajoutées dans la base, suite à un problème technique.</font>';
}

}

}

if($affich_form){
//on affiche le formulaire (premier affichage ou si erreur)
//ci dessous value="<?php ... permet de réafficher en cas d'erreur les valeurs précedement saisies
//action="" form appelle la même page
?>

<form name="form1" method="post" action="scdform.php" >
<input type="text" name="Enseignant" id="Enseignant" value="<?php echo $Enseignant; ?>" /><br />
<input type="text" name="Salle" id="Salle" value="<?php echo $Salle; ?>" /><br />
<input type="text" name="Date" id="Date" value="<?php echo $Date; ?>" /><br />
<input type="text" name="Horaire" id="Horaire" value="<?php echo $Horaire; ?>" /><br />
<input type="text" name="Numero" id="Numero" value="<?php echo $Numero; ?>" /><br />
<input type="text" name="Type" id="Type" value="<?php echo $Type; ?>" /><br />
<input type="text" name="Titre" id="Titre" value="<?php echo $Titre; ?>" /><br />
<input type="text" name="Nouvelle" id="Nouvelle" value="<?php echo $Nouvelle; ?>" /><br />
<input type="text" name="Remarque" id="Remarque" value="<?php echo $Remarque; ?>" /><br />

<?php
//message d'erreur eventuel
if($msg_erreur !=""){ echo '<p>'.$msg_erreur.'</p>'; }
?>
<input type="submit" name="envoyer" id="envoyer" value="Envoyer" /><br />

</form>
<?php
} //fin if affich_form

// message insertion
if($msg_ok != ""){ echo '<p>'.$msg_ok.'</p>';}

if($affich_tableau){
//les données ont été rajoutées correctement on peut afficher le tableau
// on selectionne les informations à afficher dans le tableau
$sql2 = 'SELECT * FROM infos_tbl';
// on envoie la seconde requete
$req = mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<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>";
} //fin if affich tableau

// on ferme la connexion si besoin
if($db) { mysql_close($db); }

?>

Message d'erreur lorsque je lance scdform.php :

Notice: Undefined variable: db in C:\Program Files\EasyPHP-12.1\www\scdform.php on line 116
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
4 oct. 2013 à 09:29
Et ca n affiche rien dans le tableau, les lignes ajoutées sont des lignes blanches....bref je continue ;)
0

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

Posez votre question
Utilisateur anonyme
4 oct. 2013 à 09:29
Au risque de me répéter, tu as au moins un champ de vide (ou mal orthographié), et cette nouvelle erreur en est la confirmation.

Regarde attentivement ton formulaire, ou mieux, ajoute print_r($_POST) au début de ton script pour voir ce qui est réellement reçu.
Je pourrais aussi te demander de mettre le code de ton formulaire ici, mais je suis partisan de te guider à découvrir toi-même tes erreurs plutôt que de faire ton travail à ta place.
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
4 oct. 2013 à 09:35
Suis d'accord avec toi le père, je m y attelle ;) Merci
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
4 oct. 2013 à 11:01
Bon...j'ai abandonné le scdform.php d'Alain et suis revenu à mon bon vieux add.php auquel j 'ai rajouté la fonction ne m obligeant pas à changer les url à chaque fois :

<?php

// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";

if(isset($_POST['Salle'])) $Salle=trim($_POST['Salle']);
else $Salle="";

if(isset($_POST['Date'])) $Date=trim($_POST['Date']);
else $Date="";

if(isset($_POST['Horaire'])) $Horaire=trim($_POST['Horaire']);
else $Horaire="";

if(isset($_POST['Numero'])) $Numero=trim($_POST['Numero']);
else $Numero="";

if(isset($_POST['Type'])) $Type=trim($_POST['Type']);
else $Type="";

if(isset($_POST['Titre'])) $Titre=trim($_POST['Titre']);
else $Titre="";

if(isset($_POST['Nouvelle'])) $Nouvelle=trim($_POST['Nouvelle']);
else $Nouvelle="";

if(isset($_POST['Remarque'])) $Remarque=trim($_POST['Remarque']);
else $Remarque="";

// Tous les champs doivent être remplis
if(empty($_POST['Enseignant']) || empty($_POST['Salle']) || empty($_POST['Date'])|| empty($_POST['Horaire'])|| empty($_POST['Numero']) || empty($_POST['Type']) || empty($_POST['Titre']) || empty($_POST['Nouvelle']) || empty($_POST['Remarque'])) {
header('Location:http://127.0.0.1/scdform.html');exit;}


{
// 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 !'.$req.'<br>'.mysql_error());

// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
echo 'Pour ajouter une modification de derniere minute cliquez <a href="http://127.0.0.1/login.html">ici</a>';
echo '<p></p>';

// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<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
}
?>

Lorsque que je met cette fonction ("il faut remplir tous les champs") en commentaire, du coup je peux afficher mon add.php sans qu il soit redirigé automatiquement vers scdform.html...cependant mon tableau s affiche à chaque fois avec une ligne avec enseignant, salle, date etc....et à chaque fois une ligne de plus des lors que j actualise la page add.php....ma question est donc ; lorsque que tu me conseilles d ajouter print_r est ce de la sorte

if(isset(print_r($_POST['Enseignant']))) $Enseignant=trim($_POST['Enseignant']);

Sinon j ai bien verifé les champs ou l orthographe mais j ai rien apercu de flagrant, c est pt etre simplement mon code qui n est pas bon..
else $Enseignant="";
0
Tu mets dès le début du script :
<?php

print_r ($_POST);
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
4 oct. 2013 à 14:34
Voila ce que ca affiche :

Array ( [Enseignant] => Enseignant [Salle] => Salle [Date] => Date [Horaire] => Horaire [Numero] => Numero [Type] => Type [Titre] => Titre [Nouvelle] => Nouvelle [Remarque] => Remarque [envoyer] => Envoyer )
0
Utilisateur anonyme
4 oct. 2013 à 15:05
Et tu dis bien qu'avec ces valeurs-là pour $_POST, si tu laisses ton test avec tes "empty", ça te redirige vers scdform.html ? On est bien d'accord ? Parce que je commence à avoir du mal à comprendre ce qui peut se passer.
Si c'est bien ça, ajoute un autre print_r($_POST); à la place de "headear("Location...) Pour voir s'il n'aurait pas changé entre temps (???)
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
4 oct. 2013 à 15:33
C est bien ca, nous sommes bien d accord ;)

Voila ce que ca affiche après ajout d un autre print-r($_POST)

Array ( [Enseignant] => [Salle] => [Date] => [Horaire] => [Numero] => [Type] => [Titre] => [Nouvelle] => [Remarque] => [envoyer] => Envoyer ) Array ( [Enseignant] => [Salle] => [Date] => [Horaire] => [Numero] => [Type] => [Titre] => [Nouvelle] => [Remarque] => [envoyer] => Envoyer )
0
Utilisateur anonyme
4 oct. 2013 à 16:01
Dans ton message #54, il y avait bien des valeurs dans tes variables $_POST. Elles ont disparu dès le premier print_r($_POST) dans ton message #56 : ce n'est pas possible, tu ne fais pas la même manip dans les deux cas. Dans ton message #56, tu n'avais rien mis dans le formulaire.
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
4 oct. 2013 à 16:14
Autant pour moi , j ai donc refait la même manip et voila ce que ca affiche

Array ( [Enseignant] => Enseignant [Salle] => Salle [Date] => Date [Horaire] => Horaire [Numero] => Numero [Type] => Type [Titre] => Titre [Nouvelle] => Nouvelle [Remarque] => Remarque [envoyer] => Envoyer )
0
Utilisateur anonyme
4 oct. 2013 à 16:22
Donc, ça n'a pas affiché le deuxième print_r($_POST), ce qui veut dire que tu n'es pas entré dans le if (empty etc...
Mais pourtant, si tu remets(comme avant) le header à la place de ce second print_r, tu es redirigé ? J'ai beaucoup, beaucoup de mal à y croire.
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
7 oct. 2013 à 10:38
Et pourtant :(
0
Utilisateur anonyme
7 oct. 2013 à 14:36
Peux-tu déposer le code de tes deux fichiers (formulaire et son traitement) sur cjoint.com après avoir caché tes identifiants, bien sûr ?
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 7/10/2013 à 18:35
c'est moi qui revient si tu veux esayer mon code:

il suffit de supprimer cette partie puisque de toute façon la connexion mysql est fermée auto à la fin du script:

// on ferme la connexion si besoin
if($db) { mysql_close($db); }

de plus je viens de me rendre compte que les valeurs postées ne sont pas récupérées

<?php
//variables de travail
$affich_form=true;
$affich_tableau=false;
$msg_erreur="";
$msg_ok="";
//init des variables à vide
$Enseignant="";
$Salle="";
$Date="";
$Horaire="";
$Numero="";
$Type="";
$Titre="";
$Nouvelle="";
$Remarque="";

///// traitement du formulaire ////
if(isset($_POST['envoyer'])){ //le formulaire a été envoyé
//verif des champs vides
if(empty($_POST['Enseignant']) || empty($_POST['Salle']) || empty($_POST['Date'])|| empty($_POST['Horaire'])|| empty($_POST['Numero']) || empty($_POST['Type']) || empty($_POST['Titre']) || empty($_POST['Nouvelle']) || empty($_POST['Remarque'])) {
$msg_erreur='<font-color="red">Vous devez remplir tous les champs !</font>';
}else{
//tous les champs sont remplis on peut insérer
// 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());
/////// il faut tout d'abord les récupérer
$Enseignant=mysql_real_escape_string($_POST['Enseignant']);
$Salle=mysql_real_escape_string($_POST['Salle']);
$Date=mysql_real_escape_string($_POST['Date']);
$Horaire=mysql_real_escape_string($_POST['Horaire']);
$Numero=mysql_real_escape_string($_POST['Numero']);
$Type=mysql_real_escape_string($_POST['Type']);
$Titre=mysql_real_escape_string($_POST['Titre']);
$Nouvelle=mysql_real_escape_string($_POST['Nouvelle']);
$Remarque=mysql_real_escape_string($_POST['Remarque']);

// 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 insère les informations du formulaire dans la table
$insert=mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
if($insert){
//l'insertion a réussi => message
$msg_ok='<font-color="green">Vos Données ont été rajoutées dans la base.</font>';
$affich_form=false; // on ne réaffiche plus le formulaire
$affich_tableau=true; // on affiche le tableau
}else{
$msg_ok='<font-color="red">Vos Données n\'ont pas pu être rajoutées dans la base, suite à un problème technique.</font>';
}

}

}

if($affich_form){
//on affiche le formulaire (premier affichage ou si erreur)
//ci dessous value="<?php ... permet de réafficher en cas d'erreur les valeurs précedement saisies
//action="" form appelle la même page
?>

<form name="form1" method="post" action="scdform.php" >
<input type="text" name="Enseignant" id="Enseignant" value="<?php echo $Enseignant; ?>" /><br />
<input type="text" name="Salle" id="Salle" value="<?php echo $Salle; ?>" /><br />
<input type="text" name="Date" id="Date" value="<?php echo $Date; ?>" /><br />
<input type="text" name="Horaire" id="Horaire" value="<?php echo $Horaire; ?>" /><br />
<input type="text" name="Numero" id="Numero" value="<?php echo $Numero; ?>" /><br />
<input type="text" name="Type" id="Type" value="<?php echo $Type; ?>" /><br />
<input type="text" name="Titre" id="Titre" value="<?php echo $Titre; ?>" /><br />
<input type="text" name="Nouvelle" id="Nouvelle" value="<?php echo $Nouvelle; ?>" /><br />
<input type="text" name="Remarque" id="Remarque" value="<?php echo $Remarque; ?>" /><br />

<?php
//message d'erreur eventuel
if($msg_erreur !=""){ echo '<p>'.$msg_erreur.'</p>'; }
?>
<input type="submit" name="envoyer" id="envoyer" value="Envoyer" /><br />

</form>
<?php
} //fin if affich_form

// message insertion
if($msg_ok != ""){ echo '<p>'.$msg_ok.'</p>';}

if($affich_tableau){
//les données ont été rajoutées correctement on peut afficher le tableau
// on selectionne les informations à afficher dans le tableau
$sql2 = 'SELECT * FROM infos_tbl';
// on envoie la seconde requete
$req = mysql_query($sql2) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error());
// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<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>";
} //fin if affich tableau


?>
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
8 oct. 2013 à 09:15
Merci Alain ! Je vais néanmoins essayer de continuer avec mon fichier, mais merci beaucoup pour ton aide tout de même ;)

Le père , j ai essayé de mettre mes 2 fichiers sur cjoint.com mais il me dit qu il ne prend pas en charge ce genre de fichier :

Voila mes 2 fichiers si tu veux toujours jeter un coup d oeil :

add.php :

<?php
print_r ($_POST);
// On commence par récupérer les champs
if(isset($_POST['Enseignant'])) $Enseignant=trim($_POST['Enseignant']);
else $Enseignant="";

if(isset($_POST['Salle'])) $Salle=trim($_POST['Salle']);
else $Salle="";

if(isset($_POST['Date'])) $Date=trim($_POST['Date']);
else $Date="";

if(isset($_POST['Horaire'])) $Horaire=trim($_POST['Horaire']);
else $Horaire="";

if(isset($_POST['Numero'])) $Numero=trim($_POST['Numero']);
else $Numero="";

if(isset($_POST['Type'])) $Type=trim($_POST['Type']);
else $Type="";

if(isset($_POST['Titre'])) $Titre=trim($_POST['Titre']);
else $Titre="";

if(isset($_POST['Nouvelle'])) $Nouvelle=trim($_POST['Nouvelle']);
else $Nouvelle="";

if(isset($_POST['Remarque'])) $Remarque=trim($_POST['Remarque']);
else $Remarque="";

// Tous les champs doivent être remplis
if(empty($_POST['Enseignant']) || empty($_POST['Salle']) || empty($_POST['Date'])|| empty($_POST['Horaire'])|| empty($_POST['Numero']) || empty($_POST['Type']) || empty($_POST['Titre']) || empty($_POST['Nouvelle']) || empty($_POST['Remarque'])) {
print_r ($_POST);exit;}


{
// 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 !'.$req.'<br>'.mysql_error());

// on affiche le titre du tableau pour la page dernière minute
echo '<b>CHANGEMENT(S) DE "DERNIERE MINUTE" DE L HORAIRE DES COURS 2013-2014</b>';
echo '<p></p>';
echo 'Pour ajouter une modification de derniere minute cliquez <a href="http://127.0.0.1/login.html">ici</a>';
echo '<p></p>';

// on affiche les données saisies dans un tableau
echo "<table border cellpadding=15>
<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
}
?>


scdform.html :

<html>
<form method="POST" action="add.php">
<center>
<h2>Saisir les dernieres modifications de salle </h2>
<h5>("Veuillez remplir TOUS les champs")</h5>
<input type="text" name="Enseignant" size="20" value="Enseignant" onFocus="javascript:this.value=''" maxlength="25"><br>
<input type="text" name="Salle" size="20" value="Salle" onFocus="javascript:this.value=''" maxlength="5"><br>
<input type="text" name="Date" size="20" value="Date" onFocus="javascript:this.value=''" maxlength="10"><br>
<input type="text" name="Horaire" size="20" value="Horaire" onFocus="javascript:this.value=''" maxlength="7"><br>
<input type="text" name="Numero" size="20" value="Numero" onFocus="javascript:this.value=''" maxlength="10"><br>
<input type="text" name="Type" size="20" value="Type" onFocus="javascript:this.value=''" maxlength="15"><br>
<input type="text" name="Titre" size="20" value="Titre" onFocus="javascript:this.value=''" maxlength="70"><br>
<input type="text" name="Nouvelle" size="20" value="Nouvelle" onFocus="javascript:this.value=''" maxlength="10"><br>
<input type="text" name="Remarque" size="20" value="Remarque" onFocus="javascript:this.value=''" maxlength="70"><br>
<p>
<input type="submit" value="Envoyer" name="envoyer"><br>
<input type="reset" value="Effacer" /><br>
</p>
</center>
</form>
</html>

Ce que je veux :

La page add.php soit en quelque sorte ma page d accueil : l utilisateur arrive sur le tableau et cliques sur le lien " ici " pour ajouter des informations , l utilisateur et donc redirigé vers ma page de login , et une fois authentifié il arrive sur scdform.html pour saisir....
0
Utilisateur anonyme
8 oct. 2013 à 09:41
C'est ça le fonctionnement que tu désires ?
Mais quand tu rentres dans add.php, tu commences par tester si le formulaire est rempli ou non. Comme il n'est pas rempli, tu rediriges vers le formulaire. Donc c'est parfaitement normal que tu sois redirigé systématiquement.
En fait, tu devrais traiter la réception du formulaire dans scdform.html (donc le rebaptiser en .php) et ne rediriger vers add.php (dont le nom ne veut plus rien dire mais pas grave) si tout va bien.
0
sylvain83 Messages postés 62 Date d'inscription mardi 25 septembre 2012 Statut Membre Dernière intervention 30 avril 2014 1
9 oct. 2013 à 10:52
D'accord, du coup je dois reprendre le code de add.php , l insérer dans scdform.html puis le renommer en scdform.php...c est bien ca ?
0