Php SQL : afficher que les entré qui commencent par C ??

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

marion17
WRInaute passionné
WRInaute passionné
 
Messages: 518
Inscription: Sam Nov 11, 2006 18:24

Php SQL : afficher que les entré qui commencent par C ??

Message le Sam Jan 20, 2007 23:24

salut a tous

je me demander si il était possible avec une requette sql de n'afficher que les données d'une table commençant par la lettre C ???

merci


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Sam Jan 20, 2007 23:57

where attribut='C*' ?


tom_pascal
WRInaute impliqué
WRInaute impliqué
 
Messages: 278
Inscription: Lun Nov 17, 2003 13:58

Message le Sam Jan 20, 2007 23:58

Je dirais :
Code: Tout sélectionner
WHERE attribut LIKE 'C%'

plutôt.

marion17
WRInaute passionné
WRInaute passionné
 
Messages: 518
Inscription: Sam Nov 11, 2006 18:24

Message le Dim Jan 21, 2007 0:03

bon je testerais ça demain, et je vous donne des new, merci :)

fablezouave
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Mer Déc 20, 2006 7:33

Message le Dim Jan 21, 2007 10:43

salut

LIKE est une commande assez gourmande en ressources. Dans l'optique d'optimiser ta requète, tu peux faire aussi comme ça :

Code: Tout sélectionner
SELECT .... FROM tatable WHERE LEFT(attribut , 1) = 'C'


fab

marion17
WRInaute passionné
WRInaute passionné
 
Messages: 518
Inscription: Sam Nov 11, 2006 18:24

Message le Lun Jan 22, 2007 20:33

merci mais je ne trouve pas la bonne syntax

j'ai esayer comme ça :

$res = mysql_query("SELECT salut FROM bonjour WHERE LEFT(attribut , 1) = 'C' LIMIT 0, 10");

while($r = mysql_fetch_array($res)){


etc..
}

mais ça me met "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in I:\xampplite\monsite\index.php on line 146"

quand j'enleve le where tous marche bien par contre.

vous voyez d'ou ça peu venir ?

fablezouave
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Mer Déc 20, 2006 7:33

Message le Lun Jan 22, 2007 20:37

re

attribut est bien un champ de ta table ? Que raconte mysql_error() ?

fab


NxtGen
WRInaute passionné
WRInaute passionné
 
Messages: 730
Inscription: Mar Oct 24, 2006 4:35

Message le Lun Jan 22, 2007 20:39

"attribut" correspond au nom de la colonne ou tu veux rechercher les champs qui commencent par C

C'était donné en exemple, il faut changer "attribut" par le nom de ta colonne ;)

marion17
WRInaute passionné
WRInaute passionné
 
Messages: 518
Inscription: Sam Nov 11, 2006 18:24

Message le Lun Jan 22, 2007 20:49

NxtGen a écrit:"attribut" correspond au nom de la colonne ou tu veux rechercher les champs qui commencent par C

C'était donné en exemple, il faut changer "attribut" par le nom de ta colonne ;)


ha genial !!

en effet j'ai mi le nom du champ de la table et ça marche impecable :)

je suis sur un mutalisé donc j'espere que ta jolie requette fablezouave est bien optimisée :)

c'en ai presque magique, et un gros merci car j'aurais jamais trouvée toute seul :)

a charge de revanche ,c'est ça l'esprit wri ^^

ACth
WRInaute passionné
WRInaute passionné
 
Messages: 795
Inscription: Sam Nov 11, 2006 12:32

Message le Lun Jan 22, 2007 20:57

fablezouave a écrit:salut

LIKE est une commande assez gourmande en ressources. Dans l'optique d'optimiser ta requète, tu peux faire aussi comme ça :

Code: Tout sélectionner
SELECT .... FROM tatable WHERE LEFT(attribut , 1) = 'C'


fab

Je suis bien intéressé.

As-tu des liens indiquant que cette méthode est moins gourmande que le LIKE ?

fablezouave
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 109
Inscription: Mer Déc 20, 2006 7:33

Message le Lun Jan 22, 2007 22:10

LIKE utilise une expression régulière, alors que LEFT utilise une simple fonction de bas niveau sur la chaîne de caractère.
Des liens ? non, par contre tu peux faire un simple test en insérant un nombre conséquant d'enregistrements dans une table ...
On peut cependant rendre ce "like" assez rapide en placant un index sur la colonne. C'est la seule forme de LIKE (LIKE 'chaine%' ou LIKE 'chaine') où l'index sera utilisé, car 'chaine' est au début, donc l'expression est constante.

Enfin, bref, dans la majorité des cas, c'est à éviter :)

fab

ACth
WRInaute passionné
WRInaute passionné
 
Messages: 795
Inscription: Sam Nov 11, 2006 12:32

Message le Mar Jan 23, 2007 8:53

ok, merci, c'est bon à savoir.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Website Optimizer

  • Indice de co-occurrence et ratio E/F
    Cet outil vous permet de calculer l'indice de co-occurrence de 2 ou 3 termes, ainsi que le ratio E/F. L'indice de co-occurrence mesure le relation entre les termes : plus cet indice est élevé, plus les termes sont reliés. Concrètement, plus l'indice est élevé, plus il est fréquent de trouver des documents qui contiennent les différents termes.
  • Analyse de similarité textuelle
    Cet outil vous permet de calculer la similarité entre 2 pages web. L'algorithme utilisé repose sur l'analyse des occurrences des mots (mais pas sur leur positionnement dans les pages). Google utilise cette notion à certains endroits dans son algorithme, mais de façon bien plus évoluée que ce petit outil... Avoir des pages trop similaires peut entraîner des problèmes d'indexation... Cet outil vous permettra peut-être de résoudre certains problèmes de contenus dupliqués.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités