Bonjour, je cherche un script ou début de script qui me permet de creer des menu déroulant qui vont chercher les information non pas dans un BDD, mais dans un dichier .csv . Je suis un peu perdu sur le sujet. Merci
Bonjour, je cherche un script ou début de script qui me permet de creer des menu déroulant qui vont chercher les information non pas dans un BDD, mais dans un dichier .csv . Je suis un peu perdu sur le sujet. Merci
Salut !
Tu trouveras des exemples dans la doc PHP, notamment http://fr.php.net/fgetcsv
salut il te faut ouvrir le fichier csv puis recuperer les champs avec:
http://fr3.php.net/manual/fr/function.fgetcsv.php
et il te reste plus que à alimenter ton select
edit: dsl seb m'a devancé
merci j'vais voir si j'y trouve mon bonheur
C'est lien mon mit sur la voie. merci
Mais quelqu'un pourrait me donner un exemple de comment faire une recherche dans un fichier cvs si je veut par exemple tt les nom d'un famille, ceci serait la première valeur des lignes ??
Dans ce cas tu aurais :
Tu peux faire un print_r($ligne) pour y voir plus clair
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $ligne = fgetcsv($fp) ; echo 'Nom : ', $ligne[0] ; // Affichage de la 1re valeur de la ligne
Merci. Sa ma donner le bon résultat mais aurait tu une idée de comment afficher la première valeur de Chaque ligne ??
Ceci dans un menu deroulant...
j'te donne un exmple :
ACCESSOIRE DIVERS;"Commandes de jeux";"LOGITECH"
Ecran;"moniteur 17","LG"
voila 2 ligne de ce qui pourait ressembler a mon fichier CSV... sachant que j'en ai 5000.... D'ou la n'éccesiter d'un menu deroulant pour afficher :
Accessoire
Ecran
....
<?php
$fp = fopen("Produits.csv", "r");
while($row = 1)
{
$ligne = fgetcsv($fp) ;
echo 'Nom : ', $ligne[0] ; // Affichage de la 1re valeur de la ligne
}
?>
Mais cela m'affiche toutes les valeurs de chaque ligne...
pour moi vérifie tes parametres de délimitation de ton csv voir doc de fgetcsv:
delimiter
Spécifie le séparateur (un seul caractère). Par défaut, c'est la virgule.
enclosure
Spécifie le caractère de délimitation (un seul caractère). Par défaut, c'est les guillemets doubles.
Merci l'erreur vener bien de la.
Mais cela m'affiche des doublons. Saurait-tu quel condition pourrait les enlever ?
plusieurs solutions tu fait un script php qui parse ton csv et élimine les ligne en doublons sinon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php $fp = fopen("Produits.csv", "r"); while($row = 1) { $ligne = fgetcsv($fp) ; $val0[]=$ligne[0]; } $val0=array_unique($val0); foreach($val0 as $val){ echo 'Nom : '. $val ; // Affichage de la 1re valeur de la ligne } ?>
Il doit y avoir un petit erreur dans ton script... cela m'affiche un message d'erreur.
oé ça je l'ai corriger parce que ça me semblait bizarr xD
<b>Fatal error</b>: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes) on line 8.
Celle-ci $val0[]=$ligne[0];
jl'ai ai mit mais l'erreur persiste.
Il n'y a pas une erreur avec les crocher ? Les délimiteurs se mette bien qu'a un seul endroit ?
cette erreur est du au dépassement du memory_limit tu peux l'augmenter mais je trouve drole que tu le dépasses montre ton script à toi on sait jamais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ;;;;;;;;;;;;;;;;;;; ; Resource Limits ; ;;;;;;;;;;;;;;;;;;; memory_limit = 128M
Oui je trouve cela bizarre aussi ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php $fp = fopen("Produits.csv", "r"); while($row = 1) { $ligne = fgetcsv($fp, 0 ,";") ; $val0[]=$ligne[0]; } $val0=array_unique($val0); foreach($val0 as $val){ echo 'Nom : '. $val ; // Affichage de la 1re valeur de la ligne } ?>
oula j'étais pas réveiller moi ce matin , donc oui normal tu avais une boucle infini avec ton while $row=1 (j'avais repris ça sur ton ancien script )
voila comme ça cela sera mieu
dsl ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php $fp = fopen("Produits.csv", "r"); while($ligne = fgetcsv($fp, 0 ,";")) { $val0[]=$ligne[0]; } $val0=array_unique($val0); foreach($val0 as $val){ echo 'Nom : '. $val ; // Affichage de la 1re valeur de la ligne } ?>
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager