Faire une boucleuu [PHP] - PHP - Programmation
Marsh Posté le 04-01-2005 à 01:16:33
Heuu... ben il faudrait déjà peut-être stocker l'équivalent de ton tableau Excel dans un tableau PHP, du style :
Code :
|
Ensuite une fonction de type :
Code :
|
(aucune vérification d'erreur ici, ça suppose que tu sais ce que tu fais de la fonction [par ex., pas de chaîne vide ou comprenant des caractères non compris dans le tableau.])
Marsh Posté le 04-01-2005 à 02:15:30
Merci pour la réponse
une question pour le tableau n'y aurait t'il pas un moyen plus "efficace" pasque la j'en ai pour des lignes et des lignes.
avec cette ecriture on peux faire une sorte de tableau editable ki ressemblerai " a s'y méprendre" au fichier exel ?
ou mettre ca en base de donné mais je suis pas très inspiré
j'ai fait 26 tables a,b,c,d,e,fg,.... avec 26 champs avec un enregistrement par chant ki est la longeur
le but de la demarche etant de pouvoir avoir visuellement l'equivalent du fichier excel pour changer les données aisément
Marsh Posté le 04-01-2005 à 08:55:57
En fait vu comme ça les valeurs de ton tableau ne dépendent que de la lettre précédente et jamais de la lettre "courante". En gros une ligne contient partout la même valeur.
Si c'est le cas alors ton tableau peut être réduit à une seule dimension.
Dans tous les cas, pour optimiser la création de ce genre de tableaux, tu peux te faire une fonction qui remplie des parties entières de celui-ci en utilisant les valeurs ASCII des caractères (qui te permettent de faire des boucles). Pour ça tu as chr() et ord() qui devraient t'être utiles.
Marsh Posté le 10-01-2005 à 18:45:11
j'ai essayé de mettre le tableau dans le fichier php mais ayant besoin de pouvoir le modifier a partir d'une interface administrateur le mieux serait de mettre ce tableau ->
Code :
|
dans une base de donnée mais je c pas trop comment faire sachant que j'ai besoin du tableau a deux dimensions, j'ai fait une table par lettre mais je trouve pas ca super optimisé ....
Marsh Posté le 10-01-2005 à 20:37:26
Hmm... ben ça fait effectivement un sacré joli nombre d'infos à stocker. Ce que tu peux aussi faire c'est stocker ça à l'intérieur d'un fichier. Il faudrait bien sûr sérialiser le tableau (voir www.php.net/serialise).
Ca peut aussi se faire en bdd mais une table avec un seul champ pas atomique, bof.
Marsh Posté le 11-01-2005 à 14:51:56
je vien de créer la base ci dessous
Code :
|
Il y a autant d'enregistrement que de champs et un champs ressemble a ca
Code :
|
Le but est d'apliquer une taille a chaque lettre d'une chaine, j'ai deja fait la fonction en "dur" sans base de donnée :
Code :
|
le but etant d'apliquer a chaque lettre la taille en fonction de la lettre précédente
Marsh Posté le 13-01-2005 à 15:51:14
Code :
|
voila ce que j'ai fait mais ca ne marche pas peut on mettre une connection dans une boucle ?
l'erreur est incomprensible
Code :
|
Marsh Posté le 13-01-2005 à 15:56:37
chacal_one333 a écrit : WHERE lettre_Precedente = ".$nom[$i-1]."<br>"; |
oula oui hihi, j'avai testé de faire un echo sur $sql et j'ai oublié de réenlever le <br> ^^
Marsh Posté le 13-01-2005 à 15:58:11
dans la close du where il te faut mettre des simples quotes autour de ta variable, c'est la syntaxe SQL qui l'impose...
Et par contre, <br> dans ta requete, je suis sceptique...
essaie la condition:
Code :
|
Marsh Posté le 13-01-2005 à 15:58:22
et ton $nom[$i] je doute qu'il passe
$sql = "SELECT ".$nom[$i]." FROM caractere WHERE lettre_Precedente = '".$nom[$i-1]."'"; |
Marsh Posté le 13-01-2005 à 16:03:26
chacal_one333 a écrit : et ton $nom[$i] je doute qu'il passe
|
a oui ben justement avec ou sans ca marche que je mette le ".$nom[$i]." ou que je le laisse dans la chaine de caractère ca passe
Marsh Posté le 13-01-2005 à 16:11:05
kiruah a écrit : a oui ben justement avec ou sans ca marche que je mette le ".$nom[$i]." ou que je le laisse dans la chaine de caractère ca passe |
c'est pas le fait qu'il soit dans la chaine ou pas qui nous inquiété, la chaine principale étant en double quote, PHP remplacera la variable par sa valeur, par contre il faut normalement des simples quotes en plus pour que SQL accepte la requete...
Marsh Posté le 13-01-2005 à 17:56:53
et j'aimerais initialiser ma variable $nom[$i-1] car j'ai une erreur quand elle corespond a 0-1
Code :
|
donc je donne une valeur :
Code :
|
ESP etant le champs espace dans ma base de donnée et il me retourne cette erreur
Code :
|
Marsh Posté le 13-01-2005 à 21:23:39
je crois pas que t'es le droit d'utiliser un index négatif pour chosiir une lettre d'un mot... la lettre de rend -1 n'existe pas dans $nom...
rajoute un if avant ton $sql=...etc...
if i-1>0 tu prend ta requete, else tu fait un where lettre_precedente='ESP'
Marsh Posté le 14-01-2005 à 11:46:52
Xav_ a écrit : je crois pas que t'es le droit d'utiliser un index négatif pour chosiir une lettre d'un mot... la lettre de rend -1 n'existe pas dans $nom... |
Ca marche
Maintenant le problème c'est quand je saisie un espace j'ai mis une condition :
Code :
|
mais ca ne marche pas la programme arrète sa boucle
Marsh Posté le 14-01-2005 à 12:03:41
normal, tjs le meme pb...
je crois que tu n'a pas bien compris ce que tu es en train de faire:
1/ $nom est une variable contenant un mot
2/ en programmation un mot est vu comme un tableau (à une ligne) de lettre
3/ donc $nom[0] est la 1ère lettre d'un mot (la lettre de rang -1 n'existe pas] --> pb d'avant
4/ "ESP" ça fait 3 lettres, que tu essai de mettre dans une seul en faisant $nom[$i]="ESP" --> nouveau pb
donc il ne faut pas que tu joue sur $i ou $nom, c'est ton mot de départ, il faut jouer une fois de plus sur le "where"
Code :
|
là ça doit pouvoir le faire
EDIT: corrigé la boulette du "=" en "=="
Marsh Posté le 14-01-2005 à 16:43:35
Code :
|
ca deconne en resultat j'ai
Code :
|
je comprend pas pouquoi la condition ne marche pas
Marsh Posté le 14-01-2005 à 17:34:04
Citation : je comprend pas pouquoi la condition ne marche pas |
paske je suis un boulet et que tu as recopié ma connerie !!!
une condition n'est pas une affectation:
if ($nom[$i]==" " ) ...etc...
avec un seul "=" tu test pas si c'est un espace --> tu le remplace par un espace !!!
EDIT: par contre l'affichage de ta requete qui te montre que chaque lettre à été remplacée par un espace, ça mettait sur la voie
Marsh Posté le 14-01-2005 à 17:48:31
[citation=953253,0,20][nom]Xav_ a écrit[/nom]
paske je suis un boulet [citation]
et moi un gros gros boullletttt
une condition n'est pas une affectation
une condition n'est pas une affectation
une condition n'est pas une affectation
une condition n'est pas une affectation
une condition n'est pas une affectation
une condition n'est pas une affectation
une condition n'est pas une affectation
...
je le copieré 100 fois ^^
merci en tout cas
Marsh Posté le 16-01-2005 à 16:46:05
Code :
|
Résultat
Code :
|
comment se fait t'il k'il reste des ' ' ma condition etait de remplacer tout les ' ' par des 'ESP'
Marsh Posté le 04-01-2005 à 00:58:51
Bonsoir,
je dois faire un script en php
pour calculer la taille quee va prendre un nom
derrière un maillot de football :
j'ai un tableau excel avec les 25 caractères de l'alphabet et la taille k'il prendront
en fonction de la lettre précedente
la tableau se presente comme ca :
si la personne s'apelle jaja ca fera 0.4 + 0.9 + 1 + 0.9 = 3.4
0.4(avant le j un espace)
+
0.9(avant le a un j)
+
1(avant le j un a)
+
0.9(avant le a un j)
donc pour l'instant cette chaine est dans une variable ,
j'utilise la fonction strlen pour compter le nombre de caractères et j'aimerais bien faire une boucle
merci
Message édité par kiruah le 11-01-2005 à 14:48:56