Formulaire (SQL)

Formulaire (SQL) - PHP - Programmation

Marsh Posté le 06-01-2007 à 17:25:36    

Salut. :)  Je me suis mis depuis 3, 4 jours au PHP, et il m'est venu l'idée de faire un système tout bête de formulaire, pour que les visiteurs de mon site puissent lui attribuer une note.
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  3.    <head>
  4.        <title>Univers du TI Basic</title>
  5.        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.        <link rel="stylesheet" media="screen" type="text/css" title="css" href="test.css" />
  7.    </head>
  8.    <body>
  9.   <form action="livreor.php" method="post">
  10. <select name="tonvote">
  11.     <option value="Note">Note</option>
  12.     <option value="01">01/20</option>
  13.     <option value="02">02/20</option>
  14.     <option value="03">03/20</option>
  15.     <option value="04">04/20</option>
  16.     <option value="05">05/20</option>
  17.     <option value="06">06/20</option>
  18.     <option value="07">07/20</option>
  19.     <option value="08">08/20</option>
  20.     <option value="09">09/20</option>
  21.     <option value="10">10/20</option>
  22.     <option value="11">11/20</option>
  23.     <option value="12">12/20</option>
  24.     <option value="13">13/20</option>
  25.     <option value="14">14/20</option>
  26.     <option value="15">15/20</option>
  27.     <option value="16">16/20</option>
  28.     <option value="17">17/20</option>
  29.     <option value="18">18/20</option>
  30.     <option value="19">19/20</option>
  31.     <option value="20">20/20</option>
  32. </select>
  33. <input type="submit" value="GO!" />
  34. </form>
  35. <?php
  36. if (isset($_POST['tonvote']) AND $_POST['tonvote'] != 'Note')
  37. {
  38. $tonvote = htmlentities ($_POST['tonvote']);
  39. mysql_connect("localhost", "root", "" );
  40. mysql_select_db("test" );
  41. mysql_query("INSERT INTO vote VALUES('', '$tonvote')" );
  42. $sommenote = ("SELECT sum(note) AS somme_de_toutes_les_notes FROM vote" );
  43. $sommenoteok = mysql_fetch_array($sommenote);
  44. $entre = ("SELECT COUNT(*) AS nombres_entre FROM vote" );
  45. $entreok = mysql_fetch_array($entre);
  46. $moyenne = $sommenoteok['somme_de_toutes_les_notes'] / $entreok['nombres_entre'];
  47. echo 'Note moyenne attribué au site:' . $moyenne . '/20';
  48. mysql_close();
  49. }
  50. ?>
  51. </body>
  52. </html>



Message:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\documents de jérome\testbdd\livreor.php on line 43
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\documents de jérome\testbdd\livreor.php on line 45
 
Warning: Division by zero in e:\documents de jérome\testbdd\livreor.php on line 46

 
Ligne 43: $sommenoteok = mysql_fetch_array($sommenote);
Ligne 45: $entreok = mysql_fetch_array($entre);
Ligne 46: $moyenne = $sommenoteok['somme_de_toutes_les_notes'] / $entreok['nombres_entre'];
 
Voilà, je n'est aucune idées des fautes. :(
Quelqu'un pour m'aider?

Reply

Marsh Posté le 06-01-2007 à 17:25:36   

Reply

Marsh Posté le 06-01-2007 à 17:30:19    

deja rien a voir avec ton probleme mais fais une boucle pour les options de ton select car la ...
 
fais un echo de tes requetes et testes les direct dans ton sgbd pour commencer

Reply

Marsh Posté le 07-01-2007 à 12:30:23    

Ca sert à rien de faire un htmlentities pour l'insertion dans la base, c'est mysql_real_escape_string qu'il faut utiliser...
 
Ensuite tu fais un mysql_fetch_array, mais t'as oublié le mysql_query juste avant (ta requête est entre parenthèse, manque le mysql_query [:johneh] )

Reply

Marsh Posté le 07-01-2007 à 12:33:25    

