Page 1 sur 1

Problème d'insertion et modification dans base de données

Posté : 03 juin 2010, 10:09
par italiano1360
Bonjour,

Je souhaite donc mettre en place un systeme d'administration pour mon site.
Je voudrais modifier les entreprises et pouvoir en rajouter (la requete supprimer fonctionne ! ...)

j'ai donc crée une base de donnée (je travaille en local)
nom de la table : entreprises (idEntreprise,nomEntreprise,desEntreprise,adEntreprise,telEntreprise,site)

j'ai donc les crée les 2 pages suivantes :

ajouter_entreprise.php
<?php
include('../config/config.php');

$connexion = mysql_connect(DB_HOST, DB_ROOT, DB_MDP);
$database = mysql_select_db(DB_BDD);
mysql_query("SET NAMES UTF8");

if ($connexion == false) 
{
echo '<p>Echec de la connexion à la base de donnée</p>';
}

if (isset($_GET['modifier_entreprise'])) // Si on demande de modifier une entreprises
{
    // On protege la variable "modifier_news" pour eviter une faille SQL
    $_GET['modifier_entreprise'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_entreprise']));
    // On reupere les infos de l' entreprises correspondante
    $retour = mysql_query('SELECT * FROM entreprises WHERE idEntreprise=\'' . $_GET['modifier_entreprise'] . '\'');
    $donnees = mysql_fetch_array($retour);
    
    // On place des variables simples
    $nomEntreprise = stripslashes($donnees['nomEntreprise']);
    $desEntreprise = stripslashes($donnees['desEntreprise']);
    $adEntreprise = stripslashes($donnees['adEntreprise']);
    $telEntreprise = stripslashes($donnees['telEntreprise']);
    $site = stripslashes($donnees['site']);
    $idEntreprise = $donnees['idEntreprise']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on ajoute une nouvelle entreprise
{
    // Les variables sont vides, puisque c'est une nouvelle entreprise
    $nomEntreprise = '';
    $desEntreprise = '';
    $adEntreprise = '';
    $telEntreprise = '';
    $site = '';
    $idEntreprise = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
<form action="liste_entreprise.php" method="post">
<p>Nom : <input type="text" size="30" name="nom" value="<?php echo $nomEntreprise; ?>" /></p>
<p>
    Domaine :<br />
    <textarea name="desEntreprise" cols="50" rows="5">
    <?php echo $desEntreprise; ?>
    </textarea><br />
	<p>Adresse : <input type="text" size="80" name="adEntreprise" value="<?php echo $adEntreprise; ?>" /></p>
	<p>Telephone : <input type="text" size="30" name="telEntreprise" value="<?php echo $telEntreprise; ?>" /></p>
	<p>Site Web : <input type="text" size="70" name="site" value="<?php echo $site; ?>" /></p>
    
    <input type="hidden" name="idEntreprise" value="<?php echo $idEntreprise; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
</body>
</html>
liste_entreprise.php
<?php
include('../config/config.php');

$connexion = mysql_connect(DB_HOST, DB_ROOT, DB_MDP);
$database = mysql_select_db(DB_BDD);
mysql_query("SET NAMES UTF8");

if ($connexion == false) 
{
echo '<p>Echec de la connexion à la base de donnée</p>';
}
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut ajouter une entreprise ?
//-----------------------------------------------------
if (isset($_POST['nomEntreprise']) AND isset($_POST['desEntreprise']) AND isset($_POST['adEntreprise']) AND isset($_POST['telEntreprise']) AND isset ($_POST['site']))
{
    $nomEntreprise = addslashes($_POST['nomEntreprise']);
    $desEntreprise = addslashes($_POST['desEntreprise']);
    $adEntreprise = addslashes($_POST['adEntreprise']);
    $telEntreprise = addslashes($_POST['telEntreprise']);
    $site = addslashes($_POST['site']);
	
    // On vérifie si c'est une modification d'entreprise ou pas
    if ($_POST['idEntreprise'] == 0)
    {
        // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query("INSERT INTO entreprises VALUES('', '" . $nomEntreprise . "', '" . $desEntreprise . "', '" . $adEntreprise . "', '" . $telEntreprise . "','".$site."')");
    }
    else
    {
        // On protége la variable "idEntreprise" pour éviter une faille SQL
        $_POST['idEntreprise'] = addslashes($_POST['idEntreprise']);
        // C'est une modification, mise à jour !
        mysql_query("UPDATE entreprises SET nomEntreprise='" . $nomEntreprise . "', desEntreprise='" . $desEntreprise . "', adEntreprise='" . $adEntreprise . "', telEntreprise='" . $telEntreprise . "', site='" . $site . "' WHERE idEntreprise='" . $_POST['idEntreprise'] . "'");
    }
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une entreprises ?
//--------------------------------------------------------
if (isset($_GET['supprimer_entreprise'])) // Si on demande de supprimer une entreprises
{
    // Alors on supprime l'entreprise correspondante
    // On protége la variable "idEntreprise" pour éviter une faille SQL
    $_GET['supprimer_entreprise'] = addslashes($_GET['supprimer_entreprise']);
    mysql_query('DELETE FROM entreprises WHERE idEntreprise=\'' . $_GET['supprimer_entreprise'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Nom</th>
<th>Domaine</th>
<th>Adresse</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM entreprises');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les entreprises
{
?>
<tr>
<td><?php echo '<a href="ajouter_entreprise.php?modifier_entreprise=' . $donnees['idEntreprise'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_entreprise.php?supprimer_entreprise=' . $donnees['idEntreprise'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['nomEntreprise']); ?></td>
<td><?php echo stripslashes($donnees['desEntreprise']); ?></td>
<td><?php echo stripslashes($donnees['adEntreprise']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les entreprises
?>
</table>
</body>
</html>
Merci.

Re: Problème d'insertion et modification dans base de données

Posté : 03 juin 2010, 11:12
par sebcap26
On peut difficilement répondre sans connaître plus de détails sur le problème ...

Déja, tu devrais afficher les erreurs sql, ca aiderait à cerner ton problème :
mysql_query("ta requete") or die(mysql_error());

Re: Problème d'insertion et modification dans base de données

Posté : 03 juin 2010, 11:22
par italiano1360
Aucune erreur n'apparait ...
Je ne doit pas passer dans la requête mais je ne comprend pas pourquoi ...

Re: Problème d'insertion et modification dans base de données

Posté : 03 juin 2010, 11:25
par sebcap26
La meilleure solution dans ce cas c'est d'utiliser des echo un peu partout pour trouver d'ou vient le problème, d'essayer d'afficher tes variables.

Re: Problème d'insertion et modification dans base de données

Posté : 03 juin 2010, 11:26
par stealth35
dans ta condition t'as pas de requête INSERT pour ajouter une nouvelle valeur ?

Re: Problème d'insertion et modification dans base de données

Posté : 03 juin 2010, 11:32
par italiano1360
si
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
        mysql_query("INSERT INTO entreprises VALUES('', '" . $nomEntreprise . "', '" . $desEntreprise . "', '" . $adEntreprise . "', '" . $telEntreprise . "','".$site."')");

Re: Problème d'insertion et modification dans base de données

Posté : 03 juin 2010, 11:36
par stealth35
ca aurait plus ca place dans ajouter_entreprise.php

je te conseil de bien séparer tes fichiers avec chaque fonction qui va avec

liste_entreprise.php : doit uniquement affiche la liste

ajouter_entreprise.php : doit uniquement ajouter une entreprise
modifier_entreprise.php : doit uniquement modifier une entreprise
supprimer_entreprise.php : doit uniquement surpimer une entreprise

Re: Problème d'insertion et modification dans base de données

Posté : 03 juin 2010, 11:39
par italiano1360
ok je vais faire ça car la j'avoue que je me perd un petit peu ...