Accueil > Forum > > > > Erreur lors d'une modification de la base de donnée par formulaire php
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ées.<br>Vérifiez les donné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
|
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ées.<br>Vérifiez les donné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
|
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
|
lundi 28 septembre 2009 à 16:38:50 |
Re : Erreur lors d'une modification de la base de donnée par formulaire php

kohntark
|
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
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
XML ET PHPXML ET PHP par karouani
Cliquez pour lire la suite par karouani
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|