Forum de discussion et d'aide au php
Vous n'êtes pas identifié.
|
Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides. FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans. Proposez vos news : si vous avez un evenement à annoncer le chat : venez discuter de php. |
||
Bonjour,
Je vient de mettre sur mon site un code pour inscrire les mots clés taper, pouvez me dire comment faire pour les limiter a 5?
Merci
Hors ligne
si c'est un input, tu peux définir un nombre de caracteres maximum avec l'option maxlength.
mais, pour définir le nombre de mots, ce que je ferai, c'est un explode que les expaces : $var = explode(" ", $var);
puis, tu compte le nombre d'entrées avec sizeof($var);
et la, tu a ton nombre de mots ![]()
Hors ligne
Non ce n'est pas un INPUT, j' ai créer une table sur phpmyadmin qui enrgistre tout les mots cherchés dans mon moteur.
Puis sur ma page, j' ai insérer ça pour afficher les mots:
<?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'xh132690', 'uLiHH');
// on sélectionne la base
mysql_select_db('xh132690',$db);
// on crée la requête SQL
$sql = 'SELECT mots FROM k_search';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours
echo '<b>'.$data,$limit=5 ['mots'].' <br>';
}
// on ferme la connexion à mysql
mysql_close();
?>
Mais je ne sais pas ou faire la modif, tout mes éssais sont mauvais.
Est que c' est possible?
Merci
Hors ligne
Tu vas me dire que je suis super nul, mais j'arrive pas a le faire.
J' ai enlever
,$limit=5 ['mots']
dans la partie affichage des infos de l'enregistrement, car i me donnais un méssage d'erreur.
Mais pour l'explode je dois faire comment?, je ne vois pas!
Merci
Hors ligne
J'ai bien placé ton code mais les mots ne sont pas limités j'i toujours tout les mots qui apparaisse, il faut en plus de ton code rajouter autre chose ou ça devrait fonctionner comme ça?
Hors ligne
Mince les mots ne s'affiche plus
Pour récapiuler j' ai:
Une table "k_search" avec 2 champs"id et mots" ou sont enregistrer les mots.
Les mots sont bien enregistrers. Jusque là ça va.
Ensuite je veux les faire apparitre sur ma page, pour cela j'ai mis:
<?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'xh132690', 'uLiHH');
// on sélectionne la base
mysql_select_db('xh132690',$db);
$data = explode(" ", $data);
$f = 0;
while ($f <= 5) {
$f++;
$data2 .= $data[$f];
}
echo $data2;
// on crée la requête SQL
$sql = 'SELECT mots FROM k_search';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
{
// on affiche les informations de l'enregistrement en cours
while($data = mysql_fetch_assoc($req))
echo '<b>'.$data2['mots'].' <br>';
}
// on ferme la connexion à mysql
mysql_close();
?>
Mais ça n'affiche rien, je suis vraiment perdu. Tu vois d'ou ça vient?
Hors ligne
bon bon bon...
on va faire différemment
function limitew($data, $l = 5) {
$data = explode(" ", $data);
$f = 0;
while ($f <= $l) {
$f++;
$data2 .= $data[$f];
}
return $data2;
}voila, tu mets ca au début de ton code
et ta ligne
echo '<b>'.$data2['mots'].' <br>';
tu la remplace par :
echo '<b>'.limitew($data['mots']).' <br>';
ca devrait fonctionner ![]()
Hors ligne
Voila ce que j'ai mit:
<?php
function limitew($data, $l = 5) {
$data = explode(" ", $data);
$f = 0;
while ($f <= $l) {
$f++;
$data2 .= $data[$f];
}
return $data2;
}
// on se connecte à MySQL
$db = mysql_connect('localhost', 'xh132690', 'uLiHH');
// on sélectionne la base
mysql_select_db('xh132690',$db);
// on crée la requête SQL
$sql = 'SELECT mots FROM k_search';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
{
// on affiche les informations de l'enregistrement en cours
while($data = mysql_fetch_assoc($req))
echo '<b>'.limitew($data['mots']).' <br>';
}
// on ferme la connexion à mysql
mysql_close();
?>
C'est comme tu ma dit, je ne me suis pas trompé?
Mais il n'y a rien qui s'affiche, la page reste blanche.
Hors ligne
y'avait quelques petits oublis ds la fonction
function limitew($data, $l = 5) {
$data = explode(" ", $data);
$f = 0;
while ($f < $l) {
$data2 .= $data[$f]." ";
$f++;
}
return $data2;
}et je viens de tester. si ta variable est correctement définie, il n'y a aucun probleme avec cette fonction ![]()
Hors ligne
Toujours feuille blanche, ça doit peut être venir de mon code installé sur la page du moteur de recherche. Tant pis.
Je te remercie de ton aide
@+
Hors ligne