Comment insèrer $variable dans un tableau alléatoire?

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


tryan
WRInaute accro
WRInaute accro
 
Messages: 1499
Inscription: Dim Fév 20, 2005 14:14

Comment insèrer $variable dans un tableau alléatoire?

Message le Ven Sep 21, 2007 21:40

Bonjour,
Je tente de faire passer une variable dans un tableau alléatoire.
Ma variable $mots me renvoit 50 mots.
J'utilise le tableau ci-dessous:

Code: Tout sélectionner
<?php

$tablo = array("$mots");
srand((float)microtime()*1000000);
shuffle($tablo);
$nbcol=4;
echo '<table border=\"1\">';
$nb=count($tablo);
for($i=0;$i<$nb;$i++)
{
//les valeurs à afficher
$valeur1=$tablo[$i];
if($i%$nbcol==0)
echo '<tr>';
echo '<td>',$valeur1,'</td>';
if($i%$nbcol==($nbcol-1))
echo '</tr>';
}
echo '</tr></table>';

?>

Mon soucis est que je ne parvient pas à dissocier les mots "envoyés" par $mots dans les colonnes du tableau (4). Ceux ci s'affiche dans un seul tableau les un après les autres.
Comment dois je procèder pour que chaque mot s'affiche dans une cellule ?
Merci


tryan
WRInaute accro
WRInaute accro
 
Messages: 1499
Inscription: Dim Fév 20, 2005 14:14

Message le Sam Sep 22, 2007 12:02

Personne n'a une petite solution sous le coude ?


passion
WRInaute accro
WRInaute accro
 
Messages: 2424
Inscription: Ven Jan 06, 2006 20:18

Message le Sam Sep 22, 2007 12:12

C'est normal puisque ta variable $tablo est un tableau comportant qu'une entrée.Et ça:
Code: Tout sélectionner
$tablo[$i];

ça peut pas marcher..

tu dois faire d'abord un explode de $mots puis l'insérer ensuite dans $tablo et là, tu pourras faire
Code: Tout sélectionner
$tablo[$i];


Voilà


tryan
WRInaute accro
WRInaute accro
 
Messages: 1499
Inscription: Dim Fév 20, 2005 14:14

Message le Sam Sep 22, 2007 13:23

Merci de ta réponse passion.
Bon , je ne suis pas doué en php alors j'ai cherché et testé cette fonction sans succès.
Si je fais:
Code: Tout sélectionner
<?
  $teste = "$mots";
  $truc = explode("\n", $teste);
echo "$teste";
?>

...sa me sort ma liste de mots.
J'ai donc testé:
Code: Tout sélectionner
<?php
  $teste = "$mots";
  $truc = explode("\n", $teste);
  $tablo = array("$teste");
srand((float)microtime()*1000000);
shuffle($tablo);
$nbcol=4;
echo '<table border=\"1\">';
$nb=count($tablo);
for($i=0;$i<$nb;$i++)
{
//les valeurs à afficher
$valeur1=$tablo[$i];
if($i%$nbcol==0)
echo '<tr>';
echo '<td>',$valeur1,'</td>';
if($i%$nbcol==($nbcol-1))
echo '</tr>';
}
echo '</tr></table>';

?>

Bon je continue de chercher et de comprendre mais je sèche ...


xTrade
WRInaute accro
WRInaute accro
 
Messages: 2258
Inscription: Lun Déc 11, 2006 14:10

Message le Sam Sep 22, 2007 14:00

Dans $mot, tes mots sont bien séparés par \n?


tryan
WRInaute accro
WRInaute accro
 
Messages: 1499
Inscription: Dim Fév 20, 2005 14:14

Message le Sam Sep 22, 2007 14:43

xTrade a écrit:Dans $mot, tes mots sont bien séparés par \n?

Excuse mais je suis totalement largué.
Mon dernier teste (code ci dessus) me renvoie mes mots dans un tableau séparé par un trait (-).
On va faire plus simple:
Code: Tout sélectionner
$lk = connection_BD();
   
   // Création de la requête
   $sql = "SELECT id,keyw,nbkw,google FROM $T_keywords ORDER BY RAND() LIMIT 0,50 ";
   $res = send_sql($sql,"trouver les mots pour créer la liste");

      while ( $keyword = mysql_fetch_array($res,MYSQL_ASSOC) )
   {

      if ( $n<=$PMA_infos['kw_cliquables'] ) $keywords .= "<a

href="".id_to_url($keyword['id'],$keyword['keyw'],'1','keyw')."" class="">";
      $keywords .= stripslashes($keyword['keyw']);
      if ( $n<=$PMA_infos['kw_cliquables'] ) $keywords .= "</a>";
      $keywords .= "-";
      

   };
   

   
mysql_close($lk);

Plus loin mon code:
Code: Tout sélectionner
<?php
  $teste = "$keywords";
  $truc = explode("\n", $teste);
$tablo = array("$teste");

srand((float)microtime()*1000000);
shuffle($tablo);
$nbcol=2;  // nombre de colonne. Ici 2
echo '<table border="1">';
$nb=count($tablo);

for($i=0;$i<$nb;$i++)
{
//les valeurs à afficher

$valeur1=$tablo[$i];
if($i%$nbcol==0)
echo '<tr>';
echo '<td>',$valeur1,'</td>';
if($i%$nbcol==($nbcol-1))
echo '</tr>';
}
echo '</tr></table>';

?>

A l'origine le code est prévue pour afficher des mots clef tapé par les visiteurs puis afficher par ordre croissant avec un nombre bien définit.


passion
WRInaute accro
WRInaute accro
 
Messages: 2424
Inscription: Ven Jan 06, 2006 20:18

Message le Sam Sep 22, 2007 14:59

Est-ce que $mots est une chaine de caractères genre
Bonjour, je suis content parce qu'il fait beau...

ou
"Bonjour|,|je|suis|content|parce|qu'il|fait|beau..."

Dans le deuxième cas, tu pourras utiliser la fonction explode en lui renseignant | comme séparateur et de cette façon, tu pourras remplir $tablo pour chaque nouvelle entrée et puis t'en servir via $tablo[$i]...

Voilà :)


xTrade
WRInaute accro
WRInaute accro
 
Messages: 2258
Inscription: Lun Déc 11, 2006 14:10

Message le Sam Sep 22, 2007 15:06

Voila, passion a résumé ce à quoi je pensais.


tryan
WRInaute accro
WRInaute accro
 
Messages: 1499
Inscription: Dim Fév 20, 2005 14:14

Message le Sam Sep 22, 2007 15:38

Bonjour, je suis content parce qu'il fait beau...

ou
"Bonjour|,|je|suis|content|parce|qu'il|fait|beau..."

Comment vérifier si c'est l'un ou l'autre ?
Et si c'est le 2ieme cas, la fonction ne marche pas ?


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 :



Qui est en ligne

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