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.