Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: tiedot kannasta sähköpostiin

Sivun loppuun

katket [20.03.2009 12:25:30]

#

Miten saisi lähetettyä tietoa kannasta postiin mail-funktiolla?
Eli kyseessä seuraavanlainen:

<?php
$sql="SELECT * FROM taulu WHERE ID = '$ID'";
//echo "$sql <br>";
$tulos=mysql_query($sql) or die("kyselyssä virhe");
while($sessiot=mysql_fetch_array($tulos,MYSQL_ASSOC)){
$tuotenimi = $taulu["tuotenimi"];
}
$viesti = "Tietokannasta loytyy:  $tuotenimi \n";

mail($SendTo, $SubjectLine, $viesti, "From: $SendFrom");
?>

Jos laitan näin, viestin mukana tulee ainoastaan ensimmäinen rivi kannasta. Eli miten tämän luuppaisi että kirjottaisi kaikki?

Lebe80 [20.03.2009 12:31:41]

#

Varmaan sun pitäis vaikka tohon $tuotenimi -muuttujaan lisäillä eikä vain korvata koko sisältöä.
eli korvaa toi rivi:

$tuotenimi = $taulu["tuotenimi"];

tällä:

$tuotenimi .=  $taulu["tuotenimi"]."\r\n";

edit:
jaa sul oli jotain kuraa tossa whilessakin...


tässä while:

while ($taulu = mysql_fetch_assoc($tulos)){
...

Grez [20.03.2009 12:34:19]

#

Itse kyllä ihmettelen miten tuolla ylipäätään saadaan tuotenimi, kun $taulu-muuttujaan ei missään vaiheessa kirjoiteta mitään.

Teuro [20.03.2009 13:12:39]

#

Eikä tuolla haulla saa muutenkaan löytyä kuin yksi ainoa rivi, muuten on id:n käyttö pahasti hakusessa. ID:n pitäisi muutenkin olla ilman hipsuja, koska se lienee kuitenkin numeraali?

katket [20.03.2009 13:49:20]

#

<?php
$sql="SELECT * FROM taulu WHERE ID = '$ID'";
//echo "$sql <br>";
$tulos=mysql_query($sql) or die("kyselyssä virhe");
while($taulu = mysql_fetch_assoc($tulos)){
$tuotenimi = $taulu["tuotenimi"]."\r\n";
}
$viesti = "Tietokannasta loytyy:  $tuotenimi \n";

mail($SendTo, $SubjectLine, $viesti, "From: $SendFrom");
?>

Joo tuossa oli tuo while vähän väärin, mutta nyt siinä on muuttuja oikein. Mutta ei se tuolla \r\n jutulla toimi, palauttaa sähköpostissa vain viimeisimmän rivin. ID on tekstikenttä kun id tulee session_idstä jossa on kirjaimia ja numeroita.

Teuro [20.03.2009 13:58:07]

#

Tuolta ei kuitenkaan tule kuin yksi rivi, koska tuo while rakenne antaa kaikki kannasta tulleet rivit ei sarakkeita. Sarakkeet saat selville mysql_num_fields funktiolla.

<?php
$sql="SELECT * FROM taulu WHERE ID = '$ID'";
//echo "$sql <br>";
$tulos=mysql_query($sql) or die("kyselyssä virhe: " . mysql_error());

while($rivi = mysql_fetch_array($tulos)){
  for($a = 0; $a < count($rivi); ++$a){
    $tuoteNimi .= $rivi[$a] . "\r\n";
  }
}

$viesti = "Tietokannasta loytyy:  $tuoteNimi \n";
?>

Tämä ihan hatusta kirjoitetuna, mutta pitäisi olla sinnepäin.

katket [20.03.2009 14:40:14]

#

Nyt antaa virhettä Undefined offset:0 ja niitä tulee aina nollasta kuutoseen, jonka jälkeen aloittaa alusta. Sarakkeiden määrä on 7 eli osaa pyörittää silmukkaa oikean määrän. Voisiko virhe johtua siitä että kohta $rivi[$a] antaa nimen jonka nimistä saraketta ei ole olemassa?

katket [20.03.2009 18:12:24]

#

Voisikohan rivejä tietokannasta saada yhteen arrayhin jonka voisi lähettää könttinä (yhtenä muuttujana)?

katket [20.03.2009 22:34:07]

#

Nyt sain tämän toimimaan näillä ohjeilla:
http://codingforums.com/showthread.php?t=157049


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta