par
banban55 » 15 oct. 2008, 18:15
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 ;
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]<?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
?>[/php]
composition de ma table sql :
[code]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 ;
[/code]