2015-10-08 2 views
0

У меня проблема с скриптом MySQL. Скрипт должен эхоть каждого элемента из таблицы, где «gruppe» - $ gruppe. Но я получаю только один вывод.MySQL echos только один элемент

<?php 

if ($_SERVER["REQUEST_METHOD"] == 'POST') { 

    $gruppe = $_POST["gruppe"]; 
    $mail = $_POST["mail"]; 
    $betreff = $_POST["betreff"]; 
    $nachricht = $_POST["nachricht"]; 

    if (!empty($nachricht)) { 

$sql = new rex_sql; 

$sql->debugsql = 0; //Ausgabe Query 

$sql->setQuery("SELECT * FROM $db_users WHERE gruppe = '$gruppe'"); 

for($i=0;$i<$sql->getRows();$i++) 
{ 

$id_mail = $sql->getValue("id"); 
$mail_mail = $sql->getValue("email"); 

$ausgabe_mail = $mail_mail; 

$sql->next(); 
} 

} 

} 

?> 

<?php echo $ausgabe_mail ?> 

ответ

1

Ваш эхо-оператор находится вне цикла. Цикл выбирает все адреса электронной почты один за другим и сохраняет их в $mail_mail и $ausgabe_mail. Каждая итерация цикла перезаписывает предыдущее содержимое обеих переменных.

После окончания цикла вы эхо-значение последнего значения $ausgabe_email.

повторы с эхом внутри цикла:

<?php 
if ($_SERVER["REQUEST_METHOD"] == 'POST') { 
    $gruppe = $_POST["gruppe"]; 
    $mail = $_POST["mail"]; 
    $betreff = $_POST["betreff"]; 
    $nachricht = $_POST["nachricht"]; 

    if (!empty($nachricht)) { 
     $sql = new rex_sql; 
     $sql->debugsql = 0; //Ausgabe Query 
     $sql->setQuery("SELECT * FROM $db_users WHERE gruppe = '$gruppe'"); 

     for($i=0;$i<$sql->getRows();$i++) { 
     $id_mail = $sql->getValue("id"); 
     $mail_mail = $sql->getValue("email"); 

     $ausgabe_mail .= ',' . $mail_mail; 
     $sql->next(); 
     } 
     echo $ausgabe_mail; 
    } 
} 
?> 

РЕДАКТИРОВАТЬ:, как выяснено, расширили пример с конкатенацией и снова переместили эхо вне цикла.

+0

Спасибо, это работает! Но я должен вывести переменную $ ausgabe_mail вне цикла:/Я пошлю почту на эти адреса с помощью почтовой программы PHP. – susanloek

+0

Хорошо, это работает! Я изменяю переменную на $ ausgabe_mail. = $ Mail_mail; (с точкой). Спасибо, Мартин! :) – susanloek

+0

@susanloek в этом случае, я думаю, вам также понадобится запятая между адресами электронной почты. Я только что отредактировал свой ответ. Пожалуйста, будьте добры, чтобы принять его с помощью серой галочки на левой боковой панели ответа. –

Смежные вопросы