Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129

    eseguire query più volte

    Come posso secondo voi eseguire una query, tante volte quante gli indico in un campo? :master:

    al posto del seguente codice (che solitamente uso quando deve ripetersi tante volte quante i risultati della query), cosa posso mettere secondo voi?
    codice:
    while ($rs1 = mysql_fetch_array($Result1)) {



    Marco

  2. #2

    Re: eseguire query più volte

    Originariamente inviato da galamarco
    Come posso secondo voi eseguire una query, tante volte quante gli indico in un campo? :master:

    al posto del seguente codice (che solitamente uso quando deve ripetersi tante volte quante i risultati della query), cosa posso mettere secondo voi?
    codice:
    while ($rs1 = mysql_fetch_array($Result1)) {



    Marco
    Se ho capito bene vuoi prelevare n tuple (righe) da una query, dove il valore n è preso da un campo?

    Se è così, puoi modificare la SELECT aggiungendo la clausola TOP e indicando un numero.

    Ad es. "SELECT TOP 5 * FROM tab" seleziona le prime cinque tuple.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129
    :master: no, io nella pagina ho un campo di testo che utilizzerò per dire alla query quante volte deve essere eseguita.

    La query si dovrà eseguire quelle tot volte, non è quello che intendi, diciamo che il db viene lasciato fuori.


    Marco

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129
    Riporto all'attenzione dei veterani del php.

  5. #5
    Originariamente inviato da galamarco
    :master: no, io nella pagina ho un campo di testo che utilizzerò per dire alla query quante volte deve essere eseguita.

    La query si dovrà eseguire quelle tot volte, non è quello che intendi, diciamo che il db viene lasciato fuori.


    Marco
    Rivediamo se ho capito...

    I valori della query li devi utilizzare tot volte? Ad esempio, devi fare una pagina che visualizza in cascata tot tabelle uguali?

    In tal caso memorizzi il risultato della query in un array associativo, per poi utilizzarlo ogni volta che vuoi.

    codice:
    $result = mysql_query($query, $db);
    $n = 0;
    while ($row = mysql_fetch_array($result)) {
      $a[] = array("colonna1"  => $row[colonna1],
                   "colonna2" => $row[colonna2],
                   ............................,
                   "colonnak" => $row[colonnak]);
      $n++;
    }
    p.s.
    E' consigliabile utilizzare questo metodo sempre, anche quando la query viene fatta una sola volta.
    Questo perché in tal modo verrà inviato il codice al client tutto in una volta, e non ci sarà quindi accesso al database mentre viene inviato codice (l'accesso al database è relativamente lento rispetto ai normali processi php).
    Quindi la cosa migliore (in generale) è di separare la parte di codice relativa all'accesso al db, dalla parte di codice relativa all'invio di dati al client.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    se nn ho capito male, tu ricevi via form una variabile $_POST['n'] che indica quante volte una query X deve essere eseguita, giusto?

    beh, allora io ricorrerei in un semplice ciclo, anche se forse ciò allungherebbe abbastanza i tempi di esecuzione con N molto grande...

    Codice PHP:
    for ($i 0$i $_POST['n']; $i++)
      
    mysql_query ($x); 
    *********************************
    Andrea
    *********************************

  7. #7
    Originariamente inviato da Squall1988
    se nn ho capito male, tu ricevi via form una variabile $_POST['n'] che indica quante volte una query X deve essere eseguita, giusto?

    beh, allora io ricorrerei in un semplice ciclo, anche se forse ciò allungherebbe abbastanza i tempi di esecuzione con N molto grande...
    infatti! nn ho ben capito perché eseguire la stessa query più volte...

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129
    Dunque... premetto che il sito è un gdr (gioco di ruolo online).

    Il fabbro deve produrre (per esempio) 10 armi, nella sua bottega, vorrei che mi appaia 10 volte la voce dell'arma che ha prodotto anzichè "arma pincopallino X 10".

    Cmq avete capito tutti e due giusto, ora provo quello che mi avete indicato, solo una cosa al volo... il doppio "+" non aggiunge "+1" al valore?
    A me servirebbe "-1" così che man mano la query si esaurica, altrimenti viene eseguita infinite volte se il valore aumenta, no?

    (ES:

    $N = '3';

    ---codice che mi avete indicato---

    $N = $N++

    facendo così, non aumenta di uno?)
    Marco

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    nel codice che ti ho dato io la query è eseguita esattamente $n volte, in quanto il controllo è effettuato su $i che aumenta.
    *********************************
    Andrea
    *********************************

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.