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] remplacement d'un espace ou d'une apostrophe par un tiret bas


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 28
    Par défaut [SQL] remplacement d'un espace ou d'une apostrophe par un tiret bas
    bonjour
    voilà j'essaie à l'aide d'un formulaire de saisie, rentrer des renseignements dans mysql.Jusque là c'est bon. J'ai ds ma table de mysql un champ "titre" et un autre "image". J'aimerai lorque je tape un titre, ne pas le retaper ds le formulaire pour image, jusque là j'y arrive mais en plus lorsque dans le champ titre il y a des espaces ou des apostrophes qu'il se remplace dans le champ image avec des tirets bas et que je n'ai pas a rajouter à la fin .jpg
    ex: si le titre est "l'etoile du berger"
    le nom de l'image est "l_etoile_du_berger.jpg"

    voilà mes codes pour mon formulaire:
    <form method="post" action="lienbdd.php">

    <table align="center" border="0" bgcolor="#0da7fd" width="540">
    <tr><td>titre</td><td><input type="text" name="titre"></td></tr>

    <tr><td>catégorie</td><td><select name="categorie">

    <?php
    $categorie = mysql_query("SELECT * FROM categorie ORDER BY designation");
    while ($liste_categorie = mysql_fetch_array($categorie))
    {
    if ($liste_categorie[1]== "Comédie")
    {
    ?>

    <option selected><?php echo $liste_categorie[1]; ?></option>

    <?php } else { ?>

    <option><?php echo $liste_categorie[1]; ?></option>

    <? }} ?>

    </select></td></tr>
    <tr><td>titre</td><td><input type="text" name="titre"></td></tr>
    <tr height="50"><td>acteurs</td><td><textarea name="acteurs" cols="45" row="10" ></textarea></td></tr>

    <tr><td>synopsis</td><td><textarea name="synopsis" cols="45" row="40" ></textarea></td></tr>

    <tr><td>date</td><td><input type="text" name="date"></td></tr>


    <tr><td>image</td><td><input type="text" name="image"></td></tr>


    <tr><td><input type="submit" value=" valider " name="valider"></td></tr>

    </form>
    </table>
    et mes codes dans mon autre fichier :

    <?php
    // Récupération des valeurs du formulaire
    $titre = $_POST["titre"];
    $categorie = $_POST["categorie"];
    $acteurs = $_POST["acteurs"];
    $synopsis = $_POST["synopsis"];
    $date = $_POST["date"];
    $image = $_POST["image"];
    ?>

    <?php



    if (isset ($_POST['titre'])) {$image=$titre;
    $espace_image=str_replace("&nbsp;","_",$image);



    // Insertion des valeurs dans la table film
    // Première parenthèse pour le nom du champs
    // Deuxième parenthèse pour la valeur a insérer
    $sql = "INSERT INTO film ( `titre`, `categorie`, `acteurs`, `synopsis`, `date_de_sortie`, `image` ) VALUES ('$titre', '$categorie', '$acteurs', '$synopsis', '$date', '$espace_image');";
    }
    Je remercie d'avance la personne qui pourra m'aider car j'avoue tourner un peu en rond

  2. #2
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    D'après le titre je ferai un str_replace()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $newstr = str_replace(array(" ", "'", '"'), "_", $chaine);
    Tu peux aussi utiliser les regexp.

  3. #3
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    avec un substr() (voir la doc sur php.net) pour enlever .jpg à la fin.

    pas besoin de passer par les regexp, ca vaut pas le coup je trouve.

  4. #4
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 28
    Par défaut
    pour le remplacement des espaces et des apostrophes je l'ai mis là mais ça me met une erreur


    $sql = "INSERT INTO film ( `titre`, `categorie`, `acteurs`, `synopsis`, `realisateur`, `duree`, `date_de_sortie`, `image` ) VALUES ('$titre', '$categorie', '$acteurs', '$synopsis', '$realisateur', '$duree', '$date', 'str_replace(array(" ", "'", '"'), "_", $image);')";

    Parse error: parse error in i:\basejojo\serval1\lienbdd.php on line 26
    et si je lui met une variable fonctionne pas non plus

    mais qu'est ce qui cloche dans mes codes ?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Ce serait peut être mieux ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "INSERT INTO film ( `titre`, `categorie`, `acteurs`, `synopsis`, `realisateur`, `duree`, `date_de_sortie`, `image` ) VALUES ('$titre', '$categorie', '$acteurs', '$synopsis', '$realisateur', '$duree', '$date', '" . str_replace(array(" ", "'", '"'), "_", $image) . "')";
    Sinon PHP ne risque pas d'exécuter le str_replace !


    Julp.

  6. #6
    Membre Expert

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $image = str_replace(array(" ", "'", '"'), "_", $image);
     
    $sql = "INSERT INTO film
    	( `titre`, `categorie`, `acteurs`, `synopsis`, `realisateur`, `duree`, `date_de_sortie`, `image` )
    	VALUES
    	('$titre', '$categorie', '$acteurs', '$synopsis', '$realisateur', '$duree', '$date', '$image')";
    fait les modifications toujours en dehors de ta requete SQL !! oki ?

    et sinon j'avais mal compris, tu veux ajouter .jpg à la fin c'est ca ?
    bah il suffit de faire la concatenation sur image !! (toujours avant la requete SQL !!)

  7. #7
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 28
    Par défaut
    trop cool les espaces fonctionne enfin mais j'ai essayer avec une apostrophe comme l'etoile du berger comme titre et là il me met erreur :

    erreur SQL !INSERT INTO film ( `titre`, `categorie`, `acteurs`, `synopsis`, `realisateur`, `duree`, `date_de_sortie`, `image` ) VALUES ('l'etoile du berger', 'Comédie', '', '', '', '', '', 'l_etoile_du_berger')
    Erreur de syntaxe près de 'etoile du berger', 'Comédie', '', '', '', '', '', 'l_etoile_du_b' à la ligne 1

    pourtant il me met bien les tirets ?

    et pour le .jpg tu me parles de concaténation genre comme ça en plus simple

    $sql = "INSERT INTO film ( `titre`, `categorie`, `acteurs`, `synopsis`, `realisateur`, `duree`, `date_de_sortie`, `image` ) VALUES ('$titre', '$categorie', '$acteurs', '$synopsis', '$realisateur', '$duree', '$date', '$image"..jpg."')";

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2012, 15h35
  2. [SQL] Compter le nombre d'occurences dans une table par valeur
    Par SpaceFrog dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/04/2008, 17h22
  3. Réponses: 9
    Dernier message: 31/07/2007, 01h13
  4. Remplacer les espaces d'une URL par un tiret
    Par Tee shot dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2007, 00h02
  5. [SQL] remplacer le VraiFaux d'access dans une Vue
    Par alain_27 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/09/2005, 15h51

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