Recuperer 2 variables differentes ? mysql

Fermé
geoffreyvp - 25 févr. 2012 à 16:33
 geoffreyvp - 26 févr. 2012 à 18:57
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


14 réponses

MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
25 févr. 2012 à 17:03
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
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 dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
25 févr. 2012 à 17:17
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 dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
Modifié par MastercroW le 25/02/2012 à 17:19
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
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 dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
25 févr. 2012 à 17:26
Je vois pas ce que tu veux dire à propos de : "2 dernières requêtes".
0
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 dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
25 févr. 2012 à 18:36
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
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 dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
25 févr. 2012 à 18:56
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
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
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
je tiens a preciser , qu'a la fin , tout ca = 3 lignes ^^
0
MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
26 févr. 2012 à 16:05
Ce sont quoi les 3 lignes à la fin ?
0
les 3 lignes dans mon cas , sont relatives a 3 nom de news differentes
0
MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
26 févr. 2012 à 16:05
J'ai voulu essayer car je suis intéresser et ça ne marche pas !
0
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 dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
26 févr. 2012 à 16:53
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 dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
26 févr. 2012 à 16:54
PS : ça n'affiche rien
0
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