Aiutatemi vorrei sapere come si fà a creare un algoritmo per php per ordinare a piacimento un risultato query cioè decido io se mettere prima la b poi la f poi la l cioè non in ordine con ASC E DESC!!!
Aiutatemi vorrei sapere come si fà a creare un algoritmo per php per ordinare a piacimento un risultato query cioè decido io se mettere prima la b poi la f poi la l cioè non in ordine con ASC E DESC!!!
<?
function cmp($a, $b)
{
$arrComp=array('c'=>0,'s'=>1,'a'=>2,'b'=>3,'k'=>4) ;
if (($arrComp[$a]) == ($arrComp[$b])) {
return 0;
}
return (($arrComp[$a]) < ($arrComp[$b])) ? -1 : 1;
}
$a = array('b','s','a','c','k','b','s','a','c','k');
usort($a, "cmp");
foreach ($a as $key => $value) {
echo "
$key -> $value\n";
}
?>
ti stampa
0 -> c
1 -> c
2 -> s
3 -> s
4 -> a
5 -> a
6 -> b
7 -> b
8 -> k
9 -> k
...altri 5 anni di purga...
quindi dopo while ($row = mysql_fetch_array ($result) faccio echo "<td>.cmp($row[0])."</td>\n"; GIUSTO?
NO!
$daOrdinare=array();
while ($row = mysql_fetch_array ($result) )
{
array_push($daOrdinare,$row[0]);
}
function cmp($a, $b)
{
$arrComp=array('c'=>0,'s'=>1,'a'=>2,'b'=>3,'k'=>4) ;
if (($arrComp[$a]) == ($arrComp[$b])) {
return 0;
}
return (($arrComp[$a]) < ($arrComp[$b])) ? -1 : 1;
}
usort($daOrdinare, "cmp");
foreach ($daOrdinare as $key => $value) {
echo "
$key -> $value\n";
}
...altri 5 anni di purga...
Ok grazie!!
Quindi non devo usare $result = mysql_query( "SELECT * FROM ec... questo codice non và bene giusto?
ecco come è impostato
while ($row = mysql_fetch_array ($result) and $i<=$num_rows) {
if(!ereg("p",$row[2])) {
if(!ereg("h",$row[2])) {
if(!ereg("s",$row[2])) {
if(!ereg("r",$row[2]))
{
$users = $row[2] + 1;
echo "<tr><td>".$users."</td>\n";
echo "<td><a href=\"join.php?r=".$row[0]."\">".utfiso($row[0])."</a></td>\n";
ma non ti basta mettere un ORDER BY RAND() nella query?Originariamente inviato da FabioSign
Aiutatemi vorrei sapere come si fà a creare un algoritmo per php per ordinare a piacimento un risultato query cioè decido io se mettere prima la b poi la f poi la l cioè non in ordine con ASC E DESC!!!
« Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]
No ha chiesto l'arbitrarietàma non ti basta mettere un ORDER BY RAND() nella query?
Certo che devi crearti la risorsa altrimenti cosa cicli?Quindi non devo usare $result = mysql_query( "SELECT * FROM ec... questo codice non và bene giusto?
(la risorsa è $result)
Comunque mi sembra chiaro che non hai capito bene la mia soluzione:
$arrComp=array('c'=>0,'s'=>1,'a'=>2,'b'=>3,'k'=>4) ;
//è l'array di comparazione per fare l'ordinamento
//ossia l'ordinamento finale sarà come impostato in questo array
$daOrdinare=array();
while ($row = mysql_fetch_array ($result) )
{
array_push($daOrdinare,$row[0]);
}
// qui cicli il recordset e butti tutto dentro a un array che ho chiamato daOrdinare
function cmp($a, $b)
{
$arrComp=array('c'=>0,'s'=>1,'a'=>2,'b'=>3,'k'=>4) ;
if (($arrComp[$a]) == ($arrComp[$b])) {
return 0;
}
return (($arrComp[$a]) < ($arrComp[$b])) ? -1 : 1;
}
usort($daOrdinare, "cmp");
//con questo blocco fai l'ordinamento vero e proprio dell'array appena creato
//(chiamato daOrdinare) in base all'ordine determinato nell'array arrComp
foreach ($daOrdinare as $key => $value) {
echo "
$key -> $value\n";
}
//qui hai la stampa delle coppie chiave valore dell'array daOrdinare dopo l'usort
...altri 5 anni di purga...
Ho prova funziona però cè un problema il risultato anzichè uscire in tabella con il relativo link mi esce sotto la tabella cioè
TABELLA
Città Topic Lavori
1
2
3
4
5
6
1 -> Taranto
2 -> Milano ecc...
Cioè non escono nella tabella ma sotto
Beh..... perché lo script che ti hanno dato era solo un esempio e la stampa delle coppie di valori estrapolati dall'array è fuori da una tabella.
Devi sostituire la echo he ti ha scritto alpeweb con quella per stampare le righe della tabella.
Fuori dal foreach metti invece invece i tag di apertura e chiusura della stessa.
![]()
ok si ho capito come devo fare però voglio capire come lo apllico quì!!!
ECCO IL CODICE
$result = mysql_query( "SELECT * FROM chatlist WHERE cat = \"".$cat."\" Order By Name, Topic, Market, Count ASC limit $offset, $limit" );
if (!$result)
{die("Errore nella query $query: " . mysql_error());
}
if ($result) {
echo '<div align="center">';
echo '<table border=1>';
echo '<tr><td>Utenti</td>';
echo '<td>Nome</td>';
echo '<td></td>';
echo '<td>Topic</td>';
echo '<td>Linguaggio</td></tr>';
while ($row = mysql_fetch_array ($result) and $i<=$num_rows) {
$users = $row[2] + 1;
echo "<tr><td>".$users."</td>\n";
echo "<td><a href=\"join.php?r=".$row[0]."\">".utf2iso($row[0])."</a></td>\n";
echo "<td>".$row[3]."</td>\n";
echo "<td>".utfiso($row[1])."</td>\n";
echo "<td>".utiso($row[6])."</td></tr>\n";
}