Function par ou commencé??
Résolu
sinifer
Messages postés
323
Statut
Membre
-
sinifer Messages postés 323 Statut Membre -
sinifer Messages postés 323 Statut Membre -
Bonjour,
j'ai un problème, j'ai un code que je dois réutilisé plusieurs fois mais j'ai toujours une chose a changé sinon mes requettes et tous sont les mêmes la seul différence c'est que je doit cherché dans différente base de donnée donc celà interviendra seulement dans ce bout là
pour me connecté a la base non ???
et avec sa une fois que j'ai mes différente base connecté je veu affiché comme celà
mon problème c'est que j'ai de la peine avec les paramètre a mettre dans ma fonction je regarde les tutos mais rien qui puisse trop m'aider mais ce serai gentille si quelqu'un qui métrise bien le sujet pouvai me guider merci.
j'ai un problème, j'ai un code que je dois réutilisé plusieurs fois mais j'ai toujours une chose a changé sinon mes requettes et tous sont les mêmes la seul différence c'est que je doit cherché dans différente base de donnée donc celà interviendra seulement dans ce bout là
<?php
$host='localhost';
$user='*****';
$pass='*****';
$dbase='*****';
$connexion = mysql_connect($host,$user,$pass)or die ("Erreur de connexion");
mysql_select_db($dbase,$connexion)or die ("Erreur de connexion base");
?>
pour me connecté a la base non ???
et avec sa une fois que j'ai mes différente base connecté je veu affiché comme celà
<table border="1">
<tr style="text-align: center; background-color:#FFAD5B; font-weight:bold;">
<th> Pays </th>
<th> Prestataire </th>
<th> V G </th>
<th> Commandes </th>
<th> Tx Conv. </th>
<th> C.A </th>
<th> Mmc </th>
</tr>
<?php
$prefixe_query=mysql_query("SELECT sites_encodage FROM sites");
while ($prefixe_values=mysql_fetch_array($prefixe_query)) {
$prefixe=$prefixe_values["sites_encodage"].'_';
}
// REQUETE 1 :
$query = "SELECT substr(customers_from, 1, 5) AS Origin,
COUNT(customers_id) AS effectif_vg
FROM ".$prefixe."customers cu
WHERE customers_from NOT LIKE '<%'
" . $condition . "
GROUP BY Origin ";
$result_vg = mysql_query($query) ;
while ($row = mysql_fetch_array($result_vg))
{
// REQUETE 2 :
$query_produit =
" SELECT
count(co.commandes_status) AS command,
AVG(co.commandes_montant) AS Mmc
FROM ".$prefixe."customers cu
INNER JOIN ".$prefixe."commandes co
ON cu.customers_id=co.customers_id
WHERE co.commandes_status='1'
and customers_from LIKE '{$row['Origin']}%' " . $condition . "
";
if ($row['Origin'] == '') {
$query_produit = " SELECT
count(co.commandes_status) AS command,
AVG(co.commandes_montant) AS Mmc
FROM ".$prefixe."customers cu
INNER JOIN ".$prefixe."commandes co
ON cu.customers_id=co.customers_id
WHERE co.commandes_status='1'
and customers_from = '' " . $condition . "
";
}
$result = mysql_query($query_produit) ;
while ($row1 = mysql_fetch_array($result))
{
?>
<tr>
<td style="background-color:#CCCCCC;"> </td>
<td style="text-align:center;"> <?php echo $row['Origin'] ?> </td>
<td style="text-align:center;"> <?php echo $row['effectif_vg'] ?> </td>
<td style="text-align:center;"> <?php echo $row1['command'] ?> </td>
<td style="text-align:center;"><?php echo round(($row1['command'] / $row['effectif_vg']) * 100, 2); ?> % </td>
<td style="text-align:center;"> <?php echo round($row1['command']*$row1['Mmc']) ?> € </td>
<td style="text-align:center;"> <?php echo round($row1['Mmc'] ,2) ?> € </td>
<?php
}
}
?>
</tr>
</table>
mon problème c'est que j'ai de la peine avec les paramètre a mettre dans ma fonction je regarde les tutos mais rien qui puisse trop m'aider mais ce serai gentille si quelqu'un qui métrise bien le sujet pouvai me guider merci.
Configuration: Windows XP Firefox 3.0.10
6 réponses
-
Bonjour,
<?php
function connexionBase($host, $user, $pass, $dbase) {
$connexion = mysql_connect($host,$user,$pass)or die ("Erreur de connexion");
mysql_select_db($dbase,$connexion)or die ("Erreur de connexion base");
}
?>
exemple d'appels :
<?php
connexionBase("localhost", "root", "root", "mybase") ;
?>
ou avec des variables
<?php
$connexionPass = $_POST['pass'];
connexionBase("localhost", "root", $connexionPass, "mybase") ;
?>-
Merci
et pour l'appel des requettes j'ai fait comme sa
<?php function stats_pays( $condition) { $prefixe_query=mysql_query("SELECT sites_encodage FROM sites"); while ($prefixe_values=mysql_fetch_array($prefixe_query)) { $prefixe=$prefixe_values["sites_encodage"].'_'; } // REQUETE 1 : $query = "SELECT substr(customers_from, 1, 5) AS Origin, COUNT(customers_id) AS effectif_vg FROM ".$prefixe."customers cu WHERE customers_from NOT LIKE '<%' " . $condition . " GROUP BY Origin "; $result_vg = mysql_query($query) ; while ($row = mysql_fetch_array($result_vg)) { // REQUETE 2 : $query_produit = " SELECT count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM ".$prefixe."customers cu INNER JOIN ".$prefixe."commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from LIKE '{$row['Origin']}%' " . $condition . " "; if ($row['Origin'] == '') { $query_produit = " SELECT count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM ".$prefixe."customers cu INNER JOIN ".$prefixe."commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from = '' " . $condition . " "; } $result = mysql_query($query_produit) ; while ($row1 = mysql_fetch_array($result)) { } ?>
mais ce que je comprend pas c'est commen sa va sortire je doi fair un return??
-
-
donc après j'ai juste a renseigné le $condition par
<?php
stats_pays($condition) ;
?>
car au début de mon code j'ai<?php $date_du = $_POST['Du']; $date_au = $_POST['Au']; $condition = ""; if (isset($date_du) && $date_du !='') { $condition .= " AND customers_date_inscription>='" . $date_du . "' "; } if (isset($date_au) && $date_au !='') { $condition .= " AND customers_date_inscription<='" . $date_au . "' "; } ?> -
donc sa doit donnée comme sa
Je suppose que tu veux retourner le $result :
oui mais comme j'ai une autre requete je doi les prendre les deu comme sa?
$result_vg = mysql_query($query) ;
return $result_vg;
$result = mysql_query($query_produit) ;
return $result;
}
et lors de l'appel
while ($row = mysql_fetch_array($result_vg))
{
$res_vg = stats_pays( $condition);
while ($row1 = mysql_fetch_array($res_vg))
{
$res = stats_pays( $condition);
while ($row1 = mysql_fetch_array($res))
{
<tr>
<td style="background-color:#CCCCCC;"> </td>
<td style="text-align:center;"> <?php echo $row['Origin'] ?> </td>
<td style="text-align:center;"> <?php echo $row['effectif_vg'] ?> </td>
<td style="text-align:center;"> <?php echo $row1['command'] ?> </td>
<td style="text-align:center;"><?php echo round(($row1['command'] / $row['effectif_vg']) * 100, 2); ?> % </td>
<td style="text-align:center;"> <?php echo round($row1['command']*$row1['Mmc']) ?> € </td>
<td style="text-align:center;"> <?php echo round($row1['Mmc'] ,2) ?> € </td>
}
}
et quand tu regarde tous le code mon seul paramètre est juste??? -
Voilà je sais pas si j'ai bien compris mais j'ai fais comme sa pour la mise en fonction
<?php function stats_pays($condition) { $prefixe_query=mysql_query("SELECT sites_encodage FROM sites"); while ($prefixe_values=mysql_fetch_array($prefixe_query)) { $prefixe=$prefixe_values["sites_encodage"].'_'; } // REQUETE 1 : $query = "SELECT substr(customers_from, 1, 5) AS Origin, COUNT(customers_id) AS effectif_vg FROM ".$prefixe."customers cu WHERE customers_from NOT LIKE '<%' " . $condition . " GROUP BY Origin "; $result_vg = mysql_query($query) ; return $result_vg; // REQUETE 2 : $query_produit = " SELECT count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM ".$prefixe."customers cu INNER JOIN ".$prefixe."commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from LIKE '{$row['Origin']}%' " . $condition . " "; if ($row['Origin'] == '') { $query_produit = " SELECT count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM ".$prefixe."customers cu INNER JOIN ".$prefixe."commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from = '' " . $condition . " "; } $result = mysql_query($query_produit) ; return $result; ?>
et j'ai fait comme sa pour l'appel de la fonction<?php $res_vg = stats_pays( $condition); while ($row1 = mysql_fetch_array($res_vg)) { $res = stats_pays( $condition); while ($row1 = mysql_fetch_array($res)) { ?> <tr> <td style="background-color:#CCCCCC;"> </td> <td style="text-align:center;"> <?php echo $row['Origin'] ?> </td> <td style="text-align:center;"> <?php echo $row['effectif_vg'] ?> </td> <td style="text-align:center;"> <?php echo $row1['command'] ?> </td> <td style="text-align:center;"><?php echo round(($row1['command'] / $row['effectif_vg']) * 100, 2); ?> % </td> <td style="text-align:center;"> <?php echo round($row1['command']*$row1['Mmc']) ?> € </td> <td style="text-align:center;"> <?php echo round($row1['Mmc'] ,2) ?> € </td> <?php } } ?> es-ce que tous mes paramètre sont correct?? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
es-ce que tous mes paramètre sont correct??
car sa n'affiche rien??-
$res_vg = stats_pays( $condition);
while ($row1 = mysql_fetch_array($res_vg))
{
$res = stats_pays( $condition);
ça c'est faux.
<?php
$res_vg = stats_pays( $condition);
while ($row1 = mysql_fetch_array($res_vg))
{
?>
<tr>
<td style="background-color:#CCCCCC;"> </td>
<td style="text-align:center;"> <?php echo $row1['Origin'] ?> </td>
<td style="text-align:center;"> <?php echo $row1['effectif_vg'] ?> </td>
<td style="text-align:center;"> <?php echo $row1['command'] ?> </td>
<td style="text-align:center;"><?php echo round(($row1['command'] / $row1['effectif_vg']) * 100, 2); ?> % </td>
<td style="text-align:center;"> <?php echo round($row1['command']*$row1['Mmc']) ?> € </td>
<td style="text-align:center;"> <?php echo round($row1['Mmc'] ,2) ?> € </td>
<?php
}
}
?>
y'avait des endroits où tu avais mis $row à la place de $row1 -
oui mais c'est normal car j'ai deux requet les deux premier resultat ce trouve dans row et les autres ce trouve dans row1
c'est pour sa que j'ai fait :
<?php $res_vg = stats_pays( $condition); while ($row = mysql_fetch_array($res_vg)) { $res = stats_pays( $condition); while ($row1 = mysql_fetch_array($res)) { ?>
car je prend le '$res_vg' de ma première requet puis le '$res' est dans ma boucle et c'est a la deuxième boucle que je fais l'affichage -
ma première requete est comme sa: (là je prend deux info qui iront dans
<td style="text-align:center;"> <?php echo $row['Origin'] ?> </td>
<td style="text-align:center;"> <?php echo $row['effectif_vg'] ?> </td> )
// REQUETE 1 : $query = "SELECT substr(customers_from, 1, 5) AS Origin, COUNT(customers_id) AS effectif_vg FROM ".$prefixe."customers cu WHERE customers_from NOT LIKE '<%' " . $condition . " GROUP BY Origin "; $result_vg = mysql_query($query) ; while ($row = mysql_fetch_array($result_vg)) {
Ma boucle est row.
Pour la deuxième requete qui est dans la boucle row : ( là je prend des infos qui iront dans <td style="text-align:center;"> <?php echo $row1['command'] ?> </td>
<td style="text-align:center;"><?php echo round(($row1['command'] / $row['effectif_vg']) * 100, 2); ?> % </td>
<td style="text-align:center;"> <?php echo round($row1['command']*$row1['Mmc']) ?> € </td>
<td style="text-align:center;"> <?php echo round($row1['Mmc'] ,2) ?> € </td>)
// REQUETE 2 : $query_produit = " SELECT count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM ".$prefixe."customers cu INNER JOIN ".$prefixe."commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from LIKE '{$row['Origin']}%' " . $condition . " "; if ($row['Origin'] == '') { $query_produit = " SELECT count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM ".$prefixe."customers cu INNER JOIN ".$prefixe."commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from = '' " . $condition . " "; } $result = mysql_query($query_produit) ; while ($row1 = mysql_fetch_array($result)) {
donc après cette boucle je fais mon affichage là j'ai fais san la fonction pour mieu te montrer -
-
ne peu-je pas tous simplement faire comme sa crée ma fonction et après l'appelé
<?php function stats_pays($condition) { $prefixe_query=mysql_query("SELECT sites_encodage FROM sites"); while ($prefixe_values=mysql_fetch_array($prefixe_query)) { $prefixe=$prefixe_values["sites_encodage"].'_'; } // REQUETE 1 : $query = "SELECT substr(customers_from, 1, 5) AS Origin, COUNT(customers_id) AS effectif_vg FROM ".$prefixe."customers cu WHERE customers_from NOT LIKE '<%' " . $condition . " GROUP BY Origin "; $result_vg = mysql_query($query) ; while ($row = mysql_fetch_array($result_vg)) { // REQUETE 2 : $query_produit = " SELECT count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM ".$prefixe."customers cu INNER JOIN ".$prefixe."commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from LIKE '{$row['Origin']}%' " . $condition . " "; if ($row['Origin'] == '') { $query_produit = " SELECT count(co.commandes_status) AS command, AVG(co.commandes_montant) AS Mmc FROM ".$prefixe."customers cu INNER JOIN ".$prefixe."commandes co ON cu.customers_id=co.customers_id WHERE co.commandes_status='1' and customers_from = '' " . $condition . " "; } $result = mysql_query($query_produit) ; while ($row1 = mysql_fetch_array($result)) { } ?>
et après je l'appel comme sa
<?php stats_pays($condition); ?>
mais mon problème c'est que sa marche pas
-
-
je l'appelais deux fois car sa marchait pas quant je l'appelais une fois mais là j'ai réussi en prenant même l'affichage.
Merci pour ton aide sa ma été très utiles bonne journés