Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/12/2007, 18h01   #1
Him
Membre régulier
 
Avatar de Him
 
Inscription : février 2006
Messages : 244
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : février 2006
Messages : 244
Points : 79
Points : 79
Envoyer un message via ICQ à Him
Par défaut [SQL] Soucis à l'update d'une requête

Bonjour à tous.

Je pensais ne plus jamais avoir à poser ce genre de question idiotes, mais voilà 2 heures que je cherche & recode ce bout de code, mais le problème est toujours le même... !

Je souhaîte mettre à jour les évènement de ma base de donnée. Pour ce faire j'ai développé le petit formulaire suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
					$id = $_GET['event'];
					$result = db_query("SELECT * FROM events WHERE event_id=$id");
						while($res = mysql_fetch_array($result)) {
							echo '<u>Preview</u> :<br />'.
								 '<div class="event-date">Du '. $res['start_date'] . ' au '. $res['end_date'] . '</div>'.
								 '<h2>' . $res['titre'] . '</h2>'.
								 '<p align="right">Prix à l\'entrée : '. $res['prix'] .' &euro;<br />Préventes : '. $res['prevente']. ' &euro;</p>'.
								 $res['description'] . '<br />';
							echo '<center><b>---------------------------------------------</b></center><br />';
							echo '<form action="sorties.php?event='.$res['event_id'].'" method="post">'.
								 '<input type="text" name="titre" size="58" value="' . $res['titre'] . '"/><br />'.
								 'Du : <input type="text" name="start_date" size="8" value="'. $res['start_date'] . '" /> Au : <input type="text" name="end_date" size="8" value="' . $res['end_date'] . '" />'.
								 ' Prix : <input type="text" name="prix" size="3" value="'. $res['prix'] . '" /> Pr&eacute;v. : <input type="text" name="prevente" size="3" value="'. $res['prevente'] . '" />'.
								 ' actif : oui <input type="radio" name="actif" value="oui" checked /> non <input type="radio" name="actif" value="non" /><br />'.
								 '<textarea name="description" cols="60" rows="5">'.$res['description'].'</textarea><br />'.
								 '<input type="submit" name="preview" value="Pr&eacute;visualiser" /> <input type="submit" name="modifier" value="Modifier" /><input type="hidden" name="event_id" value="'.$id.'" /></form>';
						}

Jusqu'ici tout va bien, tout se remplis... comme sur des roulettes !
c'est ensuite que ça se corse. ( mais je vous ai mis le code, histoire de suivre. )

Lorsque je traite les informations de "preview" j'obtiens le message d'erreur suivant :

Citation:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Prix de Bruxelles 2008, description=Une fois de plus l'autoworld à le pri' at line 1

UPDATE events SET start_date='2008-02-09', end_date='2008-02-10', titre=Grand Prix de Bruxelles 2008, description=Une fois de plus l'autoworld à le privilège d'accueillir tous les plus grands pilotes R/C de Belgique afin que ceux-ci s'affrontent une nouvelle fois sur la piste indoor réalisée à l'occasion de ce grand prix de Bruxelles 2008.

Plusieurs catégories au programmes de ces 2 journées de folies, prix=12, prevente=10 WHERE event_id='1'
J'ai pas mal retourné le tout, mais je ne vois pas ce qui bug
si je ne m'abuse, les champs sont dans le même ordre que dans phpmyadmin, & écrits de la même façon. ( casse respectée ).

Pour nfos : la table :

event_id, event_author, start_date, end_date, titre, event_image, link, description, prix, prevente, date_added, status

Merci d'avance pour votre aide.
Him est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 19h02   #2
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Apparement tu ne délimites pas tes champs (Où sont les quotes ?)

Code :
1
2
 
titre=Grand Prix de Bruxelles 2008,

Pareil pour :

Code :
1
2
3
 
$id = $_GET['event'];
$result = db_query("SELECT * FROM events WHERE event_id=$id");
Que se passerai t il si je fait /page.php?event=0%20UNION%20SELECT%20password%20FROM%20Admin%23 ?

La sécurité est importante, il ne faut pas la négliger.

Quelques liens utiles :
http://php.net/intval
http://php.net/mysql_real_escape_string
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 19h06   #3
Him
Membre régulier
 
Avatar de Him
 
Inscription : février 2006
Messages : 244
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : février 2006
Messages : 244
Points : 79
Points : 79
Envoyer un message via ICQ à Him
C'est vrai !
Tu as plus que raisons,
en fait, ils étaient la avant, mais ne trouvant pas ce qui bug dans ma requête, j'ai essayé en les retirants.

Maintenant la page est en admin, & il y a un htaccess.
Mais tu as raison, c'est important.

Bref, mais cela ne change rien au problème.
Him est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 19h09   #4
Him
Membre régulier
 
Avatar de Him
 
Inscription : février 2006
Messages : 244
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : février 2006
Messages : 244
Points : 79
Points : 79
Envoyer un message via ICQ à Him
Au fait, je viens de voir que je ne vous ai pas donné le code de la requête ^^

( qui lui est sous quote ).

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
				} if (isset($_POST['modifier'])) {
				// mise en variable des valeurs pour un affichage temporaire avant enregistrement
					$id = $_POST['event_id'];
					$titre = htmlentities($_POST['titre']);
					$start_date = htmlentities($_POST['start_date']);
					$end_date = htmlentities($_POST['end_date']);
					$prix = htmlentities($_POST['prix']);
					$prevente = htmlentities($_POST['prevente']);
					$description = htmlentities($_POST['description']);
				// ajout de <br> sur les alignements 
					$description = nl2br($description);
				// suppression des slashes
					$description = stripslashes($description);
						db_query("UPDATE events SET start_date='".$start_date."', end_date='".$end_date."', titre='".$titre."', description='".$description."', prix='".$prix."', prevente='".$prevente."' WHERE event_id='".$id."'");
						echo "L'évènement $titre à bien été mis à jour.";
					}
Citation:
syntax to use near 'Prix de Bruxelles 2008, description=Une fois de plus l'autoworld à le pri' at line 1

UPDATE events SET start_date='2008-02-09', end_date='2008-02-10', titre=Grand Prix de Bruxelles 2008, description=Une fois de plus l'autoworld à le privilège d'accueillir tous les plus grands pilotes R/C de Belgique afin que ceux-ci s'affrontent une nouvelle fois sur la piste indoor réalisée à l'occasion de ce grand prix de Bruxelles 2008.

Plusieurs catégories au programmes de ces 2 journées de folies, prix=12, prevente=10 WHERE event_id='1' !

[CRASH REPORT STOP]
Merci d'avance
Him est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 19h10   #5
Membre chevronné
 
Avatar de |PaRa-BoL
 
Inscription : novembre 2003
Messages : 737
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 737
Points : 782
Points : 782
Si ça change car l'erreur SQL ne sera pas la même...
__________________
http://www.ape-project.org/
|PaRa-BoL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2007, 19h13   #6
Him
Membre régulier
 
Avatar de Him
 
Inscription : février 2006
Messages : 244
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Belgique

Informations forums :
Inscription : février 2006
Messages : 244
Points : 79
Points : 79
Envoyer un message via ICQ à Him
Honte sur moi
Je croyais avoir tout refait maintes & maintes fois

Mais non, tu as raison ! j'avais le stripslashes après le htmlentities
car j'ai recopié le code de ma page preview pour les variables ^^

hahaha !
je suis un boulet

Merci ! ( comme quoi faire un break c'est parfois bien )
Him est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h10.


 
 
 
 
Partenaires

Hébergement Web