Kwent-Design Posté 26 Avril 2010 Partager Posté 26 Avril 2010 Hello, Bon troisième question en deux jours Je fais une requête SQL via une page php et je voudrais limiter le nombre de ligne à la sortie. Ex : le contenu de mon champ fait 277 lignes de texte, je voudrais que seul les 20 premières ressorte. J'ai fait mes petites recherches et apparemment il y aurait une histoire de ROWNUM, mais je dois dire que les gens n'ont pas l'air vraiment d'accord sur son utilisation. Pouvez vous m'éclairez là dessus ? Merci d'avance à ceux qui me répondront Kwent' Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 26 Avril 2010 Partager Posté 26 Avril 2010 Tu veux limiter le nombre de résultats de la requête? Il faut utiliser LIMIT pour ça: http://dev.mysql.com/doc/refman/5.5/en/select.html#id826477 Si c'est le nombre de lignes de texte d'un résultat, ça va être plus subtil, parce que ça dépend de la largeur d'affichage, de la taille du texte, etc. En général on limite plutôt à un certain nombre de caractères, et on se débrouille pour couper au niveau d'un mot. Si ce n'est aucun des deux que tu veux, il va falloir être plus précis, avec un exemple peut-être... Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kwent-Design Posté 27 Avril 2010 Auteur Partager Posté 27 Avril 2010 Hello Jacques, Merci beaucoup pour ta réponse Alors ce que je veux, c'est exactement ce que tu me cite après ton exemple de LIMIT. En gros j'ai un champ de type TEXT qui fait : "Youpi youpla j'aime le chocolat les chips la bière et les amandes" Et sur ma page php je voudrais juste afficher "Youpi Youpla j'aime le chocolat" et mettre un lien "Lire plus" juste en dessous qui renvoie vers la page ou le texte en entier est affiché. Donc ce dont j'ai besoin c'est surement de limiter le résultat a un certain nombre de caractères ... si tu as une piste pour moi j'en serait ravi !! Merci encore Kwent' Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 27 Avril 2010 Partager Posté 27 Avril 2010 Si tu veux limiter "bêtement" à un certain nombre de caractères, alors substring en SQL (http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_substring) ou substr en php (http://php.net/manual/en/function.substr.php) sont tes amis. Si tu veux faire un peu plus intelligent et couper entre deux mots plutôt que n'importe où, tu peux utiliser: - substring_index en sql (substring_index(texte,' ',100) pour avoir les 100 premiers mots par exemple) - strrpos en php pour chercher le dernier espace (et couper ensuite, donc ça donne substr($texte,0,strrpos($texte,' ',1000)) pour couper avant 1000 caractères par exemple) - des regex en php - tout plein d'autres méthodes probablement. Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kwent-Design Posté 27 Avril 2010 Auteur Partager Posté 27 Avril 2010 En fait je connais la méthode en php avec "strlen" et "strstr" mais la je fait une sélection au hasard avec une image un titre et un texte, sachant que "strlen" ne prend que des chaines de caractères en compte pas les tableaux (j'ai utilisé un "array_rand") ... donc pour etre tout a fait clair je cherche le moyen de le faire dans la requete SQL. .. Ooooops je n'avais pas vu ta réponse .... Merci bien je teste ça tout de suite, ça devrait marcher !! Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 27 Avril 2010 Partager Posté 27 Avril 2010 Euh... Tu veux forcément le faire sur du texte, qui va être un élément d'un tableau... Au passage, si tu cherches "couper du texte" sur Google, tu vas avoir droit à plein de méthodes... Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kwent-Design Posté 27 Avril 2010 Auteur Partager Posté 27 Avril 2010 Je vais encore t'emmerder tant que je t'ai sous la main , mais je vois pas a cause d emon putain de tableau comment insérer ça (je suis vraiment pas bon en code !!) J'ai ça : $reponse = $bdd->query("SELECT * FROM artistes WHERE nom='" . $tabTotal[$tabKeys[$i]] . "' "); Ta méthode "(substring_index(texte,' ',100)" me semble la bonne, mais je peux la placer où ?? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jcaron Posté 27 Avril 2010 Partager Posté 27 Avril 2010 Ben dans ton select: SELECT substring_index(nom_de_la_colonne_a_couper,' ',100) AS nom_que_tu_vas_utiliser_pour_retrouver_ce_champ,autres_colonnes_que_tu_veux FROM artistes etc. Il est temps d'aller lire la doc :-) Jacques. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Kwent-Design Posté 27 Avril 2010 Auteur Partager Posté 27 Avril 2010 Merci merci et encore merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant