05. december 2016 - 10:29
Der er
11 kommentarer
loop i php
Hej Jeg er ved at lave en "send en mail med indhold fra en database (mysql) Den virker, men ikke rigtigt, mit problem er at hvis der er flere rækker til den person der skal have mailen, sender den 1 mail pr række. Jeg skal have alle række i samme mail Hvordan får jeg et loop in i min fecth? $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = 'min select (den er lang)'; $q = $pdo->prepare($sql); $q->bindValue(':username', $username); $q->execute(); $q->setFetchMode(PDO::FETCH_ASSOC); ?> <?php while ($r = $q->fetch()): ?> $modtager = ''.$r['email'].''; //Hvem skal have mailen? $emne = 'Du har følgende opgaver på xxxxx '; //Emnefeltet $besked = ''.$B_id.' '.$sal.' '.$side.''.$r['job_art'].' '; $headers = "MIME-Version: 0' . \r\n"; $headers .= "Content-Type: text/plain; charset=utf-8\r\n"; $header = "from:xxx@xxx.dk"; mail($modtager, $emne, $besked, $header); //Send!! ?> <?php endwhile; ?>
Annonceindlæg fra Infor
05. december 2016 - 11:10
#1
Vi er nød til at se din sql dump, for hvis du loop'er din afsender bliver det et problem hvis der flere linjer, man hvis det kun er tekst (besked) du vil loop så er det noget i retning af det her så skal hente dine afsender på anden måde <?php $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = 'min select (den er lang)'; $q = $pdo->prepare($sql); $q->bindValue(':username', $username); $q->execute(); $q->setFetchMode(PDO::FETCH_ASSOC); $besked = ''; while ($r = $q->fetch()): $besked .= '' . $B_id . ' ' . $sal . ' ' . $side . '' . $r['job_art'] . ' '; endwhile; $modtager = '' . $r['email'] . ''; //Hvem skal have mailen? $emne = 'Du har følgende opgaver på xxxxx '; //Emnefeltet $headers = "MIME-Version: 0' . \r\n"; $headers .= "Content-Type: text/plain; charset=utf-8\r\n"; $header = "from:xxx@xxx.dk"; mail($modtager, $emne, $besked, $header); //Send!! ?>
05. december 2016 - 11:15
#2
det skulle jeg ikke gøre, jeg laver en inner join i min select, mailen ligger kun 1 sted $sql = 'SELECT opgaver.O_id, opgaver.K_id, opgaver.B_id, opgaver.nummer, opgaver.sal,opgaver.job_art, opgaver.side, opgaver.username, users.username, users.email from opgaver JOIN users on opgaver.username = users.username where users.username = :username';
05. december 2016 - 11:32
#3
tjek lige som den ikke printer email med ud flere gange while ($r = $q->fetch()): print_r($r); endwhile;
05. december 2016 - 11:46
#4
det gjorde den sku Array ( [O_id] => 16 [K_id] => 9 [B_id] => 1 [nummer] => 1 [sal] => 7 [job_art] => test [side] => 1 [username] => admin [email] => xx@xxx.dk ) Array ( [O_id] => 17 [K_id] => 676 [B_id] => 2 [nummer] => 33 [sal] => 4 [job_art] => test [side] => 1 [username] => admin [email] => xx@xxx.dk )
05. december 2016 - 16:26
#5
[UD TESTET] prøv det her $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql1 = 'DIN USER SQL_STRING'; $q1 = $pdo->prepare($sql1); $q1->bindValue(':username', $username); $q1->execute(); $q1->setFetchMode(PDO::FETCH_ASSOC); $user = $q1->fetch(); $sql2 = 'DIN OPGAVE SQL_STRING'; $q2 = $pdo->prepare($sql2); $q2->bindValue(':username', $user['username']); $q2->execute(); $q2->setFetchMode(PDO::FETCH_ASSOC); $besked = ''; while ($task = $q2->fetch()): $besked .= '' . $task['B_id'] . ' ' . $task['sal'] . ' ' . $task['side'] . '' . $task['job_art'] . ' '; endwhile; $modtager = '' . $user['email'] . ''; //Hvem skal have mailen? $emne = 'Du har følgende opgaver på xxxxx '; //Emnefeltet $headers = "MIME-Version: 0' . \r\n"; $headers .= "Content-Type: text/plain; charset=utf-8\r\n"; $header = "from: xxx@xxx.dk"; mail($modtager, $emne, $besked, $header); //Send!!
05. december 2016 - 17:44
#6
den giver ingen fejl, men den sender ikke noget.
05. december 2016 - 18:16
#7
så kom der sku noget, men øv nu virker mine values ikke mere. Da jeg har flere bygninger, etager, sider og meget andet, bruger jeg et tal, bygning 1, 2, 3 , 4 og skriver dem ud på siden, hvor de skal bruges. Nu virker de ikke i mailen if ($r["B_id"] == '1'){ $B_id = 'HV'; } else if ($r["B_id"] == '2'){ $B_id = 'ÅP-2'; } else if ($r["B_id"] == '3'){ $B_id = 'ÅP-3'; } else if ($r["B_id"] == '4'){ $B_id = 'ÅP-4'; Har prøvet med if ($task["B_id"] == '1'){ $B_id = 'HV'; } men det virker ikke
05. december 2016 - 18:23
#8
$user['felt her']
05. december 2016 - 18:27
#9
hmmm den forstår jeg ikke? if ($user["B_id"] == '1'){ $B_id = 'HV'; ?
05. december 2016 - 19:15
#10
Virker det ikke?
05. december 2016 - 19:37
#11
nej, den skriver 1 7 1test 2 4 1test Der skulle stå HV 7 sal Th test, ÅP-2 4sal th test
Vi tilbyder markedets bedste kurser inden for webudvikling