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

  FORUM HardWare.fr
  Programmation
  PHP

  Niveau php +++ -> enigme !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Niveau php +++ -> enigme !!

n°1237079
100top
Posté le 03-11-2005 à 02:29:12  profilanswer
 

Bonjour à tous,
pour la prise de tête d'aujourd'hui voila le procédé !!!
c assez compliqué alors je vais essayer d'etre claire !
 
dans un formulaire avec du javascript j'associe 3 elements grace a un bouton

Code :
  1. <input name="Id_m1" type="hidden" value="0" size=10>
  2. // Id bouton
  3. <input name="id_1" type="hidden" value="0" size=10>
  4. // type d'action effectué sur le bouton  valeur comprise (1,2,3,4,5,6,7)
  5. <input name="t_1" type="hidden" value="0" size=3>
  6. // numéro d'action ( n éme action effectué dans l'ensemble de la page html avec un compteur $i++ a chaque action effectué )  
  7. // si la valeur reste 0 c qu'il ne sait rien passer sur le bouton
  8. // si il y a une action il prend la valeur $i


 
Voila, je pense pas pouvoir etre plus clair,  
il y a 7 boutons du meme type ! ( id_1,id_2,id_3 ... Id_m1,Id_m2....t_1,t_2....)
en fait je voudrais dans mon fichier ne garder que les 3 derniers bouton et savoir quels actions ont été effectué
et resortir toutes les infos id_$i,Id_m$i,t_$i des 3 derniers boutons !
du coup j'ai penser au tableau pour faire des tries mais c le bordel et je vois pas comment faire !!
Voila comment j'ai essayé de faire ma je bloque :

Code :
  1. $ordre=array();
  2. $ar_Idm=array();
  3. $ar_id=array();
  4. if(isset($_POST['t_1'])&& $_POST['t_1']!=0)
  5.  { $t_1=$_POST['t_1'];
  6.  $Id_m1=$_POST['Id_m1'];
  7.  $id_1=$_POST['id_1'];
  8.  $ordre[]=$t_1;
  9.  $ar_Idm[]=$Id_m1;
  10.  $ar_id[]=$id_1;
  11. }
  12. if(isset($_POST['t_2'])&& $_POST['t_2']!=0)
  13.  {
  14.  $t_2=$_POST['t_2'];
  15.  $Id_m2=$_POST['Id_m2'];
  16.  $id_2=$_POST['id_2'];
  17.  $ordre[]=$t_2;
  18.  $ar_Idm[]=$Id_m2;
  19.  $ar_id[]=$id_2;
  20. }
  21. if(isset($_POST['t_3'])&& $_POST['t_3']!=0)
  22.  { $t_3=$_POST['t_3'];
  23.  $Id_m3=$_POST['Id_m3'];
  24.  $id_3=$_POST['id_3'];
  25.  $ordre[]=$t_3;
  26.  $ar_Idm[]=$Id_m3;
  27.  $ar_id[]=$id_3;
  28. }
  29. if(isset($_POST['t_4'])&& $_POST['t_4']!=0)
  30.  { $t_4=$_POST['t_4'];
  31.  $Id_m4=$_POST['Id_m4'];
  32.  $id_4=$_POST['id_4'];
  33.  $ordre[]=$t_4;
  34.  $ar_Idm[]=$Id_m4;
  35.  $ar_id[]=$id_4;
  36. }
  37. if(isset($_POST['t_5'])&& $_POST['t_5']!=0)
  38.  { $t_5=$_POST['t_5'];
  39.  $Id_m5=$_POST['Id_m5'];
  40.  $id_5=$_POST['id_5'];
  41.  $ordre[]=$t_5;
  42.  $ar_Idm[]=$Id_m5;
  43.  $ar_id[]=$id_5;
  44. }
  45. if(isset($_POST['t_6'])&& $_POST['t_6']!=0)
  46.  { $t_6=$_POST['t_6'];
  47.  $Id_m6=$_POST['Id_m6'];
  48.  $id_6=$_POST['id_6'];
  49.  $ordre[]=$t_6;
  50.  $ar_Idm[]=$Id_m6;
  51.  $ar_id[]=$id_6;
  52. }
  53. if(isset($_POST['t_7'])&& $_POST['t_7']!=0)
  54.  { $t_7=$_POST['t_7'];
  55.  $Id_m7=$_POST['Id_m7'];
  56.  $id_7=$_POST['id_7'];
  57.  $ordre[]=$t_7;
  58.  $ar_Idm[]=$Id_m7;
  59.  $ar_id[]=$id_7;
  60. }
  61. // la pour l'instant j'ai uniquement les info sur les boutons ayant eu des actions, je l'ai ai dans un tableau !
  62. // je voudrais les triers $ordre de maniére decroissante pour savoir quel sont les trois derniers elements effectué
  63. rsort($ordre);
  64. // donc il me classe les t_$i dans l'ordre décroissant
  65. // ensuite j'aimerai supprimer les "doublons d'actions" faites sur un meme bouton tous ceux inférieur a t_$imax t_$imax-1 t_$imax-2   
  66. // si je fais  
  67. $ar_id1=array_unique($ar_id);
  68. // donc la je supprime les doublons de boutons mais il ne suit pas l'ordre des 3 dernieres !


 
 je vois pas comment associé 3 array de meme dim et qu'il me trie $ordre avec $ar_id et $âr_Idm
 
 
Aide possible ou trop compliqué ?

mood
Publicité
Posté le 03-11-2005 à 02:29:12  profilanswer
 

n°1237132
cinocks
Posté le 03-11-2005 à 09:37:48  profilanswer
 

Code :
  1. if(isset($_POST['t_6'])&& $_POST['t_6']!=0)


 
ca ne devrait pas fonctionner correctement çà. Tester si une variable existe et si elle est initialisée au même niveau, ca ne fonctionne pas ;) A moins que PHP soit tres permissif, mais si ta variable n'est pas declarée il va quand la tester.


---------------
MZP est de retour
n°1237141
sielfried
Posté le 03-11-2005 à 09:47:54  profilanswer
 

Bien compliqué tout ça. [:mlc]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1237150
sielfried
Posté le 03-11-2005 à 09:50:52  profilanswer
 

cinocks a écrit :

Code :
  1. if(isset($_POST['t_6'])&& $_POST['t_6']!=0)


 
ca ne devrait pas fonctionner correctement çà. Tester si une variable existe et si elle est initialisée au même niveau, ca ne fonctionne pas ;) A moins que PHP soit tres permissif, mais si ta variable n'est pas declarée il va quand la tester.


 
PHP n'analyse la seconde condition que si nécessaire, donc ce qu'il a écrit fonctionne très bien a priori.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1237166
cinocks
Posté le 03-11-2005 à 10:00:33  profilanswer
 

C'est ecrit qq part ca. :??:


---------------
MZP est de retour
n°1237167
Xav_
The only one...
Posté le 03-11-2005 à 10:02:38  profilanswer
 

sielfried a écrit :

PHP n'analyse la seconde condition que si nécessaire, donc ce qu'il a écrit fonctionne très bien a priori.


 
200% d'accord, et je dirais que oui c'est écrit qquepart, paske non seulement je l'avais djà lu, mais que je l'ai utilisé des 10 aines de fois avec succès.
a chaque traitement que j'ai d'un formulaire, je test tjs en 1 seul "if" si la variable existe et si ça valeur me plait ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1237168
cinocks
Posté le 03-11-2005 à 10:04:44  profilanswer
 

j'aimerai bien voir les sources. Car je trouve çà bizarre de pouvoir tester une variable qui n'existe pas.


---------------
MZP est de retour
n°1237171
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-11-2005 à 10:06:26  profilanswer
 

deux trois trucs tout d'abord au niveau de ton code:
- size dans un hidden c'est pas super utile :/
- ça sert a quoi toutes ces variables :

Code :
  1. $t_1=$_POST['t_1'];
  2. ...
  3. $ordre[]=$t_1;


- vu ce que tu as ecrit toutes tes variables 't_X' sont forcement initialisées vu que tous tes hiddens ont une valeur. Donc le test          $id_1=$_POST['id_1']; est inutile.
 
 
Alors perso moi je ferais des tableaux de parametres dès le html ça serait plus simple:

Code :
  1. <input name="item[1][m]" type="hidden" value="0"/>
  2. <input name="item[1][id]" type="hidden" value="0"/>
  3. <input name="item[1][t]" type="hidden" value="0"/>


Comme ça en php tu recupères directement un tableau de tableau...
Par contre j'ai pas compris ce que tu voulais en faire après!
 
[edit]boulette inside[/edit]


Message édité par anapajari le 03-11-2005 à 10:07:48
n°1237183
Xav_
The only one...
Posté le 03-11-2005 à 10:19:50  profilanswer
 

cinocks a écrit :

j'aimerai bien voir les sources. Car je trouve çà bizarre de pouvoir tester une variable qui n'existe pas.


mais il ne test pas la valeur puisque on te dit qu'il ne regarde la 2eme condition que si la premirer est vrai... et il lit de gauche à droite...
 

Code :
  1. if (isset($toto) && ($toto == 1))


pas d'erreur meme si $toto n'est pas défini
 

Code :
  1. if (($toto == 1) && isset($toto))


un notice si jamais $toto n'est pas définie


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1237198
sielfried
Posté le 03-11-2005 à 10:25:38  profilanswer
 

cinocks a écrit :

C'est ecrit qq part ca. :??:


 
http://fr.php.net/manual/fr/langua [...] ogical.php
 
Voir parmi les 3-4 plus vieux commentaires. A priori c'est le cas depuis PHP4, au moins.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
mood
Publicité
Posté le 03-11-2005 à 10:25:38  profilanswer
 

n°1237227
100top
Posté le 03-11-2005 à 10:43:21  profilanswer
 

cinocks a écrit :

C'est ecrit qq part ca. :??:


 
c'est écrit par moi :(
 
pour le test  

Code :
  1. if(isset($_POST['t_6'])&& $_POST['t_6']!=0)


ca marche tres bien en local ! et aussi sur serveur  
donc je pense que ca marche tout court
au debut j'avais mis deux boucles puis j'ai essayé une seule et ca marche !
par contre personne n'a repondu a ma question !!!
 
j'ai écrit un nouveau sujet pour trouver mieux poser la question : sujet 79563
 
encore merci
 

n°1237229
cinocks
Posté le 03-11-2005 à 10:46:53  profilanswer
 

Xav_ a écrit :

mais il ne test pas la valeur puisque on te dit qu'il ne regarde la 2eme condition que si la premirer est vrai... et il lit de gauche à droite...
 

Code :
  1. if (isset($toto) && ($toto == 1))


pas d'erreur meme si $toto n'est pas défini
 

Code :
  1. if (($toto == 1) && isset($toto))


un notice si jamais $toto n'est pas définie


 
 
Euh tu pourrais de moderer dans le ton.  :pfff:  
 
Tout langage ne fonctionne pas ainsi. Et c'est le premier que je connais qui le fais. Ce n'est pas parce qu'un langage ne verifie pas la seconde condition qu'il ne va pas controler qu'elle est testable. ;)


---------------
MZP est de retour
n°1237230
cinocks
Posté le 03-11-2005 à 10:49:24  profilanswer
 

sielfried a écrit :

http://fr.php.net/manual/fr/langua [...] ogical.php
 
Voir parmi les 3-4 plus vieux commentaires. A priori c'est le cas depuis PHP4, au moins.


 
Merci pour le lien , je viens de lire la chose. :jap:


---------------
MZP est de retour
n°1237231
Xav_
The only one...
Posté le 03-11-2005 à 10:50:00  profilanswer
 

cinocks a écrit :

Euh tu pourrais de moderer dans le ton.  :pfff:


ben heu, dans la mesure où je pense pas l'avoir dit méchament, je vois pas trop ce que je dois modérer, j'ai juste mis un exemple pour que ça soit plus clair...
...je vois pas ce qu'il y a de méchant dans le fait d'illustrer mes propos pas un exemple  :??:  


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1237232
100top
Posté le 03-11-2005 à 10:51:59  profilanswer
 

Xav_ a écrit :

ben heu, dans la mesure où je pense pas l'avoir dit méchament, je vois pas trop ce que je dois modérer, j'ai juste mis un exemple pour que ça soit plus clair...
...je vois pas ce qu'il y a de méchant dans le fait d'illustrer mes propos pas un exemple  :??:


 
 
Merci les louloux,
je corrigerais les boucles if plus tard parce que pour l'instant je lutte depuis deux jours sur ce putain de trie de tableau et j'aimerai avancé !!!
est ce que quelqu'un me comprends ou voit un chemin possible pour trouver une solution ?

n°1237233
cinocks
Posté le 03-11-2005 à 10:52:03  profilanswer
 

Citation :

mais il ne test pas la valeur puisque on te dit qu'il ne regarde la 2eme condition que si la premirer est vrai... et il lit de gauche à droite...


 
Ce n'est pas ce que j'appelle un ton jovial. 'puisqu'on te dit que...' ;)


---------------
MZP est de retour
n°1237235
cinocks
Posté le 03-11-2005 à 10:54:44  profilanswer
 

pour ton probleme, je n'ai rien compris au besoin.


---------------
MZP est de retour
n°1237237
100top
Posté le 03-11-2005 à 10:56:14  profilanswer
 

cinocks a écrit :

pour ton probleme, je n'ai rien compris au besoin.


j'ai posté un autre sujet pour le pb !
http://forum.hardware.fr/hardwaref [...] 9563-1.htm

n°1237239
100top
Posté le 03-11-2005 à 10:56:42  profilanswer
 

 
mais ya pas tout le code  
yen a qui prefere ! alors je laisse les deux

n°1237289
omega2
Posté le 03-11-2005 à 11:39:55  profilanswer
 

cinocks a écrit :

Code :
  1. if(isset($_POST['t_6'])&& $_POST['t_6']!=0)


 
ca ne devrait pas fonctionner correctement çà. Tester si une variable existe et si elle est initialisée au même niveau, ca ne fonctionne pas ;) A moins que PHP soit tres permissif, mais si ta variable n'est pas declarée il va quand la tester.

empty, c'est pas mal non plus, c'est fait exactement pour ça, et c'est plus simple

cinocks a écrit :

Euh tu pourrais de moderer dans le ton.  :pfff:  
 
Tout langage ne fonctionne pas ainsi. Et c'est le premier que je connais qui le fais. Ce n'est pas parce qu'un langage ne verifie pas la seconde condition qu'il ne va pas controler qu'elle est testable. ;)

Me semble que le C et le perl sont comme ça. Pour delphi, je viens de tester, c'est le cas.
En fait, si l'enchainement des conditions est bien pensé par le langage, à partir du moment où on a une condition qu'est pas vérifier avec les diférentes conditions relié par un "AND" alors on a pas besoin de vérifier les autres et on le fait pas. De même pour un "OR", à partir du moment où on en a une qu'est vérifié, on a pas besoin de tester les autres pour savoir que l'ensemble est "vrai".

Message cité 1 fois
Message édité par omega2 le 03-11-2005 à 11:41:39
n°1237326
cinocks
Posté le 03-11-2005 à 12:01:32  profilanswer
 

thx


---------------
MZP est de retour
n°1237944
leflos5
On est ou on est pas :)
Posté le 03-11-2005 à 18:07:16  profilanswer
 

cinocks a écrit :

j'aimerai bien voir les sources. Car je trouve çà bizarre de pouvoir tester une variable qui n'existe pas.


Le php c'est pas du C ;) Ne pas l'oublier :) Et les maths boolénnes ça s'oublit pas aussi ;) Et php est logique, si une condition avant une autre est fausse ça retourne false et hop on arrête pas besoin d'aller plus loins ;) Le moins par moins c'est en algèbre pas en logique ;)

n°1237959
antp
Super Administrateur
Champion des excuses bidons
Posté le 03-11-2005 à 18:16:45  profilanswer
 

omega2 a écrit :

empty, c'est pas mal non plus, c'est fait exactement pour ça, et c'est plus simple
Me semble que le C et le perl sont comme ça. Pour delphi, je viens de tester, c'est le cas.
En fait, si l'enchainement des conditions est bien pensé par le langage, à partir du moment où on a une condition qu'est pas vérifier avec les diférentes conditions relié par un "AND" alors on a pas besoin de vérifier les autres et on le fait pas. De même pour un "OR", à partir du moment où on en a une qu'est vérifié, on a pas besoin de tester les autres pour savoir que l'ensemble est "vrai".


 
À part VB (et encore, ils ont peut être arrangé ça pour VB.NET) il ne doit pas y avoir beaucoup de langages où tout est évalué si ce n'est pas nécessaire.
Pour Delphi il y a une option pour tout évaluer (et heureusement elle est désactivée par défaut :D)
 
Pour tout le paquet de code du 1er post, une boucle de 1 à 7 ça aurait pas été plus "simple" que répéter 7x le code avec juste le chiffre qui change ? :o


Message édité par antp le 03-11-2005 à 18:17:39

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le   profilanswer
 


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

  Niveau php +++ -> enigme !!

 

Sujets relatifs
erreur a la compil (niveau noob)Problème pour parser une page web au niveau de fgets().
Meilleur CMS au niveau des fonctions de rechercheAide pour une boucle (niveau nul)
Pb socket niveau 2Question niveau performances du script
[PHP] Recherche programmeurs PHP niveau avancéTri tableau ASP : énigme...
Programmation bas niveau pour disque durTrop dure pour moi (Requete SQL niveau 5 sur l'échelle de Richter)
Plus de sujets relatifs à : Niveau php +++ -> enigme !!


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