使用文本框中的多个ID从mysql数据库回复电子邮件[关闭]
问题描述:
I put together the following script which will search mysql db for certain member ids submitted in a form textbox and write a mail() string for each record found but it does not seem to work, I know I'm connecting because if I remove everything after "Connected Successfully" I will get "Connected Successfully". If I run the script as is, I get a blank screen. Any help with the logic would be apporeciated.
<?php
$servername = "";
$username = "";
$password = "";
$db = "";
// Create connection
$conn = new mysqli($servername, $username, $password, $db);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected Successfully";
if(isset($_POST['Submit'])) {
$MemberIDs = $_POST['MemberIDs']; // contains the values "100,107"
$SearchIDs = array($MemberIDs);
$SearchStr = implode(',', $SearchIDs); // returns 100,107
$sql = "SELECT * FROM members where id in ({$SearchStr})";
$sql->execute();
$raw_results = $sql->fetchAll();
$num_rows = count($raw_results);
if($num_rows > 0 ){
while($results = $sql->fetch($raw_results)) {
echo "mail(".$results['name']." <".$results['requestemail'].", $Subject2, $message2, $headers2);";
}
else
{
echo "No results";
}
}
}
$conn->close();
?>
FORM PAGE HTML
<form name="test" action="test-search.php" method="POST">
<input id="MemberIDs" name="MemberIDs" type="text" value="100,107">
<input type="submit" name="Submit" value="SUBMIT" />
</form>
答
You want to be doing your operations on your $conn object which is your mysqli connection to your database. Of course I have no way of testing this or checking syntax, but this should get you close.
if(isset($_POST['Submit'])) {
// Create connection
$conn = new mysqli($servername, $username, $password, $db);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected Successfully";
$MemberIDs = $_POST['MemberIDs']; // contains the values "100,107"
$SearchIDs = array($MemberIDs);
$SearchStr = implode(',', $SearchIDs); // returns 100,107
$sql = "SELECT * FROM members where id in ({$SearchStr})";
$results = $conn->query($sql);
if( $results->num_rows > 0 ) {
while($row = $results->fetch_assoc()) {
echo 'mail('.$row['name'].');';
}
}
else {
echo "No results";
}
$results->free();
$conn->close();
}