php objet insertion base de donnée - PHP - Programmation
Marsh Posté le 19-04-2010 à 15:22:30
Salut,
Je comprends mal ta question... quel est le souci d'utiliser une classe pour affecter des variables ?
Marsh Posté le 19-04-2010 à 15:26:16
ben en fait comme tu le voit dans le code pour verifier si le champ est vide j'utilise $_POST['nom'] mais je voudrais utiliser $nom ( la variable a laquelle j'ai affecté $_POST['nom'] )
car plus court et plus simple
j'espère avoir été plus clair sinon demandé je suis dispo
en tout cas merci d'avoir pris la peine de lire mon post
Marsh Posté le 19-04-2010 à 16:12:54
OUPS j'avais pas bien lu, autant pour moi
Le code d'une classe est plutôt du style :
Code :
|
Marsh Posté le 19-04-2010 à 16:23:25
super merci
le $this->verif_form(); veut dire que le _nom pourra etre utilisé dans ma fonction verif_form
Marsh Posté le 19-04-2010 à 17:11:45
le $this->_nom, pas le $_nom
Marsh Posté le 19-04-2010 à 18:23:09
Voila j'ai apliqué ce que tu ma dit mais cela ne semble pas fonctionner :
Code :
|
cela me met tout le temps le message comme quoi des champs sont vides alors que non
Marsh Posté le 20-04-2010 à 00:52:43
Oulah.
Tu as 9 arguments à la méthode vide() (c'est quoi ce nom ???), mais tu ne les renseigne pas quand tu l'appelles.
Dedans tu n'utilise aucun de ces argument et tu utilises un mélange de propriété de l'objet et de $_POST...
Je pense qu'il faut que tu relises ton code, ça n'a aucun sens là.
Marsh Posté le 20-04-2010 à 10:10:02
theredled, oui, effectivement
Et sinon, s'il t'indique que des champs sont vides, c'est sans doute car... des champs sont vides
A toi, donc, de tracer la valeur de chaque champ pour voir lequel pose problème.
Marsh Posté le 20-04-2010 à 12:01:00
theredled a écrit : Oulah. |
merci d'avoir répondu si j'ai melangé c'est pour faire des test lorsque je met que des POST cela marche bien mais apartir du moment ou je met des $this->_nom ca ne marche plus
pourquoi 9 arugument car apres je creer l'objet de la sorte :
$test = new verif_form();
$test -> vide("nom","prenom","pseudo","mail","mail2","password","password2","ville","codepostal","adresse" );
je peut ainsi vérifier les champs que je souhaite en les mettant en argument
sinon mon code était bon ou pas concernant le $this->_nom c'est comme ca qu'il fallait le mettre ??
Marsh Posté le 20-04-2010 à 12:04:32
cyrildu07 a écrit :
pourquoi 9 arugument car apres je creer l'objet de la sorte : $test = new verif_form(); je peut ainsi vérifier les champs que je souhaite en les mettant en argument |
Ton code ne rime à rien, repostes-en un correct, ou apprends les bases de la POO si tu ne les connais pas.
Marsh Posté le 20-04-2010 à 12:51:26
cette fois j'ai rectifier quelque choses
Code :
|
Marsh Posté le 20-04-2010 à 13:18:47
Toi t'as pas été voir le lien que j'ai filé (ou tu l'as lu en diagonale)
C'est pas construct mais __construct le nom de la fonction. __construct et __destruct sont des fonctions au nom réservé, qui sont AUTOMATIQUEMENT appelées lors de la création et de la destruction de l'instance.
Idéalement, tu n'utilises pas la variable $_POST dans le code de la classe.
Marsh Posté le 20-04-2010 à 13:32:20
desolé je pensait que les tirait n'était pas obligé
mais sinon mon dernier bout de code marche mais j'aimerai mettre le $this->nom dans
Code :
|
comme ca :
Code :
|
mais ca me met une jolie erreur :
Fatal error: Non-abstract method verif_form::insert() must contain body in
Marsh Posté le 20-04-2010 à 13:57:13
Bin oui, c'est bien ce que je disais, t'as pas été lire le lien...
Dans le bout de code de la fin (i.e. HORS DECLARATION DE CLASSE), tu ne peux pas utiliser $this car on ne l'utilise que dans la déclaration de la classe.
Tu peux accéder aux propriétés de l'instance (comprends bien la différence entre classe et instance) par :
$instance = new maclasse();
$instance->_nom = 'toto';
Marsh Posté le 20-04-2010 à 14:17:27
je comprend pas tout et si je veux mettre autre chose que $_POST['nom'] dans justement une variable plus courte qui comprend $_POST['nom'] faut que je fasse comment
Code :
|
Marsh Posté le 20-04-2010 à 14:28:01
Lors de la création de l'instance de la classe, tu peux utiliser des paramètres :
$instance = new maclasse($param1, $param2...);
Ces paramètres sont ceux de la fonction __construct de ta classe.
Est-ce plus clair ? C'est vrai qu'à me relire, c'est un peu lapidaire
Marsh Posté le 20-04-2010 à 14:31:38
non pas a te relire a comprendre je suis un petit peu perdu
Marsh Posté le 20-04-2010 à 14:39:42
Pour donner un bref exemple :
Déclaration de la classe
Code :
|
Utilisation de la classe
Code :
|
J'espère que c'est plus clair maintenant.
Marsh Posté le 20-04-2010 à 14:49:57
le truc c'est que ca je comprend niquel mais moi mon truc me semble plus compliqué est l'est d'ailleur mais moi dans mon exemple ca donnerai ca si je veux recuperer mes champs :
Code :
|
[edit]
euh non en fait dans les chou ça marchera pas ça par contre:
Code :
|
Marsh Posté le 20-04-2010 à 14:51:17
Quelle patience, c'est digne d'un modo
Marsh Posté le 20-04-2010 à 14:53:22
theredled a écrit : Quelle patience, c'est digne d'un modo |
en meme temps si on m'explique pas je risque pas de comprendre, après c'est le but des forum d'aider c'est pas comme si je demandais du travail tout fait
Marsh Posté le 20-04-2010 à 14:58:29
cyrildu07 a écrit : |
Le truc c'est que je ne comprend pas pourquoi tu veux faire ça "en objet" alors que visiblement tu n'a aucune idée d'en quoi ça consiste ?
Marsh Posté le 20-04-2010 à 14:59:52
theredled a écrit : |
Pour tout te dire je l'ai tout fait en procedural et marche a la perfection mais but de mon TP je doit tout transformer en objet (pour apprendre un peu mieux l'objet )
Marsh Posté le 20-04-2010 à 15:01:08
Ah, c'est un TP... Tu as lu tes cours déja ?
Marsh Posté le 20-04-2010 à 15:03:03
theredled a écrit : Quelle patience, c'est digne d'un modo |
cyril faut pas le prendre mal
En fait dans le 1er post j'ai fait un truc pas propre (utiliser $_POST dans le corps de la classe) mais c'est parce qu'on procède déjà comme ça dans plein d'écrans à mon taf... et du coup j'suis sûr que ça l'a enduit d'erreur, du coup j'me sens coupable
Je pense qu'on lui a demandé de le faire en objet, il a pas eu le choix (il a 19 ans)
cyril, compare ton code :
function __construct($_POST['nom'], $_POST['firstname']) {
et le mien :
function __construct($name, $firstname) {
$_POST c'est une variable globale qui est affectée lorsqu'on récupère les données d'un formulaire, cela n'a aucun sens de l'utiliser en tant qu'argument d'une fonction.
edit : et j'ai des doutes, oui, sur la lecture du cours
Marsh Posté le 20-04-2010 à 15:13:09
je vais simplifier le tout pour faire des essai car la trop de choses merci pour votre aide je reviendrai quand j'aurais plus capté
Marsh Posté le 22-04-2010 à 15:36:05
j'ai un autre probleme que je ne comprend pas
j'ai une variable qui recupere le resultat d'un requete et qui vaut 20
une autre variable qui recupere la valeur d'un champ et vaut 20 par exemple
quand j'aditionne mes deux variables ca ne marche pas le code:
Code :
|
je précise tout les nombres sont bien récupéré je l'ai vérifié avec mes echo mais après l'adition ne se fait pas
Marsh Posté le 23-04-2010 à 15:02:58
Il doit manquer du code : $nbrRef n'est pas initialisé.
mais avec $this tu es toujours avec des classes...
Marsh Posté le 19-04-2010 à 15:18:54
bonjour
voila je voudrai insérer des informations récupérer via un formulaire dans une base donnée je doit faire cette insertion en php objet
j'aimerai savoir comment prendre en compte mes champs recuperer dans des fonction :
a partir de ce code je voudrai que var $prenom et var $nom prenent les valeurs que l'utilisateur rentre dans le formulaire mais je ne sais pas comment faire ca dans ma classe
merci de votre aide je débute en objet