Page 1 sur 2

Colonnes

Posté : 03 mars 2005, 14:16
par Véro
Débutante je cherche comment afficher une requête sur deux colonnes, plus tôt que sur une.. J'ai mon jeu d'enregistrement et ma région répétée, mais je n'ai pas trouvé comment afficher mes données sur 2 colonnes..Qui peut m'aider?
Un grand merci! :lol:

Posté : 03 mars 2005, 14:22
par Cyrano
On peut t'aider avec un bout de code de départ, ça va éclairer le débat qui pour l'instant est un peu abstrait : extrais-tu de ta base deux champs distincts d'une table ou bien des valeurs d'un seul champ mais dont tu voudrais l'affichage sur deux colonnes ?

Posté : 03 mars 2005, 14:24
par demipoulp
tout depand de la fome de ton tableau mais tu peus partir sur quelque chose comme ca :

Code : Tout sélectionner

<table ><tr><td widht="50%" valign="top"> <?php //On cherche le milieu des resultats $nbr=mysql_num_rows($q); $milieu=$nbr/2; $milieu=round($milieu); ?> <?php $i='0'; while ( $r= ) { //affichage de ttes resulats if ( $i==$milieu) { echo "</td><td>" ;} $i++; } </td></tr></table>

Posté : 03 mars 2005, 15:04
par Invité
Cyrano,

En fait j’ai un titre, un texte et une date a afficher (Style news) de plusieurs champs mais de la mm table et j’aimerais mettre les 10 derniers enregistrement sur 2 colonnes

Voila mon code..
<?php
$maxRows_Recordset1 = 10;
$pageNum_Recordset1 = 0;
if (isset($_GET['pageNum_Recordset1'])) {
$pageNum_Recordset1 = $_GET['pageNum_Recordset1'];
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;

mysql_select_db($database_conn_oufti, $conn_oufti);
$query_Recordset1 = "SELECT * FROM t_news";
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1, $conn_oufti) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);

if (isset($_GET['totalRows_Recordset1'])) {
$totalRows_Recordset1 = $_GET['totalRows_Recordset1'];
} else {
$all_Recordset1 = mysql_query($query_Recordset1);
$totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;

?>

Mais comment avoir 5 enregistrements par colonne ?

demipoulp,

Je vais tester !
:lol:

oups

Posté : 03 mars 2005, 15:31
par vero
Voila le code dont on a besoin..Désolée... :oops:

<?php do { ?>
<?php echo $row_test['news_texte']; ?>
<?php } while ($row_test = mysql_fetch_assoc($test)); ?>
</body>
</html>
<?php
mysql_free_result($test);
?>

Posté : 03 mars 2005, 15:33
par Cyrano
Dans la mesure où ta requête comporte une limite, tu auras 5 enregistrements si le paramètre est 5.
Pour l'affichage du nombre de lignes, tu fais ça avec une boucle while comme indiqué par demipoulp ou une boucle for:
La première chose à tester est le nombre de résultats obtenus (il peut n'y avoir que les 4 derniers même si tu en as demandé 5 maximum); tu initialise un pointeur et tu boucle en incrémentant le pointeur jusqu'au maxi obtenu.
En reprenant (et optimisant quelque peu) le code de demipoulp, tu peux faire quelque chose de ce style:
<table >
<?php
$row_test = mysql_fetch_assoc($test);
//On compte les resultats
$nbr=count($row_test);
$i=0;
while ( $i < $nbr )
{
    //affichage de ttes resulats dans une ligne de tableau
?>
    <tr>
        <td widht="50%" valign="top"><?php echo $row_test['news_texte']; ?></td>
    </tr>
<?php
    $i++;
}
?>
</table>

grrrr

Posté : 03 mars 2005, 17:06
par Véro
Je sais pas pourquopi mais j'ai le message suivant " Notice: Undefined variable: q in c:\program files\easyphp1-7\www\t_compris2\untitled2.php on line 22
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\t_compris2\untitled2.php on line 22'

Pourquoi il en veut pas lui ?? grrrrrrr :evil: :cry:

Posté : 03 mars 2005, 17:09
par Cyrano
As-tu bien fait la connexion à MySQL avant de balancer la requête ? c'est une erreur classique....;)
Sinon, est-ce que la requête fonctionne directement avec PhpMyAdmin ?

grrr

Posté : 03 mars 2005, 17:15
par Véro
Oui tout est ok de ce côté et oui je fonctionne avec phpMyadmin....Je comprend pas....Pffffff :?

Posté : 03 mars 2005, 17:21
par Cyrano
Difficile de t'aider sans voir le code... envoie les lignes de connexion (en masquant tes codes d'accès s'il sont directement dedans) et on pourra sans doute trouver le bobo.

Posté : 03 mars 2005, 17:21
par Véro
Et si j'elève " $nbr=mysql_num_rows($q); " Ben j'ai mes enregistrement mais sur une colonne... :roll:

Posté : 03 mars 2005, 17:23
par Invité
?php require_once('Connections/conn_oufti.php'); ?>
<?php
mysql_select_db($database_conn_oufti, $conn_oufti);
$query_test = "SELECT * FROM t_news ORDER BY news_date DESC";
$test = mysql_query($query_test, $conn_oufti) or die(mysql_error());
$row_test = mysql_fetch_assoc($test);
$totalRows_test = mysql_num_rows($test);
?>
Voila pour la connection....

Posté : 03 mars 2005, 17:34
par Cyrano
BOn ok, tout a l'air ok. Par contre, ton message plus haut faisait état d'une variable $q indéfinie que je ne vois nulle part dans les lignes que tu viens d'envoyer...? Peut-être bien que le nom de variable n'est pas le bon ou alors elle n'est pas initialisée.

Posté : 03 mars 2005, 17:51
par véro
<body>
<table >
<?php
$row_test = mysql_fetch_assoc($test);
$nbr=count($row_test);
$nbr=mysql_num_rows($q);
$milieu=$nbr/2;
$milieu=round($milieu);
$i=0;
while ($i<$nbr)
{
?>
<?php do { ?>
<tr>
<td widht="50%" valign="top"> <?php echo $row_test['news_texte']; ?><?php echo $row_test['news_date']; ?> </td>
</tr>
<?php } while ($row_test = mysql_fetch_assoc($test)); ?>
<?php
$i++;
}
?>
</table>
<p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result($test);
?>
bon j'ai tel'ment chipoté que je sais plus ou je vais... :oops:
Si tu vois explique ..moi je ne vois plus rien... :(

Posté : 03 mars 2005, 18:06
par Cyrano
Ok, essaye ça:
<body>
<table >
<?php
require_once('Connections/conn_oufti.php');

mysql_select_db($database_conn_oufti, $conn_oufti);
$query_test = "SELECT * FROM t_news ORDER BY news_date DESC";
$test = mysql_query($query_test, $conn_oufti) or die(mysql_error());
$row_test = mysql_fetch_assoc($test);
$nbr=count($row_test);
$nbr=mysql_num_rows($test);
$row_test = mysql_fetch_assoc($test)
$i=0;
while ($i<$nbr)
{
?>
<tr>
<td widht="50%" valign="top"> <?php echo $row_test['news_texte']; ?><?php echo $row_test['news_date']; ?> </td>
</tr>
<?php
	$i++;
}
?>
</table>
<p>&nbsp;</p>
</body>
</html>
<?php
mysql_free_result($test);
?> 
Je dois déconnecter pour ce soir, analyse tout ça. Il se trouvera peut-être une âme charitable pour me remplacer ce soir, mais théoriquement, ça devrait être ok.
Bon courage, dans un mois, tu en riras tellement... ;)