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 :

Sélection avec un WHERE


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Par défaut Sélection avec un WHERE
    Bonsoir à tous, je me permet de venir demander un peu d'aide dans le coin, ceci est mon premier message, j'espère respecter la charte du forum avec mes questions ( et je suis désolé si un tel problème est déjà présent, je ne l'ai visiblement pas vu )

    Je suis actuellement en train de tenter de faire une application avec Phonegap dans le cadre d'un stage en entreprise.

    Après moult tutoriels, j'ai finalement réussi à récupérer les données que je passe en paramètres d'url au sein de mon application grâce à ce code :

    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
    <?php
    include 'config2.php';
     
     
    $sql = "select id, nom, categories, avantage, meta_desc, image, description, adresse, code_postal, " .
    		"ville, telephone, mail, site_web, reseau_fb " . 
    		"from avantage " .
    		"where id = :id ";
     
    try {
    	$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);	
    	$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	$stmt = $dbh->prepare($sql);  
    	$stmt->bindParam("id", $_GET[id]);
    	$stmt->execute();
    	$avantage = $stmt->fetchObject();  
    	$dbh = null;
    	echo '{"item":'. json_encode($avantage) .'}'; 
    } catch(PDOException $e) {
    	echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
     
    ?>
    Grâce à ça j'arrive bel et bien après un lien à récupérer les données.

    Seulement, j'ai besoin de trier ces "avantages", en effet, ils possèdent tous plusieurs catégories du type #4-#17- , certains ayant même jusqu'à quatre catégories #5-#9-#16-#9- . Ce sont là, bien évidemment des exemples, il y a de multiples combinaisons possibles.

    Mon problème est donc le suivant, je n'arrive pas à faire une requête SQL avec un ' WHERE categories = ', qui ne m'affiche que les avantages possédant un dièse, suivi de l'id que je passe en paramètre d'url et terminant par un tiret.

    Je pense que la réponse est plutôt simple mais je bute complètement dessus.

    Voilà j'espère que j'ai réussi à correctement exprimer mon problème, n'ayant personne dans mon entourage pouvant me donner un conseil j'espère trouver ici un début de piste.

    Merci par avance à vous.

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Pourquoi tu ne modifierais pas le BindParram comme ceci pour essayer ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $stmt->bindParam("id", "#".$_GET[id]."-");
    De manière à répondre à ceci:
    je n'arrive pas à faire une requête SQL avec un ' WHERE categories = ', qui ne m'affiche que les avantages possédant un dièse, suivi de l'id que je passe en paramètre d'url et terminant par un tiret.

  3. #3
    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,

    si tes catégories sont au format texte, il va te falloir passer par quelque chose dans ce genre
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE categorie LIKE '%#25%'

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour Martin,

    Je comprends pas ton like ?

    C pas plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "WHERE Nom LIKE CONCAT('#', :id, '-') ".
    Il y a peut être à échapper les caractères # et -

  5. #5
    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
    C'est la version finale SQL.

    Si c'est un texte qui concatène plusieurs catégories, il y a de fortes chances qu'elle soit n'importe où dedans, d'où l'utilisation de LIKE avec les méta-caractères (%) pour signifier le n'importe où.

Discussions similaires

  1. Recupérer une donnée avec un WHERE concernant la date
    Par benlasavate dans le forum Access
    Réponses: 1
    Dernier message: 23/01/2006, 08h18
  2. Problème avec le WHERE
    Par izou9002 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 12/01/2006, 15h03
  3. Pb sélection avec Champ vide
    Par Luffy Duck dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/10/2005, 12h11
  4. Petit souci avec clause where
    Par ybruant dans le forum SQL
    Réponses: 1
    Dernier message: 21/07/2005, 22h10
  5. jointure externe avec un where, me pose problème!
    Par Danae dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/07/2005, 17h37

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