Visualizzazione risultati 1 fino 8 di 8

Discussione: [php] "unire" due variabili

  1. #1
    Guest

    Exclamation [php] "unire" due variabili

    nel db ho dei campi così:
    var1, var2, var3, ecc...

    vorrei fare un ciclo x visualizzarle cambiando solo il numero... faccio un esempio:

    Codice PHP:
    while($k<11){
    echo
    "$row[var$k]";
    }
    ho provato anche così: echo"$row[var.$k]"; ma nn funge...
    aiutatemi please...

    thx

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

    Predefinito

    Devi fare così:
    Codice PHP:
    $base = "var";
    for (
    $i = 1; $i < ...; $i++) // al posto di ... il numero massimo
    {
    $v = $base . $i;
    // nota il doppio dollaro!
    echo ($$v);
    }
    Stammi bene...

    P.S. Perché usare i nomi var1, var2, ... quando esistono i comodi array?
    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...

  3. #3
    Guest

    Predefinito

    funge.. grazie..
    non t spiego il motivo perchè non ho usato gli array se no nn finisco +... ;D

  4. #4
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Molto educativo l'utilizzo del "double dollar" $$, ma non capisco perché utilizzarlo qui, visto che l'identificativo del campo nell'array è un STRINGA (ovvero: $row['var1'] ) e non una variabile (anche se alla fine php nella sua manica larga riesce a dedurla come costante e funge uguale).

    Quindi, ora ok, l'ha utilizzato ed è riuscito ad adattarlo al suo caso, bene.
    Comunque, se può interessare scrivo come mi sarebbe venuto spontaneo rispondere, anche con un codice simile al suo tentativo:

    quindi dal suo:
    Codice PHP:
    while($k<11){
    echo
    "$row[var$k]";
    }
    a questo:
    Codice PHP:
    $k=1;
    while(
    $k<11){
    $campo = $row['var'.$k++];
    echo
    $campo;
    }
    Usa sempre un while, con il dovuto incremento (++) di $k, altrimenti loop infinito.

    Ciao
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite
    Devi fare così:
    Codice PHP:
    $base = "var";
    for (
    $i = 1; $i < ...; $i++) // al posto di ... il numero massimo
    {
    $v = $base . $i;
    // nota il doppio dollaro!
    echo ($$v);
    }
    Stammi bene...

    P.S. Perché usare i nomi var1, var2, ... quando esistono i comodi array?
    ho provato ad usare questo modo del 'doppio dollaro' ma nn stampa niente...

    ciao ^__^

  6. #6
    Guest

    Predefinito

    applaudo heracleum, ma pur non avendolo detto apertamente, avevo già modificato il codice di dementialsite in questo modo:
    Codice PHP:
    $base = "var";
    for (
    $i = 1; $i < 11; $i++)
    {
    $v = $base . $i;
    echo
    "$row[$v]";
    }
    e funge alla grande ;D
    ciao

  7. #7
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Sì come avevo detto su, funge perché php è sempre molto "deduttivo" e generoso

    Ma appunto, in quel modo lo si fa faticare doppiamente, mentre nel modo spiegato nel mio precedente post fatica il giusto.
    Se vuoi farlo faticare di meno anche in quest'ultima tua stesura del codice consiglierei di modificare da:
    Codice PHP:
    $base = "var";
    for (
    $i = 1; $i < 11; $i++)
    {
    $v = $base . $i;
    echo
    "$row[$v]";
    }
    a
    Codice PHP:
    $base = 'var';
    for (
    $i = 1; $i < 11; $i++)
    {
    $v = $base . $i;
    echo
    $row[$v];
    }
    Nota un paio di cosette:
    1) var è tra apici singoli (visto che non serve una stringa "complessa")
    2) tolte le doppievirgolette attorno a $row: il valore del campo nell'array $row è già di per sé una stringa, non c'è bisogno di includerlo dentro una stringa "..". Tra l'altro in altre configurazioni php darebbe seri problemi di sintassi perché un valore di un array all'interno di un'unica stringona ".." , se proprio ce lo vogliamo schiaffare , dovrebbe essere racchiuso da parentesi graffe {}, per es:
    Codice PHP:
    echo "Valore campo: {$row['campo']} \n bello eh!";
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  8. #8
    Guest

    Predefinito

    pota... io nn so tutte 'ste cose di php... ;D
    grazie heracleum...

Regole di scrittura

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