Visualizzazione dei risultati da 1 a 10 su 10

Discussione: query in tabella

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2019
    Messaggi
    51

    query in tabella

    Buongiorno, sto eseguendo la seguente query:
    Codice PHP:
    $sql "SELECT * FROM eventi WHERE id='$id'";
    $result $conn->query($sql);

    echo
    "<table class='table mdl-data-table' id='example'>
                                            <thead>
                                                <tr>
                                                 
                                                    <th class='text-center font-bold dark-grey-text'>id</th>
                                                    <th class='text-center font-bold dark-grey-text'>Nome Corso</th>    
                                                    <th class='text-center font-bold dark-grey-text'>Stato</th>                                                                                        
                                                </tr>
                                            </thead><tbody>
                                            "
    ;

                                                  

    if (
    $result->num_rows 0) {
      
    // output data of each row
      
    while($row $result->fetch_assoc()) {

        
    $nome $row["corso"];
        
    $stato $row["stato"];
        
    $id $row["stato"];
     
    echo 
    "<tr style='background-color:#F7F7F7'><td class='text-center'>$id</td><td class='text-center'>$nome</td><td class='text-center'>$stato</td>”;
     
    }
       
     
     
       }

    else {
      echo "
    ..";
    }
       
    $conn->close();
    ?>            
     </tr>
    </tbody></table> 
    la variabile id ha 2 valori 9 e 13.
    Ottengo questa impaginazione
    id Nome Corso Stato
    9 Posturale prenotato
    9 Posturale prenotato
    9 Posturale prenotato
    13 Sala prenotato

    Invece vorrei ottenere questa
    id Nome Corso Stato
    9 Posturale prenotato
    9 Posturale prenotato
    9 Posturale prenotato
    id Nome Corso Stato
    13 Sala prenotato


    Come devo modificare la mia query?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Se usi la clausola where id=9 può solo recuperare tutte le row che hanno il 9 come id, poiché vuoi recuperare più di un id in una singola tabella devi usarla senza where magari usi ORDER BY id e poi in php crei una variabile di referenza.
    Su una suddetta tabella di nome eventi con colonne di nome id, Nome Corso, Stato
    Codice PHP:
    $sql "SELECT * FROM eventi ORDER BY id";
    $result $conn->query($sql);
    if (
    $result->num_rows 0) {
      
    // output data of each row
      
    while($row $result->fetch_assoc()) {
    echo 
    $row['id'];
    echo 
    $row['Nome_Corso'];
    echo 
    $row['Stato'];
    }
    }
    $conn->close(); 
    Se ricordo bene php dovrebbe sostituire lo spazio bianco in underscore per creare una chiave di nome valido dentro un array.
    Attenzione fetch_assoc è sensibile alle minuscole/maiuscole (case sensitive).
    Ultima modifica di darbula; 01-07-2020 a 14:10

  3. #3
    non devi modificare la query. in php memorizzati l'id e quando cambia ristampi l'header

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2019
    Messaggi
    51
    Purtroppo il where devo utilizzarlo, mi serve per mostrare solo alcuni id

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2019
    Messaggi
    51
    Potresti farmi un esempio?

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Codice PHP:
    $sql "SELECT * FROM eventi WHERE id=$id OR id=$id2 ORDER BY id"
    Semplicemente aggiungendo il codice seguente a quanto scritto prima. https://forum.html.it/forum/showthre...1#post25554056
    Codice PHP:
    if($id == $row['id']) {
    echo 
    'primo id';
    } elseif (
    $id2 == $row['id']) {
    echo 
    'secondo id';

    Se invece devi per l'appunto eseguire un range di id puoi semplificare la query ma però dovrai creare una variabile e confrontare se non esiste la crei o confronti la variabile creata con $row['id'].
    Codice PHP:
    $sql "SELECT * FROM eventi WHERE id BETWEEN $id_start_range AND $id2_stop_range ORDER BY id";
    if(isset(
    $var) && $var != $row['id']) {
    $var=$row['id']; //quando differente: secondo, terzo e etc .
    } elseif (!isset($var)) {
    $var=$row['id']; //solo il primo
    } else {
    //il prossimo quando non differente

    Ultima modifica di darbula; 01-07-2020 a 15:34

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2019
    Messaggi
    51
    Grazie per l'esempio, ho solo un dubbio io recupero l'id da un array, in questo caso come modifico la select?

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    fetch_assoc restituisce un array per ogni colonna presente nella tua tabella... Se si chiama esattamente id e hai la variabile contenitore $row alla funzione citata in precedenza si chiama $row['id'].

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2019
    Messaggi
    51
    Grazie, questa sera provo, ci aggiorniamo

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    189
    Recupero solamente i tre valori di id, Nome Corso e Stato delimitate da un range (es. da 0 a 100)
    Codice PHP:
    $sql "SELECT id, `Nome Corso`, Stato FROM eventi WHERE id BETWEEN $id AND $id2 ORDER BY id";
    $result $conn->query($sql);
    if (
    $result->num_rows 0) {
      
    // output data of each row
    $i=0;
      while(
    $row $result->fetch_assoc()) {
    if(!
    $i)
    $var=$row['id'];
    if(
    $var != $row['id']) {
    $var=$row['id'];
    $i+=1;
    }
    if(!isset(
    $y) || $y != $i) {
    //la prima transizione id se non esiste o quando cambia
    $y=$i;
    echo 
    $y,"\r\n";
    }
    echo 
    $row['id'],"\r\n";
    echo 
    $row['Nome_Corso'],"\r\n";
    echo 
    $row['Stato'],"\r\n";
    }
    }
    $conn->close(); 
    Forse questa sintassi è umano leggibile, fammi sapere.
    Ultima modifica di darbula; 01-07-2020 a 17:05

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.