La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  Afficher le contenue total d'un array
« Précédent Suivant »
Pages: [1] 2 Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: Afficher le contenue total d'un array  (Lu 1922 fois)
Afficher le contenue total d'un array
« sur: le 09-08-2011 a 19:57:31 »
Romain14
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 48



Salut je me présente

Voir le Profil    WWW    E-Mail
Répondre avec citation

Salut tout le monde,

Je voudrais savoir comment affciher tout un array d'un seul coup au lieu de faire ça :
echo $array[1]
echo $array[2]
echo $array[3]

mais plûtot ça :

echo $array[all]

En gros c'est pour dire a ma base de d'utiliser ligne par ligne les données de l'array

Passer de :

"SELECT * FROM compte WHERE friends LIKE '".$array[1], $array[2], $array[3]."'

à :

"SELECT * FROM compte WHERE friends LIKE '".$array[all]."'

Merci de m'aider. ^^

Rapporter au modérateur  

Je suis un gros fada de programmation, mais voilà je ne suis qu'un simple débutant snif snif ^^


kiff ce qu'a fait Mark Zuckerberg

Re:Afficher le contenue total d'un array
« Répondre #1 sur: le 10-08-2011 a 22:28:24 »
Pad
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1391





Voir le Profil    WWW
Répondre avec citation

à mon avis, il te faudra passer par une boucle while ou for du genre :

Code:
$txt_requete = "";
for($i;$i<count($array);$i++) {
      $txt_requete .= $array[$i].",";
}

$sql = "SELECT * FROM compte WHERE friends LIKE $txt_requete";

« Dernière Édition: le 10-08-2011 a 22:28:52 par Pad » Rapporter au modérateur  

Webdéveloppeur / Webdesigner Indépendant
http://vincentdapp.fr/
SIRET 517 691 408 00028
Re:Afficher le contenue total d'un array
« Répondre #2 sur: le 11-08-2011 a 13:17:02 »
MarvinLeRouge
Superactif
****

Hors-Ligne

Messages: 584





Voir le Profil    WWW
Répondre avec citation

Salut,

La boucle comme indiqué ne marchera pas à mon avis, car tu vas te retrouver avec une virgule à la fin de ta liste de valeurs.
Essaye un truc du genre :
Code:

$sql = "SELECT * FROM compte WHERE friends LIKE '" . implode(",", $array) . "'";

Rapporter au modérateur  

Développeur web / Création de site internet
jean@ceugniet.com
Jean Ceugniet, Développement web
SIRET : 523 611 044 00018
Re:Afficher le contenue total d'un array
« Répondre #3 sur: le 11-08-2011 a 17:32:21 »
Romain14
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 48



Salut je me présente

Voir le Profil    WWW    E-Mail
Répondre avec citation

Ca ne marche pas non plus,

j'explique un peu plus concrètement :

$array contient en faite plusieurs valeur de la même cellule de base de données séparé par un saut a la ligne :

id            cellule aray

                  valeur 1
0                valeur 2
                  valeur 3

$array ou  $row_compte['cellule-array'] content donc : valeur1 valeur2 valeur3

Et je demande a la base de donées de rechercher dans la base de données la cellule contenant l'une de ces valeurs (valeur1, valeur2 et valeur3).

Si je met ça :

"SELECT * FROM compte WHERE friends LIKE '" . $row_compte['cellule-array'] . "'

La requête va comprendre "valeur1valeur2valeur3" au lieu de "valeur1" et "valeur2" et "valeur 3"

Comment faire alors ?

Rapporter au modérateur  

Je suis un gros fada de programmation, mais voilà je ne suis qu'un simple débutant snif snif ^^


kiff ce qu'a fait Mark Zuckerberg
Re:Afficher le contenue total d'un array
« Répondre #4 sur: le 11-08-2011 a 19:26:57 »
Pad
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1391





Voir le Profil    WWW
Répondre avec citation

il faut traiter le array pour le mettre en forme pour la requête comme sur l'exemple que j'ai mis... Les codes données ne sont là que pour donner des pistes et non la solution finale

Code:
$txt_requete = "";
for($i;$i<count($array);$i++) {
      if($i==count($array)-1) $txt_requete .= $array[$i];
    else $txt_requete .= $array[$i]." OR friends LIKE ";
}

$sql = 'SELECT * FROM compte WHERE friends LIKE "'.$txt_requete.'"';


Ce qui devrait donner quelque chose comme :

Code:
$sql = 'SELECT * FROM compte WHERE friends LIKE "array1" OR friends LIKE "array2" OR friends LIKE "array3"';

Rapporter au modérateur  

Webdéveloppeur / Webdesigner Indépendant
http://vincentdapp.fr/
SIRET 517 691 408 00028
Re:Afficher le contenue total d'un array
« Répondre #5 sur: le 13-08-2011 a 17:45:07 »
Romain14
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 48



Salut je me présente

Voir le Profil    WWW    E-Mail
Répondre avec citation

J'ai un peut de mal à comprendre ton script ^^

A quoi sert "$txt_requete" ?

Pourrait tu m'expliquer en détail ton script stp.

Rapporter au modérateur  

Je suis un gros fada de programmation, mais voilà je ne suis qu'un simple débutant snif snif ^^


kiff ce qu'a fait Mark Zuckerberg
Re:Afficher le contenue total d'un array
« Répondre #6 sur: le 13-08-2011 a 19:15:04 »
Pad
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1391





Voir le Profil    WWW
Répondre avec citation

Ce que tu recherches c'est bien une requete du style :

Code:
$sql = 'SELECT * FROM compte WHERE friends LIKE "array1" OR friends LIKE "array2" OR friends LIKE "array3"';


sauf que tu n'as pour l'instant que le début de la requête et le tableau array() à traiter pour en faire la suite : friends LIKE "array1" OR friends LIKE "array2" OR friends LIKE "array3" car pour l'instant tu n'as que "array1" "array2" "array3"

pour créer cette chaine et l'ajouter à ta requête, il te faut la traiter, ce que je fais à l'aide de la boucle et je met la chaine dans la variable $txt_requete

Code:
$txt_requete = ""; // la variable est initiée et vide

for($i;$i<count($array);$i++) { // pour tous les champs de ton tableau array()

      if($i!=count($array)-1) $txt_requete .= $array[$i]." OR friends LIKE ";  // si le champs du tableau n'est pas le dernier, on l'ajoute dans la variable $txt_requete avec le texte SQL (or friends like) -> ceci va donner à la fin de la boucle une variable $txt_requete contenant une chaine de caractère : array[0] OR friends LIKE array[1] OR friends LIKE array[2] OR friends LIKE array[3]...

    else $txt_requete .= $array[$i]; // si c'est le dernier champs on le traite différemment et on ajoute pas le texte SQL juste la donnée du champs du array()

}


Cette boucle va donc créer la chaine suivante contenu dans une variable $txt_requete :
Code:
".$array[0]." OR friends LIKE  ".$array[1]." OR friends LIKE  ".$array[2]." etc...


il te suffit ensuite de mettre cette variable dans ta requete initiale c'est à dire : $sql = 'SELECT * FROM compte WHERE friends LIKE '".$txt_requete.'"';

Ce qui donne finalement la requete tout en haut

« Dernière Édition: le 13-08-2011 a 19:20:54 par Pad » Rapporter au modérateur  

Webdéveloppeur / Webdesigner Indépendant
http://vincentdapp.fr/
SIRET 517 691 408 00028
Re:Afficher le contenue total d'un array
« Répondre #7 sur: le 13-08-2011 a 19:47:52 »
Romain14
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 48



Salut je me présente

Voir le Profil    WWW    E-Mail
Répondre avec citation

