PHP ARRAY():

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PHP ARRAY():

par hellboys » 03 août 2007, 01:06

Effectivement, c'est tres logique Sékiltoyai. Je vais mettre les données dans plusieurs champs différents ce qui permettera de faciliter le processu de recherches. Va falloir je mettre deux table en relation. Je vais essayer de coder sa se soir.

Merci Hubert Roksor, pour l'explication de la fonction serialize(); je trouve sa interessant et peut etre qu'un jour je l'utiliserais.

Ma version de mysql est MySQL: 4.1.10, pour les base de donné il sont en myISAM. je ne peut pas choisir le moteur a la creation d'une base de donné. Je suis oubliger de crée la table par cpanel et apres je peut la configurer et faire des table. Mais je sais pas si il y a un moyen de changer le moteur a innoDB. Quoi que je comprend encore rien a se charabia.

Finalement, Truc je vais me forcer pour mettre d'avanatage d'espace dans mes post. Je vous remercie sincèrement. Je vais poster ma tentative de codage se soir. Bonne fin de journée

par Truc » 02 août 2007, 22:19

Sékiltoyai et hellboys
Juste en passant, c'est pas vraiment agréable de lire de gros patés de texte (oui 6 lignes c'est déjà beaucoup :?) comme ça pensez à espacer. La ligne suplémentaire n'est pas facturée :wink:

par Hubert Roksor » 02 août 2007, 22:18

Pour serialize(), c'est simple. Tu prends une variable "complexe" telle qu'un tableau ou un objet, tu exécutes
$str = serialize($variable);
...la magie opère et tu te retrouves avec une chaîne $str qui contient les données de la variable en question. Pour retrouver la variable originale c'est pareil
$variable = unserialize($str);
mais je sais vraiment pas comment je ferais pour updater et efface les donnés
...et ne perds pas ton temps à savoir comment faire, c'est un problème sans solution (en tout cas rien d'efficace, de simple ou de sûr). À la place, crée une table "favoris" qui stocke la relation entre chaque utilisateur et les news qu'il préfère

Code : Tout sélectionner

CREATE TABLE favoris ( userId INT UNSIGNED NOT NULL, newsId INT UNSIGNED NOT NULL, PRIMARY KEY (userId, newsId), KEY newsId (newsId) )
Pour chaque favori tu rajoutes une ligne. C'est très efficace et c'est facile à mettre à jour.

À part ça, c'est quoi ta base de données (numéro de version ?) et si c'est MySQL, est-ce que tu peux créer des tables InnoDB ?

par Sékiltoyai » 02 août 2007, 22:10

Le truc, c'est que dans une base de données, on stocke les données de manière la plus claire possible, c'est à dire que si tu as dans ton tableau les clés 'truc', 'machin' et 'chose', tu ne dois pas tout stocker dans un champ, tu dois faire un champ pour chaque donnée, de manière à ce qu'elles soient accessibles facilement par n'importe quelle application. Ici, tu n'as qu'une application surement, mais c'est une mauvaise habitude qu'il ne faut pas prendre, et si jamais tu avais besoin de faire une recherche sur 'chose', avec un tableau sérializé ou une chaine implodée, c'est beaucoup plus dûr, et ca te plombe les performances de ton serveur SQL, autant de raisons qui font que même si la fonction serialize() peut paraître charmante, ici il faut l'oublier…

par hellboys » 02 août 2007, 22:03

les deux choix sont tres interressant, en fait je suis trop noob en php pour comprendre la fonction serialized, mais jaimerais vraiment la comprendre parce qu'elle pourrait etre tres utile plus tard, peut etre tu pourrais me montrer un example simple, pour l'autre solution c'est tres bon mais dans se cas il faudrais que je rajoute une table a ma base de donné, mais c'est vraiment plus simple. Moi en fait je pensais stocker des datas du genre: 01|02|03|04|05 puis utiliser la fonction explode(); mais je sais vraiment pas comment je ferais pour updater et efface les donnés. Le but c'est d'avoir le plus de controle possible afin de pouvoir les changer constament sans domagé la base ou le temps d'execution.

Je vous remercie de prendre le temps de me repondre.

par d0m » 02 août 2007, 08:13

Sinon pourquoi ne pas stocker dans une table les identifiants un par un c'est à dire 2 champs :
id_user et id_news , chaque ligne contenant la correspondance entre une personne et un de ses news favori.
Cela évite lorsqu'on veut insérer et supprimer une news favories pour une personne de devoir traiter le tabeau.

Re: PHP ARRAY():

par AB » 02 août 2007, 02:47


J'essaie de comprendre comment je peut uploader un array(); dans ma base de donné. Je m'Explique plus en profondeur. Je veux mettre les données d'un array dans un seul champs de ma table mysql.
vas faire un tour du coté de
serialize()

PHP ARRAY():

par hellboys » 02 août 2007, 02:29

Premierement salut a vous tous, je me lance dans le merveilleux monde du php et jai besoin d'aide.

J'essaie de comprendre comment je peut uploader un array(); dans ma base de donné. Je m'Explique plus en profondeur. Je veux mettre les données d'un array dans un seul champs de ma table mysql.

jai une table user dans la quelle il y a un champs fav_array et dedans j'aimerais uploader un array que je pourrais constasment changer. En fait je veux que le user puisse sauvegarder les news qui aime sur mon site. Je vais chercher le champs sans probleme mais comment stocker de l'info.

exemple du début de code mais

Code : Tout sélectionner

$idNews = $_GET['id_news']; // vais chercher ma var dans l'URL $userId = $_SESSION['abc']; // recupere le username ou whatever pas important $tbl_name = "user"; // choisi ma table $query = "SELECT fav_array FROM $tbl_name WHERE userId = '$userId' "; $result = mysql_query($query) or die (mysql_error()); if(mysql_num_row($result) >0) { whilw ($row = mysql_fecth_array($result, MYSQL_ASSOC)) { $var = $row['fav_array']; } }else{ echo 'BUGUGUGUUGG'; } }
bon la je suis capable d'aller chercher l'information dans ma base de donné mais comment je fait pour stocker quelle chose dans cette varriable et la remettre dans ma base de donné pour ensuite pouvoir la reprendre plustards pour detruire une donné ou en rajouter un autre.

Je sais pas si je suis asser claire, J'ai l'impression que je me comprend plus moi meme..je déconne mais j'ai de la misère a exprimer ce que je veux faire. Je veux en quelque sorte construire un array le stocker dans ma base, l'appeller pour le remodeler et le remettre dans la base.

Je vous remercie de regarder mon poste et d'essayer de me comprendre et peut etre meme de répondre

A+