fusionner 2 requetes

Eléphanteau du PHP | 28 Messages

13 juin 2011, 10:23

bonjour

je cherche à fusionner 2 requêtes . Voici mon code:
 
 if(isset($_POST['expediteur'])) 	$expediteur=$_POST['expediteur'];

 else	$expediteur='';

 
 if(isset($_POST['destinataire'])) 	$destinataire=$_POST['destinataire'];

 else	$destinataire='';
 


//requete num 1:
$sql = "select expediteur, destinataire,message from chat where destinataire = '$expediteur'and expediteur = '$destinataire'";

//requete num 2:
//$sql = "select expediteur, destinataire, message from chat where expediteur = '$expediteur' and destinataire = '$destinataire' ";

$req = mysql_query ($sql) or die (mysql_error());


$myArray = array();



while(false != ($data = mysql_fetch_array($req)))



{ 
$myArray[] = array(

		 'destinataire'   => utf8_encode($data['destinataire']),
         
		 'expediteur' => utf8_encode($data['expediteur']),

        	'message'   => utf8_encode($data['message']));

  		}

echo json_encode ($myArray);


  ?> 

Est-il possible d'avoir le résultat des 2 requêtes sur une même page?

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 juin 2011, 11:30

C'est possible :)

Il te faut juste ajuster ta requête pour qu'elle retourne tous les enregistrements avec ton expediteur et ton destinataire OU le destinataire et l'expéditeur :
... WHERE ( ... AND ... ) OR ( ... AND ... )
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 20 Messages

15 juin 2011, 11:14

Salut! :D
Comme le dit ryle il suffit d'utiliser le OR, ce qui dans ton cas donnerai un requête de ce type:
<?php 
$sql="SELECT expediteur, destinataire, message from chat WHERE (Destinataire='.$expediteur.' AND expediteur='.$destinataire.') OR (expediteur='.$expediteur.' AND destinataire='.$destinataire.' " ;
?>
En espérant que ça a pu t'aider.
Hail to the king!

Eléphanteau du PHP | 28 Messages

16 juin 2011, 13:43

merci beaucoup elle fonctionne correctement !!

Eléphanteau du PHP | 28 Messages

07 juil. 2011, 01:15

j'ai voulu modifier la requete mais je suis perdu ;(

je voudrais fusionner ces 2 requetes pour avoir le résultat en Json
<?php

if(isset($_POST['destinataire'])) $destinataire=$_POST['destinataire'];

 else	$destinataire='Julie';



$sql= "SELECT count(id), expediteur from chat WHERE destinataire='$destinataire' and status = '1' group by destinataire";


$req = mysql_query ($sql) or die (mysql_error());


$myArray = array();

while(false != ($data = mysql_fetch_array($req)))



{ 
$myArray[] = array(
	'expediteur' => utf8_encode($data['expediteur'])
	    
			);

  		}
		
	

echo json_encode ($myArray);


?>
et la 2eme :

$reponse=mysql_query("SELECT count(expediteur) FROM chat WHERE destinataire ='$destinataire 'and status = '1'")or die(mysql_error()) ;

while($row=mysql_fetch_array($reponse)){
	
	echo $row[0];

en faite je voudrais récuperer le $row[0] pour avoir en Json ce résultat

[{"expediteur":"michel","nbreMessage":"$row[0] "}]

merci pour le coup de main