[RESOLU]REQUETTE SQL sur 2 colonnes

Eléphanteau du PHP | 32 Messages

20 nov. 2009, 07:48

Bonjour Messieur,

Je reviens vers vous pour une simple mise en forme :

Je souhaiterais afficher sur 2 colonnes le résultat de ma requete ( photos sur la colonne 1 et texte sur la colonne 2 )
J'ai essayé de faire un array(), du colonnage, etc... et rien n'y fait , je n'y arrives pas
Pourtant ce doit être assez simple
Voici mon code :
<?php 
					
echo       '<tr>	
		 <td width="209" height="12" align="left"><font face="Arial" size="2" color="#FFFFFF"> '.$ligne['Photo'].'</font></td></tr>
	</tr>' ;
										
echo	'<tr>
					 
		<td width="80" height="12" align="center"><font face="Arial" size="3" color="#87B5E2">'.$Categorie.'</font></td><br>
		<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FF0000">'.$ligne['Type_cat'].'</font></td><br>
		<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FFFFFF">'.$ligne['Appareil'].'</font></td><br>
		<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FFFFFF">'.$ligne['Grat_pay'].'</font></td><br>
		<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FFFFFF">'.$ligne['Download'].'</font></td><br>
		<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FFFFFF">'.$ligne['Texture'].'</font></td><br>
					 			
	</tr>' ;
							 
                       			
                                         
 ?>   
Et voici l'affichage :
http://www.siberiavirtual.fr/cargo/test ... testflotte
Merci par avance
Modifié en dernier par sbi016 le 20 nov. 2009, 13:01, modifié 1 fois.

ViPHP
ViPHP | 1136 Messages

20 nov. 2009, 08:48

Salut ,

si tu veux utiliser les tableaux pour cette mise en page ,
tu peux simplement intégrer un tableau dansun tableau
echo       '<tr>       
                 <td width="209" height="12" align="left">
			<font face="Arial" size="2" color="#FFFFFF"> '.$ligne['Photo'].'</font>
		</td>
		<td>
			<table>
				<tr>
					<td width="80" height="12" align="center"><font face="Arial" size="3" color="#87B5E2">'.$Categorie.'</font></td><br>
                			<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FF0000">'.$ligne['Type_cat'].'</font></td><br>
                			<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FFFFFF">'.$ligne['Appareil'].'</font></td><br>
                			<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FFFFFF">'.$ligne['Grat_pay'].'</font></td><br>
                			<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FFFFFF">'.$ligne['Download'].'</font></td><br>
                			<td width="80" height="12" align="center"><font face="Arial" size="2" color="#FFFFFF">'.$ligne['Texture'].'</font></td><br>
				</tr>
			</table>
		</td>
	    </tr>
        </tr>' ;
good luck,
ch.

Eléphanteau du PHP | 32 Messages

20 nov. 2009, 09:15

Je te remercie stopher

Mais ce n'est pas le résultat escompté

Ce que je veux c'est la photo dans la 1ere colonne et à droite de la photo c'est le reste de ma requete les uns sous les autres
Cordialement

Petit nouveau ! | 3 Messages

20 nov. 2009, 09:56

Bon je fais du PHP depuis meme pas une semaine, donc je risque surement de me planter, mais on sait jamais..

<tr> rajoute une ligne a ton tableau, hors, toi tu veux que la photo et les infos soit sur la meme ligne, donc tu n'a besoin que d'une ligne par type d'avion.

je ferais ca:
echo <table>
while ($ligne = mysql_fetch_array($result))
{ // debut de la boucle
echo <tr> // premiere ligne
echo <td> photo </td> // premiere case
echo <td> info1, </br> info2 </br> info3 etc etc </td> //dexieme case
echo </tr> // fin de la premiere ligne
} // retourne cherchez d'autres valeurs (sur une nouvelle ligne) et etc
echo </table> // fin du tableau

Eléphant du PHP | 369 Messages

20 nov. 2009, 10:46

Salut,
[...]
je ferais ca:
+1, réponse pertinente ;)

@sbi016 : Pas eu le temps d'achever avant le post Moxika qui a donné la réponse...
j'ai écris une variante prenant en compte une "simili" mise en page.

Il serait bien de savoir si "Photo" est toujours à la position 0 lors du traitement du tableau.
Si oui y a aussi possibilité d'utiliser un modulo, bref, voici ce qui est. :

Le script, ci-après, n'est, biensur, pas conforme w3... Peut-être pourrais-tu utiliser des div.
Les tableaux sont préconisés pour des données tabulaires, la, c'est pas vraiment le cas.
En même temps, c'est à toi de voir ;)
<?php
  $cde  = "";

  // Début du script
  //
  $cde .= "<html>\n";
  $cde .= "   <head>\n";
  $cde .= "      <style type=\"text/css\">\n";
  $cde .= "         #left  { width:208px; height:12px;                                       color:#ffffff; border:1px #cccccc solid; }\n";
  $cde .= "         #right { width:80px;  height:12px; font-family:Arial; font-size:14px; color:#ff0000; border:1px #cccccc solid; text-align:center; }\n";
  $cde .= "      </style>\n";
  $cde .= "   </head>\n";
  $cde .= "   <body>\n";
  $cde .= "      <table>\n";
  $cde .= "         <tr>\n";
  $cde .= "            <td id=\"left\">\n";

  // Variables des cadre gauche/droite
  //
  $cde_l = "";
  $cde_r = "               <span>".$Categorie."</span><br>\n";

  // Boucle sur le tableau
  //
  foreach($ligne AS $key => $value)
  {
     // Réception photo, cadre gauche = $cde_l
     //
     if ($key == "Photo")
     {
        $cde_l .= "               ".$value."\n";
        $cde_l .= "            </td>\n";
        $cde_l .= "            <td id=\"right\">\n";
     }

     // Tout ce qui reste
     //
     else
     {
        // Quelque soit l'ordre d'apparition des items, cadre droit = $cde_r
        //
        $cde_r .= "               <span>".$value."</span><br>\n";
     }
  }

  $cde .= $cde_l.$cde_r;
  $cde .= "            </td>\n";
  $cde .= "         </tr>\n";
  $cde .= "      </table>\n";
  $cde .= "   </body>\n";
  $cde .= "</html>\n";

  echo $cde;
?>


@+ bon code ;)

Eléphanteau du PHP | 32 Messages

20 nov. 2009, 11:51

Salut et merci FuZZyLine

Ton idée n'est pas mal, mais j'ai une erreur argument invalide sur la ligne foreach ( invalid argument )

J'ai deja essaye la fonction div avec style=float:left, mais je n'y suis pas arrivé

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 nov. 2009, 12:17

Ton idée n'est pas mal, mais j'ai une erreur argument invalide sur la ligne foreach ( invalid argument )

J'ai deja essaye la fonction div avec style=float:left, mais je n'y suis pas arrivé
L'erreur est une erreur PHP, alors pourquoi est-ce que tu essayes de modifier ton CSS ;)

Par contre, plus sérieusement, l'erreur PHP contient le nom du fichier et la ligne qui pose soucis.
Essaye de partir de là pour trouver ton erreur.
Si tu n'y arrives pas, reviens nous voir en donnant l'erreur complète, ainsi que les quelques lignes autour (5 avant, 5 après) de la ligne qui pose soucis.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 369 Messages

20 nov. 2009, 12:32

Re,
Salut et merci FuZZyLine
Ton idée n'est pas mal, mais j'ai une erreur argument invalide sur la ligne foreach ( invalid argument )
J'ai deja essaye la fonction div avec style=float:left, mais je n'y suis pas arrivé
M'etonne... j'ai considéré, de fait, que $ligne est un tableau, curieux que tu ais une erreur.

Si ton erreur est celle-ci: Invalid argument supplied for foreach()
Autrement dit $ligne n'est pas un tableau: Etrange mais bon...

Fais précéder le foreach de ceci, tu auras la réponse 'fin, une réponse:
if (! is_array($ligne)) die("La variable doit être un tableau...!  ".var_dump($ligne));
Si le message die est effectivement affiché tu as une erreur en amont alors remonte dans
ton script jusqu'à l'endoit ou cette variable est modifiée/écrasée ou effacée.

Désolé de ne pouvoir t'en dire plus n'ayant pas le script sous les yeux mais ca reste une piste
et je pense quelle est juste.

@+ ;)

PS: @zeus: C'est moi (en apparté) qui lui ai dis qu'un div était préférable à table. Flute je parle toujours trop ;)

Eléphanteau du PHP | 32 Messages

20 nov. 2009, 12:41

Ben je ne trouve pas l'erreur

Je suis parti du script de FuZZyLine

Et voici l'erreur complete : Warning: Invalid argument supplied for foreach() in /homez.62/gcplans/www/siberia/cargo/testflotte.php on line 76

Et voici le code :
<?php
  $cde  = "";

  // Début du script
  //
  $cde .= "<html>\n";
  $cde .= "   <head>\n";
  $cde .= "      <style type=\"text/css\">\n";
  $cde .= "         #left  { width:208px; height:12px;                                       color:#ffffff; border:0px #cccccc solid; }\n";
  $cde .= "         #right { width:80px;  height:12px; font-family:Arial; font-size:14px; color:#ff0000; border:0px #cccccc solid; text-align:center; }\n";
  $cde .= "      </style>\n";
  $cde .= "   </head>\n";
  $cde .= "   <body>\n";
  $cde .= "      <table>\n";
  $cde .= "         <tr>\n";
  $cde .= "            <td id=\"left\">\n";

  // Variables des cadre gauche/droite
  //
  $cde_l ="";
  $cde_r = "               <span>".$Categorie."</span><br>\n";

  // Boucle sur le tableau
  //
  foreach ($ligne as $key => $value)
  {
     // Réception photo, cadre gauche = $cde_l
     //
     if ($key == "Photo")
     {
        $cde_l .= "               ".$value."\n";
        $cde_l .= "            </td>\n";
        $cde_l .= "            <td id=\"right\">\n";
     }

     // Tout ce qui reste
     //
     else
     {
        // Quelque soit l'ordre d'apparition des items, cadre droit = $cde_r
        //
        $cde_r .= "               <span>".$value."</span><br>\n";
     }
  }

  $cde .= $cde_l.$cde_r;
  $cde .= "            </td>\n";
  $cde .= "         </tr>\n";
  $cde .= "      </table>\n";
  $cde .= "   </body>\n";
  $cde .= "</html>\n";

  echo $cde;
?>

Eléphanteau du PHP | 32 Messages

20 nov. 2009, 12:58

C'est bon messieurs, que je suis stupide

Il me manquais (rien que ca ) : while ($ligne = mysql_fetch_assoc($resultat_sql))while ($ligne = mysql_fetch_assoc($resultat_sql))

Ca marche beaucoup moins bien sans ca n'est ce pas
Merci en tout cas à vous tous

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 nov. 2009, 12:59

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer