IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Envoi de formulaire et base de données


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut Envoi de formulaire et base de données
    Bonjour,j'ai un problème que je n'arrive pas à résoudre !

    J'ai créé un formulaire le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <html>
    <head>
    <title>Formulaire recherche licencie</title>
    </head>
    <body>
    <table border="2" width="50%" align="center">
    <tr>
    <td width="50%" bgcolor="#A6CAF0">
    <form name="licencie" method="post" action="licencie.php">
    <table>
    <tr><td><input type="text" name="nom_licencie" value="Nom"></td></tr>
    <tr><td><input type="text" name="prenom_licencie" value="Prenom"></td></tr>
    <tr><td><input type="text" name="club_d_affiliation" value="Club"></td></tr>
    <tr><td><input type="text" name="numero_licence" value="Numero licence"></td></tr>
    <tr><td><input type="submit" value="Rechercher licencie"></td></tr>
    </table>
    </form>
    </body>
    </html>
    Ce formulaire porte son action vers un fichier php qui est sensé vérifier si les données que j'ai mises dans le formulaire correspondent à l'une de mes lignes dans une table de ma base de données.Si les informations correspondent à une des lignes alors j'affiche toute la ligne de ma table :

    Voici le fichier php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
     
    error_reporting(E_ALL);
    	$host="localhost";
    	$user="root"; 
    	$pass="";
    	$db="affilie";
     
    mysql_connect($host,$user,$pass) or die("Impossible de se connecter &agrave; la base de donn&eacute;e : $db");
    mysql_select_db($db) or die("Impossible de se connecter &agrave; la base de donn&eacute;e");
     
     
    $query="SELECT * FROM licencie 
    WHERE
    nom_licencie=$_POST['nom_licencie']
    AND
    prenom_licencie=$_POST['prenom_licencie']
    AND
    club_d_affiliation=$_POST['club_d_affiliation']
    AND
    numero_licence=$_POST['numero_licence']";
     
    $result = mysql_db_query($db,$query);
    echo"<table>\n";
    while($affiche=mysql_fetch_assoc($result))
    {
    	echo "<td>$affiche['nom_licencie']</td>" ;
    	echo "</tr>" ;
    	echo "<td>$affiche['prenom_licencie']</td>" ;
    	echo "</tr>" ;
    	echo "<td>$affiche['ville_licencie']</td>" ;
    	echo "</tr>" ;
    	echo "<td>$affiche['adresse_licencie']</td>" ;
    	echo "</tr>" ;
            echo "<td>$affiche['club_d_affiliation']</td>" ;
    	echo "</tr>" ;
    	echo "<td>$affiche['numero_licence']</td>" ;
    	echo "</tr>" ;
     
    }
    echo"</table>";
    ?>
    En soumettant le formulaire et même en allant directement sur mon fichier php j'ai l'erreur suivante qui s'affiche :

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Users\GuIpE\Desktop\projet_web\licencie.php on line 15


    Je vois pas mon problème.Merci de m'aider !

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query="SELECT * FROM licencie WHERE nom_licencie='".$_POST['nom_licencie']."' AND prenom_licencie='".$_POST['prenom_licencie']."'";
         $query.="  AND club_d_affiliation='".$_POST['club_d_affiliation']."' AND numero_licence='".$_POST['numero_licence']."'";

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut
    J'ai fait les modifications, voici mon code du fichier php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
     
    error_reporting(E_ALL);
    	$host="localhost";
    	$user="root"; 
    	$pass="";
    	$db="affilie";
     
    $conn=mysql_connect($host,$user,$pass) or die("Impossible de se connecter &agrave; la base de donn&eacute;e : $db");
    mysql_select_db($db,$conn) or die("Impossible de se connecter &agrave; la base de donn&eacute;e");
     
    $query="SELECT * FROM licencie WHERE nom_licencie='".$_POST['nom_licencie']."' AND prenom_licencie='".$_POST['prenom_licencie']."'";
    $query.="AND club_d_affiliation='".$_POST['club_d_affiliation']."' AND numero_licence='".$_POST['numero_licence']."'";
     
    $result = mysql_db_query($db,$query);
     
    while($affiche=mysql_fetch_assoc($result))
    {
    	echo $affiche['nom_licencie'] ;
    	echo "</tr>" ;
    	echo $affiche['prenom_licencie'];
    	echo "</tr>" ;
    	echo $affiche['ville_licencie'];
    	echo "</tr>" ;
    	echo $affiche['adresse_licencie'];
    	echo "</tr>" ;
    }
    echo"</table>";
    mysql_close($conn);
    ?>
    A présent j'ai une nouvelle erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Warning: mysql_connect() [function.mysql-connect]: [2002] Une tentative de connexion a échoué car le parti connecté n'a pa (trying to connect via tcp://localhost:3306) in C:\Users\GuIpE\Desktop\projet_web\licencie.php on line 9
     
    Warning: mysql_connect() [function.mysql-connect]: Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu. in C:\Users\GuIpE\Desktop\projet_web\licencie.php on line 9
     
    Fatal error: Maximum execution time of 30 seconds exceeded in C:\Users\GuIpE\Desktop\projet_web\licencie.php on line 9
    J'ai jamis vu cette erreur jvois pas d'ou ça peut venir !

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Replace
    $host="localhost";
    par

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut
    Merci ça fonctionne !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut
    Autre chose si ça ne te dérange pas.

    J'ai un autre exercice à faire :

    Définir une image de la France délimitée par régions et rendre les différentes régions cliquables.

    Je m'explique:

    J'ai une table "régions" dans ma base de données qui contient les attributs "nomrégion" et "pagewebregion".

    Lorsque je clique sur une région, les données de la table correspondantes à la région s'affichent sur une autre page.

    Je n'ai pas eu de problèmes à rendre mon image cliquable avec les régions.
    Cependant ce que je n'arrive pas à faire c'est comment effectuer ma requête?
    Je n'ai pas de formulaires, j'ai juste une image cliquable.

    Comment différencier les différents clics sur les régions lors de mon traitement de requête sur la page PHP?

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,
    Tu passes en URL (variable GET) l'identifiant de la région avec lequel tu feras la recherche dans la base .

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut
    Je peux faire ça sans utiliser de formulaire ?

    Avec des cookies ou des variables de session?

    Par exemple si j'utilise les variables de session, je débute ma session avec
    session_start();

    Mais le problème est que mes "régions" ne sont pas des variables, ce sont des fragments cliquables de mon image que j'ai défini comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <map name="map">
    <area shape="poly" coords="............" id="region1">
    .....
    .....
    ...
    </map>
    <img src="......" usemap="#map">

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Re,
    Je peux faire ça sans utiliser de formulaire ?
    Oui,
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <area ... href="page.php?idregion=2">
    Et tu le récupères avec
    Ensuite tu faits la recherche à partir de cette valeur.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut
    Merci beaucoup !

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut
    Re, j'aurais voulu savoir quelles sont les différences entre les index PRIMARY et UNIQUE dans PHPMyAdmin?

    Je m'explique,j'ai une table joueur_licencie:

    joueur_licencie(numero_licence,nom_joueur,prenom_joueur,adresse_joueur,ville_joueur,nom_club,elo,classement_championnat)

    et

    club(nom_club,ville_club,adresse_club,pageweb_club,nom_ligue)

    et

    ligue_regionale(nom_ligue,pageweb_ligue).

    Mes contraintes sont:Un joueur doit être inscrit dans un club et posséder une licence pour paticiper aux compétitions.
    La durée de vie d'une licence est d'une année
    Un joueur ne peut pas etre inscrit dans 2 clubs pendant la même saison.


    J'aimerai savoir quelles contraintes ils me manquent sur ces tables que j'ai définies ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut
    Par la suite je dois modéliser ceci:

    rentrer les resultats d'une round. On suppose qu'il y un seul type de competition qui consiste
    en partie individuelle (pas de match par equipe). Pendant chaque round, n'importe quel jouer pourra a ronter n'importe qui. Avant chaque round, un programme va designer, d'une maniere aleatoire, qui jouera contre qui, en tenant en compte le fait que deux joueurs s'aff rontent au plus une seule fois. Apres chaque round le classement des joueurs est mis a jour4.

    J'ai une petite idée de comment faire notamment avec la fonction:

    ORDER BY RAND( ) qui permet de sélectionner une ligne de la table au hasard.
    Ensuite selon qui remporte le match(je ne sais pas encore comment modéliser ça)j'update le classement au championnat du joueur selon son résultat.


    Mais bon avant de m'intéresser à ça je voudrais d'abord voir si mon schéma de base correspond bien aux contraintes que j'ai mises dans le post d'avant.
    Merci de votre aide !

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 291
    Points : 49
    Points
    49
    Par défaut
    Mes contraintes sont:
    1)Un joueur doit être inscrit dans un club et posséder une licence pour paticiper aux compétitions.
    2)La durée de vie d'une licence est d'une année
    3)Un joueur ne peut pas etre inscrit dans 2 clubs pendant la même saison.

    Mon probleme se porterait sur la 3eme contrainte.
    Dans ma table joueur_licencie j'ai l'attribut numero_licence qui est ma clé primaire(que j'ai défini avec l'index PRIMARY lors de la création de ma table) et j'ai aussi le champ nom_club(clé étrangère sur nom_club dans la table club).
    Ce que je voudrais savoir c'est comment faire pour qu'un joueur(qui est normalement reconnaissable par son numéro de licence) ne puisse pas etre inscrit dans 2 clubs.
    Par exemple si j'insère une nouvelle ligne avec numero_licence=1 et nom_club=unclub.
    Je voudrais qu'il soit impossible d'insérer une autre ligne avec numero_licence=1 et nom_club=unautreclub.

    Merci !

Discussions similaires

  1. [MySQL] Insertion données formulaire dans base de données
    Par westlaux dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/06/2007, 20h17
  2. Formulaire et base de données
    Par Néo{le pélo du 974} dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2007, 12h04
  3. Formulaire et base de données
    Par Marye dans le forum IHM
    Réponses: 4
    Dernier message: 08/02/2007, 22h07
  4. bonjour envoi fichier txt dans base de donnée
    Par suya95 dans le forum Débuter
    Réponses: 5
    Dernier message: 30/05/2006, 09h59
  5. [Conception] Formulaire et base de donnée ?
    Par heldev dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/03/2006, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo