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 :

Count(*) + LIKE PDO [PDO]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Par défaut Count(*) + LIKE PDO
    Bonjour à vous,

    Je me lance dans le PDO pour un petit projet pour mon entreprise et je bloque sur cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function nombre_log($search_word_fix) {
    	global $connexion;
    	$requete = $connexion->prepare('SELECT COUNT(*) FROM cc WHERE alliance LIKE :log');
    	$requete->execute(array(':log' => $search_word_fix . '%'));
    	$requete->fetchColumn();
    	$requete->closeCursor();
    	return $requete;
    }
    Cette fonction me permet de compter le nombre de "log" correspondant à une recherche en jquery.

    Si aucune occurrence à ma recherche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else { echo "<li>Aucun Resultat</li>"; }
    Voici le script complet :

    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
    include("conf/db.php");
     
     
    function nombre_log($search_word_fix) {
    	global $connexion;
    	$requete = $connexion->prepare('SELECT COUNT(*) FROM cc WHERE alliance LIKE :log');
    	$requete->execute(array(':log' => $search_word_fix . '%'));
    	$requete->fetchColumn();
    	$requete->closeCursor();
    	return $requete;
    }
     
    function liste_cc($log)
    {
    	global $connexion;
    	$requete = $connexion->prepare('SELECT * FROM cc WHERE alliance LIKE :log');
    	$requete->execute(array(':log' => $log . '%'));
    	while($result = $requete->fetch(PDO::FETCH_ASSOC)) {
    		$resultat[] = $result;
    	}
    	$requete->closeCursor();
    	return $resultat;
    } 
     
    if(isset($_GET['search_word']))
    {
    		$search_word=$_GET['search_word'];
    		$search_word_new=mysql_escape_string($search_word);
    		$search_word_fix=str_replace(" ","%",$search_word_new);
     
    	if($nombre_log($search_word_new) > 0)
    	{
     
    		$pL = liste_cc($search_word_new);
     
    		foreach ($pL as $s)
    		{
    		$bold_word='<b><font color="red">'.$search_word.'</font></b>';
    		$final_msg = str_ireplace($search_word, $bold_word, $s['alliance']);
    		?>
     
    		<li><?php echo $final_msg ?> - <?php echo $s['conseillers']; ?> - <?php echo $s['superviseur']; ?></li>
     
    		<?php
    		}
    	}
    	else { echo "<li>Aucun Resultat</li>"; }
    }
    ?>
    Je n'arrive pas à comprendre mon erreur, pouvez-vous me guider?

    Cordialement,

  2. #2
    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
    Bonjour,

    Si tu décide d'utiliser PDO, tu dois arrêter de faire appel à mysql_real_escape_string(). Quand tu prépares un sql et que tu lui passe des valeurs, ces dernières sont automatiquement sécurisées.

    Voici ce que tu fais :
    nombre_log() -> PDO
    liste_cc() -> PDO
    Dans le code principal tu fais en ligne 29 : mysql_escape_string()
    En ligne 35 -> appel à liste_cc avec pour paramètre la variable trafiquée en ligne 29 !
    Manipules tes données de manière brute et laisse PDO les sécuriser au dernier moment.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Par défaut
    Bonjour et merci de la réponse,

    Je vais effectué le changement et re-tester, je vous tiens au courant.

    Cordialement,

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2012
    Messages : 4
    Par défaut [resolu]
    Après modification de mon script comme tu m'as demandé rawsrc , tout est rentré dans l'ordre.
    Merci pour la correction qui fût d'une grande aide.

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

Discussions similaires

  1. [PDO] Récupérer le résultat d'un COUNT avec PDO
    Par Zanarkand dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/11/2012, 20h24
  2. [MySQL] PDO +SELECT + LIKE
    Par Paniez dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/02/2011, 16h17
  3. [PDO] problème de requête like utilisant PDO
    Par hades89 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/10/2010, 19h36
  4. [PDO] Pdo fetch et count
    Par rikemSen dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/09/2010, 12h02
  5. [PDO] PDO et REGEXP ou LIKE sur un parametre
    Par lounislounis dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 06/02/2010, 18h50

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