Page 1 sur 1

Help sur une requete : Récupérer un nombre limité de caractè

Posté : 27 sept. 2007, 13:08
par supercanard
Bonjour,

Voilà j'ai cherché sur le net la solution... je crois que j'y suis presque mais la je sèche. Je voudrais récupérer dans une table, tous mes champs, mais sur mon champt texte je voudrais ne récupérer qu'un nombre limité de caractères.

Déjà la partie correspondant à la limite de caractère ne fonctionne pas avec tous mes champs, mais en plus récupérer tous les autres champs dans la même requête là je suis perdu...

Voici ce que j'ai pour l'instant, bien entendu c'est faux :

Code : Tout sélectionner

$req_news= mysql_query("SELECT * DISTINCT LEFT (texte,2) AS texte FROM grunge_news");
J'espère que vous pourrez éclairer ma lanterne :wink:

Posté : 27 sept. 2007, 13:35
par Cyrano
Regarde dans la doc les informations sur la fonction SUBSTRING() qui devrait répondre à ton problème

Re: Help sur une requete : Récupérer un nombre limité de car

Posté : 27 sept. 2007, 13:54
par Sedril

Code : Tout sélectionner

$req_news= mysql_query("SELECT * DISTINCT LEFT (texte,2) AS texte FROM grunge_news");
Eh bien, ta requête a en effet un problème...

Il faut écrire

Code : Tout sélectionner

SELECT DISTINCT *, LEFT(texte,2) AS short_texte FROM grunge_news
Tu as vraiment besoin de tout les champs (*) et de dédoublonner (DISTINCT) ?

Je te conseille de ne mettre que la liste des champs nécessaire (séparés par des virgules) et si le DISTINCT ne s'impose pas de le supprimer. Il est souvent préférable de mettre un clause de restriction qui va éliminer les doublons plutôt que d'utiliser DISTINCT.

Posté : 27 sept. 2007, 14:21
par supercanard
Alors en fait non j'ai pas besoin de tout donc :

Code : Tout sélectionner

$req_news= mysql_query("SELECT DISTINCT id,titre,texte, LEFT(texte,2) AS short_texte FROM grunge_news");
Mais ça ne fait rien, ma donnée texte s'affiche toujours en entier :?

Je vais tenter avec SUBSTRING()



:wink:

Posté : 27 sept. 2007, 14:44
par Ryle
Euh.. juste pour être sur par rapport à ce que tu dis... dans ta requête avec LEFT(), ton champ "texte" n'est pas modifié, c'est "short_texte" qui doit contenir les 2 premiers caractères :)

Et si tu récupères un id, je pense qu'il y a peu de chance que tu ais des doublons, le distinct n'est donc peut être pas utile...

Posté : 27 sept. 2007, 14:56
par supercanard
Euh.. juste pour être sur par rapport à ce que tu dis... dans ta requête avec LEFT(), ton champ "texte" n'est pas modifié, c'est "short_texte" qui doit contenir les 2 premiers caractères :)

Et si tu récupères un id, je pense qu'il y a peu de chance que tu ais des doublons, le distinct n'est donc peut être pas utile...
Ah oui non je viens de capter mais DISTINCT effectivement j'en ai pas besoin.
Mais je comprends toujours pas :

Code : Tout sélectionner

$req_news= mysql_query("SELECT id,titre,texte, LEFT(texte,2) AS short_texte FROM grunge_news");
Ensuite
while ($data_news= mysql_fetch_array($req_news)) {
echo '<h2>'.$data_news['titre'].'</h2>'.$data_news['short_texte'].'<p>'.$data['auteur'].'</p>';
}
?>
Ou est l'erreur ? :shock:

Edit : trouvé 'texte'