Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Algoritmi in Php Help!!!

    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!!!

  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    <?
    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...

  3. #3
    quindi dopo while ($row = mysql_fetch_array ($result) faccio echo "<td>.cmp($row[0])."</td>\n"; GIUSTO?

  4. #4
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    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...

  5. #5
    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";

  6. #6

    Re: Algoritmi in Php Help!!!

    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!!!
    ma non ti basta mettere un ORDER BY RAND() nella query?
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  7. #7
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    ma non ti basta mettere un ORDER BY RAND() nella query?
    No ha chiesto l'arbitrarietà

    Quindi non devo usare $result = mysql_query( "SELECT * FROM ec... questo codice non và bene giusto?
    Certo che devi crearti la risorsa altrimenti cosa cicli?
    (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...

  8. #8
    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

  9. #9
    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.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    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";
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.