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

  FORUM HardWare.fr
  Programmation
  PHP

  array ou varchar ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

array ou varchar ?

n°2077733
networkinf​o
Posté le 23-05-2011 à 17:07:07  profilanswer
 

Bonjour à tous!
 
J'ai une table d’articles et je dois créer une autre table de liste de ces articles
Pour l'instant je mémorise cette liste dans un varchar à partir de leur id : 1,5,6,8,10
 
Je suis tombé sur la fonction serialize et je me suis dit que je pourrai passer par des array pour cette liste
 
Qu'elle méthode me conseillez vous?

mood
Publicité
Posté le 23-05-2011 à 17:07:07  profilanswer
 

n°2077739
Fk01
Posté le 23-05-2011 à 17:29:27  profilanswer
 

Salut, je ne suis  pas certain d'avoir compris, mais je vais tenter de t'expliquer les différents types de champs.
 
Si tu veux stocker des chiffres, il faut utiliser Int ou tinyint, mais en aucun cas varchar réservé aux chaines de caractères.
 
Pour ma part, quand je suis amené à stocker un le contenu d'un tableau dans une bdd, je serialize() le dit tableau dans un champ de type text, c'est pas forcement le top, mais c'est plus souple que varchar si tu es amené à stocker des tableaux contenant beaucoup de données.
 
Voici différents articles qui t'expliqueront plus en détails le pourquoi du comment ;)
 
Choisir le bon type de champ sql - siteduzero.com
 
Si tu veux en savoir plus sur l’optimisation mysql, voici deux articles qui traites le sujet.
Introduction à l'optimisation MYSQL - apprendre-php.com ainsi que Optimiser mysql.
 
Sans oublier l'optimisation des requetes php

n°2077740
flo850
moi je
Posté le 23-05-2011 à 17:31:03  profilanswer
 

mais pourquoi ne pas avoir une table de lien ?
(liste_id , article_id)
 
tes requetes sseront plus simples

Message cité 1 fois
Message édité par flo850 le 23-05-2011 à 17:31:39

---------------

n°2077741
networkinf​o
Posté le 23-05-2011 à 17:37:20  profilanswer
 

flo850 a écrit :

mais pourquoi ne pas avoir une table de lien ?
(liste_id , article_id)
 
tes requetes sseront plus simples


 
C'est vrai que je procède déjà comme ça pour les commandes! je sais pas pourquoi j'y ai pas pense
Pour l'instant mes requêtes n'étaient pas complex car il me suffit de faire SELECT .... IN ($liste)
 
Merci
Si personnes n' a d'autre suggestion le sujet est clos  :hello:

n°2077745
networkinf​o
Posté le 23-05-2011 à 17:43:51  profilanswer
 

Euh si en fait, je sais pourquoi j'ai fais ça car ça me permet de modifier cette liste juste avec un input alors qu'avec ta méthode je vois pas commet faire??

n°2077750
flo850
moi je
Posté le 23-05-2011 à 17:52:15  profilanswer
 

tu as ton tableau php avec tes id d'article et ton id de liste ( ou l'inverse , c'est pareil)

 
Code :
  1. $liste  = mysql_real_escape_string($liste );
  2. //  1 tu vire les liens existants
  3.  
  4. mysql_query("DELETE FORM article_liste WHERE liste_id = ".$liste)// mieux, tu fais ça avec PDO / requete préparée
  5.  
  6. // 2 tu ajoutes tes liens
  7. foreach($articles as $article){
  8.   $article = mysqlreal_escape_string($article);
  9.   mysql_query("INSERT INTO article_liste(liste_id,article_id) VALUES($liste ,$article)" )// mieux, tu fais ça avec PDO / requete préparée
  10. }

Message cité 1 fois
Message édité par flo850 le 23-05-2011 à 17:52:40

---------------

n°2077755
networkinf​o
Posté le 23-05-2011 à 18:05:47  profilanswer
 

flo850 a écrit :

tu as ton tableau php avec tes id d'article et ton id de liste ( ou l'inverse , c'est pareil)  
 

Code :
  1. $liste  = mysql_real_escape_string($liste );
  2. //  1 tu vire les liens existants
  3.  
  4. mysql_query("DELETE FORM article_liste WHERE liste_id = ".$liste)// mieux, tu fais ça avec PDO / requete préparée
  5.  
  6. // 2 tu ajoutes tes liens
  7. foreach($articles as $article){
  8.   $article = mysqlreal_escape_string($article);
  9.   mysql_query("INSERT INTO article_liste(liste_id,article_id) VALUES($liste ,$article)" )// mieux, tu fais ça avec PDO / requete préparée
  10. }



 
 
 
J'ai l'impression que ça va compliquer tout car pour l'instant j'ai juste ça:
 
id_liste_libre  nom_liste_libre      liste_articles  description_liste_libre       delai_livraison_liste_libre  prix_vente_liste_libre
       
5                    ma lite libre      1,2,3,4,5,6                                            30 jours ouvrés             156
 
 
avec ton système je ne peux plus ajouter de champs unique pour une liste


Message édité par networkinfo le 23-05-2011 à 18:19:37
n°2077848
flo850
moi je
Posté le 24-05-2011 à 12:09:12  profilanswer
 

comment ça un champ unique ?  
il te suffit de faire un cle unique sur article_id , liste_id


---------------

n°2077854
antac
..
Posté le 24-05-2011 à 13:00:28  profilanswer
 

erf, renseigne toi sur les formes normales.


Message édité par antac le 24-05-2011 à 13:01:14

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

  array ou varchar ?

 

Sujets relatifs
[Résolu][javascript][classement array]retirer un element d'un array en js
Différence simple/double guillemet avec un arrayarray et usort
[Step 7 basic] Enregistrer une séquence (array)[PHP] Insérer un array dans un lien hypertexte
[PHP] arry_unique multidimentional + index d'arrayProblème array en php
Problème mysql fetch array [SOLVED]Regex tableau et array
Plus de sujets relatifs à : array ou varchar ?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR