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 :

Projet de manipulation BDD


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Par défaut Projet de manipulation BDD
    Bonjour,

    Je souhaiterais avoir un coup de main de votre part concernant mon projet de manipulation de ma BDD.
    En effet, suite à la dispartion d'une application exe qui traitait des données depuis une base mysql, je me dois maintenant de créer une application de remplacement. J'ai a ma disposition la BDD (postit). L'application permettait de créer des postit pour des personnes qui sont identifiées par des numéro de personne on va dire (je reste simple, secret professionel oblige).

    Je pensais à l'exploiter avec un intranet en PHP.

    Je me suis lancé sur ce projet, étant débutant, j'avou qui je me suis vite perdu.

    Il doit être le plus simple possible. C'est à dire consulter les postit existants, ajouter des postit et modifier des postit.

    Struction de ma bdd :
    table postit
    id_postit, id_typePostit, numeropersonne, datecreation, dateexpiration, id_utilisateur, objet, commentaire.

    Voici ce que j'ai déjà développé:

    la page de démarrage index.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
    51
    52
    53
    54
    55
    56
    <!DOCTYPE html>
    <html>
    <head>
    <title>Recherche sur Postit</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript">
    		function focus() { document.getElementById('q').focus() } $(document).ready( function() {
    		// détection de la saisie dans le champ de recherche
    		$('#q').keyup( function(){
    		$field = $(this);
    		$('#results').html(''); // on vide les resultats
    		$('#ajax-loader').remove(); // on retire le loader
    		// on commence à traiter à partir du 1er caractère saisie
    		if( $field.val().length > 1 )
    		{
    		// on envoie la valeur recherché en GET au fichier de traitement
    		$.ajax({
    		type : 'GET', // envoi des données en GET ou POST
    		url : 'ajax-search.php' , // url du fichier de traitement
    		data : 'q='+$(this).val() , // données à envoyer en GET ou POST
    		beforeSend : function() { // traitements JS à faire AVANT l'envoi des $field.after('<img src="ajax-loader.gif" alt="loader" id="ajax-loader" />'); // ajout d'un loader pour signifier l'action
    		},
    		success : function(data){ // traitements JS à faire APRES le retour d'ajax-search.php
    		$('#ajax-loader').remove(); // on enleve le loader
    		$('#results').html(data); // affichage des résultats dans le bloc
    		}
    		});
    		} });
    		});
    		try {
    		var pageTracker = _gat._getTracker("UA-8374069-1");
    		pageTracker._trackPageview();
    		} catch(err) {}
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="css/postit.css" type="text/css" />
    <body onload="focus()">
    <td><a href="index.php"><img style="border:0px solid;" alt="Accueil" src="images/logo urreg.jpg"/></a></td>
    <p align="center"><img src="images/letter_p.jpg" height="90" width="70" /><img src="images/letter_o.jpg" height="45" width="35"/><img src="images/letter_s.jpg" height="45" width="35" /><img src="images/letter_t.jpg" height="45" width="35" /><img src="images/letter_i.jpg" height="90" width="70"/><img src="images/letter_t.jpg" height="45" width="35" /></p>
    <br/>
    <!--debut du formulaire-->
    	<form class="ajax" method="get">
    		<p><label for="q"> </label></p>
    		<h1>Rechercher un numero de personne</h1>
     
    		<div align="center"> <input name="q" id="q" type="text" /></div>
    	</form>
    	<div align="center">
    		<td style="text-align:center;"><a href="ajout.php"><img style="border: 0px solid ; width: 48px; height: 48px;" alt="Ajouter un postit" src="images/logo_ajouter.png"/>Cliquez pour ajouter un postit</a></td><br/>
    	</div>
    <div id="results"></div>
    <!--fin du formulaire--><!--affichage des resultats-->
    </style>
    </body>
    </head>
    </html>
    J'ai créé une page de recherche ajax "type google" afin de facilité la recherche par l'utilisateur et d'avoir une visu rapide au fur et à mesure qu'il tape son numéro de personne. Ainsi pour chaque numero de personne, 3 boutons sont afficher "consulter", "supprimer", et "modifier".
    Jusqu'ici pas de pb.

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <link rel="stylesheet" href="css/postit.css" type="text/css" />
    <?php
    //connexion à la base de données 
    define('DB_NAME', 'bdd);
    define('DB_USER', 'root');
    define('DB_PASSWORD', '');
    define('DB_HOST', 'localhost');
    $link   =   mysql_connect( DB_HOST , DB_USER , DB_PASSWORD );
    mysql_select_db( DB_NAME , $link );
    //recherche des résultats dans la base de données
    $result =   mysql_query( 'SELECT objet , numeropersonne , dateCreation, commentaire
                              FROM postit
                              WHERE numeropersonne LIKE \'2100000' . safe( $_GET['q'] ) . '%\'
                              LIMIT 0,20' );
     
    setlocale (LC_TIME, 'fr_FR','fra'); 
    // affichage d'un message "pas de résultats"
    if( mysql_num_rows( $result ) == 0 )
    {
    ?>
        <td style="text-align:center; margin:10px 0">Pas de reultats pour cette recherche</td>
    <?php
    }
    else
    {
        // parcours et affichage des résultats
        while( $post = mysql_fetch_object( $result ))
    	{
        ?>
    <div class="article-result">
                <h2><?php echo ( $post->numeropersonne); ?></h2>
    			<h3><p>Date de creation : <?php echo utf8_encode(strftime("%A %d %B %Y", strtotime ($post->dateCreation))); ?></p></h3>
                <h3><p>Objet : <?php echo utf8_encode ($post->objet); ?></p></h3>
                <table>
    			<tr>
    			<td>
    			<form method="post" action="consultation.php?q=<?php echo ($post->numeropersonne);?>">
    			<input type="submit" value="Consulter">
    			</form>
    			</td>
    			<td>
    			<form method="post" action="suppression.php?q=<?php echo ($post->numeropersonne);?>">
    			<input type="submit" value="Supprimer">
    			</form>
    			</td>
    			<td>
    			<form method="post" action="modification.php?q=<?php echo ($post->numeropersonne);?>">
    			<input type="submit" value="Modifier">
    			</form>
    			</td>
    			</tr>
    			</table>
            </div>
        <?php
        }
    }
     
    /*****
    fonctions
    *****/
    function safe($var)
    {
    	$var = mysql_real_escape_string($var);
    	$var = addcslashes($var, '%_');
    	$var = trim($var);
    	$var = htmlspecialchars_decode($var);
    	return $var;
    }
    ?>
    Lorsque je clique sur "consulter" concernant un des numero de peronne trouvé, j'affiche la page consultation.php.
    Jusqu'ici pas de pb.

    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
    59
    60
    61
    62
    63
    64
    <html>
    <head>
    <title>Consultation postit</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" href="css/postit.css" type="text/css" />
    <body>
    <p>
      <?php
     //connection au serveur
      $cnx = mysql_connect( "localhost", "root", "" ) ;
       //sélection de la base de données:
      $db  = mysql_select_db( "bdd" ) ;
    //récupération de la variable d'URL,
    //qui va nous permettre de savoir quel enregistrement modifier
    $id  = $_GET["q"] ;
      //requête SQL:
    $sql = "SELECT *
                FROM postit
    			WHERE numeropersonne = ".$id ;
     
      //exécution de la requête:
     $requete = mysql_query( $sql, $cnx ) ;
    setlocale (LC_TIME, 'fr_FR','fra'); 
      //affichage des données:
      if( $resultat = mysql_fetch_object( $requete ) )
      {
      ?>
    </p>
    <td><td style="align:center;"><a href="index.php"><img style="border: 0px solid ; width: 42px; height: 48px;" alt="Accueil" href="index.php" src="images/logo_accueil.png"/>Retour à l'accueil</a><br/></td>
    <p>
    <input type="hidden" name="numeropersonne " value="<?php echo($id) ;?>">
    </p>
    <p align="center"><img src="images/letter_p.jpg" height="90" width="70" /><img src="images/letter_o.jpg" height="45" width="35"/><img src="images/letter_s.jpg" height="45" width="35" /><img src="images/letter_t.jpg" height="45" width="35" /><img src="images/letter_i.jpg" height="90" width="70"/><img src="images/letter_t.jpg" height="45" width="35" /></p>
    <br/>
    <br/>
    <br/>
    <br/>
    <table border="2" align="center" cellspacing="3" cellpadding="3">
    	<tr align="center">
    		<td><h4>Numero de personne </h4></td>
    		<td><h5><?php echo($resultat->numeropersonne ) ;?></h5></td>
    	</tr>
    	<tr>
    		<td><h4>Date de creation</h4></td>
    		<td><h5><?php echo utf8_encode(strftime("%A %d %B %Y", strtotime ($resultat->dateCreation))) ;?></h5></td>
    	</tr>
    	<tr>
    		<td><h4>Objet</h4></td>
    		<td><h5><?php echo($resultat->objet);?></h5></td>
    	</tr>
    	<tr>
    		<td><h4>Commentaire</h4></td>
    		<td width="400" height="100"><h5><?php echo($resultat->commentaire) ;?></h5></td>
    	</tr>
    </table>
    <form>
    <p  align="center"><input type="button" value="Imprimer" onClick="window.print()"></p>
    </form>
    <?php
      }//fin if 
      ?>
    </body>
    </head>
    </html>
    C'est à partir d'ici que je suis perdu. Je souhaiterais cliquer sur "modifier" qui me lance modification.php. Ensuite, lorsque qu'on a finit de modifier, on clique sur "modifier" et la page modif.php s'éxecute avec la requête de modification sql.

    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
    59
    60
    61
     
    <html>
    <head>
    <title>Consultation postit</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" href="css/postit.css" type="text/css" />
    <body>
    <?php
    //connection au serveur
    mysql_connect( "localhost", "root", "" ) ;
    //sélection de la base de données:
    mysql_select_db( "dbb" ) ;
    //récupération de la variable d'URL,
    //qui va nous permettre de savoir quel enregistrement modifier
    $id  = $_GET["q"] ;
    $id_peronne = $_GET["q"].$_POST['id_PostIt'];
    //requête SQL
    $requete = mysql_query("SELECT * FROM postit WHERE numeropersonne= $id");
    //exécution de la requête:
    setlocale (LC_TIME, 'fr_FR','fra'); 
    //affichage des données:
    if( $resultat = mysql_fetch_object( $requete ) )
    {
    ?>
    <td><td style="align:center;"><a href="index.php"><img style="border: 0px solid ; width: 42px; height: 48px;" alt="Accueil" href="index.php" src="images/logo_accueil.png"/>Retour à l'accueil</a></td>
    <br/>
    <p align="center"><img src="images/letter_p.jpg" height="90" width="70" /><img src="images/letter_o.jpg" height="45" width="35"/><img src="images/letter_s.jpg" height="45" width="35" /><img src="images/letter_t.jpg" height="45" width="35" /><img src="images/letter_i.jpg" height="90" width="70"/><img src="images/letter_t.jpg" height="45" width="35" /></p>
    <br/>
    <br/>
    <br/>
    <br/>
    <table border="2" align="center" cellspacing="3" cellpadding="3">
    	<tr align="center">
    		<td><h4>Numero de personne</h4></td>
    		<td><h5><?php echo $id ;?></h5></td>
    	</tr>
    	<tr>
    		<td><h4>Date de creation</h4></td>
    		<td><h5><input type="text" name="datecreation" size="23" value="<?php echo utf8_encode(strftime("%A %d %B %Y", strtotime ($resultat->dateCreation))) ;?>"></h5></td>
    	</tr>
    	<tr>
    		<td><h4>Objet</h4></td>
    		<td><h5><input type="text" name="objet" size="50" value="<?php echo($resultat->objet);?>"></h5></td>
    	</tr>
    	<tr>
    		<td><h4>Commentaire</h4></td>
    		<td width="400" height="100"><h5><TEXTAREA name="commentaire" rows='10' COLS='40'><?php echo($resultat->commentaire) ;?></TEXTAREA></h5></td>
    	</tr>
    </table>
    <form action="modif.php?q=<?php echo $id_compte;?>" method="post">
    	<p align="center"><h6>Etes-vous sur de vouloir modifier? <input type="submit" value="Modifier"></h6></p>
    </form>
    <?php
    //On ferme la boucle while
    }
    // Fermeture de la connexion à la base de données
    mysql_close();
    ?>
    </body>
    </head>
    </html>
    Voici la page modif.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
     
    <?php
    if(isset($_POST["Modifier"]))
    {
    //connection au serveur
    mysql_connect( "localhost", "root", "" ) ;
    //sélection de la base de données:
    mysql_select_db( "bdd" ) ;
    setlocale (LC_TIME, 'fr_FR','fra'); 
    //récupération des valeurs des champs:
    $id_compte = $_GET["q"].$_POST['id_PostIt'];
    $datecreation = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["dateCreation"])));
    $objet = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["objet"])));
    $commentaire = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["commentaire"])));
    //création de la requête SQL:
    $requete = mysql_query("UPDATE postit
    			SET dateCreation = '$datecreation',
    			objet  = '$objet', 
    			commentaire  = '$commentaire'
    			WHERE numeropersonne = '$id_compte'" );
    //Si il y a une erreur, on crie ^^
    if (!$requete) 
    {
        die('Requête invalide : ' . mysql_error());
    }
    else {
    //Si tout va bien, on informe que la modification est faite
    echo '<p>La modification à été effectué avec succès. <a href=index.php> Retour à la page d'accueil.</a></p>';
    }
    // Fermeture de la connexion à la base de données
    mysql_close();						 
     
    //On ferme if(isset($_POST["Modifier"]))
    }
    ?>
    Lorsque je clique sur modifier j'ai une page blanche.

    Je souhaiterais résoudre déjà ce pb avant que je vous demande l'aide concernant la suppression.

    Merci d'avance pour votre contribution.

  2. #2
    Membre chevronné Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Par défaut
    Bonjour,

    Ici tu as un soucis tu n'as pas échappé un ' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p>La modification à été effectué avec succès. <a href=index.php> Retour à la page d'accueil.</a></p>';
    Tu devrais avoir :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p>La modification à été effectué avec succès. <a href=index.php> Retour à la page d\'accueil.</a></p>';
    Pour le reste je regarde je répondrais soit en édit soit par un new post.

    Cordialement,

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Par défaut
    Citation Envoyé par Inazo Voir le message
    Bonjour,

    Ici tu as un soucis tu n'as pas échappé un ' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p>La modification à été effectué avec succès. <a href=index.php> Retour à la page d'accueil.</a></p>';
    Tu devrais avoir :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<p>La modification à été effectué avec succès. <a href=index.php> Retour à la page d\'accueil.</a></p>';
    Pour le reste je regarde je répondrais soit en édit soit par un new post.

    Cordialement,
    Merci pour ton aide

  4. #4
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Par défaut
    Je souhaite ajouter un détail à mon post.
    Depuis le début j'utilise le numero de personne pour afficher ou modifier les données. Hors dans la BDD il y a plein de doublons de numéro de personne avec des objet, date et commentaires différents. Ais-je bien fait? j'aurais dû utiliser "id_postit" non?!

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Du coup qu'en est-il après l'échappement de l'apostrophe ?

    Sinon c'est normal que tu es l'id personne en plusieurs fois si tu peux avoir plusieurs post-its par personne.

    J'aurais plutot fait une table personne a coter, et faire une table d'association entre les deux pour ne jouer qu'avec des id_personne dans la table postit.

  6. #6
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2012
    Messages : 76
    Par défaut
    Citation Envoyé par bob633 Voir le message
    Du coup qu'en est-il après l'échappement de l'apostrophe ?

    Sinon c'est normal que tu es l'id personne en plusieurs fois si tu peux avoir plusieurs post-its par personne.

    J'aurais plutot fait une table personne a coter, et faire une table d'association entre les deux pour ne jouer qu'avec des id_personne dans la table postit.
    Toujours le même pb --> page blanche. Je n'ai pas le droit de modifier la structure de la base de donnée car ce n'est pas la mienne mais à mon centre informatique...

Discussions similaires

  1. démarrer projet avec une BDD locale derby
    Par boboss123 dans le forum NetBeans
    Réponses: 6
    Dernier message: 02/12/2010, 09h03
  2. Réponses: 27
    Dernier message: 28/07/2009, 10h32
  3. [PHP 5.0] [conception] Un projet php (POO-BDD-Ajax-CSS)
    Par cryptom dans le forum Langage
    Réponses: 3
    Dernier message: 10/04/2009, 01h41
  4. Quel langage choisir pour un nouveau projet professionnel Web / BDD
    Par le_commingeois dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 12/08/2008, 02h08

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