Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    ordinamento 'a cascata' dei dati

    Nella mia tabella di db, ho (tra gli altri) tre campi:
    area, corso, lezioni
    I valori del campo area definiscono un dipartimento di studi, i valori del campo corso definiscono il titolo del corso, ed valori del campo lezioni definiscono i titoli delle lezioni.
    Per cui, ad es., nell'area Informatica posso avere due o tre corsi, ciascuno dei quali avrŕ un numero variabile di lezioni.
    Ciň che vorrei, č poter ordinare i dati estratti in un questo modo:
    Informatica
    Corso A
    Lezione 1
    Lezione 2
    Lezione 3

    Corso B
    lezione 1
    Lezione 2

    Linguistica
    Corso A
    Lezione 1
    Lezione 2

    Corso B
    lezione 1
    Lezione 2
    Lezione 3
    etc.
    Io utilizzo questo codice:
    codice:
    $result = mysql_query("SELECT * FROM `corsi` ORDER BY area, corso");
    while ($row = mysql_fetch_array($result)) {
    echo "
    <font color=\"#FF6600\"><a name=\"";
    echo $row["area"];
    echo "\"></a>";
    echo $row["area"];
    echo "</font>
    <font color=\"#6699FF\">";
    echo $row["corso"];
    echo "</font>
    ";
    $lez = $row["lezioni"];
    $lezioni = explode("§", $lez);
    foreach($lezioni as $key => $lezione) {
    $key++;
    echo "".$key.". <a href=\"buyer.php?lez=".$lezione."\">".$lezione."</a>
    ";
    }
    ma in questo modo mi ripete il nome dell'area prima di ciascun corso.
    Come fare per ottenere il risultato desiderato?
    metatad
    graphic & web design

  2. #2
    beh potresti inserire un altro campo ke assegna l'ordine numerico in cui stampare i dati cioč.

    Codice PHP:
    $result mysql_query("SELECT * FROM `corsi` ORDER BY ordine, area, corso, lezione");
    while (
    $row mysql_fetch_array($result)) {

    echo
    "row[area]
             
         row[corso]

         row[lezione]

    "

    in modo ke verrebbe

    Informatica (poikč ordine = 1)
    CorsoA (poikč ordine = 1)
    Lezione1 (poikč ordine = 1)
    Lezione2 (poikč ordine = 1)
    Lezione3 (poikč ordine = 1)

    Scienze (poikč ordine = 2)
    CorsoA (poikč ordine = 2)
    Lezione1 (poikč ordine = 2)
    Lezione2 (poikč ordine = 2)
    Lezione3 (poikč ordine = 2)

    etc etc. l'ho ipotizzato teoricamente, quindi prova e poi fammi sapere

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    hummm... a parte il fatto che vorrei evitare di aggiungere un nuovo campo al db, comunque non mi sembra che cosě risolverei.
    Infatti, se l'area Informatica (ad es.) ha due corsi, come nell'esempio che ho fatto, il risultato sarŕ sempre che mi ripete 2 volte 'Informatica', prima del titolo del corso.
    Ed č questo che voglio evitare...
    metatad
    graphic & web design

  4. #4
    Codice PHP:
    $result mysql_query("SELECT * FROM `corsi` ORDER BY area, corso");
    $area "";
    while (
    $row mysql_fetch_array($result)) {
        if(
    $row["area"] != $area){
            
    $area $row["area"];
            echo 
    "
    [b]<font color=\"#FF6600\"><a name=\"
    $area\"></a>$area</font>[/b]
    "
    ;
        }
        echo 
    "[b]<font color=\"#6699FF\">";
        echo 
    $row["corso"];
        echo 
    "</font>[/b]
    "
    ;
        
    $lez $row["lezioni"];
        
    $lezioni explode("§"$lez);
        foreach(
    $lezioni as $key => $lezione) {
        
    $key++;
        echo 
    "[b]".$key."[/b]. <a href=\"buyer.php?lez=".$lezione."\">".$lezione."</a>
    "
    ;

    Normalmente con una cosa di questo tipo $row['area'] č messo solo ogni volta che cambia.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    thanx!...
    metatad
    graphic & web design

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 © 2024 vBulletin Solutions, Inc. All rights reserved.