Visualizzazione dei risultati da 1 a 6 su 6

Discussione: problema invio report

  1. #1

    problema invio report

    salve ragazzi,
    chi mi può aiutare con questo problema?
    Vi spiego brevemente il mio caso:

    Ho la pagina CARRELLO del sito dove sono presenti tutti i prodotti ordinati. Da questa pagina cè un tasto che se premuto invia una mail al destinatario con un report degli ordini effettuati.

    Tutto il procedimento lo sò fare, il mio problema stà nell'invio della mail, come faccio a inviare tutti i dati??
    ecco qui il mio script:


    <?
    // QUESTA FUNZIONE MI PERMETTE DI ESTRAPOLARE GLI ARTICOLI DAL CARRELLO

    fUNCTION REPORT($table, $utente){
    $s="select * from $table where ordine='no' and utente='$utente'";
    $r=mysql_query($s);
    while($d=mysql_fetch_array($r)){
    echo"Art: $d[articolo]
    Q.tà: $d[quantita]";
    } }


    // QUESTA INVECE MI PERMETTE DI INVIARE LA MAIL AL DESTINATARIO.

    FUNCTION INVIO_NOTIFICA($table, $utente){
    $destinatario="info@destinatario.it";
    $mail_header="From: WEB SITE\n";
    $mail_header .= "Content-type: text/html; charset=us-ascii\r\n";
    $mail_header .= "Content-transfer-encoding: 8bit\r\n\r\n";

    $messaggio=report($table, $utente);

    $oggetto="Richiesta Ordine";
    mail($destinatario, $oggetto, $messaggio, $mail_header)."\n";

    } ?>



    COSI' NON FUNZIONA, COME FACCIO AD ALLEGARE LA FUNZIONE REPORT NELLA MAIL??? EPPOI, E' GIUSTO COME RAGIONAMENTO??

    MAGARI E' UNA CAVOLATA, MA NON SO' DOVE SBATTERE LA TESTA!!!

    AIUTATEMI!!!

    grazie

  2. #2
    Prova con questo.
    Devi personalizzare i dati scitti TUTTo_MAIUSCOLO con i tuoi dati
    Se hai problemi a capire, chiedi. Io l'ho testato su un PHP 4.3.10 e funziona.
    Codice PHP:
    <?php

    function INVIO_NOTIFICA($table$utente$modalita){ 
        
    // parametri email
        
    $destinatario="info@sito.com"
        
    $mail_header="From: WEB SITE\n"
        
    $mail_header .= "Content-type: text/html; charset=us-ascii\r\n"
        
    $mail_header .= "Content-transfer-encoding: 8bit\r\n\r\n"
        
    $messaggio="Richiesta ordine 

    "
    ;

        
    // parametri del database
        
    $db_host "NOME_HOST";
        
    $db_user "NOME_USER";
        
    $db_password "PASSWORD";
        
    $db_name "NOME_DATABASE";
        
    // connessione ed apertura database
        
    $db mysql_connect($db_host$db_user$db_password);
        if (
    $db == FALSE)
            die (
    "Errore nella connessione al database.");
        
    mysql_select_db($db_name$db)
        or die (
    "Errore nella selezione del database.");
        
    $query "SELECT * FROM $table WHERE ordine='no' AND utente='$utente'"
        
    $result mysql_query($query$db);
        
    $num mysql_affected_rows();
        if (
    $num <> 0)  {
            echo 
    "
    "
    ;
            
    $progr 0;
            while (
    $row mysql_fetch_array($result)) {
                switch (
    $modalita) {
                    case 
    soloReport:
                        echo 
    "Art: $row[articolo]
    Q.tà: 
    $row[quantita]

    "
    // lo visualizza a video
                        
    break;
                    case 
    soloMail:
                        
    $messaggio .= "Art: $row[articolo]
    Q.tà: 
    $row[quantita]

    "
    ;// lo inserisce nel messaggio da inviare
                        
    break;
                    case 
    tutto:
                        echo 
    "Art: $row[articolo]
    Q.tà: 
    $row[quantita]

    "
    // lo visualizza a video                
                        
    $messaggio .= "Art: $row[articolo]
    Q.tà: 
    $row[quantita]

    "
    ;// lo inserisce nel messaggio da inviare
                        
    break;
                }
            } 
        }

        
    $oggetto="Richiesta Ordine"
        if (
    $modalita != "soloReport") {
            
    mail($destinatario$oggetto$messaggio$mail_header)."\n"// solo se è da inviare, invia la email
        
    }


    INVIO_NOTIFICA("NOME_TABELLA""NOME_UTENTE""MODALITA'_DESIDERATA");
    ?>
    -... Jack: quando ti viene in mente un'idea, scrivila e basta!-
    (Alec Baldwin "Caccia a Ottobre Rosso)

  3. #3
    In realtà sarebbe stato un po' più corto se si fosse solo memorizzata la varibile $messaggio e poi con uno switch fuori dal while gestito l'invio di email e visualizzazione a schermo, una roba tipo:

    Codice PHP:
    ...
            while (
    $row mysql_fetch_array($result)) {
                    
    $messaggio .= "Art: $row[articolo]
    Q.tà: 
    $row[quantita]

    "
    ;// lo inserisce nel messaggio da inviare
            

        }

        
    $oggetto="Richiesta Ordine"
        switch (
    $modalita) {
            case 
    soloReport:
                   echo 
    $messaggio;
                   break;               
            case 
    soloMail:
                   
    mail($destinatario$oggetto$messaggio$mail_header)."\n"
                   break;               
            case 
    tutto:
                   echo 
    $messaggio;
                   
    mail($destinatario$oggetto$messaggio$mail_header)."\n"
                   break;               
            }
    ... 
    -... Jack: quando ti viene in mente un'idea, scrivila e basta!-
    (Alec Baldwin "Caccia a Ottobre Rosso)

  4. #4
    cavolo, FUNZIONA!
    Sei stato SUPER GENTILISSIMO e Super velocissimo, grazie 10000000000000000000000000000000000!

    Ora però ho un altro problemino che non mi lascia dormire alla notte...

    Nel carrello ho l'elenco degli articoli con il relativo checkbox. Ho due pulsanti finali: uno che CANCELLA gli articoli tramite la funzione:

    $s="DELETE FROM $table WHERE id IN (".implode(",", $_POST['elimina']).")";
    $r=mysql_query($s);

    l'altro pulsante è di AGGIORNAMENTO ARTICOLI (AGGIORNA). Come cavolo si fa' ad aggiornare i dati??
    Esiste una funzione semplice come il DELETE???

    Vedi se puoi aiutarmi, altrimenti pazienza, GRAZIE lo stesso mi sei stato Molto di aiuto!
    Mi farebbe piacere conoscerti, magari se siamo vicini può nascere una collaborazione.(io sono un grafico e non sono espertissimo di programmazione)



    ti allego lo script:

    <?
    if($elimina){
    $s="DELETE FROM $table WHERE id IN (".implode(",", $_POST['elimina']).")";
    $r=mysql_query($s);
    }

    echo "<table>";
    $s="select * from $table where utente='$utente' and ordine='no'";
    $r=mysql_query($s);
    while($d=mysql_fetch_array($r)){
    ?>
    <tr><td><input type='hidden' name='articolo' value='$d[id]'>
    <input type='checkbox' name='elimina[]' value='$d[id]'></td>
    <td><? echo $d2[descrizione] ?></td>
    <td><input type='text' size='5' name='quantita' value='<? echo $d[quantita] ?>'></td></tr>
    <? } ?>

    <input type='submit' name='Submit' value='Elimina'>
    <input type='submit' name='Submit' value='Aggiorna'>
    </form>



    grazie

  5. #5
    Mi sembra di aver capito che tu vuoi aggiornare solatanto la visualizzazione, o sbaglio?
    In tal caso, proprio per controllare che gli articoli siano stati effetivamente tolti dal carrello, ti consiglio di riaccedere di nuovo al database e richiedere un report, così, se per qualche motivo non ti ha cancellato i dati, si vede.

    Se invece intendevi l'update del server, quello non serve.
    Infatti rispetto alla sintassi di interazione con DB Access da pagine ASP (ad esempio), non hai bisogno di dare il comando updae, ma ti basta il comando Delete.
    Infine se vuoi modificare i dati in un dab MySQL allora usa UPDATE con sintassi:
    Codice PHP:
    $variabile ="UPDATE NOME_TABELLA SET   CAMPO='VALORE',
                                    CAMPO2='VALORE2',
                                    ecc.
                                    WHERE ID='
    $ID'"
    -... Jack: quando ti viene in mente un'idea, scrivila e basta!-
    (Alec Baldwin "Caccia a Ottobre Rosso)

  6. #6
    lo so come si aggiorna, qui il discorso è un'altro, in quanto tutti gli articoli sono all'interno di un campo <form> ed essendo all'interno di un ciclo while le variabili id si sovrascrivono hai capito?

    Vedi lo script e sotto vedi la mia spiegazione

    <?
    if($elimina){
    $s="DELETE FROM $table WHERE id IN (".implode(",", $_POST['elimina']).")";
    $r=mysql_query($s);
    }

    echo "<table>";
    $s="select * from $table where utente='$utente' and ordine='no'";
    $r=mysql_query($s);
    while($d=mysql_fetch_array($r)){
    ?>
    <tr><td>

    -------------------------------------
    qui sotto cè il campo nascosto ID
    -------------------------------------

    <input type='hidden' name='articolo' value='$d[id]'>


    <input type='checkbox' name='elimina[]' value='$d[id]'></td>
    <td><? echo $d2[descrizione] ?></td>

    -------------------------------------
    qui sotto cè il campo da modificare QUANTITA'
    -------------------------------------
    <td><input type='text' size='5' name='quantita' value='<? echo $d[quantita] ?>'></td></tr>
    <? } ?>

    <input type='submit' name='Submit' value='Elimina'>
    <input type='submit' name='Submit' value='Aggiorna'>
    </form>



    -----------------------------
    se io faccio una condizione del tipo:
    if($submit==Aggiorna){
    $s=Update $table set quantita='$quantita' where id='$id'
    mysql_query($s);


    Non funziona, in quanto se ho + articoli nel carrello vede bene anche te che i campi nascosti per tutti si chiamano allo stesso modo e chiaramente il form tiene in considerazione il valore dell'ultima variabile per tutti.
    In questo modo se io modifico la quantità nell'ultimo articolo e metto 10 al posto di 5, quando premo AGGIORNA mi ricarica tutta la pagina con quantità = 10 per tutti!

    spero hai capito cosa intendo.

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.