Partage
  • Partager sur Facebook
  • Partager sur Twitter

Projet : base de données modifiable

    26 mai 2017 à 15:29:19

    Bonjour à tous ! 

    Je souhaite travailler en php et j'ai eu l'idée de réaliser une base de données ou je peux ajouter, supprimer et rechercher des données. 

    Dans mon exemple je travaille avec des terrains que je stock avec Php my admin. La table s'appel Friche et contient une clé primaire qui s'itère automatiquement (je m'en occupe donc pas dans mon code)  le département, l'aire et l'exposition. Les critères ne correspondent pas a grand chose c'est juste pour travailler.

    Pour l'instant j'ai une pages très simple  avec un formulaire pour ajouter une ligne à ma base. Pour cela j'ai utiliser deux script différents (formulaire et traitement).

    Comme je débute je risque d'avoir besoin de votre aide régulièrement ! 

    Je croise déjà une première difficulté. Ci dessous mon script actuel qui fonctionne 

    <html>
    <head>
    <title>Formulaire d'ajout d'une friche</title>
    </head>
    <body>
    <form action = "traitement.php" method="post">
    Votre Departement : <input type = "text" name = "departement"><br />
    Votre Exposition : <input type = "text" name = "exposition"><br />
    Votre Aire : <input type = "text" name = "aire"><br />
    <input type = "submit" value = "Envoyer">
    </form>
    </body>
    </html>


    et 

    ml>
    <head>
    <title>Insertion d'une nouvelle friche dans la base</title>
    </head>
    <body>
    <?php
    
    // on teste si les variables du formulaire sont bien déclarées
    $departement = $_POST['departement'];
    $exposition = $_POST['exposition'];
    $aire = $_POST['aire'];
    if (isset($departement) && isset($exposition) && isset($aire)) {
    	// on se connecte à notre base
    	$bdd = new PDO('mysql:host=localhost;dbname=ma_base', 'root', '');
    	$req = $bdd->prepare('INSERT INTO friche(departement, aire, exposition) VALUES(:departement, :aire, :exposition)');
    	$req->execute(array(
    		'departement' => $_POST['departement'],
    		'exposition' => $_POST['exposition'],
    		'aire' => $_POST['aire']
    		));
    
    	echo 'La friche a bien été ajouté !';
    }
    else {
    	echo 'Les variables du formulaire ne sont pas déclarées';
    }
    ?>
    </body>
    </html>
    
    
    
    

    Mais j'aimerais modifier le formulaire pour avoir des tableaux déroulants  comme ci dessous :

    <td>Departement de la friche</td>
    <td><select name="Departement">
    <option value="texte_position_affaire1">Aisne</option>
    <option value="texte_position_affaire2">Nord</option><
    <option value="texte_position_affaire3">Oise</option>
    <option value="texte_position_affaire4">Pas de Calais</option>
    <option value="texte_position_affaire5">Somme</option><
    </select></td>
    
    <br><br>
    
    <td>Exposition de la friche</td>
    <td><select name="Departement">
    <option value="texte_position_affaire1">Nord</option>
    <option value="texte_position_affaire2">Sud</option><
    <option value="texte_position_affaire3">Est</option>
    <option value="texte_position_affaire4">Ouest</option>
    </select></td>
    </br></br>

    Mais je n'arrive pas a récupérer le choix de l'utilisateur quelqu'un pourrait m'aider s'il vous plaît ! 

    Merci d'avance 

    Mathieu

    -
    Edité par MathieuPetitprez 26 mai 2017 à 15:32:41

    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2017 à 15:53:45

      Attention, ici tu as une majuscule dans le nom

      <select name="Departement"> 

       Et côté backend en minuscule:

      'departement' => $_POST['departement'],

      Et tes deux selects ont le même nom dans le HTML, le deuxième doit-être "exposition" non ?

      -
      Edité par MarlburroW 26 mai 2017 à 15:55:15

      • Partager sur Facebook
      • Partager sur Twitter
        26 mai 2017 à 16:36:29

        Oui des petites erreurs de frappes merci ! :) Tu sais comment récupérer le choix de l'utilisateur dans les menus déroulants ?
        • Partager sur Facebook
        • Partager sur Twitter
          26 mai 2017 à 17:00:04

          Je te dit ça car ton script ne peu pas fonctionner si les noms son différents. 

          Ensuite il faut que tes select soient dans un formulaire avec la méthode POST:


          <form action="#" method="post">
            <select name="Departement">
            <option value="texte_position_affaire1">Aisne</option>
            <option value="texte_position_affaire2">Nord</option><
            <option value="texte_position_affaire3">Oise</option>
            <option value="texte_position_affaire4">Pas de Calais</option>
            <option value="texte_position_affaire5">Somme</option><
            </select></td>
            
          
            <td>Exposition de la friche</td>
            <td><select name="Departement">
            <option value="texte_position_affaire1">Nord</option>
            <option value="texte_position_affaire2">Sud</option><
            <option value="texte_position_affaire3">Est</option>
            <option value="texte_position_affaire4">Ouest</option>
            </select>
            <button type="submit">Valider</button>
          </form>

          -
          Edité par MarlburroW 26 mai 2017 à 17:00:14

          • Partager sur Facebook
          • Partager sur Twitter
            27 mai 2017 à 16:44:06

            Merci à toi ! J'ai réussis a récupérer les données pour les ajouter à ma base de données ! Mais j'ai deux problèmes je te montre le code : 

            <html>
            <head>
            
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
            <title>Formulaire d'ajout d'une friche</title>
            </head>
            <body bgcolor="#FFFFE8" topmargin="5">
            <form action = "traitement.php" method="post">
            <td>Departement de la friche</td>
            	<select name="departement">
                <option value="Aisne">Aisne</option>
                <option value="Nord">Nord</option>
                <option value="Oise">Oise</option>
                <option value="Pas de Calais">Pas de Calais</option>
                <option value="Somme">Somme</option>
              </select>
               
             <br/>
            
              <td>Exposition de la friche</td>
              <td><select name="exposition">
              <option value="Nord">Nord</option>
              <option value="Sud">Sud</option>
              <option value="Est">Est</option>
              <option value="Ouest">Ouest</option>
              </select>
            <br/>
            
            Votre Aire : <input type = "text" name = "aire"><br />
            <form action = "page_principal.php" method="post">
            <input type = "submit" value = "Ajouter">
            </form>
            </form>
            </html>
            
            <html>
            <form action = "page_principal.php" method="post">
            <input type = "submit" value = "retour page principal">
            </form>
            </html>

            Le premier problème est pour l'affichage. Il y a des  qui s'affiche proche des menus déroulants. De plus je voudrais retourner a la page principale une fois la nouvelle friche ajouter mais mon code ne fonctionne pas j'arrive sur une page vierge avec un 32. Mais la friche est bien ajouté a la base de données. Je pense que c'est un problème avec mes balises mais je ne comprends pas...

            Merci pour ton aide précieuse et bon week end à toi ! 

            Je viens de modifier mon code mes balises étaient mal situé d'ou le problème d'affichage mais je n'ai pas réussis à régler le second problème.

            Mathieu



            -
            Edité par MathieuPetitprez 27 mai 2017 à 20:49:45

            • Partager sur Facebook
            • Partager sur Twitter
              28 mai 2017 à 21:20:28

              J'ai continué à travailler sur mon projet qui avance plus ou moins bien ! Pour l'ajout j'ai encore le même problème que précédemment, si quelqu'un a une idée je suis preneur ! :) 

              J'ai fais des nouveaux script pour la recherche et la suppression dans la bdd. La suppression fonctionne mais j'ai un problème d'affichage. Je n'arrive pas a mettre les données dans un tableau avec une colonne pour la suppression. J'ai mon tableau vide et les données d'autres part. De plus quand je clique sur supprimé ça fonctionne mais je me retrouve sur une page blanche avec qlq écritures comme quand j'ajoute une données dans la bdd. Je vous joint les scripts

              <html>
                <head>
                  <title>Suppression de friche</title>
                  <script language="javascript">
                    function confirme( identifiant )
                    {
                      var confirmation = confirm( "Voulez vous vraiment supprimer cet enregistrement ?" ) ;
              	if( confirmation )
              	{
              	  document.location.href = "suppression2.php?idPersonne="+identifiant ;
              	}
                    }
                  </script>
                </head>
              <body bgcolor="#FFFFE8" topmargin="5">
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              <H1>Suppression d'une friches: </H1>
                <?php
                  //connection au serveur:
                  $cnx = mysql_connect( "localhost", "root", "" ) ;
               
                  //sélection de la base de données:
                  $db = mysql_select_db( "ma_base" ) ;
               
                  //requête SQL:
                  $sql = "SELECT *
              	      FROM friche" ;
               
                  //exécution de la requête:
                  $requete = mysql_query( $sql, $cnx ) ;
               
                  //affichage des données:
              echo '<table bgcolor="#FFFFFF">'."\n";
              echo '<tr>';
              echo '<td bgcolor="#669999"><b><u>Id</u></b></td>';
              echo '<td bgcolor="#669999"><b><u>département</u></b></td>';
              echo '<td bgcolor="#669999"><b><u>exposition</u></b></td>';
              echo '<td bgcolor="#669999"><b><u>aire</u></b></td>';
              echo '<td bgcolor="#669999"><b><u>supprimer</u></b></td>';
              echo '</tr>'."\n";
              while( $result = mysql_fetch_object( $requete ) )
                  {
              	echo '<tr>';
              	echo("".$result->id."".$result->departement." ".$result->exposition."".$result->aire." <a href=\"#\" onClick=\"confirme('".$result->id."')\" >supprimer</a><br>\n") ;
              	echo '</tr>'."\n";
                  }
              echo '</table>'."\n";
              
              ?>
                
              <form action = "page_principal.php" method="post">
              <input type = "submit" value = "retour page principal">
              </form>
              </body>
              </html>

              <?php
                //connection au serveur:
                $cnx = mysql_connect( "localhost", "root", "" ) ;
               
                //sélection de la base de données:
                $db = mysql_select_db( "ma_base" ) ;
               
                //récupération de la variable d'URL,
                //qui va nous permettre de savoir quel enregistrement supprimer:
                $id  = $_GET["idPersonne"] ;
               
                //requête SQL:
                $sql = "DELETE 
                          FROM friche
              	    WHERE id = ".$id ;
                echo $sql ;	    
                //exécution de la requête:
                $requete = mysql_query( $sql, $cnx ) ;
               
                //affichage des résultats, pour savoir si la suppression a marchée:
                if($requete)
                {
                  echo("La suppression à été correctement effectuée") ;
                }
                else
                {
                  echo("La suppression à échouée") ;
                }
              ?>

              On verra pour la suite quand j'aurais réglé ce problème !

              Merci d'avance si quelqu'un arrive à m'aider ! :)

               Bonne soirée et bonne semaine à vous !

              • Partager sur Facebook
              • Partager sur Twitter

              Projet : base de données modifiable

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown