blizz
02-18-2005, 01:33 PM
HellO,
I am trying to build an email newsletter system for a friend and need some help on how to populate a dropdown menu from table fields.
This is the table structure:
CREATE TABLE `contacts` (
`contact_id` int(11) NOT NULL auto_increment,
`first_name` varchar(30) NOT NULL default '',
`last_name` varchar(30) NOT NULL default '',
`street_addy` varchar(50) NOT NULL default '',
`city` varchar(40) NOT NULL default '',
`state` char(2) NOT NULL default 'MD',
`postal_code` int(5) NOT NULL default '0',
`county` varchar(30) default NULL,
`district` varchar(20) default NULL,
`precinct` varchar(20) default NULL,
`phone` varchar(15) NOT NULL default '',
`cell` varchar(20) default NULL,
`work_phone` varchar(20) default NULL,
`email` varchar(40) NOT NULL default '',
`email2` varchar(40) default NULL,
`category` int(11) default NULL,
`church` varchar(50) default NULL,
`church_addy` varchar(60) default NULL,
`church_phone` int(11) default NULL,
`church_cnty` varchar(25) default NULL,
`church_email` char(1) default NULL,
`pastor` char(1) default NULL,
`pastors_email` varchar(40) default NULL,
PRIMARY KEY (`contact_id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
CREATE TABLE `groups` (
`group_id` int(11) NOT NULL auto_increment,
`group_name` varchar(35) default NULL,
PRIMARY KEY (`group_id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
#
# Dumping data for table `groups`
#
INSERT INTO `groups` VALUES (1, 'Pastor');
INSERT INTO `groups` VALUES (2, 'Advisor');
INSERT INTO `groups` VALUES (3, 'Community Leader');
INSERT INTO `groups` VALUES (4, 'Youth Mentor');
This is what I have which works fine to send an email to everyone but she wants to be able to select which groups she emails from a pulldown menu like so.
<option>Send to All
<option>Pastor
<option>Advisor
How can I add a dropdown in the form with the selections from the groups table?
<?php
if ($_POST[op] != "send") {
//haven't seen the form, so show it
print "
<HTML>
<HEAD>
<TITLE>Send a Newsletter</TITLE>
</HEAD>
<BODY>
<h1>Send a Newsletter</h1>
<form method=\"post\" action=\"$_SERVER[PHP_SELF]\">
<P><strong>Subject:</strong><br>
<input type=\"text\" name=\"subject\" size=30></p>
<P><strong>Mail Body:</strong><br>
<textarea name=\"message\" cols=50 rows=10 wrap=virtual></textarea>
<input type=\"hidden\" name=\"op\" value=\"send\">
<p><input type=\"submit\" name=\"submit\" value=\"Send It\"></p>
</FORM>
</BODY>
</HTML>";
} else if ($_POST[op] == "send") {
//want to send form, so check for required fields
if (($_POST[subject] =="") || ($_POST[message] == "")) {
header("Location: sendletter.php");
exit;
}
//connect to database
$conn = mysql_connect("localhost", "user", "passwd") or die(mysql_error());
mysql_select_db("estore",$conn) or die(mysql_error());
//get emails from db list
$sql = "select email from contacts";
$result = mysql_query($sql,$conn) or die(mysql_error());
//create a From: mailheader
$headers = "From: you <myemail@myisp.net>\n";
//loop through results and send mail
while ($row = mysql_fetch_array($result)) {
set_time_limit(0);
$email = $row['email'];
mail("$email", stripslashes($_POST[subject]), stripslashes($_POST[message]), $headers);
print "newsletter sent to: $email<br>";
}
}
?>
Any help is greatly appreciated
I am trying to build an email newsletter system for a friend and need some help on how to populate a dropdown menu from table fields.
This is the table structure:
CREATE TABLE `contacts` (
`contact_id` int(11) NOT NULL auto_increment,
`first_name` varchar(30) NOT NULL default '',
`last_name` varchar(30) NOT NULL default '',
`street_addy` varchar(50) NOT NULL default '',
`city` varchar(40) NOT NULL default '',
`state` char(2) NOT NULL default 'MD',
`postal_code` int(5) NOT NULL default '0',
`county` varchar(30) default NULL,
`district` varchar(20) default NULL,
`precinct` varchar(20) default NULL,
`phone` varchar(15) NOT NULL default '',
`cell` varchar(20) default NULL,
`work_phone` varchar(20) default NULL,
`email` varchar(40) NOT NULL default '',
`email2` varchar(40) default NULL,
`category` int(11) default NULL,
`church` varchar(50) default NULL,
`church_addy` varchar(60) default NULL,
`church_phone` int(11) default NULL,
`church_cnty` varchar(25) default NULL,
`church_email` char(1) default NULL,
`pastor` char(1) default NULL,
`pastors_email` varchar(40) default NULL,
PRIMARY KEY (`contact_id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
CREATE TABLE `groups` (
`group_id` int(11) NOT NULL auto_increment,
`group_name` varchar(35) default NULL,
PRIMARY KEY (`group_id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
#
# Dumping data for table `groups`
#
INSERT INTO `groups` VALUES (1, 'Pastor');
INSERT INTO `groups` VALUES (2, 'Advisor');
INSERT INTO `groups` VALUES (3, 'Community Leader');
INSERT INTO `groups` VALUES (4, 'Youth Mentor');
This is what I have which works fine to send an email to everyone but she wants to be able to select which groups she emails from a pulldown menu like so.
<option>Send to All
<option>Pastor
<option>Advisor
How can I add a dropdown in the form with the selections from the groups table?
<?php
if ($_POST[op] != "send") {
//haven't seen the form, so show it
print "
<HTML>
<HEAD>
<TITLE>Send a Newsletter</TITLE>
</HEAD>
<BODY>
<h1>Send a Newsletter</h1>
<form method=\"post\" action=\"$_SERVER[PHP_SELF]\">
<P><strong>Subject:</strong><br>
<input type=\"text\" name=\"subject\" size=30></p>
<P><strong>Mail Body:</strong><br>
<textarea name=\"message\" cols=50 rows=10 wrap=virtual></textarea>
<input type=\"hidden\" name=\"op\" value=\"send\">
<p><input type=\"submit\" name=\"submit\" value=\"Send It\"></p>
</FORM>
</BODY>
</HTML>";
} else if ($_POST[op] == "send") {
//want to send form, so check for required fields
if (($_POST[subject] =="") || ($_POST[message] == "")) {
header("Location: sendletter.php");
exit;
}
//connect to database
$conn = mysql_connect("localhost", "user", "passwd") or die(mysql_error());
mysql_select_db("estore",$conn) or die(mysql_error());
//get emails from db list
$sql = "select email from contacts";
$result = mysql_query($sql,$conn) or die(mysql_error());
//create a From: mailheader
$headers = "From: you <myemail@myisp.net>\n";
//loop through results and send mail
while ($row = mysql_fetch_array($result)) {
set_time_limit(0);
$email = $row['email'];
mail("$email", stripslashes($_POST[subject]), stripslashes($_POST[message]), $headers);
print "newsletter sent to: $email<br>";
}
}
?>
Any help is greatly appreciated