Resultat sql dans un tableau

Résolu
vincent.jerem Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
Archeus01 Messages postés 1572 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Voici mon problème.
Cela fait deux bonnes heures que je cherche sur le web sans résultat.
J'ai dans une bas mysql des valeurs.
Je voudrais extraire ces valeur et les ranger dans un tableau.
Par exemple :
la premiere valeur dans la ligne 1 case 1,
la deuxieme valeur dans la ligne 1 case 2,
la troisieme valeur dans la lige 2 case 1,
etc...
Quelqu'un à t-il une idée s'il vous plait???

voici le code que j'ai utilisé mais qui ne fonctionne pas :


<?php

$sql="select * from valeurs where ID_VALEUR=$ID_FORM order by POSITION ASC";
$resu=mysql_query($sql);


echo "<table border='1' width='100%'>";

while($ligne=mysql_fetch_array($resu))
{
echo "<tr>";
$j=0;
while($j<2)
{
echo "<td width='50%'>";
echo $ligne['VALEUR_DFT'];
echo "</td>";
$j++;
}
echo "</tr>";

}
echo "</table>";
?>

Merci pour votre aide
A voir également:

2 réponses

Archeus01 Messages postés 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
J'ai regardé le code. j'ai pas vu d'erreur.
Ca te fait quoi ce code? Tu as un message d'erreur?
fait un var_dump($resu) aussi, ça peut aider... Par exemple à voir que VALEUR_FDT est en fait écrit en minuscule te c'est pour ça que ça marche aps... ou qu'il faut faire $ligne[0]['VALEUR_FDT']...
Bref donne le var_dump et ce qui se passe chez toi.
0
vincent.jerem Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   2
 
En fait avec ce code j'obtiens :

Ligne 1 colonnes 1 et 2 : VALEUR1
Ligne 2 colonnes 1 et 2 : VALEUR2
Ligne 3 colonnes 1 et 2 : VALEUR3

etc etc ...
Merci à toi !
0
dolmenhir Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   25
 
Salut

Elle sert à quoi ta variable $j ??

Essaye ça

<?php
$sql="select * from valeurs where ID_VALEUR=$ID_FORM order by POSITION ASC";
$resu=mysql_query($sql);


echo "<table border='1' width='100%'>";
$j=0;
while ($ligne= mysql_fetch_assoc($result)) 
{
echo "<tr>";
echo "<td width='50%'>";
echo $ligne['VALEUR_DFT'];
echo "</td>";
echo "</tr>";
}
echo "</table>";
?> 


maintenant, si tu veux gérer les colonnes tu peux reprendre ta variable $j et l'utiliser de la sorte pour un tableau à 2 colonnes :

<?php
$sql="select * from valeurs where ID_VALEUR=$ID_FORM order by POSITION ASC";
$resu=mysql_query($sql);


echo "<table border='1' width='100%'>";
$j=0;
while ($ligne= mysql_fetch_assoc($result)) 
if ($j==2) { $j = 0; }
$j++;
{
echo ($j==1?"<tr>":""); // premiere cellule donc ouverture balise de ligne
echo "<td width='50%'>";
echo $ligne['VALEUR_DFT'];
echo "</td>";
echo ($j==2?"</tr>":""); // deuxième cellule donc fermeture balise de ligne
}
echo "</table>";
?> 


pas testé, mais à vue ça doit tourner
0
Archeus01 Messages postés 1572 Date d'inscription   Statut Membre Dernière intervention   452
 
Je trouve le code du haut plus propre xD.

Pour faire vraiment du propre, tu peux faire

while($ligne=mysql_fetch_array($resu))
{
echo '<tr>';
for ($j=0;$j<2;$j++)
{
echo '<td width='50%'>';
echo $ligne['VALEUR_DFT'];
echo '</td>';
}
echo '</tr>';
}
C'est le même code et ça ne résoudra rien
0
dolmenhir Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   25 > Archeus01 Messages postés 1572 Date d'inscription   Statut Membre Dernière intervention  
 
la boucle du "for" s'effectue pour la même ligne de résultat..
donc on obtient normalement deux cellules avec le même résultat

Il faut changer de ligne de résultat "$ligne=mysql_fetch_array($resu)" et donc sortir de la boucle "for"

Donc, pas de boucle for dans la boucle result... juste un test de la variable $j pour ouvrir ou fermer la ligne

euh.... j'suis clair ?
0
vincent.jerem Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   2 > dolmenhir Messages postés 246 Date d'inscription   Statut Membre Dernière intervention  
 
Je crois comprendre à peu près ce qu'il faut faire.
En gros il faut supprimer cette boucle for et mettre a la place
un test avec if pour tester si oui ou non il faut changer de ligne dans le tableau.
j'essaye de mettre ca en place et je te dis si j'y arrive ou pas...
Merci beaucoup
0
vincent.jerem Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   2 > vincent.jerem Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
OUI ca marche nikel je te remercie beaucoup.
Il suffisait de faire comme cela.

echo "<table border='1' width='100%'>";
$l=0;

while($ligne=mysql_fetch_array($resu))
{
if($l==0)
{
echo "<tr>";
}

echo "<td width='50%'>";
echo $ligne['VALEUR_DFT'];
echo "</td>";
$l++;

if($l==2)
{
echo "</tr>";
$l=0;
}

}
echo "</table>";

Encore un grand merci a tous !
0
dolmenhir Messages postés 246 Date d'inscription   Statut Membre Dernière intervention   25 > vincent.jerem Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
c'est très bien comme ça.. même si je préfère mon code avec écriture simplifiée des conditions
echo ($l==0?"<tr>":"");

plutôt que
{
if($l==0)
{
echo "<tr>";
}


mais c'est juste parce que j'aime bien compacter mon code... ;)
0