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 :

Récupérer une variable avec des espaces.


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut Récupérer une variable avec des espaces.
    Bonjours tout le monde voici le code en question:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
    //récupère variable de l'autre page
     
    if(isset($_POST['Soustraitant']))      $Soustraitants=$_POST['Soustraitant'];
    else      $Soustraitants="";
     
     
    ?>
     
    <?php
    //Récupération des informations de la configurations actuel dans la base de données
     
    try
    {
    	// On se connecte à MySQL
    	$bdd = new PDO('mysql:host=localhost:3306;dbname=myg;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
    	// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
     
     
    // On récupère tout le contenu de la table
     
    $reponse = $bdd->query('SELECT * FROM soustraitants WHERE Nom = \''.$Soustraitants.'\' ');
     
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
    ?>
     
        <p>
    	<?php $Email=$donnees['Email']; ?>
    	<?php $Addresse=$donnees['Addresse']; ?>
    	<?php $CodePostal=$donnees['CodePostal']; ?>
    	<?php $Ville=$donnees['Ville']; ?>
    	<?php $Province=$donnees['Province']; ?>
    	<?php $Pays=$donnees['Pays']; ?>
    	<?php $Transporteur=$donnees['Transporteur']; ?>
    	<?php $CompteTransporteur=$donnees['CompteTransporteur']; ?>
     
       </p>
    <?php
    }
     
    $reponse->closeCursor(); // Termine le traitement de la requête
     
    ?>
    Il ne récupère que le premier mot lorsque la variable contient des espaces, j'imagine qu'il ne me manque pas grand chose mais je n'arrive pas a trouvé et je suis nouveau niveau programmation du PHP. J'ai une bonne base en programmation pour d'autre langage ce qui m'aide mais la je suis perdu.

    Merci de votre aide
    Mike

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 606
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 606
    Par défaut
    c'est dans la variable $Soustraitants que vous avez une chaine de caractère avec une espace ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut
    Oui c'est exact j'ai oublier de le mentionner.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 606
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 606
    Par défaut
    petite remarque concernant la sécurité de la requête, il vaut mieux que vous passiez le paramètres à une requête préparée comme cela :
    https://www.php.net/manual/fr/pdo.prepare.php

    pour votre soucis, vous dites que vous récupérez qu'un morceau mais à quel endroit ? je ne vois pas de code d'affichage.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Montre le code du champ de "Soustraitant" ( <select> ? )
    Il manque certainement des " au value.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2019
    Messages : 3
    Par défaut
    Bonjours tout le monde et merci de prendre le temps de me repondre. J'ai que un contre temps et je n'ai pas réussit à repondre avant.

    Pour répondre à Celira
    Quelque chose comme ça : Pourquoi mes valeurs de champs textes de formulaires sont-elles coupées après le premier espace ? ?
    J'ai déjà fait le test et malheureusement il me coupe toujours à la première espace


    Voici le code manquant de l'autre page:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     <label>Compagnie Soustraitantes
            <span class="small"></span>
        </label>
    <select aria-required="true" name="Soustraitant" size="1">
    <option value="" selected disabled hidden> 
     
    <?php
    // Recupération des informations de la configurations actuel dans la base de données
     
    try
    {
    	// On se connecte à MySQL
    	$bdd = new PDO('mysql:host=localhost:3306;dbname=myg;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
    	// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
     
     
    // On récupère tout le contenu de la table
    $reponse = $bdd->query('SELECT * FROM SousTraitants');
     
    // On affiche chaque entrée une à une
    while ($donnees = $reponse->fetch())
    {
    ?>
        <p>
    	<?php $Nom=$donnees['Nom']; ?>
     
    	<option value=<?php echo $Nom; ?>><?php echo $Nom; ?></option>
     
       </p>
    <?php
    }
     
    $reponse->closeCursor(); // Termine le traitement de la requête
     
    ?>
     
     
    </select>
     
     
     
     
     
    <br />
    <br />
     
    <button type="submit" value="Send" style="margin-top:15px;margin-left:130px;">Modifier</button>
    Je m'excuse à l'avance, il a de forte probabilité qu'il à place à amélioration dans mon code mais je suis encore qu'un débutant, si jamais vous avez des conseils je suis preneur pour apprendre.

    Un gros merci a tout le monde
    Michael

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	<option value=<?php echo $Nom; ?>><?php echo $Nom; ?></option>
    C'est bien ce que je disais (et le lien de Celira aussi).

    CONSEIL : regarde toujours le code source généré ("CTRL"+"U")

  9. #9
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    comme tu débutes, voici ton code repris et tu dois t'efforcer de t'aligner sur ce genre de modèle :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
     
    try {
        $bdd = new PDO('mysql:host=localhost:3306;dbname=myg;charset=utf8', 'root', '');
    } catch(Exception $e) {
        die('Erreur : '.$e->getMessage());
    }
     
    $stmt = $bdd->query('SELECT * FROM SousTraitants');
     
    // échappement des caractères dangereux
    $hsc = function($p): string { return htmlspecialchars((string)$p, ENT_QUOTES, 'utf-8'); };
     
    $options = ['<option value="" selected disabled hidden>'];
    foreach ($stmt->fetchAll() as $v) {
        $options[] = <<<html
    <option value="{$hsc($v['Nom'])}">{$hsc($v['Nom'])}</option>
    html;
    }
    ?>
    <label>Compagnies sous-traitantes<span class="small"></span></label>
    <select aria-required="true" name="Soustraitant" size="1">
      <?= implode('', $options) ?>
    </select><br/><br/>
    <button type="submit" value="Send" style="margin-top:15px;margin-left:130px;">Modifier</button>
    Tu dois TOUJOURS échapper les données, TOUJOURS !
    Ne te préoccupes pas de la fermeture de la connexion à la base de données, c'est automatique.

    Bon courage pour la suite de l'apprentissage

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 3
    Par défaut
    Un Gros merci à tout le monde et surtout merci à toi pour ce tout cuit dans le bec comme on dit.. Je m'efforce de comprendre le code à tout les fois pour l'apprendre car je ne veux pas demander toujours de l'aide, je vais être autonome

    Merci encore tout le monde c'est vraiment apprécier.
    Michael

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

Discussions similaires

  1. [XL-2013] Problème pour récupérer une valeur avec ExecuteExcel4Macro
    Par lege00 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/10/2020, 10h48
  2. Réponses: 2
    Dernier message: 03/01/2012, 21h51
  3. Faire suivre une variable avec des espaces
    Par jonathan34 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/02/2008, 20h57
  4. Réponses: 17
    Dernier message: 01/06/2007, 08h16
  5. Réponses: 2
    Dernier message: 14/04/2006, 18h40

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