Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1236 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème formulaire actu calendrier !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème formulaire actu calendrier !!

n°1730859
ysolal
Posté le 12-05-2008 à 14:49:12  profilanswer
 

Bonjour,
 
Voila j'ai un petit souci avec un script que je n'arrive pas a faire fonctionner comme je le souhaite  :kaola: !!
Il s'agit d"un script PHP qui aurait pour but, a partir d'une base de données contenant un calendrier de matchs de foot, permettre d'actualiser les résultats en ligne a partir de ma zone admin en rentrant juste les scores des matchs qui auront eu lieu.
 
Mon principal souci et que quand je veut actu les scores en les rentrants dans la zone de texte, j'ai toujours mon message d'erreur comme quoi il y a des champs vides... en faits mon script ne distingues qu'un seul formulaire au lieu d'un par rencontre ...
 
Voici le script :
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Admin - Calendrier</title>
</head>
 
<body>
<table> <!-- En tête du tableau -->
<caption>Calendrier L1</caption>
<tr>
    <th>Journée </th>
 <th>Equipe 1</th>
    <th>Equipe 2 </th>
    <th>Score 1 </th>
 <th>Score 2</th>
</tr>
<?php
 $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error()); // connexion à la base
mysql_select_db('Test', $db); // Selection base
 
// Calendrier
$retour = mysql_query("SELECT * FROM calendrier ORDER BY Journée" );
while ($donnees = mysql_fetch_array($retour)){  
?>
<tr>
 <td><?php echo $donnees['Journée']?></td>
 <td><?php echo $donnees['Equipe1']?></td>
 <td><?php echo $donnees['Equipe2']?></td>
 <?php if ($donnees['Score1']==NULL AND $donnees['Score2']==NULL)
 { ?>
  <div id="Formulaire">
     <form method="POST" action="http://localhost/Test/addscore.php">
        <left>
         <td>Score 1</td>
      <td><input type="text" name="Score1" size="5" maxlength="10"></td>
         <td>Score 2</td>
      <td><input type="text" name="Score2" size="5" maxlength="10"></td>
         <td><input type="submit" value="Envoyer" name="envoyer"></td>
        </left>
   </form>
  </div>
 <?php }  
 else { ?>
 <td><?php echo $donnees['Score1']?></td>
 <td><?php echo $donnees['Score2']?></td>
 <?php }?>
</tr>
<?php  
}  
mysql_close();
?>
</table>
</body>
</html>
 
 
et la page d'actu des scores addscore.php:
 
<?php  
 // On commence par récupérer les champs
 if(isset($_POST['Score1']))      $Score1=$_POST['Score1'];
 else      $Score1="";
 
 if(isset($_POST['Score2']))      $Score2=$_POST['Score2'];
 else      $Score2="";
 
 // On vérifie si les champs sont vides
 if(empty($Score1) OR empty($Score2))
    {
     echo '<font color="red">Attention, il y a des champs vide ! </font> ';
    }
 
 if( !empty($Score1) AND !empty($Score2)) {
  // connexion à la base
  $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());  
     // sélection de la base
  mysql_select_db('Test',$db)  or die('Erreur de selection '.mysql_error());  
 
  // Requête sql
     $sql = "INSERT INTO calendrier (Score1, Score2) VALUES($Score1, $Score2)";
     
     // on insère les informations du formulaire dans la table
     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
 
     // on affiche le résultat
     echo 'Vos infos on été ajoutées !';
 
     mysql_close();  // on ferme la connexion
 
 }
?>
 
http://www.cote-et-foot.com/pb.JPG
 
Merci d'avance parce que la je sèche !!!

Message cité 1 fois
Message édité par ysolal le 12-05-2008 à 18:55:43
mood
Publicité
Posté le 12-05-2008 à 14:49:12  profilanswer
 

n°1731094
Paulp
~, sweet ~
Posté le 13-05-2008 à 10:36:07  profilanswer
 

ysolal a écrit :

Bonjour,
 
Voila j'ai un petit souci avec un script que je n'arrive pas a faire fonctionner comme je le souhaite  :kaola: !!
Il s'agit d"un script PHP qui aurait pour but, a partir d'une base de données contenant un calendrier de matchs de foot, permettre d'actualiser les résultats en ligne a partir de ma zone admin en rentrant juste les scores des matchs qui auront eu lieu.
 
Mon principal souci et que quand je veut actu les scores en les rentrants dans la zone de texte, j'ai toujours mon message d'erreur comme quoi il y a des champs vides... en faits mon script ne distingues qu'un seul formulaire au lieu d'un par rencontre ...
Merci d'avance parce que la je sèche !!!


 
J'ai déjà eu un problème de ce genre, mon formulaire était mal interprété par le navigateur dans un tableau. Il n'est tout simplement pas valide, d'après le W3C, de mettre un formulaire dans un tableau.
http://giminik.developpez.com/arti [...] ulti-form/

n°1731230
ysolal
Posté le 13-05-2008 à 15:55:13  profilanswer
 

Merci pour ta réponse et grâce au lien que tu m'a envoyer j'ai pu apprendre que php n'acceptait pas les formulaire dans les tableau ...
 
De ce fait j'ai refait mon script avec des balises <span> à la place de <table> mais j'ai toujours le même souci : >Erreur ! il y a des champs vides !!!!
 
Donc je suppose que c'est mon fichier addscore.php  qui n'est pas bon mais je ne trouve pas l'erreur à par que la requête SQL n'est surement pas bonne !
 
 

Citation :

<?php  
 // On commence par récupérer les champs
 if(isset($_POST['Score1']))      $Score1=$_POST['Score1'];
 else      $Score1="";
 
 if(isset($_POST['Score2']))      $Score2=$_POST['Score2'];
 else      $Score2="";
 
 // On vérifie si les champs sont vides
 if(empty($Score1) OR empty($Score2))
    {
     echo '<font color="red">Attention, il y a des champs vide ! </font> ';
    }
 
 if( !empty($Score1) AND !empty($Score2)) {
  // connexion à la base
  $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());  
     // sélection de la base
  mysql_select_db('Test',$db)  or die('Erreur de selection '.mysql_error());  
 
  // Requête sql
     $sql = "INSERT INTO calendrier (Score1, Score2) VALUES($Score1, $Score2)";
     
     // on insère les informations du formulaire dans la table
     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
 
     // on affiche le résultat
     echo 'Vos infos on été ajoutées !';
 
     mysql_close();  // on ferme la connexion
 
 }
?>


 
Si tu pourrait me dire ce que t'en pense ...
 
Merci ++

n°1731234
Paulp
~, sweet ~
Posté le 13-05-2008 à 15:59:50  profilanswer
 

ysolal a écrit :

Merci pour ta réponse et grâce au lien que tu m'a envoyer j'ai pu apprendre que php n'acceptait pas les formulaire dans les tableau ...
 
De ce fait j'ai refait mon script avec des balises <span> à la place de <table> mais j'ai toujours le même souci : >Erreur ! il y a des champs vides !!!!
 
Donc je suppose que c'est mon fichier addscore.php  qui n'est pas bon mais je ne trouve pas l'erreur à par que la requête SQL n'est surement pas bonne !
 
 

Citation :

<?php  
 // On commence par récupérer les champs
 if(isset($_POST['Score1']))      $Score1=$_POST['Score1'];
 else      $Score1="";
 
 if(isset($_POST['Score2']))      $Score2=$_POST['Score2'];
 else      $Score2="";
 
 // On vérifie si les champs sont vides
 if(empty($Score1) OR empty($Score2))
    {
     echo '<font color="red">Attention, il y a des champs vide ! </font> ';
    }
 
 if( !empty($Score1) AND !empty($Score2)) {
  // connexion à la base
  $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());  
     // sélection de la base
  mysql_select_db('Test',$db)  or die('Erreur de selection '.mysql_error());  
 
  // Requête sql
     $sql = "INSERT INTO calendrier (Score1, Score2) VALUES($Score1, $Score2)";
     
     // on insère les informations du formulaire dans la table
     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
 
     // on affiche le résultat
     echo 'Vos infos on été ajoutées !';
 
     mysql_close();  // on ferme la connexion
 
 }
?>


 
Si tu pourrait me dire ce que t'en pense ...
 
Merci ++


Ce n'est pas le PHP qui n'accepte pas le form dans le table mais le HTML
 
Quant à ta question, qu'obtiens-tu comme affichage ?
essaye un print_r($_POST); au début pour voir ce que tu récupères ...

n°1731323
ysolal
Posté le 13-05-2008 à 20:04:16  profilanswer
 

voila lorsque je fais un print_r($_POST); j'ai :
 
Array ( [Score1] => 2 [Score2] => 1 [envoyer] => Envoyer ) Vos infos on été ajoutées !
 
mais le problème c'est que sa me crée un ligne dans la base de donnée avec journée=0 Equipe1=NULL Equipe2=NULL et les scores que j'ai rentré donc je pense que c'est le SQL qui plante !!!
 

Citation :

// Requête sql
     $sql = "INSERT INTO calendrier (Score1, Score2) VALUES($Score1, $Score2)";


 
Voila l'affichage  
 
http://www.cote-et-foot.com/pb2.JPG

Message cité 1 fois
Message édité par ysolal le 13-05-2008 à 20:06:01
n°1731521
Paulp
~, sweet ~
Posté le 14-05-2008 à 10:29:58  profilanswer
 

ysolal a écrit :

voila lorsque je fais un print_r($_POST); j'ai :
 
Array ( [Score1] => 2 [Score2] => 1 [envoyer] => Envoyer ) Vos infos on été ajoutées !
 
mais le problème c'est que sa me crée un ligne dans la base de donnée avec journée=0 Equipe1=NULL Equipe2=NULL et les scores que j'ai rentré donc je pense que c'est le SQL qui plante !!!
 

Citation :

// Requête sql
     $sql = "INSERT INTO calendrier (Score1, Score2) VALUES($Score1, $Score2)";


 
Voila l'affichage  
 
http://www.cote-et-foot.com/pb2.JPG


Non, le SQL ne plante pas :
INSERT INTO calendrier (Score1, Score2) VALUES($Score1, $Score2)
signifie crée une ligne avec les valeurs $Score1 et $Score2 dans les champs Score1 et Score2, et ça marche apparemment.
Si tu veux mettre à jour une ligne existante pour renseigner les scores, il faut utiliser la commande update, et savoir sur quelle ligne tu travailles.
 
Par exemple, dans chaque formulaire, tu rajoutes  
<input type="hidden" name="id" value="<?php echo $donnees['id']; ?>" />
Cette input ne se verra pas mais passera en POST l'id de la ligne sur laquelle tu travailles. Après tu fais le même traitement sur $_POST['id'] que pour les les scores (verification non vide, ...) (au passage, http://fr.wikipedia.org/wiki/Injection_SQL)
Et ta requête devient
UPDATE calendrier SET Score1=$score1, Score2=$score2 WHERE id=$id;
 
 

n°1731914
ysolal
Posté le 14-05-2008 à 17:27:07  profilanswer
 

Merci beaucoup pour ton aide c'est vrai c'était pourtant logique qu'il fallait un UPDATE car les champs étaient déjà crée dans la base... mais je sait pas pourquoi je me suis obstiné dans le INSERT INTO  :pt1cable:  
 
Merci encore :hello:


Message édité par ysolal le 14-05-2008 à 17:45:32
n°1731921
babasss
Posté le 14-05-2008 à 17:37:14  profilanswer
 

Il manque les quotes pour les champs qui ne sont pas numériques : UPDATE calendrier SET Score1=3, Score2=1 WHERE Journée=2 AND Equipe1="Marseille" AND Equipe2="Metz"


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1731950
ysolal
Posté le 14-05-2008 à 18:45:44  profilanswer
 

Tout fonctionne correctement
Merci encore !
 
 :D ++


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème formulaire actu calendrier !!

 

Sujets relatifs
[php] problème d'imagesProbleme de decalage banniere
probleme de jscrollPaneprobléme d'envoie e-mail
problème Signal/Slot avec classes imbriquées avec QtProblème d'ouverture de formulaire en VBA sous Access 2007
client-serveur problémeProblème code VBA jauge verticale
Probleme tableau et cellules html 
Plus de sujets relatifs à : Problème formulaire actu calendrier !!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR