PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Forum Général PHP » Boucle while » 21-11-2014 16:59:54

t14
Réponses : 1

Bonjour,

J'ai un programme php qui lit le contenu de ma base généalogique. Je veux sortir tous les individus sous forme d'arbre. Donc je lis le 1° individu (le plus (ancien), puis je cherche ses conjoints que j'affiche, puis je cherche ses enfants que j'affiche, puis pour chaque enfant, je veux chercher ses conjoints, puis leurs enfants ..............

//$row1 est le 1° individu - $row1['num_cj_1'] = numéro du conjoint = numéro de l'individu
$select11 = 'SELECT * FROM individus WHERE num_indiv LIKE "'.$row1['num_cj_1'].'"';
$result11 = mysql_query($select11,$link) or die ('Erreur : '.mysql_error() );       
       
//***** rech des cjts ******
while ($row11 = mysql_fetch_array($result11))
{
        echo '<tr><td....................
        echo '</td></tr>';       
                           
    //*****rech enf******
       
        $select2 = 'SELECT * FROM individus WHERE num_pere = "'.$row1['num_indiv'].'" ORDER BY RIGHT(date_naissance,4)';   
        $result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
       
        while ($row2 = mysql_fetch_array($result2))
        {                   
            echo '<tr><td....................
            echo '</td></tr>';
           
            $select11 = 'SELECT * FROM individus WHERE num_indiv LIKE "'.$row2['num_cj_1'].'"';
            $result11 = mysql_query($select11,$link) or die ('Erreur : '.mysql_error() );
            $gen=$gen+0.1;               
        }
}

Là, j'affiche mon premier individu, ses conjoints, les enfants, et après plus rien ! La boucle ne se fait pas !
Pourquoi ?

#2 Re : Forum Général PHP » Boucle while » 21-09-2012 23:44:31

t14
Jc a écrit :

Bonjour,


A partir du moment où tes ids sont numériques, remplace tes LIKE par = dans tes requêtes. Et on évite les SELECT * (la fameuse guerre des étoiles).

++

Bonjour,

Mes ids sont numériques, num_pere et num_indiv déclarés en "decimal" dans la base. J'ai remplacé les LIKE par =, et les * des requêtes par id, num_indiv, nom, prenom, num_pere.
Je fait également afficher les ids, et je me suis rendu compte que j'affiche presque toute la base de id=1 à id=344(en sautant quelques id (le 3, le 4, le 6, du 14 au 19 inclus, ..............! Pourquoi, je ne sais pas ?). Et l'affichage (1 à 344) recommence .........
Mais aucun lien avec les num_pere et num_indiv.
Par exemple, le premier enregistrement qui s'affiche (issu du 2° while, avec id=1), ne comporte pas de num_pere et ne devrait donc pas s'afficher !??

#3 Re : Forum Général PHP » Boucle while » 21-09-2012 23:44:31

t14

Ouuups ! J'ai été voir ton lien sur les arbres par représentation intervallaire, et cela m'a l'air ardu .......... !!!!!

Par contre, je ne comprends pas pourqoui ce code ne fonctionne pas :

$select1 = 'SELECT * FROM individus WHERE id LIKE "168"';
$result1 = mysql_query($select1,$link) or die ('Erreur : '.mysql_error() );
$row1 = mysql_fetch_array($result1);
echo '<table>';
echo '<tr><td>';
echo ''.$row1['nom'].' '.$row1['prenom'].'<br>';
echo '</td></tr>';

$select = 'SELECT * FROM individus' ;
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); 

while ($row = mysql_fetch_array($result))   

$select2 = 'SELECT * FROM individus WHERE num_pere LIKE "'.$row1['num_indiv'].'"';   
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );

                while ($row2 = mysql_fetch_array($result2))   
                { 
                echo '<tr><td>';
                echo ''.$row2['nom'].' '.$row2['prenom'].'<br>&nbsp;&nbsp;&nbsp;&nbsp;né : '.$row2['date_naissance'].'';   
    echo '</td></tr>';
                } 
$row1['num_indiv'] = $row2['num_indiv'];         
}
?>

C'est une simple boucle ! Ou il y a des erreurs ..... ???

#4 Forum Général PHP » Boucle while » 21-09-2012 23:44:31

t14
Réponses : 5

Bonjour,

Je n'arrive pas à executer une boucle while comme je veux.
Dans ma base, un enregistrement comporte notamment l'id, un num_indiv, un num_pere, .....
Tous les num_pere se retrouve en num_indiv.
En partant d'un enregistrement A, je veux afficher tous ceux qui y sont liés, soit ses fils.
Je doit donc rechercher tous les enregistrements (B) qui ont un num_pere égal au num_indiv A.
Une fois trouvé, je recherche tous les enregistrements ayant B ayant un num_pere égal au num_indiv de B
.............etc

Et là je bloque ................ je n'arrive pas à boucler pour lire toute la base !!!

<?php   
$select1 = 'SELECT * FROM individus WHERE id LIKE "168"';
$result1 = mysql_query($select1,$link) or die ('Erreur : '.mysql_error() );
$row1 = mysql_fetch_array($result1);

echo ''.$row1['nom'].' '.$row1['prenom'].'<br>';

$select2 = 'SELECT * FROM individus WHERE num_pere LIKE "'.$row1['num_indiv'].'"';
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );

while ($row2 = mysql_fetch_array($result2))
{   
    echo ''.$row2['nom'].' '.$row2['prenom'].'<br>&nbsp;&nbsp;&nbsp;&nbsp;né : '.$row2['date_naissance'].'';    }
    if (!empty($row2['date_dc']))
    {    echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;dcd : '.$row2['date_dc'].'';    }
       
        $select3 = 'SELECT * FROM individus WHERE num_pere LIKE "'.$row2['num_indiv'].'"';
        $result3 = mysql_query($select3,$link) or die ('Erreur : '.mysql_error() );
        while ($row3 = mysql_fetch_array($result3))
        {   
            if ($row3['num_pere'] = $row2['num_indiv'])
            {
                echo ''.$row3['nom'].' '.$row3['prenom'].'<br>&nbsp;&nbsp;&nbsp;&nbsp;né : '.$row3['date_naissance'].'';    }
                if (!empty($row3['date_dc']))
                {    echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;dcd : '.$row3['date_dc'].'';    }
                echo '</td></tr>';   
            }   
        }
}

?>
Je pourrais continuer les WHILE jusqu'à balayer toiute la base, mais il doit y avoir moyen de jouer avec une ou deux boucle WHILE !!!!

Merci de me donner un coup de main.

#5 Forum Général PHP » recherche champ minimum enregistrement mysql » 26-09-2011 07:19:16

t14
Réponses : 2

Bonjour,

Dans ma base, un enregistrement comporte le nom, la date de naissance (sous forme jj.mm.aaaa, ou aaaa, ou >aaaa, ou ~aaaa, .......).
   
Je veux afficher les noms commençant par "A". S'il y a plusieurs fois le même nom, je n'en affiche qu'un. Je veux également afficher le nombre de nom identique, et la date de naissance minimum en me basant sur l'année. C'est sur ce dernier critère que je pêche !!!!
   
Comme le fiormat des dates est différent, je pense que le mieux est de se baser sur l'année (aaaa), soit les 4 derniers caractères du champs. Mais ce que j'ai fait me sort la première année lue du premier enregistrement du nom similaire, et non la plus petite année.

$select = 'SELECT nom,COUNT(*) AS nb, MIN(date_naissance), RIGHT(date_naissance, 4) AS min_age FROM ville WHERE nom like "A%" GROUP BY nom ORDER BY nom ASC';
   
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
 
while ($row = mysql_fetch_array($result))
 
{
 
echo '<tr>';
 
echo '<td>'.$row['nom'].'</td>';
 
echo '<td align="center">'.$row['nb'].'</td>';
 
echo '<td>'.$row['min_age'].'</td>';
 
echo '</tr>';
 
}

Merci de m'aider à trouver mon erreur ...........

#6 Re : Forum Général PHP » rendre actif un onglet de menu » 23-10-2010 09:53:13

t14

J'ai enlevé les espaces autour du &, posé une condition, et ça fonctionne .....:D

A +++:P

#7 Re : Forum Général PHP » rendre actif un onglet de menu » 23-10-2010 09:53:13

t14

Désolé moogli, mais ça ne fonctionne pas ..... sad

#8 Re : Forum Général PHP » rendre actif un onglet de menu » 23-10-2010 09:53:13

t14
Pierrot a écrit :

et il est ou le problème ?
a++

Dans mon CSS j'ai ceci :

.bouton {
     display: block;...............
}
.bouton:hover {
     display: block;....................
}
.bouton:active {
     display: block;................
}

Quand j'affiche le texte correspondant au bouton (onglet du menu) dans une div centrale, je souhaiterais que ce bouton prenne la class "bouton:active", tant que la page reste affichée.
Je suis arrivé là, mais ça ne fonctionne pas ...... sad

<?php    

$select = 'SELECT * FROM menu';  
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );  

if(isset($_GET['texte']))
{
$inc = $_GET['texte'];
$active = $_GET['nom'];
}
else
{
 $inc = 'accueil.htm';
 $active = 'accueil';
}

echo '<div class="menu">';

while($row = mysql_fetch_array($result))
{
echo '<a href="index.php?nom='.$row['nom'].' & texte='.$row['texte'].'" class="bouton">'.$row['nom'].'</a><p>';
}

echo '</div>';

echo '<div class="frame">';
include($inc);
echo '</div>';

exit;

?>

#9 Forum Général PHP » rendre actif un onglet de menu » 23-10-2010 09:53:13

t14
Réponses : 6

Bonjour,

Je cherche à rendre actif un onglet de menu dont le nom et le texte correspondant sont issus d'une base de donnée.

Affichage du menu :

$select = 'SELECT * FROM menu';  
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );    

echo '<div class="menu">';  

while($row = mysql_fetch_array($result))  
{
echo '<a href="index.php?nom='.$row['nom'].' & texte='.$row['texte'].'" class="bouton">'.$row['nom'].'</a><p>';  
}

echo '</div>';

Merci

#10 Re : MySQL, PostgreSQL, etc... » afficher directement le lien d'un enregistrement » 12-10-2010 09:57:38

t14
Maljuna Kris a écrit :

Saluton,
Quel rapport entre une donnée dans une table de base de données et $_GET ?

Actuellement, en écrivant echo '<div class="frame">';     echo $_GET['texte']; , je récupère l'enregistrement "texte" qui est lu, et je l'affiche dans la div.
Mais si l'enregistrement texte contient uniquement une adresse http, je voudrais que ce qu'il y a au bout de http s'affiche dans la div.

Si je fais echo '<div class="frame">';     inculde ($_GET['texte']); , j'affiche ce qu'il y a au bout de http, donc c'est ok pour l'adresse, mais ça fonctionne pas si l'enregistrement est uniquement un texte ! sad

#11 MySQL, PostgreSQL, etc... » afficher directement le lien d'un enregistrement » 12-10-2010 09:57:38

t14
Réponses : 3

Bonjour,

J'ai un enregistrement dans ma base mysql qui contient uniquement un lien http.
Je souhaiterais afficher la page qui y fait référence dès que l'enregistreemnt est lu par le script php :

echo $_GET['texte'];

Est-ce possible ? roll

Merci

#12 Re : Forum Général PHP » Ajout image dans textarea » 06-10-2010 17:04:41

t14

Ce que j'avais pensé aussi faire :

Dans la fenêtre où je saisis mon texte (textarea), je met un bouton, pour insérer une image, qui m’ouvre une fenêtre (pop-pup) en html (ou php) avec laquelle je vais récupérer mon image (<input type="file" name="monfichier" size="xx" />)
Ensuite, il faudrait qu’en fermant ce « pop-pup » je transmette le lien sélectionné à la fenêtre précédente qui serais ma première fenêtre, avec le texte et maintenant le lien.
Donc, il faudrait que je rafraichisse la première fenêtre (où j’ai saisis mon texte, textarea), et que je réaffiche le texte déjà saisi au début, en y rajoutant le lien ………

Mais comment garder le texte en mémoire jusqu’à la phase finale (de la première fenêtre, en passant par la pop-pup, et retour à la première fenêtre) ? roll Avec des sessions peut-être ? roll
Une fois le texte enregistré dans la bd, quand il sera ressorti, comment identifier l'endroit ou doit être affiché l'image ? En faisant du lien dans le texte ?

Sinon, je vais tenter d'utiliser Tiny-MCE .....

#13 Re : Forum Général PHP » Ajout image dans textarea » 06-10-2010 17:04:41

t14
xTG a écrit :

Dois-tu l'uploader ou non ?

Si non, il suffit d'une simple reconnaissance du texte à remplacer.
Ici le code est [ img]url image[/ img], grâce à ces deux balises on repère le début et la fin de l'url.
Ensuite il n'y a plus qu'à rechercher des occurence de ce type et les remplacer par <img src="url image" /> via les fonctions de remplacement des expressions régulières.

Oui, je veux aussi uploader l'image, et enregistrer le lien en bd.

Avec un javascript, je donne des formes à mon texte : <a href="#" onclick="TAinsert('<b>','</b>');OpenPreview();" style="text-decoration: none"><b>Gras</b>, et autre ..... Puis j'upload une image  : <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
<input type="file" name="monfichier" size="51" />

Je voudrais y rajouter un bouton qui permettrait d'uploader une image à un endroit désigné du texte.

Donc, avoir un pop-pup qui s'ouvre en cliquant sur le bouton au moment désiré où insérer l'image. Dans le pop-pup pouvoir parcourir son pc pour y récupérer l'image ( <input type="file" name="monfichier" size="51" /> ). Là où ça coince, c'est de récupérer le lien de l'image, l'afficher dans le texte à l'endroit voulu, et l'enregistrer en bd.

#14 Forum Général PHP » Ajout image dans textarea » 06-10-2010 17:04:41

t14
Réponses : 7

Bonjour,

J'ai un formulaire où la saisie du texte se passe via un "textarea".
Le texte est ensuite enregistré dans une bd.

Ce que je recherche, c'est une méthode pour saisir un texte dans un formulaire, ajouter un image à la suite (son chemin d'accès), et continuer le texte ...... .
En fait, ajouter un lien, ou URL dans un textarea !!!! Genre ici quand tu veux insérer une image ....... smile

Merci

#15 Re : MySQL, PostgreSQL, etc... » Changement aspect bouton menu » 27-09-2010 08:59:10

t14

Tu n'as pas tout à fait tord, Maljuna Kris !

Mais si je fais ça, ou plutôt si j'essaye, c'est pour rendre le menu gérable par pages interposées. C'est à dire, pouvoir modifier le menu et rajouter des onglets à la demande. Car ce genre de site va obligatoirement évoluer avec les années ! Et je ne serais peut-être pas toujours là pour le maintenir.

Et c'est aussi par curiosité ......

#16 MySQL, PostgreSQL, etc... » Changement aspect bouton menu » 27-09-2010 08:59:10

t14
Réponses : 4

Bonjour,

J'ai un site qui affiche des bouton pour le menu.
Quand j'affiche une page, je souhaiterais que le bouton du menu correspondant prenne un autre aspect parrapport aux autres boutons.
Si je défini les boutons et les pages en php dans un tableau, ça fonctionne :

<?php
$pages = array(
'accueil'=>'accueil.htm',
'humanitaire'=>'humanitaire.htm',..............);

if(isset($_GET['page']) && array_key_exists($_GET['page'],$pages)){
$inc = $pages[$_GET['page']];
$active = $_GET['page'];
}
else{
$inc = 'accueil.htm';
$active = 'accueil';
}

echo '<div class="menu"><ul>
<a class="bouton'
.($active == 'accueil' ? 'active' : '').'" href="index.php?page=accueil.htm">Accueil</a><p>
<a class="bouton'
.($active == 'humanitaire' ? 'active' : '').'" href="index.php?page=humanitaire">L\'action humanitaire</a><p>...........

echo '<div class="frame">';
include($inc);
echo '
</div>';

Mais si les les boutons et les pages sont issuent d'une base de donnée, j'y arrive pas  sad  :

$select = 'SELECT * FROM menu';  
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );  
   
if(isset($_GET['lien']))
{
 $inc = $_GET['lien'];
 $active = $_GET['nom'];
}
else
{
 $inc = 'accueil.htm';
 $active = 'accueil';
}

echo '<div class="menu">';

  while($row = mysql_fetch_array($result))
{
  echo '<a class="bouton'.($active == $row['nom'] ? 'active' : '').'" href="menu.php?lien='.$row['lien'].'">'.$row['nom'].'</a><p>';
}

echo '</div>';

echo '<div class="frame">';
include($inc);
echo '</div>';

Les liens fonctionnent, mais les boputons menu ne changent pas d'aspect lors de l'affichage de la page qui va avec ! sad

Merci d'avance pour l'aide que vous pourrez m'apporter.

#17 Re : Forum Général PHP » Corriger une ligne php » 11-07-2010 23:39:36

t14
Maljuna Kris a écrit :

Exact, il faut répéter deux fois $row['photo'] puisqu'il y a 2 %s ou bien remplacer chaque %s par %1s

Salut Maljuna Kris ! J'ai remplacé les %s pas %1s, et c'est pariel ! pffffffffffff .......... hmm

=> Warning: sprintf() [function.sprintf]: Too few arguments

Jc, qu'entends tyu par "j'ai vu dans le sprintf des propriétés non échappées" ??

sad

#18 Re : Forum Général PHP » Corriger une ligne php » 11-07-2010 23:39:36

t14
xTG a écrit :

Désolé mais j'ai piqué une crise de rire ! lol

En fait Kris n'a pas fait de faute (tout du moins celle que tu as cité), c'est le fonctionnement correct de sprintf().
A voir la coloration je dirai que la syntaxe de Kris est tout ce qu'il y a de plus juste (d'autant plus qu'il se trompe rarement sur ce point ayant tout un tas de bonnes astuces, le cas du sprintf). Testes là sans rien modifier. ^_-

Si je met tel que =>

  $str.= sprintf("<td><a href=\"#\" onmouseover=\"showTooltip('<div class='info'><img id='big' src=\"../images/choristes/%s\" width='500'></div>')\" onmouseout=\"hideTooltip()\"><img id=\"big\" src=\"../images/choristes/%s\" width=\"60\" onmouseout=\"hideTooltip()\" /></a><div id=\"bulle\"></div></td>",$row['photo']);  
 

J'ai comme message d'erreur : Warning: sprintf() [function.sprintf]: Too few arguments pour cette ligne ! sad

#19 Re : Forum Général PHP » Corriger une ligne php » 11-07-2010 23:39:36

t14

Ca marche pas !
J'avais auusi fait une erreur au départ pour le 2° src=.
J'ai corrigé, et voici ta ligne :

  $str.= sprintf("<td><a href=\"#\" onmouseover=\"showTooltip('<div class='info'><strong>Logo de presentation</strong><br>ici la photo est la meme<br><img id='big' src="../images/choristes/ ' . $row['photo'] . '%s\" width='500'></div>')\" onmouseout=\"hideTooltip()\"><img id=\"big\" src="../images/choristes/ ' . $row['photo'] . '" width=\"200\" onmouseout=\"hideTooltip()\" /></a><div id=\"bulle\"></div></td>".$row['photo']);
 

A la fin, tu avais mis .........></td>",$row['photo']);
j'ai corrigé en .........></td>".$row['photo']);

Mais ça fonctionne toujours pô !
J'ai : Parse error: syntax error, unexpected '.'
et ça ne provient pas du $str. (pareil si j'enlève le point).

Mais dès le début, pour <div class='info'>, le <div est en noir, et la suite en bleu ! Là, y'a déjà un truc ???

#20 Forum Général PHP » Corriger une ligne php » 11-07-2010 23:39:36

t14
Réponses : 8

Bonjour,

J'ai cette ligne en php, qui est censé afficher une image, et l'agrandir à côté au passage de la souris. Mais j'ai des erreurs dans la ligne dû aux ' et " sad :

$str.= '<td><a href="#"
onmouseover="showTooltip('
<div class='info'><strong>Logo de presentation</strong><br>ici la photo est la meme<br><img id='big' src="../images/choristes/ ' . $row['photo'] . '" width='500'></div>');"
onmouseout="hideTooltip()"><img id="big" src="../images/choristes/ '
. $row['photo'] . '" width="200" onmouseout="hideTooltip()" /></a>
<div id="bulle"></div></td>'
;

Pouvez-vous me corriger cette ligne ?

Merci.

#21 Re : HTML, xHTML CSS » Afficher tableau » 30-03-2015 07:20:25

t14

Merci Alnos de m'aider !

Donc, voilà où j'en suis :

Je cherche à afficher des données issues d'une base avec cette mise forme :
- affichage du titre (pupitre_FR)
- sur 1 ligne, affichage des enregistrements appartenant au pupitre_FR concerné. Mais si arrivé en bout de ligne (après 5 enregistrements), retour à la ligne pour afficher les autres enregistrements.
- Il y a 4 type de pupitre_FR (Chef de coeur, Ténors1, Ténors2, Baryton).

Et là, je n'arrive pas à aller à la ligne après les 5 premiers enregistrements pour afficher le reste. J'ai essayé avec un tableau et ses cellues limitées (width), j'ai essayé avec des div, mais rien à faire ..... sad

Voilà mon code actuel :

<?php
$select = "SELECT * FROM choristes ORDER BY nom ASC";  
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

$tabPupitre = array(); // tableau qui contiendra les différents pupitres et les noms associés

while($row = mysql_fetch_array($result)) {

  // pour chaque enregistrement retourné, on prépare la chaine qui sera affichée
  $str = '<td width="200px">';
  $str.= ''.$row['nom'].' '.$row['prenom'].'  <br>';  
  $str.= '<img border=0 height="50" src="../images/choristes/' . $row['photo'] . '"><br>';
  $str.= '<div class="chor_leg">'.$row['legende_FR'].'</div>';
  $str.= '</td>';

  // puis on ajoute cette chaine dans le tableau, à la suite, pour le pupitre correspondant  
  $tabPupitre[$row['pupitre_FR']] .= $str;  

}  

mysql_free_result($result);  

// il ne reste plus qu'à afficher le contenu de chaque champ du tableau php au bon endroit dans le tableau html :

?>
<center>
<table>
    <tr><u><h2>Chef(s) de cœur</h2></u></tr><p></p>
    <tr><?php echo $tabPupitre['Chef de cœur']; ?></tr>
</table><p></p>
<table>
    <tr><u><h2>Ténors1</h2></u></tr><p></p>
    <tr><?php echo $tabPupitre['Ténor1']; ?></tr>
</table><p></p>
<table>    
  <tr><u><h2>Ténors2</h2></u></tr><p></p>
    <tr><?php echo $tabPupitre['Ténor2']; ?></tr>
</table><p></p>
<table >
    <tr><u><h2>Basses</h2></u></tr><p></p>
    <tr><?php echo $tabPupitre['Basse']; ?></tr>
</table><p></p>
<table>
    <tr><u><h2>Barytons</h2></u></tr><p></p>
    <tr><?php echo $tabPupitre['Baryton']; ?></tr>
</table></center>

Je ne sais plus quoi et comment faire .... sad

#22 HTML, xHTML CSS » Afficher tableau » 30-03-2015 07:20:25

t14
Réponses : 4

Bonjour,

Je cherche à afficher des enregistrements issus d'une BD dans un tableau. Mais si le nombre d'enregistrement à afficher est supérieur à la largeur, je voudrais afficher la suite à la ligne suivante.

.choristes {
width : 1000px;
overflow: hidden;
}

<center>
<div class="choristes">
<table>
    <tr><u><h2>Chef(s) de cœur</h2></u></tr><p></p>
    <tr><?php echo $tabPupitre['Chef de cœur']; ?></tr>
</table></div></center>

Mais là, les enregistrements qui dépassent les 1000px de "choristes" ne sont pas affichés. Et moi, je voudrais les afficher à la ligne ....

Meerci

#23 Re : Forum Général PHP » Réïtération de données Array pour affichage » 17-02-2010 18:38:43

t14

OK ! J'ai pris exemple, mais ça marche pô ....:(

Faut dire qu'il y a certaines choses que je n'ai pas vraiment compris, et j'ai fait cela pour tester :

$requete="SELECT * FROM infos
LEFT OUTER JOIN inscr_sortie ON infos.id = inscr_sortie.liaison_id_infos
LEFT OUTER JOIN membres ON inscr_sortie.liaison_id_mb = membres.id_mb
ORDER BY infos.date ASC";
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );

$tabFlagTitre = array();
while( $item = mysql_fetch_array($result) )

{
  //Si la rubrique n'a jamais été affichée on l'affiche et on passe le flag à 1
  if( !isset($tabFlagTitre[$item['infos.titre']]) )
  {
    $tabFlagTitre[$item['infos.titre']] = 1;
    echo $item['infos.titre'];
  }
 
        echo '<tr>';
        echo '<td>'.$row['jour'].'/'.$row['mois'].'/'.$row['an'].'</td>';
        echo '<td>'.$row['titre'].'</td>';
        echo '<td>'.$row['texte'].'</td>';
        echo '<td>'.$row['nom'].' '.$row['prenom'].'</td>';
        echo '</tr>';

Sinon, comment récupérer la valeur de $row['titre'] ? Suffirait de la mettre dans une variable, et de la tester à chaque passage.
Si elle ne change pas, je boucle sur "echo '<td>'.$row['nom'].' '.$row['prenom'].'</td>';" , sinon j'affiche le titre suivant.

#24 Re : Forum Général PHP » Réïtération de données Array pour affichage » 17-02-2010 18:38:43

t14
xTG a écrit :

Ce sujet aborde le même problème. J'y propose une solution : http://forum.phpdebutant.org/viewtopic.php?id=5242

Merci xTG, mais je ne vois pas trop le rapport avec mon souci, ni comment m'en servir !
Je pensais plutôt à une boucle, dans la boucle déjà existante !!!!

#25 Forum Général PHP » Réïtération de données Array pour affichage » 17-02-2010 18:38:43

t14
Réponses : 5

Bonjour,

Pour rester sur le même script, celui-ci lit la base de données (3 tables en jointure tongue ) et affiche le résultat dans un tableau (table infos réunis les infos ou sorties, table membres réunis les membres, inscr_sortie sert à liéer les infos aux membres avec les inscriptions):

$requete="SELECT * FROM infos
LEFT OUTER JOIN inscr_sortie ON infos.id = inscr_sortie.liaison_id_infos
LEFT OUTER JOIN membres ON inscr_sortie.liaison_id_mb = membres.id_mb
ORDER BY infos.date ASC";
$result = mysql_query($requete,$link) or exit ('Erreur : '.mysql_error() );
while($row = mysql_fetch_array($result))
{
        echo '<tr>';
        if (empty($row['date']))
        {
        echo '<td>'.$row['titre'].'</td>';
        echo '<td>'.$row['texte'].'</td>';
        echo '<td>'.$row['nom'].' '.$row['prenom'].'</td>';
        }

Pour l'affichage du même "titre" et "texte", je peux avoir plusieurs "nom,prenom".
Là, si j'ai un deuxième "nom,prenom" pour le même "titre" et "texte", je réaffiche les titre et texte une deuxième fois.
Je voudrais que tous les "nom,prenom" pour le même titre et texte s'affiche dans le même <td>.
Comment faire ?

Merci

Pied de page des forums

Propulsé par FluxBB