Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24

    Inviare dati estratti con foreach

    Salve.
    Conosco pochissimo php.
    Utilizzo uno script perfettamente funzionante per estrarre dei record da mysql con un ciclo foreach e a stamparli a video.
    Vorrei inviare questi dati ad un'altra pagina ma non so come fare: i record sono più di uno, e quindi ho più di un id, più di un nome, ecc.
    Posto un pezzetto di codice:
    codice:
    foreach ($acquisti as $id=>$quantita)
        {
          $sql = 'SELECT * FROM prodotti WHERE id = '.$id;
          $res = $db->query($sql);
          $f = $res->fetch();
          @extract($f);
          $result[] = '<tr>';
          $result[] = '<td>Cancella</td>';
          $result[] = '<td>'.$nome.' by '.$marca.'</td>';
    ...
    Questo codice postato è una parte di una funzione per cancellare o cambiare la quantità di un prodotto in un carrello.
    A me servirebbe inviare i dati in un'altra pagina.
    Probabilmente dovrei creare un array ... forse la $f contiene qualcosa ... non ne ho idea!

    Qualcuno mi dà una mano?
    Grazie anticipatamente!

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Forse qualcosa ho trovato...
    Ho modificato il codice così:
    codice:
    foreach ($acquisti as $id=>$quantita)
        {
          $sql = 'SELECT * FROM prodotti WHERE id = '.$id;
          $res = $db->query($sql);
          $f = $res->fetch();
          @extract($f);
          $result[] = '<tr>';
          $result[] = '<td>Nome <input type="text" name="nome[]" value="'.$nome.'">'.$nome.'</td>';
          $result[] = '<td>Prezzo <input type="text" name="prezzo[]" value="'.$prezzo.'">'.$prezzo.'</td>';
    ...
    Questo codice è all'interno di un form che mi invia i dati in un altra pagina.

    La pagina che riceve ha come codice:
    codice:
    $nome = $_POST['nome'];
    $prezzo = $_POST['prezzo'];
    $quantita = $_POST['quantita'];
    $subtotale = $_POST['subtotale'];
    
    foreach ( $nome as $chiave => $valore) {
    echo $chiave."--".$valore."
    ";
    }
    Beh, il nome lo stampa. lol

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Qualcos'altro si vede.
    Ho aggiunto altri tre foreach e i dati appaiono tutti correttamente.
    Non è un bel vedere, comunque. Sia il codice, che il risultato a video.
    Sarebbe carino se si potessero vedere i risultati così:
    codice:
    nome prezzo quantità totale
    nome2 prezzo2 quantità2 totale2
    ...
    invece di
    codice:
    nome
    nome2
    prezzo
    prezzo2
    quantità
    quantità2
    ...
    Come posso fare?

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Nella funzione:
    codice:
    foreach ($acquisti as $id=>$quantita)
        {
          $sql = 'SELECT * FROM prodotti WHERE id = '.$id;
          $res = $db->query($sql);
          $f = $res->fetch();
          @extract($f);
          $result[] = '<tr>';
    ho questa $f ... sarà mica che si possono ottenere dei dati direttamente da questa variabile?
    E quell'extract cos'è?
    Ho trovato anche qualcosa tipo
    foreach ($array_da_attraversare as $chiave_elemento => $valore_elemento)
    che sembrerebbe utile ...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Risolto.

    codice:
    foreach ($acquisti as $id=>$quantita)
        {
          $sql = 'SELECT * FROM prodotti WHERE id = '.$id;
          $res = $db->query($sql);
          $f = $res->fetch();
          echo $f[id].$f[nome].$f[prezzo].$f[quantita]."
    ";
        }
    Era di una semplicità assurda, ora che ci sono arrivato.
    Capo, chiudi pure!

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Oh capo! ferma tutto! risolto poco o niente!
    Adesso però vado a nanna!

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Niente da fare, non c'è verso.
    Chi mi può aiutare?
    Riepilogo: ho questo script che funziona perfettamente, e mi inserisce e stampa a video i dati estratti da mysql.
    codice:
    ...
    foreach ($acquisti as $id=>$quantita)
        {
          $sql = 'SELECT * FROM prodotti WHERE id = '.$id;
          $res = $db->query($sql);
          $f = $res->fetch();
          @extract($f);
          $result[] = '<tr>';
          $result[] = '<td>Nome <input type="text" name="nome[]" value="'.$nome.'">'.$nome.'</td>';
          $result[] = '<td>Prezzo <input type="text" name="prezzo[]" value="'.$prezzo.'">'.$prezzo.'</td>';
    ...
    Dovrei inviare questi dati in un'altra pagina, ed il risultato dovrebbe essere:
    nome1 prezzo1 quantità1
    nome2 prezzo2 quantità2.
    Probabilmente la pagina che riceve i dati dovrebbe fare un altro ciclo, o più probabilmente bisognerebbe modificare il codice o gli input sopra.
    Chi mi può aiutare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    24
    Ok, risolto, si può chiudere.
    Non ho trovato la soluzione al problema, ho solamente cambiando script.

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.