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 :

[PHP/MySQL] Quelques questions de débutant


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 50
    Points : 33
    Points
    33
    Par défaut [PHP/MySQL] Quelques questions de débutant
    Bonjour,

    Je suis actuellement en train de créer une application en PHP et MySql permettant la gestion entre autre des familles, élèves... pour une école.

    Je débute en php et mysql, c'est pourquoi j'aurais quelques questions à vous poser :

    - J'ai une page sur laquelle j'ai plusieurs enregistrements affichés ligne par ligne (id_famille, nom, prenom...) et j'aimerais insérer un lien à côté de chaque enregistrement du type "modifier". Comment procéder ? Sachant que pour le moment, j'affiche la liste et j'ai en dessous de cette liste, un petit formulaire dans lequel il me suffit d'insérer l'id de la famille, envoyer, et qui affiche les données de la famille concernée sur une autre page. Ca marche, mais un lien pour chaque ligne me semblerait mieux adapté et plus fonctionnel. Cela me permettrait par la suite, d'ajouter un éventuel lien "supprimer".

    - Quand j'affiche les données d'une famille sur une page, il est possible de créer un élève appartenant à cette famille via un petit formulaire en bas de page. Tout marche sans problème. Cependant, une fois l'élève créé, j'aimerais faire apparaitre un lien "Retour" qui permettrait de revenir à la famille en question. Comment procéder ?

    Merci d'avance !

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Il bon de donner un peu de code pour mieux voir, et comprendre.
    Sinon, tu dis avoir mis des liens, mais je te conseillerais de plutôt utiliser des formulaires.
    Donc 1 formulaire par ligne par exemple, ou plus exactement, 1 formulaire pour chaque données que tu souhaite modifier.

    D'ailleurs, une autre personne demande une aide du même genre :
    -> http://www.developpez.net/forums/d93...-base-donnees/
    Même si ce n'est pas totalement la même chose, le principe me semble le même à mon avis.
    Ca pourrait être une source d'inspiration.

    Pour créer un lien de retour de la page précédente, et bien fait une copie du lien (autre page) qui a permis d'arriver sur cette page précédente, non ?
    Où est la difficulté ici ? (met du code au besoin)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Points : 36
    Points
    36
    Par défaut
    Pour le lien "Modifier" (et éventuellement "Supprimer"), je pense que tu peux procéder de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <tr><td>données1</td>
    <td>données2</td>
    <td>données3</td>
    <td><a href='fichier.php?id=".$lig['id']."'>Modifier</a></td>
    <td><a href='fichier.php?id=".$lig['id']."'>Supprimer</a></td></tr>
    Ensuite, tu peux récupérer (dans ton formulaire) les données de ta ligne à partir de l'identifiant :
    $id = $_GET['id']

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Points : 36
    Points
    36
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    echo "<tr><td>données1</td>
    <td>données2</td>
    <td>données3</td>
    <td><a href='fichier.php?id=".$lig['id']."'>Modifier</a></td>
    <td><a href='fichier.php?id=".$lig['id']."'>Supprimer</a></td></tr>"
    Comme ça le code est un peu mieux (affichage php)

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 50
    Points : 33
    Points
    33
    Par défaut
    Le problème c'est que je n'utilisais pas de paramètres dans l'URL... Tout fonctionnait mais c'est vrai que cela va grandement faciliter le codage !

    (Désolé je débute j'ai un peu de mal)

    Dans ma page où j'affiche la liste des mes familles, j'avais le code suivant :

    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
    // connection
    $db = mysql_connect('localhost', 'root', '');
     
    // base
    mysql_select_db('moidieu',$db);
     
    // requête
    $sql = 'SELECT id_famille, UPPER(nom_famille) AS nom_de_famille, prenom_famille, adresse_email_famille, Compte_Active  FROM famille';
     
    // envoie de la rq
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    // boucle pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
    // affiche les infos en cours
     
    echo '<b>'.$data['id_famille'].' - '.$data['nom_de_famille'].' '.$data['prenom_famille'].'</b> ('.$data['adresse_email_famille'].') <br>' ;
    J'ai donc modifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<b>'.$data['id_famille'].' - '.$data['nom_de_famille'].' '.$data['prenom_famille'].'</b> ('.$data['adresse_email_famille'].') ['.$data['Compte_Active'].'] <a href=fiche_famille.php?idfamille='.$data['id_famille'].'>Modifier</a> <br>' ;
    Et ça marche impec !

    En ce qui concerne l'URL de retour :

    sur la page famille, à l'aide d'un formulaire, je peux ajouter un élève. Une fois validé, le formulaire m'envoie sur la page "ajouter_eleve.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
    43
    44
    45
    46
    47
    48
    49
    50
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
    <head>
         <title>Gestion des familles</title>
         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
     
    <?php
      //connection au serveur
      $cnx = mysql_connect( "localhost", "root", "" ) ;
     
      //base de données:
      $db  = mysql_select_db( "test" ) ;
     
      //récupération des valeurs des champs:
      //nom:
      $nom_eleve     = $_POST["nw_nom_eleve"] ;
      //prenom:
      $prenom_eleve = $_POST["nw_prenom_eleve"] ;
      //classe:
      $classe_eleve = $_POST["nw_classe_eleve"] ;
      //numero de famille:
      $numero_famille= $_POST['nw_numero_famille'];
     
     
      //création requête SQL:
      $sql = "INSERT  INTO eleve (nom_eleve, prenom_eleve, classe_eleve, famille_eleve)
                VALUES ( '$nom_eleve ', '$prenom_eleve', '$classe_eleve', '$numero_famille') " ;
     
      //exécution requête SQL:
      $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; 
     
     
      //affichage des résultats:
      if($requete)
      {
        echo("L'insertion a été correctement effectuée");
      }
      else
      {
        echo("L'insertion à échouée") ;
      }
    ?>
     
     
    </body>
    </html>
    Ce que j'aimerais obtenir du style "L'insertion a été correctement effectuée pour l'élève ......."

    Et un lien pour revenir vers la famille concernée (numero_famille).

    En tout cas, merci pour votre aide !

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Points : 36
    Points
    36
    Par défaut
    Pour afficher le prenom (ou autre) de l'élève, tu affiches la variable, je pense que ca marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "L'insertion a été correctement effectuée pour l'élève ".$prenom_eleve;
    Et pour le lien de retour, tu passe l'id_famille en paramètre.

    Et de rien pour l'aide, je suis encore débutante aussi
    Mais avec 2 mois de stage de développement web, ca commence à venir ! Et c'est que j'ai réalisé une appli un peu dans le même style.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 50
    Points : 33
    Points
    33
    Par défaut
    Oui c'est aussi dans le cadre d'un stage mais moi cela fait que quelques semaines donc j'ai encore un peu de mal !

    En tout cas merci.

    J'en profite pour poser des questions à nouveau car je rencontre encore quelques erreurs.

    Pour la suppression d'une famille, ça marche cependant il affiche :
    DELETE FROM famille WHERE id_famille = 34La suppression à été correctement effectuée
    Le 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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">
    <head>
         <title>Supprimer une famille</title>
         <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
     
    <body>
     
    <?php
      //connection au serveur:
      $cnx = mysql_connect( "localhost", "root", "" ) ;
     
      //sélection de la base de données:
      $db = mysql_select_db( "test" ) ;
     
      //récupération de la variable d'URL,
      //qui va nous permettre de savoir quel enregistrement supprimer:
      $id  = $_GET["idfamille"] ;
     
      //requête SQL:
      $sql = "DELETE 
                FROM famille
    	    WHERE id_famille = ".$id ;
      echo $sql ;	    
      //exécution de la requête:
      $requete = mysql_query( $sql, $cnx ) ;
     
      //affichage des résultats
      if($requete)
      {
        echo("La suppression à été correctement effectuée") ;
      }
      else
      {
        echo("La suppression à échouée") ;
      }
    ?>
     
    </body>
    </html>
    J'aimerais que
    DELETE FROM famille WHERE id_famille = 34
    soit masqué...

    Merci

  8. #8
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut
    Bonjour,

    Ce post n’est pas une réponse mais une question que je me pose assez souvent en voyant certains problèmes posés dans le forum PHP.
    Pardonnez mon intervention dans cette file, mais dans une file en propre elle n’aurait pas de sens.

    Quand il est question de comparaison des langages de programmation, à la question “Quel est le meilleur langage de programmation“, je lis souvent ce genre de réponse:

    Aucun, le choix du langage se fait sur l'application qu'on veut en faire.
    Un langage ne sera pas le meilleur quelque soit la situation.
    Et si je m’intéresse à PHP, je vois qu’à la question « À quoi sert PHP ? » , il est quasi exclusivement répondu:

    programmation de sites dynamiques: php, asp, dhtml
    Du PHP pourquoi faire? PHP sert avant tout à obtenir des sites Web dynamiques !

    Le Script PHP sert a donner de la vie à votre page WEB, et surtout peut être signe de l'évolution de la vie, de la MEMOIRE.
    Le Script HTML reptilien au sang froid et qui ne réagit qu'a l'instant présent, devient Freudien car il devient a la fois, rétrospectif et prospectif...
    - Il compte les visiteurs
    - Enregistre leurs votes
    - Propose une langue adaptée,
    - Et modifie très rapidement la présentation des pages (puisqu'elles sont dynamiques!
    - Remplit un panier de commande, en se souvenant du N° de carte de crédit et en projetant de vous adresser dorénavant un catalogue plus ciblé sur vos goûts etc...

    http://www.stethonet.org/informatic/php2.htm

    L’interrogation qui naît donc quand je lis la problématique exposée dans le premier post de cette file est celle-ci:

    en quoi la capacité de PHP à faire un site web dynamique est-elle la mieux adaptée ou même simplement nécessaire pour faire une gestion de familles et d'élèves pour une école ???
    Pourquoi choisir PHP pour un tel objectif ?

    M’intéresseront aussi bien la réponse de Stoo69 que celles de pratiquants habitués à PHP.

    C’est une interrogation que j’ai aussi pour d’autres langages quand je lis certains objectifs applicatifs dans leur forum: JavaScript, C++..... Bon, là je réagis dans le forum PHP....

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Points : 366
    Points
    366
    Par défaut
    en réponse à eyquem .
    pour faire un site web dynamique, on peut utiliser Php, voire asp, en fonction de la configuration serveur si mutualisé.
    par contre, les CGI, dont Perl, sont proscrits chez certains hébergeurs(exit Online).
    le javascript est côté client; rien ne s'enregistrera sur une Bdd ou sur des fichiers serveurs.
    Si c'est une appli (exe) qui tourne en local, monoposte ou réseau, alors la on peut utiliser tous types de programmation.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Points : 36
    Points
    36
    Par défaut
    Supprime

    echo $sql (juste après ta requête), ca ne sert qu'à vérifier la requête réalisée


    Pour ce qui est du PHP, je ne pense pas être la mieux placée pour répondre à cela, mais le PHP permet d'interroger et d'utiliser les bases de données liées aux applications web, les données ne sont pas statiques et évoluent avec la base de données.
    Je ne m'y connais peu en d'autres langages, donc je sais pas trop...

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 50
    Points : 33
    Points
    33
    Par défaut
    Une mission m'a été confiée : créer une application pour la gestion des élèves, des familles et des inscriptions à la garderie et à la cantine (facturation...) et permettre aux parents d'inscrire leurs enfants à la cantine et/ou à la garderie via internet.

    Ayant quelques bases sur Access j'ai dans un premier temps développer l'application sur Access (qui marche d'ailleurs bien et qui est fini).

    Je m'attaque donc à la deuxième moitié de ma mission. Si j'ai choisis php et mysql pour permettre aux parents d'inscrire leurs enfants via internet, c'est parce que c'était les seuls langages de programmation que je "connaissais" qui me semblaient les plus adaptés à ma mission. N'ayant que quelques semaines pour réaliser un tel travail, il me fallait réagir vite pour rendre à temps le travail demandé. Le script php/mysql que je dois réaliser, doit permettre une gestion très simple des élèves et beaucoup moins approfondie que le travail qui a été réalisé sur Access qui permet une gestion plus optimale des familles, élèves...

    Le but étant après pour le parent d'élève d'inscrire via un calendrier son enfant à la cantine par exemple sur simple clique.

    Ce script me permettra par la suite d'obtenir la liste des élèves inscrits pour la cantine pour un jour donné et de transférer ces données vers ma base Access qui traitera le reste des informations (à savoir montant global des frais d'inscription, gestion des absences et donc éventuelles déductions, facturation...).

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 50
    Points : 33
    Points
    33
    Par défaut
    Merci Oriane85, je n'avais pas fait gaffe à "echo $sql "...

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 50
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    de nouveau une question (inutile je pense de créer un topic pour ça)

    J'aimerais insérer une fonction onclick sur un lien en php, voici mon bout de code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<b>'.$data['id_famille'].' - '.$data['nom_de_famille'].' '.$data['prenom_famille'].'</b> ('.$data['adresse_email_famille'].') ['.$data['Compte_Active'].'] <a href=fiche_famille.php?idfamille='.$data['id_famille'].'>Modifier</a> / <a href="supprimer_famille.php?idfamille='.$data['id_famille'].'" >Supprimer</a> <br>' ;
    L'objectif étant de l'insérer au niveau du lien "supprimer" tel que "Êtes vous certain de vouloir supprimer cet enregistrement ?".

    J'ai essayé à plusieurs reprises, mais aucun message ne s'affiche...

    Merci d'avance

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    le code de ta fonction, c'est quoi ?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 50
    Points : 33
    Points
    33
    Par défaut
    <?php

    // on se connecte à MySQL
    $db = mysql_connect('localhost', 'root', '');

    // on sélectionne la base
    mysql_select_db('test',$db);

    // on crée la requête SQL
    $sql = 'SELECT id_famille, UPPER(nom_famille) AS nom_de_famille, prenom_famille, adresse_email_famille, Compte_Active FROM famille';

    // on envoie la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

    // on fait une boucle
    while($data = mysql_fetch_assoc($req))
    {
    // on affiche les informations de l'enregistrement en cours
    echo '<b>'.$data['id_famille'].' - '.$data['nom_de_famille'].' '.$data['prenom_famille'].'</b> ('.$data['adresse_email_famille'].') ['.$data['Compte_Active'].'] <a href="fiche_famille.php?idfamille='.$data['id_famille'].'">Modifier</a> / <a href="supprimer_famille.php?idfamille='.$data['id_famille'].'">Supprimer</a> <br>' ;

    }

    // on ferme la connexion
    mysql_close();
    ?>
    Ma page supprimer_famille.php :

    <?php
    //connection
    $cnx = mysql_connect( "localhost", "root", "" ) ;

    //sélection de la base de données
    $db = mysql_select_db( "test" ) ;

    //récupération de la variable d'URL,
    //qui va nous permettre de savoir quel enregistrement supprimer:
    $id = $_GET["idfamille"] ;

    //requête SQL
    $sql = "DELETE
    FROM famille
    WHERE id_famille = ".$id ;

    //exécution de la requête:
    $requete = mysql_query( $sql, $cnx ) ;

    //affichage des résultats
    if($requete)
    {
    echo("La suppression à été correctement effectuée") ;
    }
    else
    {
    echo("La suppression à échouée") ;
    }
    ?>

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Points : 36
    Points
    36
    Par défaut
    Je pense qu'il faut mettre ton onclick=fonction() et faire la fonction en javascript

Discussions similaires

  1. [Log4J] Configuration et quelques questions de débutant
    Par nonoRedDevils dans le forum Logging
    Réponses: 0
    Dernier message: 19/07/2011, 16h10
  2. Quelques questions de débutant
    Par s7even dans le forum C#
    Réponses: 3
    Dernier message: 07/12/2009, 09h47
  3. Réponses: 6
    Dernier message: 03/08/2009, 18h37
  4. Quelques questions de débutant
    Par stanley dans le forum Debian
    Réponses: 6
    Dernier message: 31/03/2008, 17h04
  5. [MFC] Quelques questions de débutant...
    Par Sephi dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 18h25

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