EDIT: Dsl Florent G j'avais pas vu ton message.
Je comprend pas, il me manque des requête SQL là? :??:  
 
__
 
Re edit: A oui effectivement j'avais pas vu. Je modifie et je vous dit çà.
_______________________________
 
Euh désolé j'ai pas tout compri :sweat:  
 
CODE:

Code :
  1. <?php
  2. if (isset($_POST['tonvote']) AND $_POST['tonvote'] != 'Note')
  3. {
  4. $tonvote = htmlentities($_POST['tonvote']);
  5. mysql_connect("localhost", "root", "" );
  6. mysql_select_db("test" );
  7. mysql_query('INSERT INTO vote VALUES("", '.$tonvote.')');
  8. $data = ("SELECT AVG(note) AS moyenne FROM vote" );
  9. $data = mysql_fetch_array($data, 0);
  10. echo 'Note moyenne attribué au site:' . $data['moyenne'] . '/20';
  11. mysql_close();
  12. }
  13. ?>


Message:
 
Warning: mysql_fetch_array(): The result type should be either MYSQL_NUM, MYSQL_ASSOC or MYSQL_BOTH. in e:\documents de jérome\testbdd\livreor.php on line 43
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\documents de jérome\testbdd\livreor.php on line 43

 
Ligne 43: $data = mysql_fetch_array($data, 0);
 
Et j'ai recréé une table en faisant bien attention de mettre INT pour les 2 champs, auto_increment  et index pour id.
 
 
Le but est de calculer la moyenne. Donc je préfer utiliser ce code:
 

Code :
  1. <?php
  2. if (isset($_POST['tonvote']) AND $_POST['tonvote'] != 'Note')
  3. {
  4. $tonvote = htmlentities ($_POST['tonvote']);
  5. mysql_connect("localhost", "root", "" );
  6. mysql_select_db("test" );
  7. mysql_query("INSERT INTO vote VALUES('', '$tonvote')" );
  8. $sommenote = ("SELECT sum(note) AS somme_de_toutes_les_notes FROM vote" );
  9. $sommenoteok = mysql_fetch_array($sommenote);
  10. $entre = ("SELECT COUNT(*) AS nombres_entre FROM vote" );
  11. $entreok = mysql_fetch_array($entre);
  12. $moyenne = $sommenoteok['somme_de_toutes_les_notes'] / $entreok['nombres_entre'];
  13. echo 'Note moyenne attribué au site:' . $moyenne . '/20';
  14. mysql_close();
  15. }
  16. ?>
  17. </body>
  18. </html>


 
Message:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\documents de jérome\testbdd\livreor.php on line 43
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in e:\documents de jérome\testbdd\livreor.php on line 45
 
Warning: Division by zero in e:\documents de jérome\testbdd\livreor.php on line 46

 
Ligne 43: $sommenoteok = mysql_fetch_array($sommenote);
Ligne 45: $entreok = mysql_fetch_array($entre);
Ligne 46: $moyenne = $sommenoteok['somme_de_toutes_les_notes'] / $entreok['nombres_entre'];
 
Quelqu'un pour m'aider svp? :(


Message édité par univscien1 le 07-01-2007 à 12:40:04
Reply

Marsh Posté le 07-01-2007 à 12:36:57    

Nan mais faut juste lire mon post, t'as oublié de mettre un mysql_query avant ton fetch_array.... T'as mis ça :

Code :
  1. $entre = ("SELECT COUNT(*) AS nombres_entre FROM vote" );


 
D'après toi, il manque pas quelque chose ? :

Code :
  1. $entre = mysql_query ("SELECT COUNT(*) AS nombres_entre FROM vote" );


Si tu fais pas de mysql_query, forcément ton objet $entre ne sera pas un objet de type mysql resource, ça sera juste la chaîne de caractère correspondant à la requête...

Reply

Marsh Posté le 07-01-2007 à 12:37:21    

Fait doucement, prend ton temps, relis bien ton code, assure-toi d'avoir tout mis

Reply

Marsh Posté le 07-01-2007 à 12:52:48    

C'est bon çà marche.xD
Merci  :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed