Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Aiutino con strnatcmp

  1. #1

    Aiutino con strnatcmp

    Ciao a tutti
    Ho lo scipt qui sotto e vorrei usare strnatcmp per il campo manufacturers_code dove ci sono A1,A2,A13 ecc ed ho bisogno di ordinarle correttamente

    $query = tep_db_query("select distinct m.manufacturers_id, m.manufacturers_name, m.manufacturers_code from " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS . " p where m.manufacturers_id=p.manufacturers_id order by manufacturers_code");

    While($row = tep_db_fetch_array($query)) {

    Questo sotto e' quello che ho provato ma non funziona. Mi da tutti 1,1,1,1,1

    $pcode = array($row[manufacturers_code]);
    print(usort($pcode,"strnatcmp"));

    Qualc'uno lo sa usare correttamente questo benedetto strnatcmp?

    Grazie

  2. #2
    Nessuno conosce questa funzione?

    Grazie

  3. #3
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Mi spieghi un po' il tuo codice?

    che funzione è questa : tep_db_query ?

    e questa : tep_db_fetch_array?

    e questo : $pcode = array($row[manufacturers_code])?
    perche usi array?

    a me print(usort($pcode,"strnatcmp")) sembra ok e prima che ho dei dubbi

  4. #4
    Be, si scusa, sono delle funzioni di OSCommerce. avrei dovuto fare qualcosa piu' semplice.

    $query = ("select distinct m.manufacturers_id, m.manufacturers_name, m.manufacturers_code from " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS . " p where m.manufacturers_id=p.manufacturers_id order by manufacturers_code");

    While($row = tep_db_fetch_array($query)) {

    Comunque, c'e' una query che cerca un campo (manufacturers_code) in una tabella..(TABLE_PRODUCTS)

    In questo campo (manufacturers_code) ci sono dei codici .. a1 a2 a3 a12 a15
    usando order by manufacturers_code mi viene

    a1
    a12
    a13
    a14
    a2
    a3

    Adesso, i li vorrei che venissero cosi
    a1
    a2
    a3
    a12
    a13
    a14

    Mi e' stato suggerito che l'unico modi e' di usare questa funzione strnatcmp

    Ma non so come fare.. ecco tutto qui... scusa se ho messo delle cose che no vanno, ma non sono esperto in materia
    GRAZIE

    Salvo

  5. #5
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    TI ripeto la funzione è giusta http://it2.php.net/manual/it/function.strnatcmp.php

    ma ora provando lo script ti esce sempre questo ordine?

    a1
    a12
    a13
    a14
    a2
    a3

    al limite posta il pezzo di script integrale dalla query alla funzione strnatcmp

  6. #6
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Ho scoperto devi usare print_r(usort($pcode,"strnatcmp"));

  7. #7
    non funziona, mi da tutti 11111111111111111111111

  8. #8
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    L' errore allora è come riempi l array dalla query.

  9. #9
    adesso funziona con questa
    $pcode = array($row[manufacturers_code]);
    usort($pcode, "strnatcmp");
    print_r($pcode);

    Pero' mi da: e io no vorrei questa parte qui Array ( [0] => ) e' possibile?
    Array ( [0] => E1 )
    Array ( [0] => E1 )
    Array ( [0] => E1 )
    Array ( [0] => E1 )
    Array ( [0] => E14 )
    Array ( [0] => EC1 )
    Array ( [0] => EC3 )
    Array ( [0] => N1 )
    Array ( [0] => N1 )
    Array ( [0] => NW1 )
    Array ( [0] => NW1 )
    Array ( [0] => NW1 )
    Array ( [0] => NW3 )
    Array ( [0] => NW3 )
    Array ( [0] => NW5 )
    Array ( [0] => NW6 )
    Array ( [0] => NW8 )
    Array ( [0] => SE1 ) A
    rray ( [0] => SE1 )
    Array ( [0] => SE1 )

  10. #10

    ORDER BY?

    Ciao a tutti.

    Ho deciso di abbandonare questo sistema di ORDINARE un field...
    Comunque, mi e' stato detto che si puo' arrivare anche ad avere questo:

    A1
    A2
    A3
    A10
    A11

    usando ORDER BY .....

    C'E' qualcuno che l'ha fatto o e' capace di farlo?

    Grazie

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.