Petit problème avec mon code, aide s.v.p :O

Fermé
simmusx1 Messages postés 6 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 19 novembre 2016 - Modifié par jordane45 le 19/11/2016 à 19:36
simmusx1 Messages postés 6 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 19 novembre 2016 - 19 nov. 2016 à 20:53
Bonjour,

mon but est qu'un client rentre son numero, nom ,prenom et courriel ensuite qu'avec le

numéro sur le php (avec la base de données) et ainsi nomme le gagnant aléatoirement.


En faite j'ai faite un formulaire :
<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="UTF-8">
  <title>Concours canadian tire</title>
</head>
<body>
<p>Concours Canadian Tire !</p>
 <form name="formulaire" method="post" action="jet.php">
 courriel : <input type="text" name="courriel"/> <br/> 
 nom : <input type="text" name="nom"/> <br/> 
 prenom : <input type="text" name="prenom"/> <br/> 
 numero : <input type="text" name="numero"/> <br/>
 <input type="submit" name="valider" value="Valider"/>
</form> 
</body>
</html>

et le php :
<?php 
$bdd = new PDO('mysql:host=localhost;dbname=classement;charset=utf8', 'root', '');

$courriel=$_POST[ 'courriel' ] ;
$nom=$_POST[ 'nom' ] ;
$prenom=$_POST[ 'prenom' ] ;
$numero=$_POST[ 'numero' ] ;

$bdd->exec('INSERT INTO clients (nom, prenom,courriel,numero) VALUES(\'$nom\', 

\'$prenom\', \'$courriel\',\'$numero\')'); //insertion du formulaire dans la base de données

$req->closecursor(); //ferme la requete

$req = $bdd->query ('SELECT * FROM clients ORDER BY numero '); //sélectionne un numéro dans la base de données

while ($donnees = $req->fetch()) //sort le numero
{
$derniernumero = $numero [ 'numero' ];
}

$req->closecursor(); //ferme la requete


if ($tirage =rand (1,$derniernumero)) //on fait un tirage au hasard
{

$req = $bdd->query ('SELECT nom, prenom, courriel, numero FROM clients WHERE numero = $tirage'); // aller chercher au hasard le nom, prenom,courriel, et numero.

$req->closecursor(); //on ferme la requete

echo $prenom.'<br>'.$nom.'<br>'.$courriel.'<br>'.$numero ; //affiche le résultat
}
?>




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.





je suis un peu bloqué et j'aurais besoin d'aide , il y a t'il quelque chose qui manque ? o.O


A voir également:

2 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
19 nov. 2016 à 19:40
Bonjour,

Déjà.. prend l'habitude de placer le code de connexion à ta BDD dans un fichier à part.

Ensuite, pense également à activer les erreurs PDO (en cas de soucis dans tes requêtes.)
Il faudra également, pour que ça fonctionne... placer tes requêtes dans des blocs TRY/Catch
Tout est expliqué là : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs


Puis, pour récupérer l' ID dernièrement créé (lorsque tu as un champ auto-incrémenté) il existe une fonction expères pour ça qui est : lastInsertId
Voir ici : https://www.php.net/manual/fr/pdo.lastinsertid.php
(donc pas besoin de ton :
$req = $bdd->query ('SELECT * FROM clients ORDER BY numero '); //sélectionne un numéro dans la base de données

while ($donnees = $req->fetch()) //sort le numero
{
$derniernumero = $numero [ 'numero' ];
}
$req->closecursor(); //ferme la requete




Prends aussi l'habitude de récupérer "proprement" tes variables AVANT de les utiliser
Voir ici comment faire :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index



0
simmusx1 Messages postés 6 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 19 novembre 2016
19 nov. 2016 à 19:58
en faite je veux que est que le serveur me sort un numéro aléatoire.

Pour ce qui est du serveur, c'était seulement à titre de présentation.

je veux savoir si tout est ok et qu'il n'a pas d'erreur.


<?php

include("serveur.php");

$bdd->exec('INSERT INTO clients(nom, prenom, courriel,numero) VALUES(\'$nom\', \'$prenom\', \'$courriel\', \'$numero\')');//insertion du formulaire dans la base de données

$req->closecursor(); //ferme la requete

$req = $bdd->query ('SELECT * FROM clients ORDER BY numero '); //sélectionne un numéro dans la base de données

while ($donnees = $req->fetch()) //sort le numero

{

$derniernumero = $numero [ 'numero' ];

}

$req->closecursor(); //ferme la requete

$nom=$_POST[ 'nom' ] ;
$prenom=$_POST[ 'prenom' ] ;
$courriel=$_POST[ 'courriel' ] ;
$numero=$_POST[ 'numero' ] ;

if ($tirage == $numero rand (1,$derniernumero)) //on fait un tirage au hasard
{

$req = $bdd->query ('SELECT nom, prenom, courriel, numero FROM clients WHERE numero = $tirage'); // aller chercher au hasard le nom, prenom,courriel, et numero.

$req->closecursor(); //on ferme la requete

echo 'le grand gagnant est :' $prenom.'<br>'.$nom.'<br>'.$courriel.'<br>'.$numero ; //affiche le résultat
}
?>

0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
19 nov. 2016 à 20:18
Non.
Tout n'est pas OK vu que tu n'as pas tenu compte de mes remarques précédents concernant la récupération propre des variables et l'ajout de la gestion des erreurs PDO.
Maintenant.. si tu ne veux pas en tenir compte... et que tu veux uniquement savoir si ton code marche.... ben testes le tu verras bien.
0
simmusx1 Messages postés 6 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 19 novembre 2016
19 nov. 2016 à 20:24
$nom=$_POST[ 'nom' ] ;
$prenom=$_POST[ 'prenom' ] ;
$courriel=$_POST[ 'courriel' ] ;
$numero=$_POST[ 'numero' ] ;

la récupération propre des variables ... ces variables ci ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > simmusx1 Messages postés 6 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 19 novembre 2016
19 nov. 2016 à 20:27
oui
0
simmusx1 Messages postés 6 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 19 novembre 2016
Modifié par simmusx1 le 19/11/2016 à 20:30
Ce sont les variables de mon formulaire quand j'envoi mon formulaire, j'ai modifié la suite , mais je ne suis pas sur que c'est de cette façon.


$nom=$_POST[ 'nom' ] ;
$prenom=$_POST[ 'prenom' ] ;
$courriel=$_POST[ 'courriel' ] ;
$numero=$_POST[ 'numero' ] ;

if ($tirage == $numero rand (1,$derniernumero)) //on fait un tirage au hasard
{

$req = $bdd->query ('SELECT nom, prenom, courriel, numero FROM clients WHERE numero = $tirage'); // aller chercher au hasard le nom, prenom,courriel, et numero.

$req->closecursor(); //on ferme la requete

echo 'le grand gagnant est :' $prenom.'<br>'.$nom.'<br>'.$courriel.'<br>'.$numero ; //affiche le résultat
}
?>


0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > simmusx1 Messages postés 6 Date d'inscription samedi 19 novembre 2016 Statut Membre Dernière intervention 19 novembre 2016
19 nov. 2016 à 20:31
As tu lu le contenu des liens que je t'ai donné ????
0