Liens contextuels :
| Auteur | |
|---|---|
| TriskaidekaPiT | # 05 May 2008 - 20:06:44 |
| 13 Posts |
Bonsoir ! Voilà, j'ai une petite question que j'imagine de débutant donc je pense qu'elle ne posera pas trop de problème... Donc en fait, j'ai une table que voici : TELEPHONE varchar(10) latin1_general_ci Non Elle est liée à un formulaire qui vient insérer des valeurs dedans puis les récapitule ensuite. C'est en fait une sorte de système d'inscription à une soirée. On entre son nom, son prénom, son email, et la bouteille que l'on va ramener, ainsi que le volum qui se selectionne dans une liste déroulante. Vous pouvez voir un aperçu ici : http://fullmoonpartylogrian.online.fr/testseb/index.php (le bouton noir ouvre le formulaire pour s'inscrire, c'est vraiment fait à l'arrache... hihi... )Et ensuite, l'exploitation ici : http://fullmoonpartylogrian.online.fr/liste_invites.php Donc le problème, c'est qu'il y a une ligne vierge qui s'ajoute dans la table, avec seulement la valeur "0" dans Volume. Ce qui vient foirer tout, puisque comme vous pouvez le voir il y a 17 enregistrés, mais dans la liste_invites.php, il y a un bug sur le début de la liste avec le 1 et le 2 ensemble, et on peut compter 18 personnes... Quand j'essaie de supprimer cette ligne vierge, elle revient... Je pense que le problème vient du type pour VOLUME, mais je ne trouve pas la solution... Le truc c'est que PHP, MySQL, c'est pas trop mon truc, donc du coup c'est un peu n'importe quoi... Voilà, donc si quelqu'un pouvait m'aider, ce serait génial Merci Modifié par TriskaidekaPiT (05 May 2008 - 20:09) |
|
|
| TriskaidekaPiT | # 05 May 2008 - 22:24:00 |
| 13 Posts |
Si ça peut aider, voici un screenshot du problème... EDIT : bon en fait, je la vire carrément... ^^ Merci Modifié par TriskaidekaPiT (06 May 2008 - 00:02) |
|
|
| CPascal | # 05 May 2008 - 23:00:21 |
ca represente ... ... rien 748 Posts |
une ligne que tu supprimes directement dans phpmyadmin ne reviens pas tous seule. moralité c'est que ton programme d'insertion dois surement faire une insertion a un mauvais moment. je m'en vais resoudre ce sacré schimliblibli .... schimilili... schmilbl.. hic. |
| TriskaidekaPiT | # 05 May 2008 - 23:05:27 |
| 13 Posts |
C'est pas faux... Dans ce cas, voici mes codes : <form method="post" action="index.php"> Et la partie dans index.php qui y est liée : <?php Voilà, en espérant que ça puisse aider à m'aider. Merci encore |
|
|
| CPascal | # 05 May 2008 - 23:34:03 |
ca represente ... ... rien 748 Posts |
je vois que tu ne fais aucune verification a l'insertion quoi. si tu faisais une verification de l'existence de la variable posté et quelle est du contenu ça ferais moins de pb potentiel genre: if (isset($_POST['nom']) && !empty($_POST['nom'])) $nom= mysql_real_escape_string($_POST['nom']); else $nom =""; PS: ton image de phpmyadmin est trop grande ça etire la mise en page de alsa. t'aurais du utiliser la miniature et apres quand on clique dessus on a l'image en grand. Modifié par CPascal (05 May 2008 - 23:38) je m'en vais resoudre ce sacré schimliblibli .... schimilili... schmilbl.. hic. |
| Thomas D. | # 05 May 2008 - 23:41:07 |
Roi sous la montagne Modérateur 2826 Posts |
Salut +1000 pour les vérifications à l'insertion. Toujours, toujours, toujours contrôler les données provenant de l'utilisateur. Sinon, pour le type de données, on doit pouvoir utiliser NUMBER(3,2) avec MySQL, non ? I.e. un nombre comportant 3 chiffres, dont 2 après la décimale. Ça me semble plus approprié que FLOAT dans ce cas Edit: en passant, j'espère que les adresses mail dans ton listing sont bidons ? C'est dans une image, d'accord, mais ce ne serait pas cool d'exposer ainsi les adresses mail des utilisateurs de ton site Modifié par Thomas D. (05 May 2008 - 23:43) Et comme disait Groucho Marx, si vous n'aimez pas mes opinions, j'en ai d'autres. |
| TriskaidekaPiT | # 06 May 2008 - 11:47:02 |
| 13 Posts |
Bon, et bien merci à tous les deux, car grâce à vos conseils, j'ai réussi à arranger mon script Je vous l'ai dit, moi le PHP MySQL, c'est pas trop mon truc, même si c'est très intéressant, et pour cela, j'apprécie votre aide. C'est un copain qui s'est occupé du code PHP (et ne croyez pas que je dis ça pour me tirer d'affaire, c'est véridique ) donc je lui dirai pour ce qui est des vérifications, et puis pour moi, ce sera toujours ça de su.Pour les mails, ils étaient bidons, sauf le miens... mais bon, j'ai tout enlevé, comme ça on en parle plus... Bon, et par contre, maintenant, je bloque sur un petit truc... Je le met à la suite de ce topic, puis si besoin je créérai un nouveau sujet. En fait, une fois que tout est rentré dans la base, je retourne chercher les valeurs pour les afficher dans un tableau. Là, j'essaie de créer une liste des alcools avec le volume pour chaque alcool. Cela donc donne quelque chose comme : // VODKA Que j'affiche ensuite comme suit : echo "<table id='recapalcool'> Voilà, maintenant, le problème, c'est que s'il y a pas encore d'enregistrement pour la valeur "Vodka" dans la table, alors mon Litres fait un peu bête tout seul dans son tableau... J'ai donc essayé de faire une vérification pour afficher "0" s'il n'y a rien dans la table pour "Vodka". Voici ce que j'ai essayé : // VODKA Voilà, j'imagine que le problème est dans cette portion de code là... J'ai essayé pas mal d'autres trucs avant de vous poser la question, et je serai curieux de voir la solution... Merci encore en tous cas |
|
|
| CPascal | # 07 May 2008 - 21:30:46 |
ca represente ... ... rien 748 Posts |
en l'occurrence le if(empty($vodka)) {c'est pas ça qu'il faut faire. mysql_query va executer la requete et retourner un recordset, disons un ensemble de resultat(s). ou faux s'il y a eut une erreur de requete. s'il y a une erreur dans la requete c'est pas forcement que ça vaut zero c'est que ton code est faux. si tu as un resultat c'est pas pour autant que la somme ne vaut pas zero. on peut savoir le nombre de resultat d'une requete avec la fonction mysql_num_rows($vodka); et tu verrais que ça peut être zero dans l'abolu. mais bon là tu demandes une somme donc il y a un et un seul resultat. $r = mysql_fetch_row($vodka); je gere s'il y a un s a la fin si ça depasse 1. tu peux facilement aussi faire des test sur la variable pour ne pas afficher du tous litre si ça vaut zero. pour ça un(ou des ) if/else fait aussi bien l'affaire que l'operateur ternaire ()?: que j'ai employé là. ou l'operateur switch s'il y a 3 cas. $volume tu peux l'appeler $vvodka si tu veux. neanmoins tu verras que tu debuggeras mieux si toutes tes variables ont un nom clair. Modifié par CPascal (07 May 2008 - 21:41) je m'en vais resoudre ce sacré schimliblibli .... schimilili... schmilbl.. hic. |
| TriskaidekaPiT | # 10 May 2008 - 17:54:08 |
| 13 Posts |
Merci CPascal pour ton temps et tes réponses Je ne suis pas sûr d'avoir bien compris tout ce que tu as dit dans ta réponse et j'ai essayé la solution que tu m'as donné par rapport pour cette histoire de zéro. Ce qu'il y a, c'est que la requête SQL en question effectue une somme, or s'il n'y a pas d'enregistrements, elle ne peut pas faire cette somme, ou du moins, elle ne pourra pas renvoyer de résultat absolu, je me trompe ? Parce que quand j'essaie d'effectuer cette requête dans phpMyAdmin : SELECT SUM( volume ) J'obtiens comme réponse : NULL Ce qui, je crois, me parait logique, puisqu'il ne trouve aucun enregistrements pour faire la somme... Ce qui fait qu'avec la solution que tu m'as donné, s'il n'y a pas d'enregistrements pour la bouteille "Vodka", alors seul " Litre" s'affiche. Alors, est-ce que la solution est bonne, ou bien est-ce moi qui suis encore dans l'erreur quelque part ? Du côté de la base de donnée peut être ? Mon champs "volume" dans la table "alcool" a pour valeurs : Type : float Null : non Defaut : 0 Est-ce bien correct ? Merci encore en tous cas ! Tes conseils et tes solutions m'aident beaucoup, c'est gentil à toi. Un jour je rendrais ce savoir. |
|
|
| CPascal | # 12 May 2008 - 15:12:44 |
ca represente ... ... rien 748 Posts |
erf j'avais pas testé , et oui je suis un informaticien flemard.... ( qui a dis que c'etait un pleonasme au fond de la classe? )bon le empty est bien faux. mes tests me disent qu'il rend faux a chaque fois. normal il y a bien quelque chose. par contre un print_r de $r donne Array ( [0] => ) donc $r[0] est null. alors 2 solutions. soit changer la valeur de $volume $volume = ($r[0])?$r[0]:"0"; ainsi tu as 0 litre qui s'affiche même s'il n'y a pas de bouteille de whisky. soit changer l'affichage if ($volume != null) ainsi pas d'affichage du tous si aucune bouteille n'existe. mais tu auras 0 litre si une bouteille vide est là. Modifié par CPascal (12 May 2008 - 15:24) je m'en vais resoudre ce sacré schimliblibli .... schimilili... schmilbl.. hic. |
| Heyoan | # 12 May 2008 - 15:20:48 |
Un p'tit Kiwiz Coca ? 1664 Posts |
CPascal a écrit :C'est moi !Un être en tant qu'être ne peut-il être autre qu'il n'est s'il n'exprime pas lui même son être ? |
| CPascal | # 12 May 2008 - 15:26:01 |
ca represente ... ... rien 748 Posts |
! je savais bien que j'avais entendu quelquechose.. je m'en vais resoudre ce sacré schimliblibli .... schimilili... schmilbl.. hic. |
| TriskaidekaPiT | # 12 May 2008 - 22:26:34 |
| 13 Posts |
Voilà, tout marche, tout est nickel ! Encore un grand merci à toi CPascal, merci vraiment Tu m'as donné envie de me mettre vraiment au php, ça a l'air d'être un langage vraiment intéressant, alors... A bientôt ! |
|
|
Les références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org
Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe
Nikozen : Hébergement - Réalisation : Alsacreations.fr

)


!
