Suivez les fils RSS
 
Auteur
pareto
# 16 Mar 2010 - 19:30:26
Citer
163 Posts
Bonsoir à tous, je cherche LA requête SQL qui permet d'afficher les 300 premiers caractères d'un champ d'une bdd lors d'une recherche

Je m'explique, j'ai une page avec un moteur de recherche, je souhaiterai pouvoir afficher les resultats de la recherche comme ceci:

Titre de l'article (ok je sais faire)
date de parution (ok je sais faire)
+ Le début de l'article (environ les 300 premiers caractères ou 25 premiers mots)

ça ne doit pas être super compliqué, mais je n'y arrive pas tout seul.

Merci d'avance à tous ceux qui pourront m'aider
Modifié par pareto (18 Mar 2010 - 18:08)

^
Baptiste08
# 16 Mar 2010 - 19:35:18
Citer
54 Posts
salut!
C'est avec la fonction substr
On met donc la variable à modifier, puis le 0 c'est qu'on commence à partir du caractere 0, puis on va jusqu'au 300eme caractere.
<?php substr($variable,0,300) ?>

et donc pour faire un truc sympa avec ... et une récupération de donnée ça fait:
<?php
echo "<p>".substr($data["contenu"],0,300)." ...</p>";
?>


voilà!
@+
Modifié par Baptiste08 (16 Mar 2010 - 19:35)

Baptiste

http://www.lestrains.fr msn 
^
moust
# 16 Mar 2010 - 19:38:09
Citer
438 Posts
Un bon vieux explode sur ta chaine sur les espaces puis tu met le nombre de mots que tu veux.


function breakString($string, $nbMots)
{
$string = 'Ma chaine de caractère à couper';

$mots = explode(' ', $string);

$string = '';
for($i = 0; $i < $nbMots; $i++)
{
$string .= $mots[$i];
}

return $string;
}


A noter qu'on peut faire encore mieux avec la fonction preg_split() :

preg_split("/[\s,]+/", $string);

Modifié par moust (16 Mar 2010 - 19:46)

http://www.deadline6am.com/ 
^
Heyoan
# 16 Mar 2010 - 19:44:54
Citer
Modérateur
8101 Posts
Salut,

moust a écrit :
RTFM
Ben en l'occurrence c'est plus facile quand on connaît le nom de la fonction. biggol

Sinon pour ce qui est du côté SQL c'est SUBSTRING ou dans ton cas plutôt LEFT.
Modifié par Heyoan (16 Mar 2010 - 19:46)

^
Baptiste08
# 16 Mar 2010 - 19:46:00
Citer
54 Posts
Effectivement mous ta solution est mieux!
merci cligne
@+

Baptiste

http://www.lestrains.fr msn 
^
pareto
# 16 Mar 2010 - 19:47:10
Citer
163 Posts
Merci beaucoup, vous m'avez bien aidé, ça fonctionne super.

^
moust
# 16 Mar 2010 - 19:49:06
Citer
438 Posts
Je viens d'éditer mon message pour apporter une éventuelle amélioration avec la fonction preg_split() qui permet de couper sur expression rationnelle, prenant en compte les virgules, \n etc...

Heyoan -> au passage je m'était planté dans l'énoncé et la fonction que je donnais ne correspondait pas langue
Mais il n'empêche que la manuel regroupe toutes les fonctions applicables sur une string et qu'il suffit de les passer en revue pour trouver son bonheur cligne

http://www.deadline6am.com/ 
^
Heyoan
# 16 Mar 2010 - 20:06:53
Citer
Modérateur
8101 Posts
moust a écrit :
Mais il n'empêche que la manuel regroupe toutes les fonctions applicables sur une string et qu'il suffit de les passer en revue pour trouver son bonheur
C'est vrai mais je ne trouve pas que php.net soit très intuitif et si tu ne sais pas du tout ce que tu cherches c'est pas évident de s'y retrouver. cligne

^