Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/01/2012, 21h06   #1
Invité régulier
 
Inscription : octobre 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 56
Points : 9
Points : 9
Par défaut INSERT DONNES (NOVICE)

Bonsoir,

Quelqu'un serait-il me dire pourquoi je n'arrive pas à insérer le nom du jeux dans la table "JEUX" ? Je suis novice et je commence à apprendre. J'ai une base "TEST" avec une table "JEUX". Cette table comprend uniquement 2 champs qui sont l'identifiant qui lui est auto incrémenté et nom_jeux de type varchar.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
echo '<label for="nom_jeux">nom jeux :<label/> <input type="text" id="nomjeux" size="30"></input></br>'; 
echo '<input type="button" value="ajouter" onclick="ajouter()"></input>'; 
echo '<input type="reset" value="annuler"> </input></br>';
 
function ajouter()
{
try
	{
		$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
		$bdd = new PDO('mysql:host=localhost;dbname=TEST', 'root', '', $pdo_options);
		$nomjeux = $_POST('nomjeux');
		$reponse = "INSERT INTO JEUX VALUES ('', '$nomjeux');";
		echo 'Le jeu a bien été ajouté !';
 
		$reponse->closeCursor();
	}
catch(Exception $e)
	{
		die('Erreur : '.$e->getMessage());
	}
}	
?>
Pour information, il ne se passe absolument rien !! aucun message d'erreur, ni validation
Merci par avance,
Ced39300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2012, 21h21   #2
Membre émérite
 
Avatar de vorace
 
Homme
Développeur
Inscription : août 2010
Messages : 587
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur

Informations forums :
Inscription : août 2010
Messages : 587
Points : 861
Points : 861
tout simplement parce que onclick est un évènement javascript et que ta fonction en dessous est du PHP en plus c'est $_POST['nom_variable'].
__________________
Développeur informatique contrarié...
vorace est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2012, 21h30   #3
Invité régulier
 
Inscription : octobre 2011
Messages : 56
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 56
Points : 9
Points : 9
Est il possible de le remplacer par un autre événement similaire ?
Ced39300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 09h14   #4
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 735
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 735
Points : 3 305
Points : 3 305
Citation:
Envoyé par Ced39300
Est il possible de le remplacer par un autre événement similaire ?
Non, car ce n'est pas un problème d'évènement.

Il faut vraiment comprendre qu'un site Web a une relation client/serveur très forte.
Le serveur, ton hébergeur (Apache entre autre) à pour mission de réceptionner une demande (une requête HTTP d'un client) lors d'un clic sur un lien ou soumission d'un formulaire par exemple, puis traite la demande, et ensuite répond (renvoie un contenu vers le client).

Les langages comme Html, Css, Javascript sont interprétés par un client (navigateur).
Les langages comme Php, SQL sont interprétés par le serveur.


Ce qui veut dire qu'un navigateur ne peut pas interpréter du code Php (c'est même absurde).
On exploite Php pour générer par moment du code Html, Css, Javascript, mais c'est juste généré.


Par ailleurs, il faudrait remplacer le "input type button" par un "input type submit" pour que la soumission du formulaire soit faite, et lui rajouter un nom.
Et rajouter un nom aussi au input "nomjeux".
Puis une balise BR ce fait comme ceci : <br />
Un input comme ceci : <input ... />
Un label : <label>Un label</label>, de même que le nom qu'on met dans l'attribut du "for" du label doit être identique à l'attribut "id" du input associé (comme nomjeux).
Et pour finir, l'ensemble du contenu dans le formulaire doit selon la norme être compris dans un élément de type block, comme : <fieldset> ou <p> (par exemple).
(/!\ attention aux erreurs de syntaxes )

A la suite de ça, (lors du clic de ce bouton submit), une requête HTTP sera envoyée vers le serveur avec cette fois le contenu du formulaire.
Et c'est là que ton serveur pourra traiter la demande, c'est à dire insérer dans la Bdd.

En résumé, la fonction Php "ajouter" ne sert à rien.

Exemple :
Page insertion.php (avec quelques corrections)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<?php
// Partie traitements
if (isset($_POST['ajouter'], $_POST['nomjeux'])) {
    // On reçoit la demande d'insertion
   // Insertion/SQL
}
?>
<!-- Partie Html -->
<html>
... etc ...
<body>
 
    <form action="insertion.php" method="post">
        <fieldset>
            <label for="nomjeux">nom jeux :</label> <input type="text" name="nomjeux" id="nomjeux" size="30" /><br />
            <input type="submit" name="ajouter" value="Ajouter" />
            <input type="reset" value="annuler" />
        <fieldset>
    </form>
 
</body>
</html>
Ici, le formulaire pointe sur la même page : insertion.php
Ce qui veut dire que lorsqu'on soumet le formulaire, la même page sera demandée, à la différence que cette fois le contenu du formulaire sera renvoyée, d'où la présence de la condition sur "ajouter".


Vois tu mieux comment les choses se déroulent ?
Si ce n'est pas ainsi que tu veux faire, alors il faut expliquer comment tu souhaites le faire.
__________________
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]
RunCodePhp est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h56.


 
 
 
 
Partenaires

Hébergement Web