begin process at 2012 05 28 22:52:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Erreur lors d'une modification de la base de donnée par formulaire php


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Erreur lors d'une modification de la base de donnée par formulaire php

samedi 26 septembre 2009 à 17:58:29 | Erreur lors d'une modification de la base de donnée par formulaire php

sebing

Bonjour,

Je ne sais pas se que j'ai en ce moment mais je n'arrive plus a modifier les codes correctement.
Voila j'ai une liste que je prends sur ma base de donnée, que je veux modifier.
Lors de la sélection de la ligne, mon formulaire se renseigne bien avec les données que je veux modifier, mais lorsque je change une donnée et que je valide. la page s'ouvre de nouveau avec toutes les cases vierges et rien n'a été modifié dans la base de donnée.
Voici mon code de la page modif.matchs.seniors.php:

Code PHP :
<? //VARIABLES GENERALES

include("../data.php");
global $dbserver;
global $dbdb;
global $dbuser;
global $dbpass;
//CONNEXION A LA BASE DE DONNEES
$base = @MYSQL_CONNECT ("$dbserver","$dbuser","$dbpass") or die ("<p>Erreur: impossible de communiquer avec la base de donn&eacute;es.<br>V&eacute;rifiez les donn&eacute;s du fichier <b>data.php</b>.</p>");
mysql_select_db("dbdb",$base);
if (isset($_GET['modifier_matchs_seniors'])) // Si on demande de modifier un matchs
{

// On protège la variable "modifier_matchs" pour éviter une faille SQL
$_GET['modifier_matchs_seniors'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_matchs_seniors']));
// On récupère les infos des membres correspondants
$retour = mysql_query('SELECT * FROM matchs_seniors WHERE id=\'' . $_GET['modifier_matchs_seniors'] . '\'');
$donnees = mysql_fetch_array($retour);

// On place le titre et le contenu dans des variables simples
$date= stripslashes($donnees['date']);
$heure = stripslashes($donnees['heure']);
$home = stripslashes($donnees['home']);
$visiteur = stripslashes($donnees['visiteur']);
$score = stripslashes($donnees['score']);
$id_matchs_seniors = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else // C'est qu'on rédige un nouveau membre
{
// Les variables $ sont vides, puisque c'est un nouveau membre
$date = '';
$heure = '';
$home = '';
$visiteur = '';
$score = '';
$id_matchs_seniors = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}

?>
<form action="modif_matchs_seniors.php" method="post">
<p>date : <input type="text" size="5" name="date" value="<?php echo $date; ?>" /></p>
<p>
heure :<br />
<textarea name="heure" cols="10" rows="1">
<?php echo $heure; ?>
</textarea><br />
<p>
Home :<br />
<textarea name="home" cols="15" rows="2">
<?php echo $home; ?>
</textarea><br />
<p>
Visiteur :<br />
<textarea name="visiteur" cols="30" rows="3">
<?php echo $visiteur; ?>
</textarea><br />
<p>
<p>
Score :<br />
<textarea name="score" cols="15" rows="3">
<?php echo $score; ?>
</textarea><br />


<input type="hidden" name="id_matchs_seniors" value="<?php echo $id_matchs_seniors; ?>" />
<input type="submit" value="Envoyer" />
</p>
</form>


Merci de m'aider.

Bon week end

Seb

dimanche 27 septembre 2009 à 13:06:29 | Re : Erreur lors d'une modification de la base de donnée par formulaire php

kohntark

Membre Club

Salut,

J'ai regardé très brièvement ... je me suis juste arrêté au fait que ton formulaire fait un post, et qu'il n'y a nul part trace d'une récupération des données ($_POST())
Il manque du code à première vue.

Cordialement,


Kohntark -

dimanche 27 septembre 2009 à 20:24:48 | Re : Erreur lors d'une modification de la base de donnée par formulaire php

sebing

J'ai trouvé la première erreur:
C'est la ligne

Code PHP :

<form action="modif_matchs_seniors.php" method="post">

Je dois mettre
Code PHP :

<form action="list_matchs_seniors.php" method="post">
c'est la feuille qui liste mes pages et c'est a cette endroit que je choisi de modifier une ligne.

Mais maintenant j'ai un nouveau problème:

Il y a bien modification, mais ce sont toutes mes lignes qui se modifient , pourtant je prends par id????

Mais ou est cette nouvelle erreur:

Voici le code de ma page list_matchs_seniors.php
Code PHP :
<?php

//VARIABLES GENERALES
include("../data.php");
global $dbserver;
global $dbdb;
global $dbuser;
global $dbpass;
//CONNEXION A LA BASE DE DONNEES
$base = @MYSQL_CONNECT ("$dbserver","$dbuser","$dbpass") or die ("<p>Erreur: impossible de communiquer avec la base de donn&eacute;es.<br>V&eacute;rifiez les donn&eacute;s du fichier <b>data.php</b>.</p>");
mysql_select_db("dbdb",$base);

//-----------------------------------------------------
// Vérification 1 : y a t'il des matchs?
//-----------------------------------------------------
if (isset($_POST['date']) AND isset($_POST['heure']) AND isset($_POST['home']) AND isset($_POST['visiteur']) AND isset($_POST['score']))
{
$date = addslashes($_POST['date']);
$heure = addslashes($_POST['heure']);
$home = addslashes($_POST['home']);
$visiteur = addslashes($_POST['visiteur']);
$score = stripslashes($donnees['score']);

// On vérifie si c'est une creation de matchs ou pas
if ($_POST['id_matchs_seniors'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table
mysql_query("INSERT INTO matchs_seniors VALUES('', '" . $date . "', '" . $heure . "', '" . $home . "', '" . $visiteur . "', '" . $score . "')");
}
else
{
// On protège la variable "id_matchs_seniors" pour éviter une faille SQL
$_POST['id_matchs_seniors'] = addslashes($_POST['id_matchs_seniors']);
// C'est une modification, on peut tout mettre à jour
mysql_query("UPDATE matchs_seniors SET date='" . $date . "', heure='" . $heure . "', home='" . $home . "', visiteur='" . $visiteur . "', score='" . $score . "'");
}
}

//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer un matchs?
//--------------------------------------------------------
if (isset($_GET['supprimer_matchs_seniors'])) // Si on demande de supprimer un matchs
{
// Alors on supprime le membre correspondant
// On protège la variable "id_matchs_seniors" pour éviter une faille SQL
$_GET['supprimer_matchs_seniors'] = addslashes($_GET['supprimer_matchs_seniors']);
mysql_query('DELETE FROM matchs_seniors WHERE id=\'' . $_GET['supprimer_matchs_seniors'] . '\'');
}
?>
<table><tr>
<th>Date</th>
<th>Heure</th>
<th>Home</th>
<th>Visiteur</th>
<th>score</th>
<th>Modifier</th>
<th>supprimer</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM matchs_seniors ORDER BY date');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les matchs
{
?>
<tr>
<td><?php echo stripslashes($donnees['date']); ?></td>
<td><?php echo stripslashes($donnees['heure']); ?></td>
<td><?php echo stripslashes($donnees['home']); ?></td>
<td><?php echo stripslashes($donnees['visiteur']); ?></td>
<td><?php echo stripslashes($donnees['score']); ?></td>
<td><?php echo '<a href="modif_matchs_seniors.php?modifier_matchs_seniors=' . $donnees['id'] . '">'; ?>modifier</a></td>
<td><?php echo '<a href="list_matchs_seniors.php?supprimer_matchs_seniors=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
</tr>
<?php
} // Fin de la boucle qui liste les matchs
?>

Et lorsque je veut modifier, c'est la page modif_matchs_seniors.php qui s'ouvre avec les données du match que l'on veut modifier, le code est plus haut.
Merci encore

Bonne soirée

dimanche 27 septembre 2009 à 21:03:54 | Re : Erreur lors d'une modification de la base de donnée par formulaire php

kohntark

Membre Club
Réponse acceptée !

Il y a bien modification, mais ce sont toutes mes lignes qui se modifient , pourtant je prends par id????


Il n'y a aucune clause WHERE dans ta requête UPDATE !!

// On protège la variable "id_matchs_seniors" pour éviter une faille SQL


On utilise mysql_real_escape_string pour cela, pas addslashes.


Cordialement,


Kohntark -

lundi 28 septembre 2009 à 10:20:47 | Re : Erreur lors d'une modification de la base de donnée par formulaire php

sebing

Merci,

J'ai rajouté la clause where que j'ai effacée par erreur, et maintenant ça fonctionne merci

Par contre je ne sais pas me servir de mysql_real_escape_string.

Si je remplace addslashes par mysql_real_escape_string ça ne marche plus.

Une autre question: comment faire pour que la date soit au format jj/mm/aaaa? j'ai beau chercher je ne comprends pas où placer les codes.

Désolé de vous harceler de question mais je suis perdu.

Merci encore bonne journée.
Cordialement
Seb

lundi 28 septembre 2009 à 16:38:50 | Re : Erreur lors d'une modification de la base de donnée par formulaire php

kohntark

Membre Club

Par contre je ne sais pas me servir de mysql_real_escape_string.


=> voir la doc, tout est dedans.

Si je remplace addslashes par mysql_real_escape_string ça ne marche plus.


... et peut on savoir ce que ça fait au juste ? une erreur ? pas d'affichage ? autres ?
Tu peux sortir ta requête du mysql_query est l'afficher pour voir à quoi elle ressemble et surtout traite les erreurs !!
Ca te permettra sans doute de trouver le pb :
Code PHP :
$sql = "update matchs_seniors set date='" . $date . "', heure='" . $heure . "', home='" . $home . "', visiteur='" . $visiteur . "', score='" . $score . "'";
echo '<hr />debug : '.$sql.'<br />';
if (false === mysql_query($sql)) die(mysql_error());

Assure toi également que les guillemets magiques ne sont pas activés (voir get_magic_quotes_gpc)

Une autre question: comment faire pour que la date soit au format jj/mm/aaaa? j'ai beau chercher je ne comprends pas où placer les codes.


Où souhaites tu qu'elle le soit ? A l'affichage ? dans la base ?
Le mieux serait sans doute un unique champ de type DATETIME directement dans la DB.


Cordialement,

Kohntark -

lundi 28 septembre 2009 à 21:39:26 | Re : Erreur lors d'une modification de la base de donnée par formulaire php

sebing

Merci pour tous ces renseignements.
Je vais me pencher dessus dans la semaine et je vous tiens au courant.

.. et peut on savoir ce que ça fait au juste ? une erreur ? pas d'affichage ? autres ?


Rien ne se passe, mais je vais étudier la doc que vous m'avez conseillée.

Où souhaites tu qu'elle le soit ? A l'affichage ? dans la base ?
Le mieux serait sans doute un unique champ de type DATETIME directement dans la DB.


Je suis chez free, est il possible de le faire au niveau de la base?

Merci encore.

Cordialement.

Seb


Cette discussion est classée dans : base, donnees, modifier, matchs, seniors


Répondre à ce message

Sujets en rapport avec ce message

phpmyadmin : multi users [ par elanspeech ] Salut,J'ai beau triturer les docs je ne trouve pas les reponses a mes questions.j'ai plusieurs utilisateurs qui auront chacun leur propre base de donn réaffichage des donnees dans un formulaire [ par charly25 ] bonjour a toutes et tous un petit probleme "idiot" me rend chèvre.j'ai un formulaire html simple qui va renseigner une base de donnees.Je voudrais réa base de donnees [ par Z2K ] comment créer et gérer une BD MYSQL avec PHP? pblème php base de donnée [ par troupe_a_jule ] julesalut à tous je suis en stage dans un lycée et je doit crée une interface (avec formulaire) ou l'utilisateur siaie des informations qui sont soit plusieur valeur pour un meme chant [ par theju ] Salut a tous,J'ai un petit probleme avec ma base de donnees : Je veut fait afficher sur une page un tableau dynamique rempli d'apres une base pgsql. C URGENT BASE DE DONNEES [ par abirti ] Bonjour à tous, je suis débutante avec PHP.Et je voudrais bien savoir comment je peux convertir ma base de données mysql en une base de données access Inserer des donnees dans ma base de donnee. [ par achillechimi ] Bonjour, j,essai depuis des jours d,inserer environ 45 donnees dans une table(tableau) de ma base de donnees, jusqu,ici sans succes.Je voudrais savoir base de donnees et php [ par sweetyangel ] bonjour, En fait, je suis debutante en php et je cherches un lien vers un cours qui peut m'aider pour  faire l'interfaçage entre php et base de donnee comment enregistrer une conversation telephonique avec php dans une base de donnees ? [ par we_are ] bjr! je veux savoir comment enregistrer une communication telephonique dans une base de donnees avec PHP ou avec d'autre language pour que l'administr actualisation de la page [ par hlimaiem ] Limaiem Heykel bonjour, J'ai une page php qui affiche des resultat depuis une base de donnees . J'ai plusieurs donnees qui s'ajoutent a ma base dans d


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales