Visualizzazione risultati 1 fino 4 di 4

Discussione: estrarre dati e affidarli a variabili...

  1. #1
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Predefinito estrarre dati e affidarli a variabili...

    allora ragazzi...

    io mi son ritrovato con un codice tipo questo...
    non chiedetemi perche

    Codice PHP:
    <?
    $risultato
    =mysql_query("SELECT * FROM programmi WHERE name='$file_name'");
    while(
    $result=mysql_fetch_array($risultato))
    $category = "{$result['category']}";
    $site = "{$result['site']}";
    ?>
    // parte di sito //
    <?
    echo "$category";
    ?>
    // parte di sito //
    <?
    echo "$site";
    ?>
    in pratica nella tabella programmi ci sono vari campi: name, category, site, count...e molti altri...

    io dovrei mostrare i dati contenuti in queste celle ripetutamente durante tutta la pagina...

    fin'ora ho risolto facendo OGNI VOLTA la query per singolo risultato...
    ma vorrei poterne fare una per tutta la pagina...affidando quindi i valori estratti dal database a delle variabili, per poi richiamarle tranquillamente ogni qualvolta ne avessi bisogno
    ...mi son trovato con un codice come quello...ma mi viene attribuita solo la prima variabile $category, mentre per esempio $site o altre messe in seguito NO.

    come si può far si che tutte le variabili assumino il proprio valore estratto dal database con una sola query?

    ah poi, altra cosa...ma è giusto ciclare il mysql fetch array con while? io non ho bisogno di creare cicli, perche come name='$file_name' è presente SOLO E SEMPRE un risultato...
    mi pare inutile, ma siccome ha sempre funzionato bene, non mi son mai preoccupato piu di tanto e lho lasciato cosi...

    vacca la miseria quanto mi sento noob...lol
    ...scusate

    grazie in anticipo :)
    Ultima modifica di fabrifibra : 21-03-2008 alle ore 06.06.35
    Cerco esperto in AJAX, contattatemi tramite MP, IMPORTANTE ;)


  2. #2
    L'avatar di saitfainder
    saitfainder non è connesso Sëniör Stäff
    Data registrazione
    06-12-2002
    Residenza
    Torino
    Messaggi
    8,715

    Predefinito

    Il tuo codice presenta un errore: il while è senza parentesi graffe, per cui esegue solo la riga immediatamente successiva, per questo non valorizza la variabile $site.

    Qui ti posto il codice corretto con l'aggiunta della generazione dei contenuti della pagina. Praticamente in $risultato c'è tutto l'elenco dei programmi. Ogni chiamata a mysql_fetch_array nel while tira fuori una riga e la mette in result. A quel punto ho i dati da visualizzare nell'array associativo $result. Alla fine del ciclo, se ci sono delle altre righe, genero ancora del codice.

    Codice PHP:
    <?
    $risultato
    =mysql_query("SELECT * FROM programmi");
    while (
    $result=mysql_fetch_array($risultato)) {
    ?>
    // parte di sito //
    <?
    echo $result['category'];
    ?>
    // parte di sito //
    <?
    echo $result['site'];
    }
    ?>


    «È una mia peculiarità distorcere la verità e inventarne di nuove.»
    «I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»


  3. #3
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da fabrifibra Visualizza messaggio
    ... in pratica nella tabella programmi ci sono vari campi: name, category, site, count...e molti altri...

    io dovrei mostrare i dati contenuti in queste celle ripetutamente durante tutta la pagina...

    fin'ora ho risolto facendo OGNI VOLTA la query per singolo risultato...
    ma vorrei poterne fare una per tutta la pagina...affidando quindi i valori estratti dal database a delle variabili, per poi richiamarle tranquillamente ogni qualvolta ne avessi bisogno
    ...mi son trovato con un codice come quello...ma mi viene attribuita solo la prima variabile $category, mentre per esempio $site o altre messe in seguito NO.

    come si può far si che tutte le variabili assumino il proprio valore estratto dal database con una sola query?
    Andiamo con ordine:
    - negli assegnamenti che fai ti stai complicando inutilmente la vita: se devi solo copiare una variabile, basta scriverla, non serve ri-comporla come stringa
    - forse hai dimenticato delle parentesi graffe: se non le metti, PHP considera come "corpo del ciclo" solo la prima istruzione
    In definitiva, il codice dovrebbe diventare questo:
    Codice PHP:
    <?
    $risultato
    =mysql_query("SELECT * FROM programmi WHERE name='$file_name'");
    while(
    $result=mysql_fetch_array($risultato))
    {
    $category = $result['category'];
    $site = $result['site'];
    ?>
    // parte di sito //
    <?
    echo $category;
    ?>
    // parte di sito //
    <?
    echo $site;
    }
    ?>
    Citazione Originalmente inviato da fabrifibra Visualizza messaggio
    ah poi, altra cosa...ma è giusto ciclare il mysql fetch array con while? io non ho bisogno di creare cicli, perche come name='$file_name' è presente SOLO E SEMPRE un risultato...
    mi pare inutile, ma siccome ha sempre funzionato bene, non mi son mai preoccupato piu di tanto e lho lasciato cosi... ...
    Se sei assolutamente certo che la query contenga ESATTAMENTE un risultato, volendo, puoi sostituire while con if e tutto funziona. In realtà quello che risparmi è soltanto un ritorno ad inizio ciclo, una nuova valutazione della condizione e un nuovo salto a fine ciclo, visto che il test fallisce... poca cosa. Attenzione, però: se metti if e la query ti restituisse "per sbaglio" più di un record, non potresti far niente per elaborarli tutti.

    Stammi bene...
    Ultima modifica di dementialsite : 21-03-2008 alle ore 11.09.06
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  4. #4
    L'avatar di fabrifibra
    fabrifibra non è connesso Utente giovane
    Data registrazione
    05-06-2006
    Messaggi
    51

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Se sei assolutamente certo che la query contenga ESATTAMENTE un risultato, volendo, puoi sostituire while con if e tutto funziona. In realtà quello che risparmi è soltanto un ritorno ad inizio ciclo, una nuova valutazione della condizione e un nuovo salto a fine ciclo, visto che il test fallisce... poca cosa. Attenzione, però: se metti if e la query ti restituisse "per sbaglio" più di un record, non potresti far niente per elaborarli tutti.

    Stammi bene...
    Ho risolto...non cè bisogno di nessun ciclo o if...
    le variabili le posso mostrare tranquillamente basta non usare graffe o apici...
    Codice PHP:
    <?
    $conn
    = mysql_connect("$db_host","$db_user","$db_pass");
    mysql_select_db("$db_name", $conn);
    $risultato=mysql_query("SELECT * FROM programmi WHERE name='$file_name'");
    $result=mysql_fetch_array($risultato);
    $category = $result['category'];
    $site = $result['site'];
    ?>
    // parte di sito //
    <?
    echo "$category";
    ?>
    // parte di sito //
    <?
    echo "$site";
    ?>
    anzi, volendo, potrei far a meno di assegnare ad ogni variabile il risultato...e stamparla allo stesso modo utilizzando in qualsiasi parte della pagina

    echo $result['category']

    ciao, e un grazie a tutti!
    Ultima modifica di fabrifibra : 21-03-2008 alle ore 19.00.18 Motivo: ho risolto piu facilmente
    Cerco esperto in AJAX, contattatemi tramite MP, IMPORTANTE ;)


Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •