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:
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".
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>
Jusqu'ici pas de pb.
Lorsque je clique sur "consulter" concernant un des numero de peronne trouvé, j'affiche la page consultation.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
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; } ?>
Jusqu'ici pas de pb.
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
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>
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
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>
Lorsque je clique sur modifier j'ai une page blanche.
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"])) } ?>
Je souhaiterais résoudre déjà ce pb avant que je vous demande l'aide concernant la suppression.
Merci d'avance pour votre contribution.
Partager