Page 1 sur 1

[RESOLU]REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 07:48
par sbi016
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

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 08:48
par stopher
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.

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 09:15
par sbi016
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

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 09:56
par Moxika
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

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 10:46
par FuZZyLine
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 ;)

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 11:51
par sbi016
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é

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 12:17
par zeus
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.

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 12:32
par FuZZyLine
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 ;)

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 12:41
par sbi016
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;
?>

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 12:58
par sbi016
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

Re: REQUETTE SQL sur 2 colonnes

Posté : 20 nov. 2009, 12:59
par zeus
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.