mise en forme (mise à jour)

Eléphant du PHP | 66 Messages

01 oct. 2007, 11:45

Bonjour,

En fait dans ma base j'ai une table groupe et sur ma page quand je veux afficher mes groupes je veux qu'ils soient deux par lignes et que au bout de deux groupes les deux suivants se mettent à la ligne.

Dolnc j'ai fait ça :
<? $linecount = 2; //Nbr d'enregistrement par lignes
		$count=0; //Nbr d'enregistrement compté sur la ligne
 
		echo "<table width='100%' border='0' cellpadding='2'><tr>";
		for ($x=0;$x=count($mydata);$x++) {
 
		echo "<td>$mydata[$x]['value']</td>";
		$count++;
	        if ($count == $linecount) {
     		echo "<span class='nom_groupe'><?php echo $Tab['nom_groupe']; ?></span><br><br> //L'erreur est à cette ligne
		<a href=''><img border='0' src='images/<?php echo $Tab["img_groupe"]; ?>'></a>";
     		$count=0; //reinitialisation du compteur 
 	        }
		}//end for
 
		//si on a debuté une ligne il faut remplir les cases restantes
     		for ($y=$count;$y=$linecount;$y++) {
     		echo "<td>&nbsp;</td>";
    		}
 
		echo "</tr></table>";?>
Mais ça me met ce message d'erreur et je ne vois pas le problème :
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in d:\web gallery\index.php on line 71
MerciParse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in d:\web gallery\index.php on line 71
[/b]
Modifié en dernier par Z3lg4dis le 03 oct. 2007, 10:52, modifié 3 fois.

d0m
Mammouth du PHP | 1141 Messages

01 oct. 2007, 11:49

tu pourrais indiquer la ligne ou est l'erreur dans ton code (et mettre des balises php au passage)?

Eléphant du PHP | 66 Messages

01 oct. 2007, 11:55

voila j'ai modifier le premier message

ViPHP
ViPHP | 3607 Messages

01 oct. 2007, 12:14

echo '<span class="nom_groupe">'.$Tab['nom_groupe'].'</span><br><br>
        <a href=""><img border="0" src="images/'.$Tab["img_groupe"].'"></a>'; 

d0m
Mammouth du PHP | 1141 Messages

01 oct. 2007, 12:19

cette ligne n'est pas correctemlent écrite :
 echo "<span class='nom_groupe'><?php echo $Tab['nom_groupe']; ?></span><br><br><a href=''><img border='0' src='images/<?php echo $Tab["img_groupe"]; ?>'></a>";
En effet le but est d'écrire à travers un echo le code html. Or toi tu écris une chaine de caractère contenant du code php. Il vaut mieux toujours sortir les variables PHP des chaines de caractères en concaténant :
echo '<span class="nom_groupe">'.$Tab['nom_groupe'].'</span><br><br><a href=''><img border="0" src="images/'.$Tab["img_groupe"].'></a>';
et l'erreur vient surement aussi de ton lien
 a href="
où tu as oublié de mettre l'adresse

Eléphant du PHP | 66 Messages

01 oct. 2007, 14:35

Donc j'ai testé tes corrections malheureusement ça déconne j'ai bien essayer de trouver lerreur mais c'est un peu flou il me donne cette erreur
Parse error: parse error, expecting `','' or `';'' in d:\web gallery\index.php on line 71
Pour ladresse je n'ai rien mis volontairement je ne pense pas que ça pose problème.

d0m
Mammouth du PHP | 1141 Messages

01 oct. 2007, 14:38

reposte ton code tel que tu l'as maintenant
Tu est sur que tu fermes bien tes quotes et doubles quotes et là où il le faut?

Eléphant du PHP | 66 Messages

01 oct. 2007, 17:51

<? $linecount = 2; //Nbr d'enregistrement par lignes
		$count=0; //Nbr d'enregistrement compté sur la ligne
 
		echo "<table width='100%' border='0' cellpadding='2'><tr>";
		for ($x=0;$x=count($mydata);$x++) {
 
		echo "<td>$mydata[$x]['value']</td>";
		$count++;
	        if ($count == $linecount) {
     		echo '<span class="nom_groupe">'.$Tab['nom_groupe'].'</span><br><br><a href=''><img border="0" src="images/'.$Tab["img_groupe"].'></a>';
     		$count=0; //reinitialisation du compteur 
 	        }
		}//end for
 
		//si on a debuté une ligne il faut remplir les cases restantes
     		for ($y=$count;$y=$linecount;$y++) {
     		echo "<td>&nbsp;</td>";
    		}
 
		echo "</tr></table>";?>
Voila le code avec tes modif

Par contre a la ligne qui déconne si je ne mets rien dans le echo bin ma page rame comme pas possible et il me mets une erreur à la ligne 66 celle où il y a le $mydata me disant qu'il n'est pas déclaré et une autre erreur me disant que le temps d'exécution de 30 secondes a été dépassé.

Merci

Merci

d0m
Mammouth du PHP | 1141 Messages

01 oct. 2007, 18:18

comme je le pensais : problèmes de quotes :
'<span class="nom_groupe">'.$Tab['nom_groupe'].'</span><br><br><a href=''><img border="0" src="images/'.$Tab["img_groupe"].'></a>';
c'est
<a href="">
avec des doubles quotes pur délimiter les champs html internes aux balises.

Eléphant du PHP | 66 Messages

02 oct. 2007, 08:52

Merci à priori ça fonctionne mais comme je le pensais il me met ces deux erreurs
echo '<span class="nom_groupe">'.$Tab['nom_groupe'].'</span><br><br>
<a href=""><img border="0" src="images/'.$Tab["img_groupe"].'"></a>';
Notice: Undefined variable: mydata in c:\web gallery\index.php on line 67
Bin la déclaration je vois pas trop comment lui déclarer et l'autre je pense qu'elle dépend de la première, non?

Merci de votre aide

d0m
Mammouth du PHP | 1141 Messages

02 oct. 2007, 09:04

il me met ces deux erreurs
j'en vois qu'une ;)

Code : Tout sélectionner

Notice: Undefined variable: mydata in c:\web gallery\index.php on line 67
Bin la déclaration je vois pas trop comment lui déclarer
Si toi tu ne sais pas ce que sont "tes données" (mydata), comment veux tu que nous on le sache? :-k

Tu as une base, il faut donc :
- creer une requete (SQL je pense) pour en sortir les données qui t'intéressent
- executer la requete par une fonction php
- parcourir le résultat de la requête et stocker tes données dans des variables php pour pouvoir les afficher.

Eléphant du PHP | 66 Messages

02 oct. 2007, 09:32

Pour mydata j'ai trouver il doit compter mes numéros de groupe
Je l'ai déclarer comme ça :
$mydata=$Tab['num_groupe'];
Mais quand je veux visualiser ma page il met un temps fou à l'afficher et souvent ça fait planter IE

Zarbi :shock: non :?:

d0m
Mammouth du PHP | 1141 Messages

02 oct. 2007, 09:51

j'ai l'impression que tu mélanges beaucoup de choses...
reprenons :
tu as des groupes dans une table mysql, tu veux les afficher, il faut donc dans l'ordre :
- les extraire par une requete SQL (SELECT....)
$resultat = mysql_query("SELECT... FROM groupes;") or die(mysql_error());
- parcourir le résultat de cette requete et les stocker dans une variable
$mydata = array();
while($ligne = mysql_fetch_assoc($resultat)){
  $mydata['num_groupe'] = $ligne;
}
- afficher dans le tableau html
foreach(mydata as $num_groupe => $groupe){
  ......................
}

Eléphant du PHP | 66 Messages

02 oct. 2007, 15:36

voila à quoi ça ressemble maintenant
<? 
$sql = "Select * From groupe";
		
$mydata = array(); 
while($ligne = mysql_fetch_assoc($sql)){ 
  $mydata['num_groupe'] = $ligne; 
 
?>
     <br><table width="860" height="0" border="0" cellpadding="0" cellspacing="0">
       <tr>
         
         <td width="420" height="200" valign="top" align="center">
            <table width="420" cellpadding="0" cellspacing="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">
<? foreach(mydata as $num_groupe => $groupe){ 
				<span class="nom_groupe"><? echo '$ligne["nom_groupe"]'; ?></span>
				</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>
     </table>
<? } ?>
Par contre j'ai un léger soucis au niveau des bornes php car celle de mon foreach se ferme a cause de
<? echo '$ligne["nom_groupe"]'; ?></
Merci

d0m
Mammouth du PHP | 1141 Messages

02 oct. 2007, 15:51

tu as des problèmes vis à vis du mélange php/html
- il y a d'une part le traitement php qui se met entre les balises <? et ?>
- le code html qui se met soit hors des balises php soit entre les balises mais affiché par un echo
//hors des balises php
<span class="nom_groupe"><? echo $groupe["nom_groupe"]; ?></span>
//dans les balises php
<? echo '<span class="nom_groupe">'.$groupe["nom_groupe"].'</span>';
(dans tous les cas il ne faut pas mettre de simples quotes autour de la variable $ligne["nom_groupe"].)

dans ton cas il faut fermer la balise php quand tu passes à du html :
//boucle en php
<? foreach(mydata as $num_groupe => $groupe){ ?>
     // partie html mais toujours contenues dans la boucle
     <span class="nom_groupe"><? echo $groupe["nom_groupe"]; ?></span>
       </td>
                <td background="images/cadre_06.gif" width="5" height="190"></td>
              </tr> 
//fermeture de la boucle php
<? } ?>
au passage ce n'est pas $ligne["nom_groupe"] mais $groupe["nom_groupe"] car dans ton foreach tu parcours avec ton élement dans la variable boucle.