Page 1 sur 1

probleme de variable dans array

Posté : 15 oct. 2008, 18:15
par banban55
Bonjour,

Je vous explique mon soucis, je souhaite faire apparaitre les resultats de ma table sql par colonne, jusque la pas de probleme... le probleme arrive, je désir déclaré d'autres variables pour qu'elle s'affiche en en rapport avec id car actuellement il m'affiche bien les enregistrements mais seulement avec la variable $image,


Pas simple à expliquer

mon script php :
<?php
//connection sql
mysql_connect("*****", "*****", "*****");
mysql_select_db("*****");
echo '<table border="0" cellpadding="0" cellspacing="0">'; 
// On récupère le résultat de la requête SQL de sélection des données sur les navigateurs
$resultat = mysql_query("SELECT * FROM visiteur ORDER BY id DESC LIMIT 10");
// Nombre maximum de lignes souhaitées
$max_colonnes = 10; 
// On compte le nombre de résultat
$nb_resultat = mysql_num_rows($resultat); 
// On veut un maximum de 2 colonnes donc on calcul le nombre de colonnes en arrondissant à l'entier supérieur
$nb_lignes = ceil($nb_resultat / $max_colonnes); 
// On cré un tableau par ligne
for($i = 1; $i <= $nb_lignes; $i++)
{
     ${'ligne'.$i} = array();
}
 
// On initialise la ligne en cours à 1, première ligne
$ligne_en_cours = 1; 
// On initialise le nombre de colonne à 1 qui va nous servir de compteur de colonne
$nb_colonnes = 1; 
// On parcourt le tableau $resultat de la requête et on stock chacune des lignes dans le nouveau tableau $tab
while($tab = mysql_fetch_array($resultat))
{  
  // On insère les résultats dans les tableaux créés ci-dessus
  array_push(${'ligne'.$ligne_en_cours}, $tab['image']);
  $id= $tab['id'];
  $image= $tab['image'];
  $type= $tab['type'];
  // On vérifie si l'on est pas au maximum de ligne souhaité afin de revenir à la première ligne
  if($ligne_en_cours == $nb_lignes)
  {
     $ligne_en_cours = 1;     
     // On passe à la colonne suivante
     $nb_colonnes++;     
  // On passe à la ligne suivante s'il reste suffisemment de colonnes pour arriver au $max_colonnes
  // autrement, on laisse l'insertion dans la ligne 1
  } elseif($ligne_en_cours != $nb_lignes && ($nb_resultat - $nb_colonnes) >= $max_colonnes) {
       $ligne_en_cours++;
  }
}
 
// On commence l'affichage ligne par ligne
for($i = 1; $i <= $nb_lignes; $i++)
{
  if($i != 1)
  {
       echo'</tr>';
  }
  echo'<tr></tr>';  
  // On parcourt le tableau de la ligne pour son affichage
  foreach(${'ligne'.$i} as $image)
  {
       echo'<td><table width="67" border="0" cellspacing="0" cellpadding="0">
            <tr>
              <td width="67" height="120"><a id="custom_3" href="frame/detail.php?apercu='.$id.'"><img src="imagedevis/apercu_page_accueil/'.$image.'" width="67" title="'.$type.'" alt="'.$image.'" height="120" border="0"/></a></td>
            </tr>
          </table></td>';
  }
}
echo'</table>'; 
mysql_close(); // Déconnexion de MySQL
?>
composition de ma table sql :

Code : Tout sélectionner

CREATE TABLE `visiteur` ( `id` int(11) NOT NULL auto_increment, `type` varchar(50) NOT NULL default '', `url` varchar(200) NOT NULL default '', `description` text NOT NULL, `date` int(50) NOT NULL default '0', `image` varchar(255) NOT NULL default 'apercudefaut.jpg', `image_apercu` varchar(50) NOT NULL default 'apercugrand.jpg', `titre` varchar(50) NOT NULL default '', PRIMARY KEY (`id`), KEY `type` (`type`) ) TYPE=MyISAM AUTO_INCREMENT=14 ;

Posté : 15 oct. 2008, 20:11
par Aureusms
Pourquoi tu ne mets pas tous dans un même tableau qui aurait ainsi le même index?

Posté : 15 oct. 2008, 20:30
par banban55
peux tu me fournir plus d'information sur la façon de mettre tous dans le array ?