Page 1 sur 1

Faire cohabité deux requêtes + Mise en page d'un tableau

Posté : 15 juin 2009, 23:40
par C3D
Faire cohabité deux requêtes SQL

Bonjour,

Pour une application offline pour ma société je suis en train de faire un moteur de recherche avec deux dates , j'ai réussi à le faire fonctionné mais il me reste encore pas mal de boulot, par la suite je doit faire la somme de mon champs "Prix" mais pour cela je doit faire cohabité deux requêtes SQL, j'essaye sans cesse mais je ne parvient pas à le faire donc je demande de l'aide:

Voici mes deux requêtes :

$query = mysql_query("SELECT * FROM client WHERE date BETWEEN '$date1' AND '$date2'") or die (mysql_error());
$nb_resultats = mysql_num_rows($query);
if($nb_resultats != 0)
et
 $requete=mysql_query("SELECT SUM(prix) FROM client");
$donnee = mysql_fetch_array($requete);
$somme=$donnee['SUM(prix)'];
La première correspond au moteur de recherche et la seconde au calcul du champ prix.

Un grand merci à vous pour votre aide.

Mise en page d'un tableau

Après le lancement de ma recherche j'ai ma liste de clients qui s'affiche, quand je met celle ci sous cette forme :
<?php echo $donnees['titre']; ?> <?php echo $donnees['nom']; ?> <?php echo $donnees['prenom']; ?> - <?php echo $donnees['prix']; ?>€</strong>
Aucun problemes mes clients par exemple 3 s'affiche simplement,

Maintenant je souhaite faire un tableau j'utilise ce code :
<?php
 echo '<center><table bgcolor="#FFFFFF" border="1" cellpadding="0" style="border-color:#999" width="800px">'."\n";
        // premi&egrave;re ligne on affiche les titres pr&eacute;nom et surnom dans 2 colonnes
       
        echo '<td background="img/fdc.png" width="56%" align="center"><b><u>Client</u></b></td>';
        echo '<td background="img/fdc.png" "width="20%" align="center"><b><u>Ville</u></b></td>';
		echo '<td background="img/fdc.png" width="12%" align="center"><b><u>Date & Heure</u></b></td>';
echo '<td background="img/fdc.png" width="12%" align="center"><b><u>Montant</u></b></td>';
        echo '</tr>'."\n";
    // lecture et affichage des r&eacute;sultats sur 2 colonnes, 1 r&eacute;sultat par ligne.    
    while($donnees = mysql_fetch_array($query)) {
		
 echo '<td bgcolor="#F9F9F9">'.$donnees['nom'].' '.$donnees['prenom'].'<i> ('.$donnees['titre'].')</i></td>';
        echo '<td bgcolor="#F9F9F9">'.$donnees['ville'].'</td>';
		echo '<td bgcolor="#F9F9F9">Le  '.dateFR($donnees['date']).'<p>&agrave; '.$donnees['heure'].'</td>';
        echo '<td bgcolor="#F9F9F9">'.$donnees['prix'].'€</td>';
		echo '</tr>'."\n";

    }
    // fin du tableau.
	

// on lib&egrave;re l'espace m&eacute;moire allou&eacute; pour cette requ&ecirc;te
	echo '</table>';
}

?>
Et la grand mystère j'ai bien mon compteur qui m'affiche 3 client trouvé hors dans mon tableau je n'ai que deux client, celui-ci me zap automatiquement le 1er client.

Un grand merci pour votre aide :)

Posté : 16 juin 2009, 02:09
par Wolfgang
Salut, j'ai du mal à comprendre pourquoi tu cherches à faire cohabiter les deux requêtes avec des critères de sélection différentes. Voila une portion du code ou j'ai optimisé le nombre de requête sql, mais bon.
	$databasename = "databasename";
	$serveur = "localhost";
	$user = "root";
	$mdp = "";	
	$dsn = "mysql:host=$serveur;dbname=$databasename";

	try{
		$dbh = new PDO($dsn,$user,$mdp);
	}catch (PDOExeption $e){
		print "Erreur : " . $e->getMessage() . "<br />";
		die();
	}
	$sql = "SELECT * FROM client WHERE date BETWEEN '$date1' AND '$date2'";
	$result = $dbh->query($sql);
	$result2 = $result->fetchAll();
	result = NULL;
	$nb_resultats = count($result2); // correspond à ton mysql_num_rows($query); 
	if($nb_resultats != 0){}
	foreach ($result2 as $row){
		echo $donnees['titre'] .' '. $donnees['nom'].' '. $donnees['prenom'] .' - '. $donnees['prix'];
	}
	/* Le problème est que tu veux faire cohabiter deux requêtes mais avec des critères de sélection différents, si tu as besoin de la date dans ta première requête, je pense qu'il faudra faire une autre requête, d'autant que je ne vois pas pourquoi cela pose problème d'en faire une autre. Ce qui nous donnera :*/
	$sql = "SELECT SUM(prix) FROM client";
	$result = $dbh->query($sql);
	$donnee = $result->fetch();
	$somme = $donnee[0];
	result = NULL;
Je ne suis pas sur que ce que tu demandes soit possible, ou plutôt que cela corresponde réellement à tes attentes. Dans tous les cas je te souhaite une bonne soirée. :wink:

Posté : 16 juin 2009, 08:42
par C3D
Merci à toi je vais regarder cela

Petite explication du pourquoi du comment :
Dans un premier temps j'ai une requête a faire pour la recherche, au sujet de la seconde une fois mes clients affiché je doit additionné le champ "Prix" de ces clients afin de l'inclure dans une calculatrice qui fera le pourcentage de ce que je doit payé, ensuite une sortie en PDF est faite.

Voila en gros j'espère avoir été clair sur le projet :)

Encore merci à toi je vais voir ton code

PS en faite c'est presque cela que je souhaite :
http://demo.esfacturesdevis.com/tva/
(login: demo / mot de passe : demo)

EDITION:
J'ai réussi, j'ai refait une requête mais avec les dates de recherches et cela fonctionne niqueel a voir pour le tableau et son mystere :)