ajouter un enregistrement

Eléphanteau du PHP | 18 Messages

05 mars 2008, 17:53

bonjour voila j'ai un gros problème très drôle sauf pour moi.
dans ma page php qui récupéré des informations d'un fichier texte (jusque la tous va bien) je les ajoutes dans ma basse de donner par un insert into (jusque la tous va bien encore) je retrouve bien toutes mes informations dans ma table.
une autres page de mon site va chercher les informations qui sont sur la table (recherche le type pour afficher un document et grâce a cela mon document s'affiche) mais pas pour moi il faut que pour chaque enregistrement je change le type (ici vous me dirais : c'est normale alors que sa ne fonctionne pas!!!)
mais mon type qui se nome : produit dans la BDD je doit modifier par produit
pour être plus claire il me suffi simplement de retiré le "t" de produit et de le remettre immédiatement puis sauvegardé et la tous fonctionne et mon document s'affiche;
si vous avez déjà eu un problème identique ou une solution car je suis devenu fou avec cela
merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 mars 2008, 18:05

J'a rien compris à ta question.... en gros :

Tu as un fichier dans lequel tu as la valeur "produit".
Lorsque tu l'importes en base, tu colles cette valeur dans un champ nommé "type"
Et lorsque tu intérroges ta base avec un WHERE type = "produit" tu n'as pas de résultats

Du coup tu fais un update de l'enregistrement (avec quoi ?) pour supprimer le "t" final (et rien que ça ?), puis un nouveau pour le remettre.

Et à partir de là, ton WHERE type = "produit" fonctionne. C'est bien ça ?

Si c'est le cas, la réponse me parait assez évidente, la valeur provenant de ton fichier n'est pas "produit", mais peut être " produit" ou "produit " ou "produit\n" (j'opterais pour ce dernier si ton champ est en fin de ligne), du coup le premier test ne fonctionne pas puisque la chaine ne correspond pas, et le fait de l'éditer pour supprimer le "t" te fait perdre le \n ...

J'a bon ? :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 18 Messages

05 mars 2008, 18:15

whaou je n'avais pas pensée a sa je vais tester.
mais pour re-expliquer j'enregistre un champ dans ma BDD et lorsque je vais dans PHPMyAdmin je modifie le champ comme cela:
je retire le "t" et le remet de-suite puis sauvegarde. et la sa marche

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 mars 2008, 09:49

A mon avis, si tu ouvres juste l'enregistrement dans phpMyAdmin et que tu enregistres sans rien changer, ça fonctionnera également... je pense qu'il te reste un retour charriot à la fin de ton champ (celui-ci importé du fichier) et tu le perds lorsque la valeur est affiché dans l'input texte de phpMyAdmin...

Pour tester, tu peux essayer de changer le "varchar" en "text". Lorsque tu éditera l'enregistrement tu auras un textarea au lieu d'un input text et tu devrais voir s'il y a ou pas un retour à la ligne ou pas...

Déjà tu peux vérifier si ta valeur "produit" est bien la derniere colonne du fichier que tu importes, si ce n'est pas le cas c'est que le problème est ailleurs, sinon, ben y a de fortes chances que ce soit ça :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 18 Messages

06 mars 2008, 12:03

merci beaucoup Ryle
effectivement j'ai effectuer un :

Code : Tout sélectionner

$var[0]=rtrim($var[0]) ;
et sa marche super

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 mars 2008, 12:33

Il ne te reste donc plus qu'une seule chose à faire ;)

Image
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...