IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Soucis à l'update d'une requête


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    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 : 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
    					$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 :

    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.

  2. #2
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Apparement tu ne délimites pas tes champs (Où sont les quotes ?)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    titre=Grand Prix de Bruxelles 2008,

    Pareil pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  3. #3
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    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.

  4. #4
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    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 : 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
    				} 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.";
    					}
    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

  5. #5
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Si ça change car l'erreur SQL ne sera pas la même...

  6. #6
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    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 )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 16h26
  2. [SQL] Problème de résultat avec une requête
    Par raptorman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/01/2006, 17h16
  3. Réponses: 1
    Dernier message: 03/08/2005, 11h41
  4. [sql] Sélectionner et compter en une requète
    Par genova dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/09/2004, 12h55
  5. [SQL] Renommer un champ dans une requête
    Par martonpylon12 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 15/11/2003, 01h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo