fonction tri multicritere dans une base de donnees php mysq

Petit nouveau ! | 1 Messages

17 août 2010, 19:45

Bonjour je susis vraiment busy , si quelqu'un pouvait me donner un coup de pouce j'ai afficher un repertoire qui affiche en premier tous les information d'une table donner.
ensuite creer une autre page tri sur laquelle je voudrai bien aficher les informations de ma table par choix multicritere : secteur d'activité liste deroulant ; pays liste deroulant ; et ville liste deroulant .
je n'arrive juste qu' a faire un tri sur un seul critere .
aidez moi s'il vous plait a le faire sur trois critere.
je vous apporte donc ; la page d'affichage de tous les donnees et la page du tri . merci d'avance .
vous verai mieux mon probleme sur ce lien http://www.afriworks.net/repertoire.html


REPETOIRE PHP

<?php

require_once('Connections/req.php');



$maxRows_requette4 = 100;
$pageNum_requette4 = 0;
if (isset($_GET['pageNum_requette4'])) {
$pageNum_requette4 = $_GET['pageNum_requette4'];
}
$startRow_requette4 = $pageNum_requette4 * $maxRows_requette4;

mysql_select_db($database_req, $req);
$query_requette4 = "SELECT DISTINCT secteur FROM afriwork09 ORDER BY secteur ASC";
$query_limit_requette4 = sprintf("%s LIMIT %d, %d", $query_requette4, $startRow_requette4, $maxRows_requette4);
$requette4 = mysql_query($query_limit_requette4, $req) or die(mysql_error());
$row_requette4 = mysql_fetch_assoc($requette4);

if (isset($_GET['totalRows_requette4'])) {
$totalRows_requette4 = $_GET['totalRows_requette4'];
} else {
$all_requette4 = mysql_query($query_requette4);
$totalRows_requette4 = mysql_num_rows($all_requette4);
}
$totalPages_requette4 = ceil($totalRows_requette4/$maxRows_requette4)-1;



$maxRows_requette_4 = 20;
$pageNum_requette_4 = 0;
if (isset($_GET['pageNum_requette4'])) {
$pageNum_requette_4 = $_GET['pageNum_requette_4'];
}
$startRow_requette_4 = $pageNum_requette_4 * $maxRows_requette_4;

mysql_select_db($database_req, $req);
$query_requette_4 = "SELECT DISTINCT pays FROM afriwork09 ORDER BY pays ASC";
$query_limit_requette_4 = sprintf("%s LIMIT %d, %d", $query_requette_4, $startRow_requette_4, $maxRows_requette_4);
$requette_4 = mysql_query($query_limit_requette_4, $req) or die(mysql_error());
$row_requette_4 = mysql_fetch_assoc($requette_4);

if (isset($_GET['totalRows_requette_4'])) {
$totalRows_requette_4 = $_GET['totalRows_requette_4'];
} else {
$all_requette_4 = mysql_query($query_requette_4);
$totalRows_requette_4 = mysql_num_rows($all_requette_4);
}
$totalPages_requette_4 = ceil($totalRows_requette_4/$maxRows_requette_4)-1;



?>
<?php
// Make a MySQL Connection

$query = "SELECT secteur, COUNT(secteur) FROM afriwork09 GROUP BY secteur";

