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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Stocker plusieurs valeurs en une seule et les récupérer

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Stocker plusieurs valeurs en une seule et les récupérer

n°758187
spark
Luc ?
Posté le 09-06-2004 à 16:52:10  profilanswer
 

Ayant besoin pour d'obscures raisons de stocker plusieurs valeurs dans un unique champ de ma base de données, j'ai décidé d'utiliser une seule variable pour stocker plusieurs valeurs.
J'en aurai au maximum 3 à gérer, j'ai donc fais ca :
 

Code :
  1. function triplet_set($a, $b, $c, $bit_count = 6)
  2. {
  3.   return $a | ($b << $bit_count) | ($c << ($bit_count*2));
  4. }
  5. function triplet_get_item($value, $item_index, $bit_count = 6)
  6. {
  7.   $bits = $bit_count * ($item_index-1);
  8.   return ($value & ((pow(2,$bit_count)-1) << $bits)) >> $bits;
  9. }
  10. $valeur = triplet_set(15,20,37);
  11. echo "triplet_set: $valeur<br />";
  12. echo "a=".triplet_get_item($valeur, 1)." b=".triplet_get_item($valeur, 2)." c=".triplet_get_item($valeur, 3)."<br />";


 
Ca marche parfaitement (si on depasse pas les bornes pour les 3 valeurs suivant le nombre de bits aloués bien sur..)
 
Or, le

return ($value & ((pow(2,$bit_count)-1) << $bits)) >> $bits;

me dérange, j'ai l'impression que c'est pas super propre et qu'on pourrait faire bcp mieux...
Des idées pour optimiser ca ? Est-ce qu'il y a un meilleur moyen de faire ?


Message édité par spark le 09-06-2004 à 16:53:19
mood
Publicité
Posté le 09-06-2004 à 16:52:10  profilanswer
 

n°758307
naceroth
Posté le 09-06-2004 à 18:04:16  profilanswer
 

Pourquoi tu linéarises pas tes valeurs tout simplement ?

n°758316
belgique
Posté le 09-06-2004 à 18:12:07  profilanswer
 

Tu mets tout dans un tableau/objet que tu sérialises. C'est mois léger que ton truc que je n'ai pas lu mais c'est plus propre je trouve.

n°758454
spark
Luc ?
Posté le 09-06-2004 à 21:36:32  profilanswer
 

Le champ ou je stocke ca dans ma BDD est un BIGINT...
Donc il faut que je stocke une valeur numérique
Et ce champ DOIT rester en numérique....

n°758458
spark
Luc ?
Posté le 09-06-2004 à 21:37:46  profilanswer
 

naceroth a écrit :

Pourquoi tu linéarises pas tes valeurs tout simplement ?


 
Ca veut dire quoi ? :D

n°758468
T509
$job-&gt;GetJob(now)
Posté le 09-06-2004 à 21:51:25  profilanswer
 

spark a écrit :

Ca veut dire quoi ? :D


C'est la même chose que sérialiser


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°758471
spark
Luc ?
Posté le 09-06-2004 à 21:54:09  profilanswer
 

Et ca veut dire quoi sérialiser ?  
-> C'est la même chose que linéariser :D :D

n°758589
T509
$job-&gt;GetJob(now)
Posté le 09-06-2004 à 23:51:47  profilanswer
 

spark a écrit :

Et ca veut dire quoi sérialiser ?  
-> C'est la même chose que linéariser :D :D


 
Mettre toutes les données à la queue leuleu


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°758635
spark
Luc ?
Posté le 10-06-2004 à 00:24:25  profilanswer
 

yep, j'me suis documenté sur le sujet entre temps.
Donc, j'obtiendrais une chaine, et elle va avoir un peu de mal a rentrer dans mon BIGINT de ma table :D
 
Donc, ma solution avec mes 2 fonctions est la bonne.
Je voulais juste savoir s'il n'y avait pas moyen d'optimiser un peu + car je suis super nul avec les decalages de bits et les masques....


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

  [PHP] Stocker plusieurs valeurs en une seule et les récupérer

 

Sujets relatifs
Requete HTTP, Lire le flot d'une page HTML dans un script phpSite en PHP : dédier une frame pour le Flash...
[php] lancement de serveurTrier plusieurs tableaux multi-dimensionnels
[PHP] - ereg() toujours flou dans ma tete -> RESOLUListView en PHP
envoi mail a plusieurs adressesCommandes pour executer une procédure sql à partir de php
recuperer les donnees de in dans : ./foo < in[PHP/MySQL] - Afficher plusieurs nom d'un champs qu'une ... (RESOLU)
Plus de sujets relatifs à : [PHP] Stocker plusieurs valeurs en une seule et les récupérer


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