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

    Problema con ordinamento array

    Non riesco ad ordinare un array in base all'id. In pratica desidero che l'ordine sia quello di inserimento e non quello alfabetico dei valori delle chiavi.

    Perché questo codice ordina in base ai name e non in base agli id?

    codice:
    CREATE TABLE category (
        id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255) NOT NULL,
        UNIQUE (name)
    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB;
    Codice PHP:
    <?php
    include_once $_SERVER['DOCUMENT_ROOT'] . '/abc_includes/magicquotes.inc.php';
    include 
    $_SERVER['DOCUMENT_ROOT'] . '/abc_includes/db.inc.php';
    include_once 
    $_SERVER['DOCUMENT_ROOT'] . '/abc_includes/helpers.inc.php';
    try {
        
    $r $pdo->query('SELECT id, name FROM category');
    } catch (
    PDOException $e) {
        
    $error "Errore di recupero delle categorie dalla banca dati.";
        include 
    $_SERVER['DOCUMENT_ROOT'] . '/abc_includes/error.html.php';
        exit();
    }
    foreach (
    $r as $row) {
        
    $categoria_menu[] = array('id' => $row['id'], 'name' => $row['name']);
    }
    ksort($categoria_menu);
    $p 'http://' $_SERVER['SERVER_NAME'];
    ?>
    Più pratica in futuro...

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Prima del ksort() prova a fare

    print_r($categoria_menu);

    Vedrai che l'array non è come te lo stai immaginando adesso.

    Prima di pensare a quale libro comprare per la programmazione avanzata, torna a studiare quello per la programmazione base, perché non hai capito come funzionano gli array.
    n.b. non è una presa in giro, è un dato di fatto.

  3. #3
    Hai ragione ma non bacchettarmi sempre. Bisogna usare array_multisort() però non capisco perché php (o mysql) ordina gli array all'interno di $categoria_menu secondo il name e non secondo l'ordine di inserimento.
    In questa pagina si spiega come ordinare il primo array:
    http://sviluppare-in-rete.blogspot.i...nto-array.html
    ma a me non interessa. A questo punto la domanda è un'altra:
    come posso ordinare i 'sottoarray' di un array sulla base delle loro chiavi? Ma poi perché devo riordinare? Non posso impedire a php (o mysql) di ordinare secondo il name?
    Più pratica in futuro...

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Hai ragione ma non bacchettarmi sempre...
    Lo faccio per farti capire che chiedi sempre consigli, libri da studiare, ma poi fai di testa tua non ascoltando ciò che ti si dice e queste sono le conseguenze, sei convinto di sapere e invece non è così.

  5. #5
    Tu mi hai detto di fare molti esercizi e io li sto facendo... il libro poi lo prendo per una serie di altri motivi che non ti sto a spiegare (approfondire la conoscenza dell'inglese, non sono sempre davanti ad un pc, dai libri trovo dei codici pronti spiegati bene da cui partire per sviluppare nuove applicazioni, ecc...).

    Poi alla base di tutto ci sono anche le potenzialità che nel mio caso sono molto limtate... li devi portare pazienza...
    Più pratica in futuro...

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il problema è che stai già pensando alla programmazione avanzata e ancora non hai capito gli array, non ti ho solo detto di fare tanti esercizi, ma anche di prenderti tutto il tempo che serve per assimilare gli argomenti e non correre.

  7. #7
    ora però cerchiamo di capire questo
    Più pratica in futuro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Prova a usare come Query
    codice:
    SELECT id, name FROM category ORDER BY id
    No

  9. #9
    Quote Originariamente inviata da tampertools Visualizza il messaggio
    Prova a usare come Query
    codice:
    SELECT id, name FROM category ORDER BY id
    Avevo già provato questo codice ma non funzionava. Ho riprovato ora e va benissimo.

    Grazie mille!

    Più pratica in futuro...

  10. #10
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Avevo già provato questo codice ma non funzionava. Ho riprovato ora e va benissimo.

    Grazie mille!


    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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.