Recuperer 2 variables differentes ? mysql

geoffreyvp -  
 geoffreyvp -
Bonjour,
voila j'aimerais recuperer plusieurs variables pour un petit projet que j'ai en tete.
Ce projet requiert de recuperer les 3 dernieres valeurs d'une base de données , mais le truc ou ca se complique, c'est qu'elles doivent etre differentes chacunes des autres...

Existe t'il une fonction qui permettrait cela ?

Merci de vos futures reponses


A voir également:

14 réponses

MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Bonjour,

Oui c'est tout à fait possible après faut créer la fonction car je ne suis pas sur qu'elle existe. Peux-tu nous donner la structure de ta table pour que l'on puisse t'aider ?
0
geoffreyvp
 
en fait je mets 2 tables en action. mais celle qui est la plus importante dans ce probleme a une structure de ce genre

ID|coms|idnews

En fait , il faut recuperer 2 variables idnews qui est sous forme de INT
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Dans ce cas je te conseil de faire une boucle, avec comme requête quelque chose comme ceci :
SELECT * FROM Table ORDER BY ID LIMIT 0, 2
Il faut bien sur remplacer Table par le nom de ta table tu l'as pas précis je crois.
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
En PHP - PDO sa devrait donner quelque chose comme ceci :
$req=$bdd->prepare("SELECT * FROM TABLE ORDER BY ID LIMIT 0, 2"); // on prépare notre requête  
$req->execute();  
while($res=$req->fetch(PDO::FETCH_OBJ))  
{  
        echo $res->idnews .'<br />';  
}

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
geoffreyvp
 
je fais pas en pdo , mais ta requete va recuperer les 2 dernieres tout simplement.
Moi en fait , ca doit etre les 2 dernieres requetes qui sont differentes l'une de l'autre que je dois recuperer.
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Je vois pas ce que tu veux dire à propos de : "2 dernières requêtes".
0
geoffreyvp
 
imaginons que j'ai 3 entrées.

ID|coms|idnews

1|test1|16
2|test2|17
3|test3|17

je voudrais recuperer l'entrée qui a un 16 comme idnews et la derniere qui a un 17

Ce sont les 2 dernieres requetes avec un champ different.

tu vois maintenant ?
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Oui je vois, tu fais un système de commentaire sur une nouvelle ?
Si oui je te conseil de faire un GET, et de faire un WHERE, avec un while par la suite.
0
geoffreyvp
 
en fait , je veux plutot faire un module qui recuperera les derniers posts ou il y a eu des commentaires.

Mais comme il peut y avoir eu plusieurs reponses sur un meme post , il retournera toujours le meme post.

J'essaie actuellement de trouver une autre solution , qui sera surement plus longue.
Si je trouve je posterais ;)
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Dans ton cas c'est d'ajouter une colonne date dans ta base de donnée.
Comme ça tu peux afficher le dernier commentaire très simplement, et faire une condition, n'afficher qu'une seul fois le poste grâce à la boucle.
0
geoffreyvp
 
en fait , c'est beaucoup plus compliqué ^^

Les 2 variables que j'aurais obtenues vont me servir a aller chercher dans une autre table , le nom des news auquels les gens ont repondues ^^

C'est pour cela que j'ai besoin de 2 differentes ;)
0
geoffreyvp
 
Voila j'ai trouvé comment faire , malgré la longueur de la chose ;)

voici le code pour les interressés ;)

<?php 
include('connexionmysql.php');
$req = mysql_query("SELECT * FROM commentaires ORDER BY ID desc limit 0,1");
while($donnees = mysql_fetch_array($req))
{
$id = $donnees['idnews'];
$req2 = mysql_query("SELECT nom FROM news WHERE ID = '$id'");
while($donnees2 = mysql_fetch_array($req2))
{
$nom = $donnees2['nom'];
echo $nom;
}

}
$req3 = mysql_query("SELECT * FROM commentaires WHERE idnews < '$id' ORDER BY ID desc LIMIT 0,1");
while($donnees3 = mysql_fetch_array($req3))
{
$id2 = $donnees3['idnews'];
$req4 = mysql_query("SELECT nom FROM news WHERE ID='$id2'");
while($donnees4 = mysql_fetch_array($req4))
{
$nom = $donnees4['nom'];
echo $nom;
}
}
$req5 = mysql_query("SELECT * FROM commentaires WHERE idnews < '$id2' ORDER BY ID desc LIMIT 0,1");
while($donnees5 = mysql_fetch_array($req5))
{
$id3 = $donnees5['idnews'];
$req6 = mysql_query("SELECT nom FROM news WHERE ID='$id3'");
while($donnees6 = mysql_fetch_array($req6))
{
$nom = $donnees6['nom'];
echo $nom;
}
}
?>
0
geoffreyvp
 
je tiens a preciser , qu'a la fin , tout ca = 3 lignes ^^
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Ce sont quoi les 3 lignes à la fin ?
0
geoffreyvp
 
les 3 lignes dans mon cas , sont relatives a 3 nom de news differentes
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
J'ai voulu essayer car je suis intéresser et ça ne marche pas !
0
geoffreyvp
 
je te donne la structure de mes 2 tables :

la table news : ID|nom|contenu|pseudo
la table commentaires : ID|message|auteur|date|idnews
essaie avec ca ;)
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
Tu serais c'est quoi le problème ?
		// 1 er
		
		$req= $bdd ->query("SELECT * FROM comment ORDER BY id DESC limit 0,5"); 
		$req->execute();
		
	   while($donnees=$req->fetch(PDO::FETCH_OBJ))
			
		{
		
			$id = $donnees->id;
			$req2 = $bdd ->query("SELECT * FROM news WHERE id = '$id'"); 
			$req2 -> execute();
			
		   while($donnees2 = $req2 -> fetch(PDO::FETCH_OBJ))
			
			{
				
			$titre = $donnees->auteur;
			echo $titre;
			
			}
		
		}
		
		// 2 ème
		
		$req3 = $bdd ->query("SELECT * FROM comment WHERE news_id < '$id' ORDER BY id DESC LIMIT 0,5"); 
		$req3 ->execute();
		
	   while($donnees3 = $req3 ->fetch(PDO::FETCH_OBJ))
			
		{
		
			$id2 = $donnees3 -> id;
			$req4 = $bdd ->query("SELECT * FROM news WHERE id = '$id2'"); 
			$req4 -> execute();
			
		   while($donnees4 = $req4 -> fetch(PDO::FETCH_OBJ))
			
			{
				
			$titre = $donnees4 -> auteur;
			echo $titre;
			
			}
		
		}
		
		// 3 ème
		
		$req5 = $bdd ->query("SELECT * FROM comment WHERE news_id < '$id2' ORDER BY id DESC LIMIT 0,5"); 
		$req5 ->execute();
		
	   while($donnees5 = $req5 ->fetch(PDO::FETCH_OBJ))
			
		{
		
			$id3 = $donnees5 -> id;
			$req6 = $bdd -> query("SELECT * FROM news WHERE id = '$id3'"); 
			$req6 -> execute();
			
		   while($donnees6 = $req6 -> fetch(PDO::FETCH_OBJ))
			
			{
				
			$titre = $donnees6 -> auteur;
			echo $titre;
			
			}
		
		}
0
MastercroW Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   163
 
PS : ça n'affiche rien
0
geoffreyvp
 
franchement je suis tres mauvais ce genre de syntaxe.

Mais ca pourrait venir que tu demande un retour de 6 entrées. Mais si c'est pas ca , je sais pas désolé
0