mise en forme (mise à jour)

Eléphant du PHP | 66 Messages

02 oct. 2007, 15:58

la misère cette page je ne m'en sortirai jamais ça fonctionne tes modifs et la il me mets
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\web gallery\index.php on line 40
<? 
$sql = "Select * From groupe";
		
$mydata = array(); 
while($ligne = mysql_fetch_assoc($sql)){ 
  $mydata["num_groupe"] = $ligne; 
 
?>
Merci beaucoup pour ton aide[/quote]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 oct. 2007, 16:01

Regarde la documentation des fonctions que tu utilises... non seulement c'est interessant de savoir ce qu'elles font, mais c'est également plein d'exemple et de commentaires sur comment elles s'utilisent.

En l'occurence, ta variable $sql contient une Requête SQL, tandis que la fonction mysql_fetch_assoc() que tu utilises attends une Ressource SQL qui devrait être le résultat de l'exécution d'une Requête SQL

Il est également recommandé d'utiliser les tags php classiques "<?php" et d'éviter les short open tags "<?"
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

d0m
Mammouth du PHP | 1141 Messages

02 oct. 2007, 16:01

c'est parce que tu n'executes pas ta requête. As tu au moins regardé le manuel de la fonction mysql_fetch_assoc ?
Il y a des exemples, ca te permettra de comprendre.

Eléphant du PHP | 66 Messages

02 oct. 2007, 16:16

merci pour tous ces conseils

C'est bon j'ai réglé le problème mais ça ne met pas deux groupes par ligne ça les mets l'un en dessous de l'autre

d0m
Mammouth du PHP | 1141 Messages

02 oct. 2007, 16:33

Il te suffit de mettre un compteur que tu incrémentes à chaque fois que tu affiches un groupe.
- Si le compteur est impair (1,3,5,...), tu écris dans une nouvelle ligne du tableau (<tr>)
- Si le compteur pair (2,4,6,...), tu écris dans une cellule de la même ligne du tableau et tu refermes la ligne (</tr>)

Eléphant du PHP | 66 Messages

03 oct. 2007, 10:51

Bon voila j'ai avancé et je'en suis arrivé la :
<? 
$sql = "SELECT COUNT(num_groupe), nom_groupe, img_groupe FROM groupe Group By num_groupe";
$sql_exe = mysql_query($sql) or die('Erreur : ' . mysql_error());
while ($Tab = mysql_fetch_array($sql_exe)) 
{    
?>   
	 <br><table width="860" height="0" border="0" cellpadding="0" cellspacing="0">
       <tr>
         
         
<?php
$compteur=0;
while ($compteur<2)
{

?>       
	       <td width="420" height="200" valign="top" align="center">
            <table width="420" cellpadding="0" cellspacing="0" border="0">
              <tr>
                <td background="images/cadre_01.gif" width="5" height="5"></td>
                <td background="images/cadre_02.gif" width="410" height="5"></td>
                <td background="images/cadre_03.gif" width="5" height="5"></td>
              </tr>
            </table>
            <table width="420" cellpadding="0" cellspacing="0">
              <tr>
                <td background="images/cadre_04.gif" width="5" height="190"></td>

                <td background="images/cadre_05.gif" width="410" height="190" valign="top" align="center">
				<span class="nom_groupe"><?php echo $Tab["nom_groupe"]; ?></span>
				<br><br>
				<img src="images/<?php echo $Tab['img_groupe']; ?>">
				</td>
				
                <td background="images/cadre_06.gif" width="5" height="190"></td>
              </tr>
            </table>
            <table width="420" cellpadding="0" cellspacing="0">
              <tr>
                <td background="images/cadre_07.gif" width="5" height="5"></td>
                <td background="images/cadre_08.gif" width="410" height="5"></td>
                <td background="images/cadre_09.gif" width="5" height="5"></td>
              </tr>
            </table>
         </td>
<?php 
$compteur=$compteur+1;
}
echo '<tr></tr>';
$compteur=$compteur=0; 
?>
        </tr>
     </table>
<?php } ?>
C'est quasiment ce que je veux le seul hic c'est qu'il m'affiche le même enregistrement dux fois sur la même ligne.

Là je vois pas trop commen m'en sortir

Merci

d0m
Mammouth du PHP | 1141 Messages

03 oct. 2007, 11:13

normal puisque tu executes la boucle avec le compteur à l'intérieur de celle des groupes, en gros ton code veut dire :

Code : Tout sélectionner

Pour chaque groupe{ Pour i de 0 à 1 faire{ construire une cellule du tableau } construire une nouvelle ligne du tableau }
il faut voir la solution de cette manière :

Code : Tout sélectionner

compteur = 0; Pour chaque groupe{ SI le compteur est pair{ //première cellule de la ligne commencer une nouvelle ligne //balises <TR> afficher le groupe dans une cellule } SINON{ //deuxième cellule de la ligne afficher le groupe dans une cellule terminer la ligne //balise </TR> } incrémenter le compteur de 1 }

Eléphant du PHP | 66 Messages

03 oct. 2007, 11:25

Le truc c'est que je ne vois pas comment tester si un chiffre est pair ou impair

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 oct. 2007, 11:31

C'est comme en math, faut le diviser par deux... si tu obtiens un chiffre entier et qu'il n'y a donc pas de reste à ta division, c'est qu'il est multiple de 2 et donc que c'est un nombre pair :)

Le plus simple étant donc d'utiliser l'opérateur modulo qui te donnera directement le reste de la division : Si le reste est 0 le nombre est multiple de 2 (et donc est pair)

Code : Tout sélectionner

421 % 2 = 1 666 % 2 = 0
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

d0m
Mammouth du PHP | 1141 Messages

03 oct. 2007, 11:38

De manière plus général, tu peux mettre n groupes par lignes de cette manière :

Code : Tout sélectionner

nombre_de_groupes_par_ligne = n; compteur = 0; Pour chaque groupe{ SI (compteur % nombre_de_groupes_par_ligne ==0){ //première cellule de la ligne commencer une nouvelle ligne //balises <TR> afficher le groupe dans une cellule } SINON SI (compteur % nombre_de_groupes_par_ligne == nombre_de_groupes_par_ligne -1){ //derniere cellule de la ligne afficher le groupe dans une cellule terminer la ligne //balise </TR> } SINON { //cellule intérieur de la ligne afficher le groupe dans une cellule } incrémenter le compteur de 1 }

Eléphant du PHP | 66 Messages

03 oct. 2007, 11:42

Voila je me suis renseigner sur l'opérateur modulo est voila ce que j'ai
<?php
$compteur=0;
while ($compteur<2)
{
if($compteur%2=0);
{
?>       
	       <td width="860" height="200" valign="top" align="center">
            <table width="420" cellpadding="0" cellspacing="0" border="0">
              <tr>
                <td background="images/cadre_01.gif" width="5" height="5"></td>
                <td background="images/cadre_02.gif" width="410" height="5"></td>
                <td background="images/cadre_03.gif" width="5" height="5"></td>
              </tr>
            </table>
            <table width="420" cellpadding="0" cellspacing="0">
              <tr>
                <td background="images/cadre_04.gif" width="5" height="190"></td>

                <td background="images/cadre_05.gif" width="410" height="190" valign="top" align="center">
				<span class="nom_groupe"><?php echo $Tab["nom_groupe"]; ?></span>
				<br><br>
				<img src="images/<?php echo $Tab['img_groupe']; ?>">
				</td>
				
                <td background="images/cadre_06.gif" width="5" height="190"></td>
              </tr>
            </table>
            <table width="420" cellpadding="0" cellspacing="0">
              <tr>
                <td background="images/cadre_07.gif" width="5" height="5"></td>
                <td background="images/cadre_08.gif" width="410" height="5"></td>
                <td background="images/cadre_09.gif" width="5" height="5"></td>
              </tr>
            </table>
         </td>

<?php 
}
echo '<tr></tr>';
$compteur=$compteur+1;
}
$compteur=$compteur=0; 
?>
Il me met une parse error à la ligne de mon if

d0m
Mammouth du PHP | 1141 Messages

03 oct. 2007, 11:45

erreur courante : = et == (affectation et égalité)

Eléphant du PHP | 66 Messages

03 oct. 2007, 12:00

Ca me gave maintenant il me dis qu'il manque des guillemets sur la ligne de mon for alors qu'on est pas censé en mettre
<?php
$line=2;
$compteur=0;
for($i=0;$i++)
{
if($compteur%$line==0)
{ 
?>       
		  <tr>
	       <td width="860" height="200" valign="top" align="center">
            <table width="420" cellpadding="0" cellspacing="0" border="0">
              <tr>
                <td background="images/cadre_01.gif" width="5" height="5"></td>
                <td background="images/cadre_02.gif" width="410" height="5"></td>
                <td background="images/cadre_03.gif" width="5" height="5"></td>
              </tr>
            </table>
            <table width="420" cellpadding="0" cellspacing="0">
              <tr>
                <td background="images/cadre_04.gif" width="5" height="190"></td>

                <td background="images/cadre_05.gif" width="410" height="190" valign="top" align="center">
				<span class="nom_groupe"><?php echo $Tab["nom_groupe"]; ?></span>
				<br><br>
				<img src="images/<?php echo $Tab['img_groupe']; ?>">
				</td>
				
                <td background="images/cadre_06.gif" width="5" height="190"></td>
              </tr>
            </table>
            <table width="420" cellpadding="0" cellspacing="0">
              <tr>
                <td background="images/cadre_07.gif" width="5" height="5"></td>
                <td background="images/cadre_08.gif" width="410" height="5"></td>
                <td background="images/cadre_09.gif" width="5" height="5"></td>
              </tr>
            </table>
           </td>
          </tr>
<?php 
}
echo '<tr></tr>';
} 
?>
Bonne appétit

Merci

ViPHP
ViPHP | 3607 Messages

03 oct. 2007, 12:02

Fait attention à ce que tu écrits *%§£~!!!!!!
Tu remarques rien de spécial sur ton for, comme un oubli?

ViPHP
ViPHP | 2144 Messages

03 oct. 2007, 12:02

Tu n'as pas de condition d'arrêt dans ton for, c'est voulu ?

Bon appétit à toi aussi