我的MySQL脚本有问题。该脚本应在表中的每个元素中回显“ gruppe”为$ gruppe的元素。但是我只得到一个输出。

<?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 ?>

最佳答案

您的回声声明不在循环中。循环会逐个获取所有电子邮件地址,并将它们存储在$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;
    }
}
?>


编辑:正如所阐明的那样,使用字符串串联扩展了示例,并将回显再次移到了循环外。

关于php - MySQL仅回显一个元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33018632/

10-12 15:37