Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376

    Eseguire più query insieme nella stessa pagina

    CIao a tutti. Ho uno script che, in una sola pagina, deve eseguire più query. Ho scritto:
    codice:
    //connessione al mysql
    
    $query = "SELECT...";
    $result = mysql_query($query, $db);
    
    while ($row = mysql_fetch_array($result)) {
    //stampo i record che mi servono
    }
    poi, poco sotto:

    codice:
    $query_due = "SELECT...";
    $result = mysql_query($query_due, $db);
        
    $query_tre = "UPDATE....";
    $result = mysql_query($query_tre, $db);
    $row = mysql_fetch_array($result);
    
    while ($row = mysql_fetch_array($result)) {
    //stampo i record che mi servono
    } 
    
    $query_quattro = "SELECT..."; 
    $result = mysql_query($query_quattro, $db);
    $row = mysql_fetch_array($result);
    e così via..

    I dubbi che ho sono:
    1) è giusto il modo in cui scrivo e faccio eseguire più query contemporaneamente in una stessa pagina?

    2) mentre per le query scrivo sempre una variabile diversa ($query_XXX), lo devo fare anche per i relativi $result e $row oppure no (visto che funzionano anche se sono variabili uguali ma messi in punti diversi della pagina)?

  2. #2
    2) La variabile viene identificata da un nome. Ogni volta che ci scrivi dentro sovrascrivi il contenuto precedente.

    Valuta tu se i dati ti servono ancora oppure no. In base a questa valutazione saprai dare la risposta al quesito 1).


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    dunque... i dati li sovrascrivo, ovviamente, avendo le variabili lo stesso nome, anche se funziona lo stesso. Secondo me (correggimi se sbaglio) non faccio male a personalizzare anche $row e $result, così ho delle variabili ben definite e che, in caso di dati diversi, non corro il rischio di sovrascrivere.

  4. #4
    [supersaibal]Originariamente inviato da LucianoS
    dunque... i dati li sovrascrivo, ovviamente, avendo le variabili lo stesso nome, anche se funziona lo stesso. Secondo me (correggimi se sbaglio) non faccio male a personalizzare anche $row e $result, così ho delle variabili ben definite e che, in caso di dati diversi, non corro il rischio di sovrascrivere. [/supersaibal]
    direi proprio di si.

    ad ogni gruppo di query usa variabili diverse, magari numerate in modo da risalire facilmente alla query interessata.

    $query1
    $res1
    $row1

    $query2
    $res2
    $row2

    ecc...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    ok. Un'altra cosa: io prima di chiudere la connesione al mysql, vorrei anche liberare la memoria occupata dalla query tramite:

    mysql_free_result($result);

    MA dal momento che ora ho tutti i $result diversi, la memoria di quale $result vado a chiudere??

  6. #6
    [supersaibal]Originariamente inviato da LucianoS
    ok. Un'altra cosa: io prima di chiudere la connesione al mysql, vorrei anche liberare la memoria occupata dalla query tramite:

    mysql_free_result($result);

    MA dal momento che ora ho tutti i $result diversi, la memoria di quale $result vado a chiudere?? [/supersaibal]
    quella che indicata nell'identificativo di risorsa.

    A parte che la memoria si libera al termine dello script in modo automatico, se le query che fai sono abbondanti puoi liberare la memoria impegnata dal resul set, proprio puntando a quel $result1, o $result2 che ha raccolto l'id resource della query relativa.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2004
    Messaggi
    376
    non ho capito.
    Io ho per ogni $query1,2,3..... le relative $result1,2,3.... ecc.
    Alla fine dello script, quale variabile $resultX devo inserire in mysql_free_result()?

  8. #8
    [supersaibal]Originariamente inviato da LucianoS
    non ho capito.
    Io ho per ogni $query1,2,3..... le relative $result1,2,3.... ecc.
    Alla fine dello script, quale variabile $resultX devo inserire in mysql_free_result()? [/supersaibal]
    Alla fine dello script e' inutile metterlo. faresti solo spreco di risorse. I risultati delle query si eliminano da soli con la fine dello script. Finito lo script non c'e' piu' nulla in memoria di quanto utilizzato o creato dallo script stesso.

    mysql_free_result lo "potresti" volendo, usare "durante" lo script, per liberare spazio dai dati della query gia' utilizzati ed ormai inutili.

    Quindi se per esempio prima di fare la query3 vuoi liberare lo spazio occupato dalla query2 metterai: mysql_free_result($result2).
    E poi ti spari la query3 ....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.