E-mail naar meerdere gebruikers sturen met data uit andere tabel
Ik ben verder gegaan met een script wat ik nog had liggen.
Eerder had ik hier al een vraag over gesteld op het forum (http://www.phphulp.nl/php/forum/topic/data-uit-2-verschillende-tabellen/87471/)
Nu ben ik bezig met een script die moet e-mailen. Deze code hieronder.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?
$resultuser = mysql_query( "select * from users where plaats= 'plaats1'");
while($r=mysql_fetch_array($resultuser)
{
$email=$r["email"];
$name=$r["name"];
$message = "Beste $name hier de meldingen van vandaag XX** meldingen ** XX";
$subject = "Meldingen";
mail($email, $subject, $message);
}
?>
$resultuser = mysql_query( "select * from users where plaats= 'plaats1'");
while($r=mysql_fetch_array($resultuser)
{
$email=$r["email"];
$name=$r["name"];
$message = "Beste $name hier de meldingen van vandaag XX** meldingen ** XX";
$subject = "Meldingen";
mail($email, $subject, $message);
}
?>
Maar daarnaast wil ik net zoals op de website weergeven is de meldingen in de e-mail zetten.
Dit is de code voor het printen van de data op de site
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
$datum = date("j/n/Y");
mysql_select_db("controles") or die(mysql_error());
$query = "SELECT Meldingen.Datum,Meldingen.Tijd,Meldingen.thv,Meldingen.soort,Meldingen.Plaats,Meldingen.ID,Plaatsen.Plaatsnaam,Meldingen.MD5hash ".
"FROM Meldingen,Plaatsen ".
"WHERE Meldingen.Plaats = Plaatsen.PlaatsID AND Datum = '$datum'";
$result = mysql_query($query) or die(mysql_error());
// Print out the contents of each row into a table
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td>".$row['Datum']."</td> ";
echo "<td>".$row['Tijd']."</td> ";
echo "<td>".$row['Plaatsnaam']."</td> ";
echo '<td>';
echo substr( $row['thv'], 0, 17);
echo '';
echo '</td>';
echo '<td>';
Print '<a href=/info.php?ID='.$row['ID'].'&place='.$row['Plaats'].'&API='.$row['MD5hash'].'&place2='.$row['Plaatsnaam'].'>';
Print '<img src=images/Meld/'.$row['soort'] .'.jpg>';
echo '</td>';
}
?>
$datum = date("j/n/Y");
mysql_select_db("controles") or die(mysql_error());
$query = "SELECT Meldingen.Datum,Meldingen.Tijd,Meldingen.thv,Meldingen.soort,Meldingen.Plaats,Meldingen.ID,Plaatsen.Plaatsnaam,Meldingen.MD5hash ".
"FROM Meldingen,Plaatsen ".
"WHERE Meldingen.Plaats = Plaatsen.PlaatsID AND Datum = '$datum'";
$result = mysql_query($query) or die(mysql_error());
// Print out the contents of each row into a table
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo "<td>".$row['Datum']."</td> ";
echo "<td>".$row['Tijd']."</td> ";
echo "<td>".$row['Plaatsnaam']."</td> ";
echo '<td>';
echo substr( $row['thv'], 0, 17);
echo '';
echo '</td>';
echo '<td>';
Print '<a href=/info.php?ID='.$row['ID'].'&place='.$row['Plaats'].'&API='.$row['MD5hash'].'&place2='.$row['Plaatsnaam'].'>';
Print '<img src=images/Meld/'.$row['soort'] .'.jpg>';
echo '</td>';
}
?>
Dus mijn vraag: Hoe kan ik de meldingen verzenden in een e-mail naar meerdere e-mail adressen die in dezelfde database staan.
Hopelijk weten jullie het,
Groetjes Daan :D
Gewijzigd op 27/12/2012 23:02:41 door Daan s
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$resultuser = mysql_query( "select * from users where plaats= 'plaats1'");
$row = mysql_fetch_assoc($resultuser);
while($r=mysql_fetch_array($resultuser))
{
$email=$r["email"];
$name=$r["name"];
$message = "Beste ".$row['user']." hier de meldingen van vandaag ".$row['melding']." meldingen ".$row['aantalmeldingen'];
$subject = "Meldingen";
mail($email, $subject, $message);
}
?>
$resultuser = mysql_query( "select * from users where plaats= 'plaats1'");
$row = mysql_fetch_assoc($resultuser);
while($r=mysql_fetch_array($resultuser))
{
$email=$r["email"];
$name=$r["name"];
$message = "Beste ".$row['user']." hier de meldingen van vandaag ".$row['melding']." meldingen ".$row['aantalmeldingen'];
$subject = "Meldingen";
mail($email, $subject, $message);
}
?>
Je mist in jouw (voorbeeld)code foutafhandeling.
Waarom gebruik je mysql_fetch_array en geen mysql_fetch_assoc?
Waarom regel 8 en 9? Je kopieert variabelen.
Gebruik in php ' ipv "
Je mist in de mail de (juiste) headers.
Gebruik ipv de mail-functie van php bv swiftmailer of phpmailer.
Daan tje op 27/12/2012 23:30:23:
Er staan meerdere meldingen in de database, haalt tie alle meldingen er uit een niet een enkele die die naar de gebruiker stuurt
Geen idee wat hier staat/bedoelt wordt.
Een voor de emailadressen (zonder * !) en een voor de meldingen.
Obelix en Idefix op 28/12/2012 08:06:42:
@donny:
Je mist in jouw (voorbeeld)code foutafhandeling.
Waarom gebruik je mysql_fetch_array en geen mysql_fetch_assoc?
Waarom regel 8 en 9? Je kopieert variabelen.
Gebruik in php ' ipv "
Je mist in de mail de (juiste) headers.
Gebruik ipv de mail-functie van php bv swiftmailer of phpmailer.
Geen idee wat hier staat/bedoelt wordt.
Je mist in jouw (voorbeeld)code foutafhandeling.
Waarom gebruik je mysql_fetch_array en geen mysql_fetch_assoc?
Waarom regel 8 en 9? Je kopieert variabelen.
Gebruik in php ' ipv "
Je mist in de mail de (juiste) headers.
Gebruik ipv de mail-functie van php bv swiftmailer of phpmailer.
Daan tje op 27/12/2012 23:30:23:
Er staan meerdere meldingen in de database, haalt tie alle meldingen er uit een niet een enkele die die naar de gebruiker stuurt
Geen idee wat hier staat/bedoelt wordt.
@obelix
Mijn toetsenbord is een beetje cracky aan het doen :) Zit al met het probleem dat ie automatisch dubbele '' doet... Fout afhandeling kan deze jongen vast ook zelf. Het is een voorbeeld zoals ik denk dat het hoort of kan. Ik reageer op topics waarvan ik denk het te weten, en als ik er naast zit hoor ik er graag van zodat ik ervan kan leren
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$resultuser = mysql_query( "select * from users where plaats= 'plaats1'");
while($row=mysql_fetch_array($resultuser)){
$message = "Beste ".$row['name']." hier de
meldingen van vandaag ".$row['melding']." meldingen ".$row['aantalmeldingen'];
$subject = "Meldingen";
mail($row['email'], $subject, $message);
}
?>
$resultuser = mysql_query( "select * from users where plaats= 'plaats1'");
while($row=mysql_fetch_array($resultuser)){
$message = "Beste ".$row['name']." hier de
meldingen van vandaag ".$row['melding']." meldingen ".$row['aantalmeldingen'];
$subject = "Meldingen";
mail($row['email'], $subject, $message);
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
mysql_connect("127.0.0.1", "admin", "**") or die(mysql_error());
mysql_select_db("Database") or die(mysql_error());
$resultuser = mysql_query( "select * from users, Meldingen where Meldingen.plaats= '179' and Gebruikers.Plaats = '179'");
while($row=mysql_fetch_array($resultuser)){
$message = "Beste ".$row['Username']." hier de
meldingen van vandaag ".$row['melding']." Plaats ".$row['Plaats'];
$subject = "Meldingen";
mail($row['Email'], $subject, $message);
}
?>
mysql_connect("127.0.0.1", "admin", "**") or die(mysql_error());
mysql_select_db("Database") or die(mysql_error());
$resultuser = mysql_query( "select * from users, Meldingen where Meldingen.plaats= '179' and Gebruikers.Plaats = '179'");
while($row=mysql_fetch_array($resultuser)){
$message = "Beste ".$row['Username']." hier de
meldingen van vandaag ".$row['melding']." Plaats ".$row['Plaats'];
$subject = "Meldingen";
mail($row['Email'], $subject, $message);
}
?>
Ik heb de complete MYSQL database geupload op pastebin.
http://pastebin.com/3hSZ7awq
Ik weet niet wat ik fout doe :/
Waarschijnlijk zijn er hier knappe koppen die het wel weten
Gewijzigd op 30/12/2012 17:44:04 door Tim S
Je gebuikt nu de tabel users in de query maar in je dump heet de tabel gebruikers
Het probleem is dat ik de fout melding niet krijg, waar kan ik nog meer een fout afhandeling inzetten dan ;)
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
if ($resultuser !== false) {
//dan de mails versturen!
}
else {
echo mysql_error();
}
?>
if ($resultuser !== false) {
//dan de mails versturen!
}
else {
echo mysql_error();
}
?>
Ik neem aan dat je al die plaatsen niet zelf heb ingevuld... Waar heb je dit vandaan?
Welke?
Zet error-reporting aan.
@Donny:
Donny van Grondelle op 28/12/2012 09:23:01:
Fout afhandeling kan deze jongen vast ook zelf.
Aangezien het ontbreekt in het script (en waar het staat 'or die' is), is die conclusie mogelijk te kort door de bocht. Wijs iemand er in ieder geval op dat het ontbreekt; aan hem/haar om er dan (n)iets mee te doen.
Je voorbeeld van het mailen: je mist headers. Geef een goed voorbeeld of geen voorbeeld. Misschien beter nog: gebruik phpmailer of swiftmailer om te voorkomen dat je het wiel opnieuw moet uitvinden.
Gewijzigd op 30/12/2012 18:31:33 door Obelix Idefix
Heel erg bedankt
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
mysql_connect("127.0.0.1", "admin", "***") or die(mysql_error());
mysql_select_db("controle-online") or die(mysql_error());
$resultuser = mysql_query( "select * from Gebruikers, Meldingen where Meldingen.plaats= '53' and Gebruikers.Plaats = '53'");
if ($resultuser !== false) {
while($row=mysql_fetch_array($resultuser)){
$message = "Beste ".$row['Username'].",
Wij hebben weer een melding door gekregen.
".$row['melding']." Plaats ".$row['Tijd'];
$subject = "Meldingen";
mail($row['Email'], $subject, $message);
}
}
else {
echo mysql_error();
}
?>
mysql_connect("127.0.0.1", "admin", "***") or die(mysql_error());
mysql_select_db("controle-online") or die(mysql_error());
$resultuser = mysql_query( "select * from Gebruikers, Meldingen where Meldingen.plaats= '53' and Gebruikers.Plaats = '53'");
if ($resultuser !== false) {
while($row=mysql_fetch_array($resultuser)){
$message = "Beste ".$row['Username'].",
Wij hebben weer een melding door gekregen.
".$row['melding']." Plaats ".$row['Tijd'];
$subject = "Meldingen";
mail($row['Email'], $subject, $message);
}
}
else {
echo mysql_error();
}
?>
Toevoeging op 31/12/2012 14:42:44:
De plaatsen heb ik van een willekeurige site gehaald, (http://home.kpn.nl/pagklein/almanak.html) in een excel bestand gezet, en deze een ID gegeven en de overige dingen er uit gefilterd, daarna geinporteerd in phpmyadmin