$result = mysql_query($query) or die(mysql_error());

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style12 {color: #000000}
.Style2 { font-size: 10px;
color: #FF0000;
}
-->
</style>
</head>

<body>
<table width="100" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><img src="images/repertoire_t.jpg" width="507" height="50" /></td>
</tr>
</table>
<form id="form1" name="form1" method="post" action="default.php?page=recherche">
<table width="460" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="158" height="42">RECHERCHE RAPIDE </td>
<td width="302"><input name="mot" type="text" id="mot" />
<input type="submit" name="Submit" value="Envoyer" />
</td>
</tr>
</table>
<div align="center"><span class="Style2">Exp.: Afriworks </span>
</div>
</form>
<form id="form1" name="form1" method="post" action="default.php?page=repertoire_tri">
<table width="595" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="285" background="fondr.jpg"><table width="273" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="298"><span class="Style16 Style11">
<div align="center">Recherches par secteur d'activit&eacute;:</div>
<br />
</span>

<span class="Style16 Style11">
<select name="secteur" id="secteur">
<?php do { ?>
<option value="<?php echo $row_requette4['secteur']; ?>"><?php echo $row_requette4['secteur']; ?> <?php

// Print out result
//while($row = mysql_fetch_array($result)){
//echo "". $row['COUNT(secteur)'] ."";
//echo "<br />";
//}
?> </option>
<?php } while ($row_requette4 = mysql_fetch_assoc($requette4)); ?>
</select>
<br />
<br />
</span>
</td>
</tr>
</table></td>
<td width="25">&nbsp;</td>
<td width="285" background="fondr.jpg"><table width="275" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="275"><span class="Style16 Style11">
<div align="center">Recherches par Pays </div>
<br />
</span>

<span class="Style16 Style11">
<select name="select" id="select">
<?php do { ?>
<option value="<?php echo $row_requette_4['pays']; ?>"><?php echo $row_requette_4['pays']; ?></option>
<?php } while ($row_requette_4 = mysql_fetch_assoc($requette_4)); ?>
</select>
<input type="submit" name="Submit2" value="Trouver" />
<br />
<br />
</span>
</td>
</tr>
</table></td>
</tr>
</table>
</form>
<strong></strong>

<br />
<?php do { ?>
<table width="542" border="0" align="center" cellpadding="0" cellspacing="0">
<!-- fwtable fwsrc="Sans titre" fwbase="repert.jpg" fwstyle="Dreamweaver" fwdocid = "1764264203" fwnested="0" -->
<tr>
<td><img src="images/spacer.gif" width="13" height="1" border="0" alt="" /></td>
<td><img src="images/spacer.gif" width="513" height="1" border="0" alt="" /></td>
<td><img src="images/spacer.gif" width="16" height="1" border="0" alt="" /></td>
<td><img src="images/spacer.gif" width="1" height="1" border="0" alt="" /></td>
</tr>
<tr>
<td colspan="2"><img name="repert_r1_c1" src="images/repert_r1_c1.jpg" width="526" height="14" border="0" id="repert_r1_c1" alt="" /></td>
<td rowspan="3"><img name="repert_r1_c3" src="images/repert_r1_c3.jpg" width="16" height="150" border="0" id="repert_r1_c3" alt="" /></td>
<td><img src="images/spacer.gif" width="1" height="14" border="0" alt="" /></td>
</tr>
<tr>
<td rowspan="2"><img name="repert_r2_c1" src="images/repert_r2_c1.jpg" width="13" height="136" border="0" id="repert_r2_c1" alt="" /></td>
<td valign="top" bgcolor="#ffffff"><table width="447" height="101" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#86D1F1">
<tr>
<td width="26%" height="101"><?php
$img = $row_repertoire['image'];
if ($img == "") // le prenom est vide
echo '<img src="images/default.jpg">';
else // le prenom est pas vide
echo '<img src="upload/'.$img .'" width="112" height="100" >';
?></td>
<td width="74%" class="Style12"><strong><? echo $row_repertoire['entreprise']; ?></strong><br />
<? echo $row_repertoire['secteur']; ?><br />
<? echo $row_repertoire['pays']; ?><br />
<? echo $row_repertoire['telephone']; ?><br />
<table width="100" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td><a href="default.php?page=voir_pme_pmi&ID=<? echo $row_repertoire['ID']; ?>.html"><img src="images/ensavoir.jpg" width="108" height="25" border="0" /></a></td>
</tr>
</table></td>
</tr>
</table> <p style="margin:0px"></p></td>
<td><img src="images/spacer.gif" width="1" height="119" border="0" alt="" /></td>
</tr>
<tr>
<td><img name="repert_r3_c2" src="images/repert_r3_c2.jpg" width="513" height="17" border="0" id="repert_r3_c2" alt="" /></td>
<td><img src="images/spacer.gif" width="1" height="17" border="0" alt="" /></td>
</tr>
</table>
<div align="center">
<? }while($row_repertoire = mysql_fetch_assoc($repertoire)); ?>
<br />
<br />
Parcourez les pages:
<?php // ICI LE CODE A INSERER en l'adaptant au nom de votre jeu d'enregsitrement !
$last=$totalPages_repertoire+1;
$current=$pageNum_repertoire+1;
for ($i = 1; $i <= $last; $i++) {
if($current==$i){
echo "<strong> ". $i . "</strong> | ";
} else { ?>
<a href="<?php printf("%s?pageNum_repertoire=%d%s", $currentPage, min($totalPages_repertoire, $i-1), $queryString_repertoire); ?>"><?php echo $i;?></a><?php echo " | "; ?>
<?php
}
}
?>
</div>
<br />
<br />
</body>
</html>



REPERTOIRE TRI


<?php
$secteur = $_GET["secteur"];
// $nom contient alors la chaîne de caractères LA GLOBULE.

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
<style type="text/css">
<!--
.Style5 {color: #000000}
-->
</style>
<script type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a)&&x.oSrc;i++) x.src=x.oSrc;
}
//-->
</script>
</head>

<body>
<div align="center">
<table width="100" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><img src="images/repertoire_t.jpg" width="507" height="50" /></td>
</tr>
</table>
<br />
<font size="3">
<?php
require ("acces.php");
$link = mysql_connect($host, $user,$pass) or die(mysql_error());// On lance la connection &agrave; MySQL
mysql_select_db($db, $link);
$requet ="SELECT * FROM afriwork09 WHERE secteur='$_REQUEST[secteur]' ";//selectionne la table


$totalID=mysql_num_rows(mysql_query($requet));//On r&eacute;cup&egrave;re le nombre total d'entr&eacute;e dans la base
// puis on divise le nombre totale par le nombre de liens que l'on veux afficher en simultan&eacute; pour obtenir le nombre de pages
$nbpages=ceil($totalID/3);//4 indique 4 liens

if(isset($_GET["pg"]))
{
$pg=$_REQUEST["pg"];
}
else
{
$pg=1;
}

$debut=($pg*3)-3;

$requet.=" ORDER BY ID DESC LIMIT $debut, 10";
// on fini alors la requete par un point "." apr&egrave;s la variable $requet qui nous permet donc d'ajouter la limitation par 2 liens en simultan&eacute;.

$result= mysql_query($requet);

$nb=mysql_num_rows($result);


//ici on d&eacute;fini au d&eacute;part des variables null par "" pour &eacute;viter des erreurs de Notice.
$menu="";
$precedent="";
$suivant="";
$pgcourante="";
//pour d&eacute;finir la pagination on doit d'abord savoir la page o&ugrave; l'on se trouve
if(isset($_GET["pg"])){//isset d&eacute;termine si la variable "pg" est affect&eacute;e et renvoie la valeur true ou false (oui ou non).
$pgcourante=$_GET["pg"];// si oui elle affiche la bonne page
} else {// si c'est non ?
$pgcourante=1;// la page courrante est 1 donc la premi&egrave;re page du site.
}
/*on peut alors r&eacute;aliser un boucle avec "For" permettant d'afficher les liens pr&eacute;c&eacute;dent, suivant et les nombres de pages
suivant o&ugrave; l'on se trouve dans le site*/
if( $nbpages>=3) {$nume=$pgcourante+2;}
else {$nume=$nbpages;}
$fin=$pgcourante;
for($i=$fin;$i<=$nume;$i++){
if($i==$pgcourante){
$menu.=$i . "&nbsp;|&nbsp;";
if($i-1!=0){
$precedent="<a href=\"default.php?page=repertoire_tri&$_REQUEST[secteur]&pg=" . ($i-1) . "\">" . " Prev" . "</a>&nbsp;|&nbsp;";
$pg=$i;/*determine le numero de page qui permettra de retouver la page correspondante
a l'article pour la liens detail dans le panier*/
}
if($i<$nume) {
$suivant="<a href=\"default.php?page=repertoire_tri&secteur=$_REQUEST[secteur]&pg=" . ($i+1) . "\">" . "Next " . "</a>";
$pg=$i;/*determine le numero de page qui permettra de retouver la page correspondante
a l'article pour la liens detail dans le panier*/
}
}else{


$menu.="<a href=\"default.php?page=repertoire_tri&secteur=$_REQUEST[secteur]&pg=" . $i . "\">" . $i ."</a>&nbsp;|&nbsp;";

}
}
$menu=$precedent . $menu . $suivant;
//$toto = strlen($menu);
//$menu = substr_replace($menu,"...",$toto/2,$toto);



for($up=1;$up<=$nb;$up++){//affiche tous les articles du champ
$news=mysql_fetch_assoc($result);//envoi le resultat dans un variable $news que nous utiliserons pour afficher les donn&eacute;e

?>
</font> </div>
<table width="542" border="0" align="center" cellpadding="0" cellspacing="0">
<!-- fwtable fwsrc="Sans titre" fwbase="repert.jpg" fwstyle="Dreamweaver" fwdocid = "1764264203" fwnested="0" -->
<tr>
<td><img src="images/spacer.gif" width="13" height="1" border="0" alt="" /></td>
<td><img src="images/spacer.gif" width="513" height="1" border="0" alt="" /></td>
<td><img src="images/spacer.gif" width="16" height="1" border="0" alt="" /></td>
<td><img src="images/spacer.gif" width="1" height="1" border="0" alt="" /></td>
</tr>
<tr>
<td colspan="2"><img name="repert_r1_c1" src="images/repert_r1_c1.jpg" width="526" height="14" border="0" id="repert_r1_c1" alt="" /></td>
<td rowspan="3"><img name="repert_r1_c3" src="images/repert_r1_c3.jpg" width="16" height="150" border="0" id="repert_r1_c3" alt="" /></td>
<td><img src="images/spacer.gif" width="1" height="14" border="0" alt="" /></td>
</tr>
<tr>
<td rowspan="2"><img name="repert_r2_c1" src="images/repert_r2_c1.jpg" width="13" height="136" border="0" id="repert_r2_c1" alt="" /></td>
<td valign="top" bgcolor="#ffffff"><table width="447" height="101" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#86D1F1">
<tr>
<td width="26%" height="101"><?php
$img = $news['image'];
if ($img == "") // le prenom est vide
echo '<img src="images/default.jpg">';
else // le prenom est pas vide
echo '<img src="upload/'.$img .'" width="112" height="100" >';
?></td>
<td width="74%" valign="top" class="Style5"><font color="#993399"><strong><font size="3" face="Arial, Helvetica, sans-serif" color="red"><?php echo $news['entreprise']; ?></font></strong></font><br />
<?php echo $news['secteur']; ?><br />
<?php echo $news['pays']; ?><br />
<?php echo $news['commune']; ?><br />
<table width="100" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td><a href="default.php?page=voir_pme_pmi&ID=<?php echo $news['ID']; ?>.html"><img src="images/ensavoir.jpg" width="108" height="25" border="0" /></a></td>
</tr>
</table></td>
</tr>
</table>
<p style="margin:0px"></p></td>
<td><img src="images/spacer.gif" width="1" height="119" border="0" alt="" /></td>
</tr>
<tr>
<td><img name="repert_r3_c2" src="images/repert_r3_c2.jpg" width="513" height="17" border="0" id="repert_r3_c2" alt="" /></td>
<td><img src="images/spacer.gif" width="1" height="17" border="0" alt="" /></td>
</tr>
</table>
<div align="center">
<?php ; } ?>
<br />
<br />
<strong><?php echo $totalID; ?> Infos | Browse all </strong><br />
<br />
<font size="2"><?php echo $menu; ?> </font></div>
</body>
</html>

Mammouth du PHP | 19672 Messages

02 sept. 2010, 22:06

Salut armelk,
depuis la date de ton message, tu n'as reçu aucune réponse : peut-être t'es-tu demandé pourquoi ?

Je n'ai pas de réponse à apporter à ta question pour la même raison qui fait que personne n'y a répondu : ta question est mal formulée.
Mets-toi 5mn à la place des membres actifs du forum qui apportent des solutions ou des pistes pour les trouver : crois-tu sérieusement qu'on va se goinfrer 500 lignes de code même pas formaté pour trouver où est l'erreur ? Le ferais-tu ? Sûrement pas non plus.

Une question bien posée, ce sont les 3/4 de la réponse. Tu dois raisonner logiquement. On fait de la programmation, la réponse est donc binaire. Tu dois isoler la source de ton problème et là tu vas découvrir que tu as besoin d'afficher beaucoup moins de code et surtout de n'afficher que les parties pertinences de ce code.
Et je te signale que le sens de l'observation est une qualité un peu indispensable pour un développeur : ainsi tu aurais vu dans la barre d'outils disponible pour rédiger un message ici qu'il y a un bouton [php] qui permet d'insérer du code qui va alors garder son indentation et présentera une coloration syntaxique largement plus facile à lire.

En conclusion, je te suggère de reprendre ton problème s'il n'est pas résolu et de le reformuler convenablement :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: