Page 1 sur 3
mise en forme (mise à jour)
Posté : 01 oct. 2007, 11:45
par Z3lg4dis
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> </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]
Posté : 01 oct. 2007, 11:49
par d0m
tu pourrais indiquer la ligne ou est l'erreur dans ton code (et mettre des balises php au passage)?
Posté : 01 oct. 2007, 11:55
par Z3lg4dis
voila j'ai modifier le premier message
Posté : 01 oct. 2007, 12:14
par jojolapine
echo '<span class="nom_groupe">'.$Tab['nom_groupe'].'</span><br><br>
<a href=""><img border="0" src="images/'.$Tab["img_groupe"].'"></a>';
Posté : 01 oct. 2007, 12:19
par d0m
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
Posté : 01 oct. 2007, 14:35
par Z3lg4dis
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.
Posté : 01 oct. 2007, 14:38
par d0m
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?
Posté : 01 oct. 2007, 17:51
par Z3lg4dis
<? $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> </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
Posté : 01 oct. 2007, 18:18
par d0m
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.
Posté : 02 oct. 2007, 08:52
par Z3lg4dis
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
Posté : 02 oct. 2007, 09:04
par d0m
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?
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.
Posté : 02 oct. 2007, 09:32
par Z3lg4dis
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

non

Posté : 02 oct. 2007, 09:51
par d0m
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){
......................
}
Posté : 02 oct. 2007, 15:36
par Z3lg4dis
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
Posté : 02 oct. 2007, 15:51
par d0m
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.