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 :

Incrementation


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut Incrementation
    Salut
    SVP j’ai un problème avec mon script PHP, j’ai créé une base de donnée dans laquelle j’ai planté mes tables (étudiants, inscription, matière, groupe, règlement), suivant cette conception.

    etudiant(#n_etud,nom,....,id_groupe)
    matiere(#n_mat,nom_mat)
    inscription(#id_mat,#id_mat)
    groupe(#id_groupe,nom_groupe)
    reglement(#id_reg,frais_form,n_etud)

    le probleme c'est que le code suivant ne fonctione pas au niveau de la table inscription tel que toujours j'obtiens id_etud=1 en cette table, meme si j'ajoute un autre etudiant

    id_mat id_etud
    5 1
    4 1
    3 1
    5 1
    1 1


    c'est mon code:

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php
     
    //recuperation des donneés
     
    $aujourdhui = getdate();
    $mois = $aujourdhui['mon'];
    $jour = $aujourdhui['mday'];
    $annee = $aujourdhui['year'];
    $date= "$jour/$mois/$annee";
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $adresse = $_POST['adresse'];
    $j=$_POST['datejour'];
    $m=$_POST['datemois'];
    $a=$_POST['dateannee'];
    $date_naiss="$j/$m/$a";
    $nv_scol=$_POST['nv_scol'];
    $matiere=$_POST['matiere'];
    $tel = $_POST['tel'];
     
    //connexion à la base de donneés
     
    $conn = mysql_connect("localhost","root","");
    mysql_select_db("axer",$conn);
     
    //insertion des donneés
     
    $req1 = "insert into etudiant  values('','".$date."','".$nom."','".$prenom."','".$date_naiss."','".$nv_scol."','".$adresse."','".$tel."','')";
    $res1=mysql_query($req1) or die('erreur sql!'.'<br/>'.$req1.'<br/>'.mysql_error());
     
    //recuperation des donneés par (etudiant)
     
    $req2 = 'select *from etudiant';
    $res2=mysql_query($req2) or die('erreur sql!'.'<br/>'.$req2.'<br/>'.mysql_error());
    echo '<body onLoad="alert(\'Vos Données ont été Enregistrées\')">';
    echo '<meta http-equiv="refresh" content="0;URL=enregistrement.html">';
    $row= mysql_fetch_array($res2);
    $n_etud=$row['n_etud'];
    mysql_free_result($res2);
     
     
    //recuperation de resultat de table (matiere)
     
     
    $req3 = 'select *from matiere where nom_mat="'.$matiere.'"';
    $res3=mysql_query($req3) or die('erreur sql!'.'<br/>'.$req3.'<br/>'.mysql_error());
    $base3=mysql_fetch_array($res3);
    $n_mat=$base3['n_mat'];
    mysql_free_result($res3);
     
    //insertion des donneé dans la table inscription
     
    $req4 = "insert into inscription  values('".$n_mat."','".$n_etud."')";
    mysql_query($req4) or die('erreur sql!'.'<br/>'.$req4.'<br/>'.mysql_error());
     
    mysql_close();
     
    ?>

    SVP m'aider . et merci infiniment pour tous

  2. #2
    Membre expérimenté
    Avatar de (Benoit)
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 184
    Par défaut
    Je te recommande de mettre ta colonne id_etud en auto_increment

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour,

    Je ne comprends pas ce que tu essaies de faire :

    1 - tu crées un nouvel etudiant ($req1)
    2 - tu listes tous les etudiants ($req2)
    3 - tu listes toutes les matériels ($req3)
    4 - tu inseres une inscription ($req4) avec $n_mat qui est la premiere matiére recuperé en 3 et $n_etud qui est le premier etudiant recuperé en 2

    comprend bien que quand tu fais $n_mat=$base3['n_mat'];
    tu affectes à $n_mat la valeur du premier enregistrement et pas l'ensemble des reponses de la requete.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut
    le probleme c'est que je ne sais pas comment recuperer $n_etud correspondant la requete courant, j'ai besoin d'inserer le id_etud et le id_mat dans la table inscription pour les prochains requete.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    le id_mat de quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut
    Citation Envoyé par sabotage Voir le message
    le id_mat de quoi ?
    id_mat c'est l' id de table matiere dans la table inscription

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Par défaut
    Bonjour,

    Ce qui suit en premier est totalement en dehors de la question :
    • ce code :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
       $aujourdhui = getdate();
        $mois = $aujourdhui['mon'];
        $jour = $aujourdhui['mday'];
        $annee = $aujourdhui['year'];
        $date= "$jour/$mois/$annee";
      peut être avantageusement remplacé par celui-ci :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
        $aujourdhui = new DateTime();
        $date = $aujourdhui -> format('d/m/Y');
    • De plus, il inutile pour ce que tu en fait. Il suffit d'utiliser une fonction mysql dans la requête : CURDATE() pour la date courante ou NOW() pour les date et heure courantes, à condition d'utiliser une colonne de type date ou datetime.
    • Stocker une date dans une table au format 'JJ/MM/AAAA' n'est pas une bonne idée, car c'est inutilisable pour les tris, comparaisons ou calculs, sauf bidouille.

    Maintenant, pour entrer dans le vif du sujet, j'ai comme une vague impression que ton formulaire n'est pas tout à fait correct pour ce que tu veux faire.
    Donc, met le code.

Discussions similaires

  1. auto-increment
    Par fafet dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2003, 15h05
  2. [MYSQL] valeur auto-increment
    Par alex1er dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/07/2003, 12h26
  3. Auto Increment
    Par Guizz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/06/2003, 18h36
  4. Nom du champs auto-incrementé
    Par norroy dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 18h30
  5. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05

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