E-mail naar meerdere gebruikers sturen met data uit andere tabel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daan s

Daan s

27/12/2012 23:01:36
Quote Anchor link
Hi allemaal,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
}
  
?>


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)
PHP script in nieuw venster Selecteer het PHP script
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
<?
$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
 
PHP hulp

PHP hulp

27/04/2024 18:41:30
 
Donny Wie weet

Donny Wie weet

27/12/2012 23:09:21
Quote Anchor link
Heb je hier iets aan?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
}


?>
 
Daan s

Daan s

27/12/2012 23:30:23
Quote Anchor link
Er staan meerdere meldingen in de database, haalt tie alle meldingen er uit een niet een enkele die die naar de gebruiker stuurt

Toevoeging op 27/12/2012 23:38:30:

Deze database wil ik er in krijgen
Afbeelding
 
Obelix Idefix

Obelix Idefix

28/12/2012 08:06:42
Quote Anchor link
@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.

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.
 
Eddy E

Eddy E

28/12/2012 08:14:36
Quote Anchor link
Twee queries maken dus.
Een voor de emailadressen (zonder * !) en een voor de meldingen.
 
Donny Wie weet

Donny Wie weet

28/12/2012 09:23:01
Quote Anchor link
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.

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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
}

?>
 
Daan s

Daan s

30/12/2012 17:35:38
Quote Anchor link
Ik heb de code er in proberen te zetten maar ik krijg geen e-mail en geen fout.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
}

?>


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
 
Tim S

Tim S

30/12/2012 17:42:56
Quote Anchor link
Dat is de rede waarom je foutafhandeling moet gebruiken dan kan je zien waar en wat er fout gaat. Edit: ik had je fiuafhandeling niet gezien.
Gewijzigd op 30/12/2012 17:44:04 door Tim S
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

30/12/2012 17:43:48
Quote Anchor link
Probeer die query eens uit in de tool waarmee je de dump gemaakt hebt.
Je gebuikt nu de tabel users in de query maar in je dump heet de tabel gebruikers
 
Daan s

Daan s

30/12/2012 17:44:25
Quote Anchor link
Het probleem is dat ik de fout melding niet krijg, waar kan ik nog meer een fout afhandeling inzetten dan ;)
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

30/12/2012 18:13:20
Quote Anchor link
Controleer of de query geslaagd is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if ($resultuser !== false) {
//dan de mails versturen!
}
else {
echo mysql_error();
}

?>
 
Donny Wie weet

Donny Wie weet

30/12/2012 18:21:12
Quote Anchor link
Even een klein beejte uitwijken van jouw probleem:

Ik neem aan dat je al die plaatsen niet zelf heb ingevuld... Waar heb je dit vandaan?
 
Daan s

Daan s

30/12/2012 18:23:19
Quote Anchor link
Welke?
 
Obelix Idefix

Obelix Idefix

30/12/2012 18:31:12
Quote Anchor link
Er is een controle op de databaseverbinding en op het selecteren van de database, niet op de uiteindelijke query. Kijk naar voorbeeld van Ger.

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
 
Daan s

Daan s

30/12/2012 18:56:37
Quote Anchor link
Nou het is gelukt, alleen nog wat uitwerken met de database, en de headers toevoegen.
Heel erg bedankt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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();
}

?>






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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.