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

  FORUM HardWare.fr
  Programmation
  PHP

  Boucle travaillant avec toutes les valeurs issues d'un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Boucle travaillant avec toutes les valeurs issues d'un formulaire

n°1371177
Proxounet
Posté le 20-05-2006 à 16:41:31  profilanswer
 

Bonjour,
 
Sur une page, je génére une liste de comptes en attente, avec pour chacun un checkbox dont el nom est "id_creer" et comme valeur l'id du compte
je voudrais ensuite faire une boucle travaillant avec chaque id coché :
l'id permet de récupérer le prénom, nom etc de la même ligne dans la table "demandes"
 
Pour l'instant j'ai fais ca, mais je bloque a la boucle :
 

Code :
  1. <form method="post" action="compte_admin.php">
  2. <?
  3. $db = mysql_connect('localhost', '*****', '*****');
  4. mysql_select_db('hebergement',$db);
  5. $req = mysql_query("SELECT id,prenom,nom,compte,adresse,motdepasse,domaine,description FROM demandes" );
  6. while($data = mysql_fetch_assoc($req))
  7.     {
  8.     echo 'Id : '.$data['id'].' | Prénom : '.$data['prenom'].' | Nom : '.$data['nom'].' | Nom du compte : '.$data['compte'].' | Adresse mél : '.$data['adresse'].' | Mot de passe : '.$data['motdepasse'].' | Nom de domaine : '.$data['domaine'].' <br> Description : '.$data['description'].'<br>Créer : <input type="checkbox" name="id_creer" value="'.$data['id'].'" /><br>Supprimer : <input type="checkbox" name="id_supprimer" value="'.$data['id'].'" /><br><br>
  9. ';
  10.     }
  11. mysql_close();
  12. ?>
  13. <input type="submit" name="Submit" value="Envoyer" />
  14. </form>
  15. <form method="post" action="compte_creer.php">
  16.   <p>Id du compte à créer :
  17.     <input type="text" name="id_creer" />
  18.     <input type="submit" name="Submit" value="Envoyer" />
  19.   </p>
  20. </form>
  21. <br />
  22. <form method="post" action="compte_supprimer.php">
  23. Id du compte à supprimer :
  24.   <input type="text" name="id_supprimer" />
  25. <input type="submit" name="Submit" value="Envoyer" />
  26. </form>
  27. <?
  28. if($Submit)
  29. {
  30. $id_creer = $_POST['id_creer'];
  31. while(isset($id_creer))                                                      <<<<<<<<<<<< La boucle
  32. {
  33. $db = mysql_connect('localhost', '*****', '*****');
  34. mysql_select_db('hebergement',$db);
  35. $reponse = mysql_query("SELECT * FROM demandes WHERE id = '$id_creer'" );
  36. while ($donnees = mysql_fetch_array($reponse) )
  37. {
  38. $prenom = $donnees['prenom'];
  39. $nom = $donnees['nom'];
  40. $compte = $donnees['compte'];
  41. $adresse = $donnees['adresse'];
  42. $motdepasse = $donnees['motdepasse'];
  43. $domaine = $donnees['domaine'];
  44. $description = $donnees['description'];
  45. >> et la je travaille avec ces variables


 
pouvez vous m'aider ?
merci infiniment


Message édité par Proxounet le 20-05-2006 à 16:47:14
mood
Publicité
Posté le 20-05-2006 à 16:41:31  profilanswer
 

n°1371301
Proxounet
Posté le 20-05-2006 à 22:46:45  profilanswer
 

up je ne pense pas que ce soir dur ?

n°1371304
Sh@rdar
Ex-PhPéteur
Posté le 20-05-2006 à 22:50:04  profilanswer
 

déjà éviter la boucle infinie while(isset($id_creer))
 
après tu veux faire quoi exactement dans ta boucle ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1371322
weed
Posté le 20-05-2006 à 23:19:23  profilanswer
 

je ne comprends pas trop ta logique avec  
$db = mysql_connect('localhost', '*****', '*****');
mysql_select_db('hebergement',$db);
 
Pourquoi ne mets tu pas tes connexions à la base au tout début de ton code si tu as plusieurs fois des acces à une meme base de donnée ? Pas besoin d'ouvrir une connexion à chaque fois comme ca. Tu te connectes sur differentes bases ?  
 
Pourquoi fais tu une boucle ? A chaque boucle tu ouvres une connexion... Est ce vraiment necessaire ...
 


while(isset($id_creer))                                                      <<<<<<<<<<<< La boucle
{
 
$db = mysql_connect('localhost', '*****', '*****');
mysql_select_db('hebergement',$db);
 


 
fais plutot un  

if isset ($_POST['id_creer'])
{
 $prenom = $donnees['prenom'];
 $nom = $donnees['nom'];
 $compte = $donnees['compte'];
 $adresse = $donnees['adresse'];
 $motdepasse = $donnees['motdepasse'];
 $domaine = $donnees['domaine'];
 $description = $donnees['description'];
}


 
comme l'as dis Sh@rdar :hello: que veux tu faire dans ta boucle ?  
 
 
Mets nous ton code en entier s'il n'est pas tres long parce que l'on n'a pas du tout de visibilité, on ne voit pas la fin de tes parenthèses de ton if et de tes boucles.

n°1371342
Proxounet
Posté le 20-05-2006 à 23:58:34  profilanswer
 

J'ai fais qques tests je n'ai pas réussi a avancer ..
 
Alors voila ma page :
http://www.henol.fr/vrac/compte_admin.rar
 
Donc j'ai deux problèmes à régler :
d'abord je voudrais que la deuxieme partie du php, celle en bas, utile au formulaire, ne soit exécutée que si le formulaire a été envoyé ;
 
En cochant une checkbox, la création du fichier fonctionne;
je voudrais donc faire une boucle pour que cela fonctionne avec plusieurs checkbox.
 
merci

n°1371352
weed
Posté le 21-05-2006 à 00:17:08  profilanswer
 

tu sais compresser un si petit fichier n'est pas tres utile :hello:
 
donc je me permet de poster ton code pour tout le monde puisse le voire sans se prendre la tete avec winrar/7zip
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Compte</title>
  6. </head>
  7. <body>
  8. <form method="post" action="compte_admin.php">
  9. <?
  10. $db = mysql_connect('localhost', '*****', '*****');
  11. mysql_select_db('hebergement',$db);
  12. $req = mysql_query("SELECT id,prenom,nom,compte,adresse,motdepasse,domaine,description FROM demandes" );
  13. while($data = mysql_fetch_assoc($req))
  14.     {
  15.     echo 'Id : '.$data['id'].' | Prénom : '.$data['prenom'].' | Nom : '.$data['nom'].' |
  16.        Nom du compte : '.$data['compte'].' | Adresse mél : '.$data['adresse'].' |
  17.         Mot de passe : '.$data['motdepasse'].' | Nom de domaine : '.$data['domaine'].'
  18.         <br> Description : '.$data['description'].'
  19.        <br>Créer : <input type="checkbox" name="id_creer" value="'.$data['id'].'" />
  20.        <br>Supprimer : <input type="checkbox" name="id_supprimer" value="'.$data['id'].'" />
  21.        <br><br>
  22. ';
  23.     }
  24. mysql_close();
  25. ?>
  26. <input type="submit" name="Submit" value="Envoyer" />
  27. </form>
  28. <?
  29. $id_creer = $_POST['id_creer'];
  30. $db = mysql_connect('localhost', '*****', '*****');
  31. mysql_select_db('hebergement',$db);
  32. $reponse = mysql_query("SELECT * FROM demandes WHERE id = '$id_creer'" );
  33. while ($donnees = mysql_fetch_array($reponse) )
  34. {
  35. $prenom = $donnees['prenom'];
  36. $nom = $donnees['nom'];
  37. $compte = $donnees['compte'];
  38. $adresse = $donnees['adresse'];
  39. $motdepasse = $donnees['motdepasse'];
  40. $domaine = $donnees['domaine'];
  41. $description = $donnees['description'];
  42. touch("apache/$compte" );
  43. $fp=fopen("apache/$compte","w" );
  44. fwrite($fp,"$compte
  45. $adresse
  46. $domaine" );
  47. }
  48. mysql_close();
  49. ?>
  50. </body>
  51. </html>


Message édité par weed le 21-05-2006 à 00:20:23
n°1371358
Proxounet
Posté le 21-05-2006 à 00:22:40  profilanswer
 

Vui dsl merci ;)

n°1371368
weed
Posté le 21-05-2006 à 00:55:55  profilanswer
 

bon j'ai fais quelques modifications avec quelques indices.  
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Compte</title>
  6. </head>
  7. <body>
  8. <!-- pas besoin de specifier le action si tu appelles la page elle meme -->
  9. <form method="post">
  10. <?
  11. //on regarde les variables posts envoyé par le formulaire pour faire des tests  
  12. echo "<pre>";
  13. print_r ($_POST);
  14. echo "</pre>";
  15. //pourquoi faire plusieurs connexions ? Une seule suffit
  16. $db = mysql_connect('localhost', '*****', '*****');
  17. mysql_select_db('hebergement',$db);
  18. $req = mysql_query("SELECT id,prenom,nom,compte,adresse,motdepasse,domaine,description FROM demandes" );
  19. while($data = mysql_fetch_assoc($req))
  20.     {
  21.    
  22. //une présentation un peu plus lisible de ton echo, attention avec les doubles quotes " et les simples '.   
  23.         //Pour mettre une variables php, faire ".$variable.". Il faut rester le plus coherent possible  
  24. //et ne pas mettre de temps en temps des " et des '  
  25. echo "
  26. Id : ".$data['id']." | Prénom : ".$data['prenom']." | Nom : ".$data['nom']." | Nom du compte : ".$data['compte']." |
  27. Adresse mél : ".$data['adresse']." | Mot de passe : ".$data['motdepasse']." | Nom de domaine : ".$data['domaine']."
  28. <br> Description : ".$data['description']."
  29. ";
  30. //tous tes balise checkbox s'appellent id_creer et id_supprimer pour toutes les personnes. Il faut que tu les identifies avec ton id par exemple
  31. //une checkbox, c'est une case à cocher, donc c'est absurbe de mettre un value. Une checkbox coché vaut 1 et est envoyé lorsque tu submit. Les checkbox non coché ne sont pas envoyé
  32. // cf : http://www.toutjavascript.com/savoir/savoir06_1.php3
  33. echo "
  34. <br>Créer : <input type='checkbox' name='id_creer-.".$data[id]."'  />
  35. <br>Supprimer : <input type='checkbox' name='id_supprimer-".$data[id]."' /><br><br>
  36. ";
  37.     }
  38. mysql_close();
  39. ?>
  40. <input type="submit" name="Submit" value="Envoyer" />
  41. </form>
  42. <?
  43. //on tester si la variable id_post que tu envoies en post existe.  
  44. //mais à modifier parce qu'il va falloir que tu ne teste pas id_creer mais id_creer- avec l'id
  45. if (!isset ($_POST['id_creer']) || $_POST['id_creer'] != "" );
  46. {
  47. $reponse = mysql_query("SELECT * FROM demandes WHERE id = '$id_creer'" );
  48. while ($donnees = mysql_fetch_array($reponse) )
  49. {
  50.  $prenom = $donnees['prenom'];
  51.  $nom = $donnees['nom'];
  52.  $compte = $donnees['compte'];
  53.  $adresse = $donnees['adresse'];
  54.  $motdepasse = $donnees['motdepasse'];
  55.  $domaine = $donnees['domaine'];
  56.  $description = $donnees['description'];
  57.  touch("apache/".$compte);
  58.  $fp=fopen("apache/".$compte,"w" );
  59.                  //pour concatener des variables $var.$var2.$var3
  60.  fwrite($fp,$compte.$adresse.$domaine);
  61. }
  62. }
  63. mysql_close();
  64. ?>
  65. </body>
  66. </html>


Message édité par weed le 21-05-2006 à 00:58:28
n°1371516
Proxounet
Posté le 21-05-2006 à 13:29:17  profilanswer
 

Tu n'as rien changé pour les connexions mysql ?
j'e n'ai conservé qu'une seule connexion sur toute la page
 
sinon les checkbox ont bien sur une fonciton oui/non, mais elles peuvent aussi recevoir des valeurs

n°1371635
weed
Posté le 21-05-2006 à 18:30:59  profilanswer
 

j'ai laissé un seul :
$db = mysql_connect('localhost', '*****', '*****');
mysql_select_db('hebergement',$db);
j'ai retiré le 2ème.
 
je ne savais pas que l'on pouvait mettre des valeurs pour les chackboxs

mood
Publicité
Posté le 21-05-2006 à 18:30:59  profilanswer
 

n°1371647
Proxounet
Posté le 21-05-2006 à 19:34:23  profilanswer
 

Ha oui excuse tu avais juste laissé trainé un mysql close.
 
Pour récapitulatif, voici ou j'en suis
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Compte</title>
  6. </head>
  7. <body>
  8. <form method="post">
  9. <?
  10. $db = mysql_connect('localhost', '*****', '*****');
  11. mysql_select_db('hebergement',$db);
  12. $req = mysql_query("SELECT id,prenom,nom,compte,adresse,motdepasse,domaine,description FROM demandes" );
  13. while($data = mysql_fetch_assoc($req))
  14.     {
  15. echo "
  16. Id : ".$data['id']." | Prénom : ".$data['prenom']." | Nom : ".$data['nom']." | Nom du compte : ".$data['compte']." |
  17. Adresse mél : ".$data['adresse']." | Mot de passe : ".$data['motdepasse']." | Nom de domaine : ".$data['domaine']."
  18. <br> Description : ".$data['description']."
  19.     <br>Créer : <input type='checkbox' name='id_creer' value='".$data[id]."'  />
  20.     <br>Supprimer : <input type='checkbox' name='id_supprimer' value='".$data[id]."' /><br><br>
  21. ";
  22.     }
  23. ?>
  24. <input type="submit" name="Submit" value="Envoyer" />
  25. </form>
  26. <input TYPE="button" VALUE="Actualiser" onClick="window.location='compte_admin.php';">
  27. <?
  28. if(!empty($_POST['id_creer']));                                 <<<<< il faudrait appliquer ce traitement à toutes les cases sélectionnées, c'est à dire à toutes les valeurs des checkbox
  29. {
  30. $id_creer = $_POST['id_creer'];
  31. $reponse = mysql_query("SELECT * FROM demandes WHERE id = '$id_creer'" );
  32. while ($donnees = mysql_fetch_array($reponse) )
  33. {
  34. $prenom = $donnees['prenom'];
  35. $nom = $donnees['nom'];
  36. $compte = $donnees['compte'];
  37. $adresse = $donnees['adresse'];
  38. $motdepasse = $donnees['motdepasse'];
  39. $domaine = $donnees['domaine'];
  40. $description = $donnees['description'];
  41. touch("/var/www/hebergement/test/fichiers/apache/$compte" );
  42. $fp=fopen("fichiers/apache/$compte","w" );
  43. fwrite($fp,"$compte" );
  44. [..........]
  45. }
  46. }
  47. if(!empty($_POST['id_supprimer']));
  48. {
  49. $id_supprimer = $_POST['id_supprimer'];
  50. mysql_query("DELETE FROM demandes WHERE id = '$id_supprimer'" );
  51. }
  52. mysql_close();
  53. ?>
  54. </body>
  55. </html>


Message édité par Proxounet le 21-05-2006 à 20:05:06
n°1371687
weed
Posté le 21-05-2006 à 20:38:05  profilanswer
 

bon, j'ai reregardé ton code.
j'arrete parce que je suis fatigué la. J'ai pas testé mais voici dans l'esprit mais surtout fais des tests en visualisant les variables que tu envoies avec print_r($_POST);
 
Si j'ai bien compris. Tu listes une liste de personnes. Pour chaque personne tu as un checkbox. Tu selectionnes les personnes en cochant, tu cliques sur le bouton Submit. Tu envoies les Tu voudrais ecrire les personnes que tu as selectionné  ecrire dans un fichier ?
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Compte</title>
  6. </head>
  7. <body>
  8. <form method="post">
  9. <?
  10. //on regarde les variables posts envoyé par le formulaire pour faire des tests  
  11. echo "<pre>";
  12. print_r ($_POST);
  13. echo "</pre>";
  14. //compteur pour identifier tes balises
  15. $cpt=0;
  16. $db = mysql_connect('localhost', '*****', '*****');
  17. mysql_select_db('hebergement',$db);
  18. $req = mysql_query("SELECT id,prenom,nom,compte,adresse,motdepasse,domaine,description FROM demandes" );
  19. while($data = mysql_fetch_assoc($req))
  20. {
  21.    
  22. echo "
  23.  Id : ".$data['id']." | Prénom : ".$data['prenom']." | Nom : ".$data['nom']." | Nom du compte : ".$data['compte']." |
  24.  Adresse mél : ".$data['adresse']." | Mot de passe : ".$data['motdepasse']." | Nom de domaine : ".$data['domaine']."
  25.  <br> Description : ".$data['description']."
  26. ";
  27. echo "
  28.  <br>Créer : <input type='checkbox' name='id_creer-.".$cpt."'  />
  29.  <br>Supprimer : <input type='checkbox' name='id_supprimer-".$cpt."' /><br><br>
  30. ";
  31. $cpt++;
  32. }
  33. ?>
  34. <input type="hidden" name="cpt" value="<? echo $cpt; ?>" >
  35. <input type="submit" name="Submit" value="Envoyer" />
  36. </form>
  37. <?
  38. //si on a fait un submit, on a envoyé le compteur .....
  39. if (isset ($_POST['cpt']))
  40. {
  41. //touch est apparrement utilisé pour changer la date de creation. je ne sais pas si c'est ca que tu veux faire : http://fr3.php.net/manual/fr/function.touch.php
  42. //sache que fopen avec "w" t'ouvre ton fichier en écriture, si le fichier existe déja, les donnees sont ecrasé.
  43. //si le fichier n'est pas, il est créé
  44. //touch("apache/".$compte); ==> est ce utile ?
  45. $fp=fopen("/var/www/hebergement/test/fichiers/apache/".$compte,"w" );
  46. for ($i = 0 ; $i< $_POST['cpt'] ; $i++ )
  47. {
  48.  //on teste si  'id_creer-".$i."'   existe,  a été envoyé c'est à dire coché.  
  49.  if (isset ($_POST['id_creer-".$i."']))
  50.  {
  51.   $id_creer = $_POST['id_creer-".$i."'];
  52.   $query = "SELECT * FROM demandes WHERE id = '".$id_creer."'";
  53.   //j'ai rajouté mysql_error, bien pratique pour debugger, on est jamais sur à 100% que cela fonctionne du premier coup
  54.   $reponse = mysql_query ($query) or die ("<br/>erreur de requete ".$query." erreur : ".mysql_error ());
  55.   while ($donnees = mysql_fetch_array($reponse) )
  56.   {
  57.    $prenom = $donnees['prenom'];
  58.    $nom = $donnees['nom'];
  59.    $compte = $donnees['compte'];
  60.    $adresse = $donnees['adresse'];
  61.    $motdepasse = $donnees['motdepasse'];
  62.    $domaine = $donnees['domaine'];
  63.    $description = $donnees['description'];
  64.          //pour concatener des variables $var.$var2.$var3
  65.    fwrite($fp,$compte.$adresse.$domaine);
  66.   }
  67.  }
  68. fclose($fp);
  69. }
  70. mysql_close();
  71. ?>
  72. </body>
  73. </html>

n°1371690
weed
Posté le 21-05-2006 à 20:41:15  profilanswer
 

je voulais en fait te poster le message de dessus hier soir, mais j'avais en fait oublier de cliquer sur le bouton Reponse  :ange:  :sleep:

n°1372273
Proxounet
Posté le 22-05-2006 à 15:48:40  profilanswer
 

Merci,  
mais je viens d'essayer il me met  
Parse error: parse error, unexpected $ in /var/www/hebergement/test/compte_test.php on line 92
(92 est la derniere ligne , </html>, - je n'ai changé que le fwrite/fp/clos, ainsi que l'accès à mysql)

n°1372401
jeca
Posté le 22-05-2006 à 17:35:16  profilanswer
 

Bonjour,
 
Le seul attribut obligatoire de l'élément 'form' est 'action', pour être conforme aux recommandations du w3c. Extrait de la DTD :
 
<!ATTLIST form
  %attrs;
  action      %URI;          #REQUIRED
  method      (get|post)     "get"
  name        NMTOKEN        #IMPLIED
  enctype     %ContentType;  "application/x-www-form-urlencoded"
  onsubmit    %Script;       #IMPLIED
  onreset     %Script;       #IMPLIED
  accept      %ContentTypes; #IMPLIED
  accept-charset %Charsets;  #IMPLIED
  target      %FrameTarget;  #IMPLIED
  >
 
D'autre part, la valeur des attribut des éléments HTML doit être encadrée par des doubles quotes (voir plus bas les 'checkbox').  
 
Ceci n'est pas terrible :

Code :
  1. $req = mysql_query("SELECT id,prenom,nom,compte,adresse,motdepasse,domaine,description FROM demandes" );


 
ça fait bosser le serveur pour rien. Préférer les simples quotes pour encadrer les chaînes dans lesquelles il n'y a pas de variable à interpreter.
 
Les boucles 'while' sont plus rapides que les boucles 'for'.
 
Quand aux 'checkbox', ceci est préférable :

Code :
  1. <input type="checkbox" name="id_creer[]" value="' . $data['id'] . '" />
  2. <input type="checkbox" name="id_supprimer[]" value="' . $data['id'] . '" />


car php va interprèter cela comme des tableaux dont chaque élément contiendra l'id de l'enreg sur lequel il faut intervenir.
 
Et pour ton pb, à vue de nez, il doit manquer une accolade fermante ligne 87.

Message cité 1 fois
Message édité par jeca le 22-05-2006 à 17:37:15
n°1372666
weed
Posté le 22-05-2006 à 22:50:19  profilanswer
 

oki pour le form, il faut eviter de ne pas mettre de action meme si on n'est pas XHTML, il faut mettre dans ces cas action="#" si on veut appeller la page elle meme.
 
Je ne savais pas que c'etait plus efficace les simples quotes. Par habitude, je mes toujours des doubles pour les chaines par contre, je ne mets plus jamais de variables dans chaine.
echo "toto titi $variable";
je fais plus que des echo "toto titi".$variable; :)
 
 
ok pour les tableaux, et apres on fais un foreach pour parcourir le tableau id_creer envoyé.

n°1373600
Proxounet
Posté le 23-05-2006 à 21:22:42  profilanswer
 

impec j'ai cherché ce fameux foreach et ca fonctionne
merci beaucoup

n°1373712
jeca
Posté le 24-05-2006 à 06:26:20  profilanswer
 

Et si tu fais echo 'toto titi'.$variable; ça sera encore mieux.

n°1374644
weed
Posté le 24-05-2006 à 22:08:21  profilanswer
 

rohhh, et pourquoi donc, parce que le serveur php (IIS ou apache) sait tout de suite qu'il n'y a pas de variable à interpreter.  
 
arf, je n'aime pas trop les simples quotes parce que c'est moins voyant et surtout c'est pas habitude ...
je ne pense pas que l'on gagne grand chose en perf mais c'est deja ca de gagner tu vas me dire.

n°1374664
Sh@rdar
Ex-PhPéteur
Posté le 24-05-2006 à 22:25:59  profilanswer
 

c'est peanuts pour l'optimisation :o
 
pour ce genre de truc faut surtout faire comme on le sent ;)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1374678
weed
Posté le 24-05-2006 à 22:52:49  profilanswer
 

oki pour les " et ' c'est pas grand chose  
mais sinon faire echo "toto titi $variable";
c'est le mal je crois ? nop ? on m'a deja fait la morale une fois, il y a quelques temps lorsque j'avais poster une partie de mon code pour que vous m'aidiez à le debugger. :)

n°1374682
masklinn
í dag viðrar vel til loftárása
Posté le 24-05-2006 à 23:01:24  profilanswer
 

jeca a écrit :

D'autre part, la valeur des attribut des éléments HTML doit être encadrée par des doubles quotes (voir plus bas les 'checkbox').


GUESS WHAT? YOU FAIL! [:itm]  
 
C'est n'importe quoi cette déclaration, les attributs SGML peuvent être encadrés aussi bien par des simples que des doubles quotes, et comme j'aime présenter les faits je te cite même la section de la norme officielle sur le sujet:
http://www.w3.org/TR/html401/intro [...] ml#h-3.2.2

Citation :

By default, SGML requires that all attribute values be delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39). Single quote marks can be included within the attribute value when the value is delimited by double quote marks, and vice versa.


 

jeca a écrit :


Code :
  1. $req = mysql_query("SELECT id,prenom,nom,compte,adresse,motdepasse,domaine,description FROM demandes" );


 
ça fait bosser le serveur pour rien. Préférer les simples quotes pour encadrer les chaînes dans lesquelles il n'y a pas de variable à interpreter.


Branlage de nouille, on perd quelques microsecondes sur plusieurs milliers d'itération, c'est à dire peanuts par rapport au simple fait de se connecter à une DB

jeca a écrit :

Les boucles 'while' sont plus rapides que les boucles 'for'.


Bof, là encore la différence c'est peanuts.
 


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1374683
Sh@rdar
Ex-PhPéteur
Posté le 24-05-2006 à 23:01:31  profilanswer
 

le php a ses inquisiteurs tout autant que l'église catholique en son temps :o
 
allez, tu va gratter quelques micro secondes pour des milliers d'itérations, ça représente que dalle donc si c'est moins lisible pour toi le fais pas ;)
 
y'a 10 fois plus de manières de plomber un script que le parsing des chaines :)
 
EDIT : toasted, je répondais à weed bien évidemment :)


Message édité par Sh@rdar le 24-05-2006 à 23:02:30

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1374753
jeca
Posté le 25-05-2006 à 08:05:51  profilanswer
 

@Masklinn

 

Avant d'affirmer péremptoirement que ceci :

 
Citation :

 


jeca a écrit :

 

D'autre part, la valeur des attribut des éléments HTML doit être encadrée par des doubles quotes (voir plus bas les 'checkbox').

 

est n'importe quoi, tu aurais dû lire la 1ère ligne de code du document de Proxounet :

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Il me semble y voir 'XHTML', non ?
Donc, chacun ses sources :
http://www.w3.org/TR/2000/REC-xhtml1-20000126/#docconf

 
Citation :


4.4 Attribute values must always be quoted

 

All attribute values must be quoted, even those which appear to be numeric.

 

CORRECT: quoted attribute values

 

<table rows="3">

 

INCORRECT: unquoted attribute values

 

<table rows=3>

 

Quand au reste, je ne m'étendrai pas, car ça risque de déboucher sur une discussion complètement stérile.

Message cité 1 fois
Message édité par jeca le 25-05-2006 à 08:08:55
n°1374863
masklinn
í dag viðrar vel til loftárása
Posté le 25-05-2006 à 12:40:49  profilanswer
 

jeca a écrit :

@Masklinn
 
Avant d'affirmer péremptoirement que ceci :
 
est n'importe quoi, tu aurais dû lire la 1ère ligne de code du document de Proxounet :

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


Il me semble y voir 'XHTML', non ?
Donc, chacun ses sources :
http://www.w3.org/TR/2000/REC-xhtml1-20000126/#docconf
 

Citation :


4.4 Attribute values must always be quoted
 
All attribute values must be quoted, even those which appear to be numeric.
 
CORRECT: quoted attribute values
 
<table rows="3">
 
INCORRECT: unquoted attribute values
 
<table rows=3>



Ok, sauf que ça n'a rien à voir avec la question, les valeurs des attributs doivent être quotés, pas être quotés impérativement avec des doubles quotes, contrairement à ce que tu affirmes [:dawa]
 
Tu peux bien essayer de changer le sujet du débat, tu t'es quand même vautré [:dawa]

mood
Publicité
Posté le   profilanswer
 


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

  Boucle travaillant avec toutes les valeurs issues d'un formulaire

 

Sujets relatifs
probleme de formulaire avec easyphp 1.8création d'un ascenseur avec les valeurs dans la bdd
formulaire[FORMULAIRE]Liste deroulante à choix multiples!
Un goto ou bien une boucle ! Comment faireBoucle sur formulaire
problement bouton formulaireformulaire/ champs radio et chekbox verif php
Balayage d'enregistrements sur formulaire filtré... Est ce possible ? 
Plus de sujets relatifs à : Boucle travaillant avec toutes les valeurs issues d'un formulaire


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