Merci j'ai compris ton script (qui est d’ailler exactement ce que j'attendais)

Mais le problème en vérifiant que le contenu de txt_requete est bien correcte je me suit rendu compte que $array1 marche bien mais $array0 ne s'affiche pas alors qu'il contient bien une valeur (j'ai vérifié)

sa met ça :
Code:

OR friends LIKE b857d531678582c47f94fbe17eadefa1 OR friends LIKE

b857d531678582c47f94fbe17eadefa1 ==> Contenu de array[1]
array[0] ===> inexistant


ou est le problème ??

« Dernière Édition: le 13-08-2011 a 20:00:43 par Romain14 » Rapporter au modérateur  

Je suis un gros fada de programmation, mais voilà je ne suis qu'un simple débutant snif snif ^^


kiff ce qu'a fait Mark Zuckerberg
Re:Afficher le contenue total d'un array
« Répondre #8 sur: le 13-08-2011 a 20:31:18 »
Romain14
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 48



Salut je me présente

Voir le Profil    WWW    E-Mail
Répondre avec citation

En faite j'ai trouver le problème mais n'arrive pas à le résoudre.

Dans ma base de données je sépare les valeurs par un tiret :

_Valeur1_ Valeur2

J'ai donc écrit ce code :

Code:
$array= explode("_", $row_compte['friends']);


Et $txt_requete m'affiche ==> OR friends LIKE 9697c444c397092446a6d9503b8d1421 OR friends LIKE b857d531678582c47f94fbe17eadefa1 OR friends LIKE

Apparament array0 = "rien" array1 = "ce que doit etre array0 normalement  et array2 = ce que evarit être array1 normalement.

Pourquoi ??

Dans ma BDD il n'y a pas d'espace avant la premiere valeur, juste ça "_"

Dans ma BDD
Code:
_9697c444c397092446a6d9503b8d1421_b857d531678582c47f94fbe17eadefa1


What's the fuck ??

« Dernière Édition: le 13-08-2011 a 21:01:24 par Romain14 » Rapporter au modérateur  

Je suis un gros fada de programmation, mais voilà je ne suis qu'un simple débutant snif snif ^^


kiff ce qu'a fait Mark Zuckerberg
Re:Afficher le contenue total d'un array
« Répondre #9 sur: le 13-08-2011 a 23:17:53 »
Pad
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1391





Voir le Profil    WWW
Répondre avec citation

c'est parce que quand tu fais ton explode tu dis de récupérer toutes les données séparé par un tiret ce qui donne :

array0 : (rien)_
array1: donnée1_
array2: donnée2_
...

tu devrais donc revoir ton enregistrement sql pour virer le 1er tiret qui fausse l'utilisation du explode.

Rapporter au modérateur  

Webdéveloppeur / Webdesigner Indépendant
http://vincentdapp.fr/
SIRET 517 691 408 00028
Re:Afficher le contenue total d'un array
« Répondre #10 sur: le 14-08-2011 a 18:08:12 »
Romain14
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 48



Salut je me présente

Voir le Profil    WWW    E-Mail
Répondre avec citation

Le problème c'est que si je supprime le premier tiret "_" et bien la première valeur (array0) disparait je me retrouve donc que avec array1

Je comprend plus rien !
Est ce que tu pourrais me donner une idée plus simple pour séparer les valeurs entre elles et ensuite faire le script pour les mettre dans un array ??

Ces données sont dans une table de base de données qui contient toute les informations du compte des personnes inscrites sur le site, et ces personnes peuvent avoir des amies, donc je met les identifiant de ces amies dans une colonne appeler "Friends" Mais si le mec à plusieurs amis il faut que je puisse utiliser les identifiant de chacun de ces potes ====> Séparer les identifiants avec explode

Donc voilà !

Je te remercie beaucoup de ton aide !

« Dernière Édition: le 14-08-2011 a 18:22:57 par Romain14 » Rapporter au modérateur  

Je suis un gros fada de programmation, mais voilà je ne suis qu'un simple débutant snif snif ^^


kiff ce qu'a fait Mark Zuckerberg
Re:Afficher le contenue total d'un array
« Répondre #11 sur: le 14-08-2011 a 19:02:51 »
MarvinLeRouge
Superactif
****

Hors-Ligne

Messages: 584





Voir le Profil    WWW
Répondre avec citation

Salut,

Si tes "cases" de base de données sont destinées à contenir des séries de valeurs :
- soit ces valeurs ont potentiellement un usage distinct, et devraient donc être stockées séparément. C'est notamment le cas si la valeur fournie en comparaison doit être similaire à la valeur 1 ET à la valeur 2 ET à la valeur 3, ou similaire à la valeur 1 OU à la valeur 2 ou à la valeur 3.
- soit on les utilise de façon commune, ce qui peut être le cas si l'argument de comparaison doit faire partie de l'ensemble des valeurs stockées : valeur fournie = valeur 1 OU valeur fournie = valeur 2 OU valeur fournie = valeur 3. Si on est dans ce cas, il suffit de remplacer ton séparateur de valeurs par une virgule dans la base de données (ce qui transformerait "valeur1SAUT DE LIGNEvaleur2SAUT DE LIGNEvaleur3" en "valeur1,valeur2,valeur3", auquel cas tu peux probablement utiliser IN dans ta requète SQL.

Rapporter au modérateur  

Développeur web / Création de site internet
jean@ceugniet.com
Jean Ceugniet, Développement web
SIRET : 523 611 044 00018
Re:Afficher le contenue total d'un array
« Répondre #12 sur: le 14-08-2011 a 20:38:54 »
Romain14
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 48



Salut je me présente

Voir le Profil    WWW    E-Mail
Répondre avec citation

Bon entre deux j'ai avancer mais le problème persiste ! (C'est le dernier problème puis ensuite tout marche à merveille )


Code:
$les_amies = explode(",",$row_compte['friends']);

BASE DE DONNEES :

1,
2,
3,


Ce que m'affiche $les_amies :

2 3

Je ne comprends absolument pas ! Pourquoi n'affiche t-il pas le "1" ?? Je sais que je suis casse pieds mais me bloquer pour un petit problème comme ça, je suis en rage

Si tu connais la réponse dit moi, Si faut modifier le script "explode"  explique moi et montre moi le script nécessaire.

Je te remercie ! 

« Dernière Édition: le 14-08-2011 a 20:40:26 par Romain14 » Rapporter au modérateur  

Je suis un gros fada de programmation, mais voilà je ne suis qu'un simple débutant snif snif ^^


kiff ce qu'a fait Mark Zuckerberg
Re:Afficher le contenue total d'un array
« Répondre #13 sur: le 15-08-2011 a 16:53:32 »
Koeta
Membre récent
*

Hors-Ligne

Messages: 4





Voir le Profil    E-Mail
Répondre avec citation

Pour afficher le contenu d'un array, on utilise la fonction print_r() que l'on entoure de la balise <pre> pour garder la mise en forme créée par la fonction.

Exemple :

Code:
<pre>
<?php
    print_r($array);
?>
</pre>

Rapporter au modérateur  
Re:Afficher le contenue total d'un array
« Répondre #14 sur: le 16-08-2011 a 15:10:00 »
Pad
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 1391





Voir le Profil    WWW
Répondre avec citation

Si tu test cela ça fonctionne :

Code:
$friends = '1,
2,
3,';

$les_amies = explode(",",$friends);

echo $les_amies[0];
echo $les_amies[1];
echo $les_amies[2];


Comment affiches tu les données de $les_amies ?

Rapporter au modérateur  

Webdéveloppeur / Webdesigner Indépendant
http://vincentdapp.fr/
SIRET 517 691 408 00028
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] 2 Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg