affichage en désordre des messages sans logique

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage en désordre des messages sans logique

Re: affichage en désordre des messages sans logique

par tavax » 21 janv. 2011, 14:21

Salut, alors déjà merci xTG, à présent tout est bien en place :)

Seulement, comme j'ai des liaison avec mes tables, quand je les utilisent dans ta ligne :
SELECT .................. WHERE id={$data['id']}
Comment dois je remplacer le :
id={$data['id']} ?
J'ai bien essayé ça :
nom_de_la_table.id={$data['id']}
mais cela ne marche pas :s Même presque pire, pour SQl, tout le monde aurait écrit quelque chose et ça pour chaque statut :(

Si je n'avais pas de liaison cel aurait été parfait.

Re: affichage en désordre des messages sans logique

par tavax » 20 janv. 2011, 20:35

ah oki, je ne savais pas que je pouvais mettre $data = ... dans la parenthèse du while, ouah merci de cette info, je vais tester ça de suite :)

Merci, je reviens vite pour clore ou pas ma demande.

Re: affichage en désordre des messages sans logique

par xTG » 20 janv. 2011, 19:16

Ta requête est en fonction de la première boucle, tu dois donc déjà la mettre à l'intérieur de la première boucle.
Et cette requête devra rechercher les enregistrements dont l'id correspond à l'id de l'enregistrement de la première requête actuellement parcouru dans la première boucle.
while($data = .... )
{
  $sql = "SELECT .................. WHERE id={$data['id']}";
  $query = mysql_query($sql);
  while( $data2 = ....($query) )
  {

  }
}

Re: affichage en désordre des messages sans logique

par tavax » 20 janv. 2011, 17:18

oui c'est exactement ça :)

je dois corrigé ma requête ou la seconde boucle while ?

Je suis perdu je dois dire :s

Re: affichage en désordre des messages sans logique

par xTG » 20 janv. 2011, 16:56

Ce sont les commentaires sur le $statut courant que tu souhaites afficher dans ta seconde boucle ?
Si c'est le cas le soucis vient du fait que tu ne fais aucune liaison entre les deux.
Il faut que dans ta requête pour $commentaires que tu ajoutes dans le where une condition sur le statut (sur id_statut si j'ai bien suivi).

affichage en désordre des messages sans logique

par tavax » 20 janv. 2011, 16:12

Bonjour à tous !

Voila j'ai un petit soucis dans ma requete et les while imbriqués.

J'ai deux tables : une pour les "statut" et l'autre pour les "commentaires" liées.
Quand on écrit un com, cela s'enregistre bien dans les commentaires, l'ID et l'ID_statut sont reliés comme je le souhaite MAIS j'ai un soucis, lorsque j'affiche le tout, c'est le bordel, les messages se mettent automatiquement sous les dernier statut alors qu'ils ne devraient pas y être !

Voici la source, pourriez voir avoir un oeil neuf la dessus et me dire où j'ai gaffé ? Parce que ça dure depuis trop longtemps à mon goût ce blocage.

D'avance merci :)

La requête :
$com="SELECT commentaire_statut.commentaire, commentaire_statut.id_membre2, commentaire_statut.id_statut FROM 
commentaire_statut, statut  WHERE commentaire_statut.id_statut = statut.id ORDER BY commentaire_statut.id";
$reponsecom= mysql_query($com) or die('Erreur SQL !<br/>'.$com.'<br/>'.mysql_error());
et le while imbriqué :
<?php
            	while($statut=mysql_fetch_assoc($reponsetest)) 
            	{
            	?>
     
    <div style="width:400px; height:auto;">
    <div style="height:auto; width:75px; float:left;"><img src="<?php echo $statut["avatar"]; ?>" width="50px" height="50px" /></div>
    <div style="height:30px; width:300px; float:left;"><span style="color:#00F; font-style:oblique;"><?php echo $statut["prenom"]; ?>&nbsp;<?php echo $statut["nom"]; ?></span></div>
    <div style="height:auto; width:300px; float:left;"><?php echo $statut["contenu"]; ?></div>
    <div style="height:30px; width:300px; float:left; color:#999;">à&nbsp;<?php echo date("G:i",strtotime($statut["date_statut"])); ?> le <?php echo date("j/n/Y",strtotime($statut["date_statut"])); ?></div>
    		
			<div style="float:left; width:500px;">		
    <table>
    <form method="post" action="compte.php">
    <tr>
    
    <td><textarea name="commentaire" type="text" id="commentaire" cols="70"></textarea></td>
    <td><input name="id_statut" type="hidden" value="<?php echo $statut['id']; ?>"/></td>
    <td><input name="id_membre2" type="hidden" value="<?php echo $reponse['id']; ?>"/></td>
    </tr>
    <tr>
    <td align="right"><input type="submit" value="Commenter" /></td>
    </tr>
    </form>
    </table>
    <hr/>
    <?php
		while($commentaires=mysql_fetch_assoc($reponsecom)) 
		{
		?>
     
    <div style="width:350px; height:auto; background-color:#666; margin-left:50px;">
    <div style="height:auto; width:65px; float:left; background-color:#666;"><img src="<?php echo $commentaires["avatar"]; ?>" width="40px" height="40px" /></div>
    <div style="height:30px; width:235px; float:left; background-color:#666;"><span style="color:#00F; font-style:oblique;"><?php echo $commentaires["prenom"]; ?>&nbsp;<?php echo $commentaires["nom"]; ?></span></div>
    <div style="height:auto; width:235px; float:left; background-color:#666;"><?php echo $commentaires["commentaire"]; ?><br/><?php echo $commentaires["id"]; ?></div>
    <div style="height:30px; width:300px; float:left; background-color:#666; color:#999;">à&nbsp;<?php echo date("G:i",strtotime($commentaires["commentaire-date"])); ?> le <?php echo date("j/n/Y",strtotime($commentaires["commentaire-date"])); ?></div>
    </div>	
    		<?php
            	}

            	}
				?>