ugrás a tartalomhoz

mail() + sql

Individual · 2011. Szep. 18. (V), 19.22
Üdv!

SESSION tömbben lévő adatokat, hogyan lehet átadni mail()-nek?
A tömb elemeit kiolvassa weben (while,foreach...ahogy kell) viszont amikor a mail()-be teszem akkor csak az utolsó elemet olvassa és küldi el.

1. Tömb elemein végig megyek és beteszem egy $nevek változóba.
2. A mail függvényben megadom, hogy névsor: $nevek

Mit nem veszek észre?
Választ köszönöm!
 
1

Tömb?

Schmidi · 2011. Szep. 18. (V), 19.25
A $nevek egy tömb? Ha nem tömb, akkor ahogy végigmész a SESSION elemein, folyamatosan felülírod, és végül az utolsó elem marad benne.
2

Igen tömb, pont ez a bajom,

Individual · 2011. Szep. 18. (V), 19.32
Igen tömb, pont ez a bajom, hogy direkt kiíratom elküldéskor, hogy lássam mi van benne és látom az X elemet csak a levélben már nem úgy kerül.
3

Kód

Schmidi · 2011. Szep. 18. (V), 19.34
Mutass konkrét kódot.
A mail függvény melyik paraméterének, hogy adod át az értéket?
4

while($row =

Individual · 2011. Szep. 18. (V), 19.46

  while($row = mysql_fetch_assoc($result)) {
	$nevek[$row["id"]] = $row;
  }
			  
  foreach ($_SESSION['nevsor'] as $id=>$db) {
	$nevek[$id]["ember_neve"];
	$lista = $nevek[$id]["ember_neve"];
				 
	print $lista."<br />"; //teszt	 
  }

/*mail osszerakas */

  $headers = 'From: noreply.asd##kukac##asd.hu' . "\r\n" .
	     'Reply-To: noreply.asd##kukac##asd.hu' . "\r\n".
	     'MIME-Version: 1.0'. "\r\n".
	     'Content-type: text/html;charset=iso-8859-2\r\n'."\r\n";
  $idopont = time();
  $kelt=date("Y.m.d. G:i:s", $idopont);
  $mailcim = "sajat##kukac##gmail.com"; 
  $mailtargy = "targy";
  $mailtartalom = "
    <html>
	<body>
	  Névsor: $lista
          Kelt: $kelt
	</body>
     </html>";

mail($mailcim, $mailtargy, $mailtartalom, $headers);

				 

5

Felülírás

Schmidi · 2011. Szep. 18. (V), 20.09

 foreach ($_SESSION['nevsor'] as $id=>$db) {  
    $nevek[$id]["ember_neve"];  
    $lista = $nevek[$id]["ember_neve"];  
                   
    print $lista."<br />"; //teszt       
  }  
A foreach-en belül az első sor mit csinál?
Nincs benne értékadás, nincs kiíratás.

A $lista elemét a ciklus minden egyes lefutásakor felülírod, így nem lesz belőle valós lista sosem, csak az utolsó elemet fogja tartalmazni.

Próbáld így:

$lista .= $nevek[$id]["ember_neve"];  
Így a .= operátorral hozzáadhatod az eredeti értékhez az aktuális ciklusban érvényes elemet. (Célszerű valamilyen elválasztó elemet, pl. a ", " sztringet is az értékek közé fűzni, hogy olvasható maradjon.
6

Te jó ég... megint sikerült

Individual · 2011. Szep. 18. (V), 20.13
Te jó ég... megint sikerült kapkodósnak és figyelmetlennek lenni...
A "." hiányzott az egészből. Tökéletes!

Nagyon köszönöm, lógok egy sörrel :)