|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() brice laclare Inscription : octobre 2010 Messages : 4 ![]() |
Bonjour,
Je débutes en objet et par la même occasion avec PDO en clair j'essaye de passer a un niveau supérieur. Je suis donc sur un système de news et j'ai - Une classe news. - Et 3 fonctions dans cette classe déclarées en public bien sur. Code de ma classe Code :
Code de mon formulaire: Code :
Code de l'appel de ma classe (en clair la validation de mon formulaire) Code :
Voilà maintenant, mon soucis. Donc en clair j'initialise un compteur $err_cpt a 0 ainsi que mes variable err_tire, contenu etc a FALSE. Ensuite je teste que les champs sont bien renseignés donc si $titreNews est vide (champ titre de mon formulaire vu que j'envois le contenu de $_POST['titre'] a ma fonction) n'est pas renseigné je la met a TRUE et j'incrémente mon compteur. Ensuite si mon compteur $err_cpt == 0 alors tous les champs sont renseigné, on est content et on insère dans la base sinon on affiche une erreur et le nombre d'erreur. Maintenant passons au problème ma structure de test if considère que err_cpt est TOUJOURS égal à 4 sans qu'aucun J'ai donc toujours mon message insertion impossible 4 De plus ce passage Code :
lors pour le premier problème $err_cpt toujours égal a 4 je vois une énorme erreur de logique (passage du procédural à l'objet surement) en revanche pour le fait qu'une portion du code n'est pas interprété la je vois pas du tout. En espérant tomber sur un virtuose de la programmation objet et php, je vous remercie. |
||||||||
|
|
00
|
|
|
#2 | ||||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 3 656 ![]() |
M'est avis que l'objet n'a rien à voir dans le problème : Un if sans accolade ne concerne que la 1ere instruction qui le suit
Donc ceci : Code :
Code :
![]() Et pour ton bout de code non interprété, vérifie les ouvertures/fermetures de chaines, et surtout que les balises php sont bien en <?php ?> et pas <? ?>
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) |
||||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 695 ![]() |
Salut
La syntaxe pour atteindre propriété dans un Objet c'est : Code :
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
||
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() brice laclare Inscription : octobre 2010 Messages : 4 ![]() |
Celira => Merci je ne savais pas pour les if sans accolades je comprends bien mieux le problème.
RunCodePhp => Ok mais la je tente de joindre des variables locale à la fonction et non des paramètres. D'ailleurs je n'ai défini aucun paramètres pour cette classe. Faudrait til que les variables Code :
|
||
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Inscription : janvier 2010 Messages : 2 695 ![]() |
Citation:
![]() Ceci dit, une variable contenant un booléen pourrait très bien faire l'affaire aussi, car au fond, le tout est de savoir s'il y a erreur ou pas (vrai ou faux), non ? Ou dit autrement, est-ce si utile que ça de connaitre le nombre d'erreurs ? Aussi, voit si c'est vraiment à cette classe, de cette méthode insertNews() de gérer les erreurs et les afficher (des echo), et même du echo après insertion. Si on prend une certaine généralité, la vérifications des données (GET/POST), gérer les erreurs, inserer en Bdd ... sont souvent 3 choses différentes. Bon, je comprend bien que tu débute, donc que c'est pas simple à concevoir, mais pour ce qui est de l'affichage (les echo), essai au moins de séparer ça, car ça va vraiment causer problème. A titre d'exemple, mettre ça dans un tableau (une propriété), et créer une méthode hasError() pour savoir s'il a eu erreur, puis une méthode getError() pour les afficher t'offriras déjà plus de possibilités. Une fois insertion par exemple, on est souvent amener à faire une redirection (un header) car si on ne le fait pas et qu'on actualise la page, une nouvelle insertion peu se faire, ce qui est plutôt embêtant. Fais des essai en tout cas. Autre petite parenthèse. http://fr2.php.net/manual/fr/pdo.exec.php PDO::exec() retourne un entier (un int), le nombre de ligne affectées, exploiter cette info peut être utile.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20 Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra] |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com