Fonction php
Résolu/Fermé
crazyghandi
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
-
16 nov. 2008 à 20:29
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 - 16 nov. 2008 à 23:00
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 - 16 nov. 2008 à 23:00
A voir également:
- Fonction php
- Fonction si et - Guide
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Fonction miroir - Guide
- Fonction somme excel - Guide
5 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 nov. 2008 à 21:04
16 nov. 2008 à 21:04
Bonsoir,
des erreurs d eprincipe:
esayes comme ça:
@lain
des erreurs d eprincipe:
esayes comme ça:
<?php function load_bdd($fichier) { $tab = file($fichier); $offre_nb = 0; $i = 0; while(!empty($tab[$i])) { $bdd[$offre_nb]['ref'] = $tab[$i];$i++; $bdd[$offre_nb]['ville'] = $tab[$i];$i++; $bdd[$offre_nb]['categorie'] = $tab[$i];$i++; $bdd[$offre_nb]['activite'] = $tab[$i];$i++; $bdd[$offre_nb]['prix'] = $tab[$i];$i++; $bdd[$offre_nb]['date'] = $tab[$i];$i++; $bdd[$offre_nb]['type'] = $tab[$i];$i++; $offre_nb++; } return $bdd; //tu retournais un index de l'array } ?> et l'appel : <?php include "fonctions.php"; $bdd_retourne = load_bdd("data.txt"); //pour afficher u array il faut faire comme ça (en phase de TEST) echo "<pre">; print_r($bdd_retourne); echo "</pre">; // echo $bdd[0]['ref']; tu veux afficher une variable qui n'existe pas , car dans la fonction, donc tu ne la "vois" pas en dehors //apres pour parcourir ton array tu peux faire une boucle foreach foreach($bdd_retourne as $cle=>$sous_array){ //lu tu vas parcourir tous les sous array de $bdd avec $cle= les diff valeurs de $offre_nb et les sousarray correspondants foreach($sous_array as $index=>$value){ //la tu vas parcourir chacun des sous array avec $index= ref, ville etc et $value= leur valeurs correspondantes echo $index." ".$value;"<br /">; //un exemple d'affichage } } ?>
@lain
crazyghandi
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
19
16 nov. 2008 à 21:15
16 nov. 2008 à 21:15
Ok super merci beaucoup j'arrive a recuperer la structure
maintenant comment je recupere offre_nb? ya til un count ou sizeof en php ?
En revanche je n'ai pas tres bien compris votre maniere de recherche indexee, et en realite je ne connais pas l'instruction foreach.
Pouvez vous fournir une petite explication?
encore merci
maintenant comment je recupere offre_nb? ya til un count ou sizeof en php ?
En revanche je n'ai pas tres bien compris votre maniere de recherche indexee, et en realite je ne connais pas l'instruction foreach.
Pouvez vous fournir une petite explication?
encore merci
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 nov. 2008 à 21:26
16 nov. 2008 à 21:26
he bien la boucle foreach te permet de parcourir un array
foreach ($array as $cle=>$value)
parcourt tout l'array et pour chaque cle de ton de ton array tu as la cle dans la variable $cle et la valeur dans la variable $value
donc pas besoin de sizeof
sinon sizeof($bdd) te donne le nombre se sous array $bdd[$offre_nb]
et sizeof($bdd[$offre_nb]) te donnes le nombre de valeurs en dessous dans ton cas ce sera 7 (ref, ville,categorie etc...)
@lain
foreach ($array as $cle=>$value)
parcourt tout l'array et pour chaque cle de ton de ton array tu as la cle dans la variable $cle et la valeur dans la variable $value
donc pas besoin de sizeof
sinon sizeof($bdd) te donne le nombre se sous array $bdd[$offre_nb]
et sizeof($bdd[$offre_nb]) te donnes le nombre de valeurs en dessous dans ton cas ce sera 7 (ref, ville,categorie etc...)
@lain
crazyghandi
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
19
16 nov. 2008 à 22:01
16 nov. 2008 à 22:01
ok ca marche une derniere chose : j'ai bien fait attention de ne mettre aucun espace dans data.txt
toutefois
echo "|",$bdd[0]['categorie'],"|";
me donne : |valeur |
et kan je compare ca a par exemple une variable du moteur de recherche (post) qui fait :
|valeur|
forcement le moteur ne trouve rien
connaissant un peu de C j'ai essaye :
$l = strlen($bdd[0]['categorie']);
$bdd[0]['categorie'][$l-1] = "\0";
mais je n'ai pas l'impression que php compren "\0" comme caractere nul pour refermer une chaine de caracteres
des idees ?
encore merci
toutefois
echo "|",$bdd[0]['categorie'],"|";
me donne : |valeur |
et kan je compare ca a par exemple une variable du moteur de recherche (post) qui fait :
|valeur|
forcement le moteur ne trouve rien
connaissant un peu de C j'ai essaye :
$l = strlen($bdd[0]['categorie']);
$bdd[0]['categorie'][$l-1] = "\0";
mais je n'ai pas l'impression que php compren "\0" comme caractere nul pour refermer une chaine de caracteres
des idees ?
encore merci
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 nov. 2008 à 22:04
16 nov. 2008 à 22:04
utilises plutôt cette forme pour echo:
si tu est embeté par un espace tu peux toujours mettre:
echo "|".$bdd[0]['categorie']."|";
si tu est embeté par un espace tu peux toujours mettre:
echo "|".trim($bdd[0]['categorie'])."|";
crazyghandi
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
19
16 nov. 2008 à 22:11
16 nov. 2008 à 22:11
trim($bdd[0]['categorie']);
echo "|".$bdd[0]['categorie']."|";
ca me donne toujours |valeur | donc fausse toujours le moteur de recherche
echo "|".$bdd[0]['categorie']."|";
ca me donne toujours |valeur | donc fausse toujours le moteur de recherche
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
16 nov. 2008 à 22:57
16 nov. 2008 à 22:57
regardes ce que tu fais:
trim($bdd[0]['categorie']);
echo "|".$bdd[0]['categorie']."|";
tu enleves les espaces de debut et fin par trim et tu utilises ensuite l'ancienne valeur avec les esapce, c'est pas bon!
si tu veux en deux ligne tu fais trim et tu utilises le resultat dans ton echo
trim($bdd[0]['categorie']);
echo "|".$bdd[0]['categorie']."|";
tu enleves les espaces de debut et fin par trim et tu utilises ensuite l'ancienne valeur avec les esapce, c'est pas bon!
si tu veux en deux ligne tu fais trim et tu utilises le resultat dans ton echo
$valeur_affich=trim($bdd[0]['categorie']); echo "|".$valeur_affich."|";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
crazyghandi
Messages postés
312
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
4 octobre 2011
19
16 nov. 2008 à 23:00
16 nov. 2008 à 23:00
ooookay dc comme ceci :
$bdd[0]['type'] = trim($bdd[0]['type']);
echo "|".$bdd[0]['type']."|";
ca marche nikel pour l'affichage je vais appliquer a tou s les champs et tester le moteur de recherche
merci
Ok tout marche tres bien encore merci pour votre aide
$bdd[0]['type'] = trim($bdd[0]['type']);
echo "|".$bdd[0]['type']."|";
ca marche nikel pour l'affichage je vais appliquer a tou s les champs et tester le moteur de recherche
merci
Ok tout marche tres bien encore merci pour votre aide