Boucle travaillant avec toutes les valeurs issues d'un formulaire

Boucle travaillant avec toutes les valeurs issues d'un formulaire - PHP - Programmation

Marsh Posté le 20-05-2006 à 16:41:31    

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
Reply

Marsh Posté le 20-05-2006 à 16:41:31   

Reply

Marsh Posté le 20-05-2006 à 22:46:45    

up je ne pense pas que ce soir dur ?

Reply

Marsh Posté le 20-05-2006 à 22:50:04    

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
Reply

Marsh Posté le 20-05-2006 à 23:19:23    

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.

Reply

Marsh Posté le 20-05-2006 à 23:58:34    

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

Reply

Marsh Posté le 21-05-2006 à 00:17:08    

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
Reply

Marsh Posté le 21-05-2006 à 00:22:40    

Vui dsl merci ;)

Reply

Marsh Posté le 21-05-2006 à 00:55:55    

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
Reply

Marsh Posté le 21-05-2006 à 13:29:17    

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

Reply

Marsh Posté le 21-05-2006 à 18:30:59    

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

Reply

Marsh Posté le 21-05-2006 à 18:30:59   

Reply

Marsh Posté le 21-05-2006 à 19:34:23    

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
Reply

Marsh Posté le 21-05-2006 à 20:38:05    

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>

Reply

Marsh Posté le 21-05-2006 à 20:41:15    

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:

Reply

Marsh Posté le 22-05-2006 à 15:48:40    

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)

Reply

Marsh Posté le 22-05-2006 à 17:35:16    

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
Reply

Marsh Posté le 22-05-2006 à 22:50:19    

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é.

Reply

Marsh Posté le 23-05-2006 à 21:22:42    

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

Reply

Marsh Posté le 24-05-2006 à 06:26:20    

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

Reply

Marsh Posté le 24-05-2006 à 22:08:21    

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.

Reply

Marsh Posté le 24-05-2006 à 22:25:59    

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
Reply

Marsh Posté le 24-05-2006 à 22:52:49    

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. :)

Reply

Marsh Posté le 24-05-2006 à 23:01:24    

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
Reply

Marsh Posté le 24-05-2006 à 23:01:31    

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
Reply

Marsh Posté le 25-05-2006 à 08:05:51    

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

Marsh Posté le 25-05-2006 à 12:40:49    

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]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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