Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    visualizzazione riga del database via mail

    Salve.
    Vorrei ricevere una mail quando un utente si iscrive alla newsletter.
    Ma il problema non è questo.
    In pratica vorrei che nella mail che mi arriva venga inserita anche la città la quale si è iscritto l'utente e non solo l'indirizzo mail. Non riesco a capire, quindi, come mai mi lista tutte le città invece della città selezionata dall'utente nel form.

    Ecco il codice...


    codice:
    $to = "mail@gmail.com";
    			$subject = "Un nuovo contatto mail INSERITO alla Newsletter";
    			
    			$sql1="select * from newsletter_categories where id >1 order by name";
    			$dati1=mysql_query($sql1);
    			
    			while($riga=mysql_fetch_array($dati1))
    			
    			{
    			$body .= "Un nuovo utente si è ISCRITTO alla Newsletter: " . trim(stripslashes($_POST["email1"])) . " In questa Città: " . $riga['name'] . "\n";
    			}
    			
    			$headers = "From: Modulo Controllo Newsletter. <info@mail.com>";
    			mail($to, $subject, $body, $headers);
    		}

    Spero di essere stato abbastanza chiaro. Vi ringrazio in anticipo per l'aiuto.

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    "select * from newsletter_categories where id >1 order by name"

    questa select ti tira fuori tutte le righe tranne quella con id 1 o 0 (e tranne le enventuali negative) quindi praticamente tutte.


    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    certo lo so! l'ho fatta apposta.

    infatti dopo ho fatto un while che dovrebbe pescare la linea che voglio ma non fa il suo compito

    codice:
    while($riga=mysql_fetch_array($dati1))

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221


    Codice PHP:
    while($riga=mysql_fetch_array($dati1)){
        
    $body .= "Un nuovo utente si è ISCRITTO alla Newsletter: " trim(stripslashes($_POST["email1"])) . " In questa Città: " $riga['name'] . "\n";

    questo while cicla per tutte le righe della query, per quale ragione dovrebbe fermarsi solo su quella che vuoi tu?
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  5. #5
    ecco perchè

    Dunque direi che non ha senso costruire questa funzione nel file php, ma bensì nel form.


    Ecco cosa ho fatto:

    Form
    codice:
    <td>Città:</td>
    <td><select name="categoria">
    <?php
    	$c=mysql_connect ("server", "root" , "root");
    	mysql_query ("use database", $c);
    	$sql="select * from newsletter_categories where id >1 order by name";
    	$dati=mysql_query($sql);
    
    	while($riga=mysql_fetch_array($dati))
    	{
    		echo "<option value=" .  $riga['id'] .">" . $riga['name'] ."</option>";
    	}
    ?>


    pagina php:
    codice:
    $to = "mail@gmail.com";
    			$subject = "Un nuovo contatto mail INSERITO alla Newsletter";
    			$body .= "Un nuovo utente si è ISCRITTO alla Newsletter: " . trim(stripslashes($_POST["email1"])) . " In questa Città: " . trim(stripslashes($_POST["categoria"])) . "\n";
    			$headers = "From: Modulo Controllo Newsletter. <info@mail.com>";
    			mail($to, $subject, $body, $headers);
    Solo che nella mail ovviamente mi riporta l'id e non il nome e non posso modificare sul form questo:
    codice:
    echo "<option value=" .  $riga['id'] .">" . $riga['name'] ."</option>";
    in questo:
    codice:
    echo "<option value=" .  $riga['name'] .">" . $riga['name'] ."</option>";
    Cosa suggerisci?

  6. #6
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    no il form lascialo così come è, modifichiamo la query in modo che estragga un solo record

    Codice PHP:
    $sql1="select * from newsletter_categories where id ='".$_POST['categoria']."' ";
    // usa $_GET o $_POST a seconda del method che hai nel form 
    e poi per fare le cose per bene, visto che stiamo usando una chiave univoca e quindi la query obbligatoriamente estrarrà un solo record, ci andiamo a togliere il ciclo while che non serve a nulla

    Codice PHP:
    //while($riga=mysql_fetch_array($dati1)){
    //    $body .= "Un nuovo utente si è ISCRITTO alla Newsletter: " . trim(stripslashes($_POST["email1"])) . " In questa Città: " . $riga['name'] . "\n";
    //}

    $riga=mysql_fetch_array($dati1);
    $body .= "Un nuovo utente si è ISCRITTO alla Newsletter: " trim(stripslashes($_POST["email1"])) . " In questa Città: " $riga['name'] . "\n"
    ti ho commentato le righe di codice che dovrai eliminare sostituendole con le nuove
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  7. #7
    Tu intendevi questo?



    codice:
    $sql1="select * from newsletter_categories where id ='" . $_POST['categoria']"' ";
    			$dati1=mysql_query($_POST['name']);
    			$body .= "Un nuovo utente si è ISCRITTO alla Newsletter: " . trim(stripslashes($_POST["email1"])) . " In questa Città: " . $dati1 . "\n";

    Mi sa che ce un errore di sintassi nella mysql_query

  8. #8
    ok l'ho cambiato ancora, ero entrato in confusione con $riga


    ecco:
    codice:
    $sql1="select * from newsletter_categories where id ='" . $_POST['categoria']"' ";
    			$dati1=mysql_query($_POST['categoria']);
    			$riga=mysql_fetch_array($dati1);
    			$body .= "Un nuovo utente si è ISCRITTO alla Newsletter: " . trim(stripslashes($_POST["email1"])) . " In questa Città: " . $riga['name'] . "\n";

    Ma
    codice:
    $dati1=mysql_query($_POST['categoria']);
    é sbagliato

  9. #9
    ok ora ci sono



    codice:
    $sql1="select * from newsletter_categories where id ='".$_POST['categoria']."' ";
    			$dati1=mysql_query($sql1);
    			$riga=mysql_fetch_array($dati1);
    			$body .= "Un nuovo utente si è ISCRITTO alla Newsletter: " . trim(stripslashes($_POST["email1"])) . " In questa Città: " . $riga['name'] . "\n";


    Così dovrebbe andare

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.