PHP 将数组元素添加到数据库不起作用

标签 php mysql arrays checkbox

我有一个数组,可以获取用户之前邀请的所有电子邮件。我检查复选框选择了哪些电子邮件,然后将它们添加到表“zaproszenia”中。数组保存记录。当我单击“Zapisz”按钮(保存)时出现错误:

Notice: Undefined offset: 1 in D:\xampp\xampp\htdocs\inzynierka\inzynierka\zaproszenia.php on line 91

这一行是:

 $tabMail=$mail_array[$i];

我想将复选框选择的电子邮件保存到“zaproszenia”表中。我不知道该怎么做。我一直在尝试,但一无所获。对我的英语感到抱歉。我希望我能清楚地描述问题。

包含文件的代码片段:zaproszenia.php - 列出电子邮件及其复选框:

<form method="post">
<table class="table table-striped">
  <thead>
  <tr>
    <th>Email_goscia</th>
    <th>Imię</th>
    <th>Nazwisko</th>
    <th>Kod_dostepu</th>
    <th>Data ważności kwest.</th>
  </tr>
  </thead>
<tbody>
<?php
$sqlc=mysqli_connect('127.0.0.1','root','');                        
if($sqlc)
{
$sql_q="USE aplikacja";
mysqli_query($sqlc,$sql_q);
//wyświetlanie listy gości dodanych przez uzytkownika globalnie tzn. to jest lista z ktrej uzytkownik wybiera ktrych gosci chce zaprosić do konkretnego kwestionariusza
$sql_q=mysqli_query($sqlc, "SELECT * FROM goscie g, uzytkownicy_goscie ug WHERE g.Email_goscia=ug.Email_goscia AND ug.Login='$log' ");
$lp=1;
if(mysqli_num_rows($sql_q) != 0)
{
  $licznik=0;
  while ($recordG=mysqli_fetch_array($sql_q))
    {
    ?><tr>
    <td> <?php echo $mail = $recordG['Email_goscia'];
               $mail_array=array($licznik => $mail);
               $licznik++; //$_SESSION['tablicaMail']=$mail_array; print_r($_SESSION); 
               print_r($mail_array);
    ?></td>
    <td> <?php echo $recordG['Imie'];?> </td>                                   
    <td> <?php echo $recordG['Nazwisko']; ?> </td>
    <td> <?php echo $recordG['Kod_dostepu'];?></td>
    <td> <?php echo '<input type="date" name="data_waznosci'.$lp.'" id="data_waznosci'.$lp.'">'; ?> </td> 
    <td> <?php echo '<td><input type="checkbox" name="zaznaczyc'.$lp.'" id="zaznaczyc'.$lp.'" class="ClassZaznacz" onchange = "zaznacz();"/>  <br /></td>'; ?> </td>
    </tr>
    <?php
    $lp++;
    }
}
else
{
  echo "Użytkownik nie dodał jeszcze żadnych gości";      
}   ?>                   
</tbody>
</table> 
  <input type="submit" class="btn btn-primary" name="zapros" id="zapros" value="Zapisz zmiany" />
</form>

通过复选框保存选定的电子邮件:

<?php
if (isset($_POST['zapros']))
{        
    $data_zaproszenia = date("Y-m-d");
    $liczba = count(preg_grep('/^data_waznosci[\d]*/', array_keys($_POST)));
    echo $liczba;
    if(mysqli_num_rows($sql_q) != 0)
    {
      for ($i=1; $i <= $liczba ; $i++) 
      {
      /*while ($recordG=mysqli_fetch_array($sql_q)) {
          $mail = $recordG['Email_goscia']; 
          $mail_array=array($mail);
        }   print_r($mail_array); //$mail = $recordG['Email_goscia']; //echo $mail; */
        if (isset($_POST["zaznaczyc".$i]))
        {
          $sql_wyniki = mysqli_query($sqlc, "INSERT INTO wyniki (Data_wypelnienia, ID_kwestionariusza) VALUES (NULL, $id)");
          $id_wyniku=mysqli_query($sqlc, "SELECT ID_wyniku FROM wyniki WHERE ID_kwestionariusza=$id");
          $id_wyniku2 = mysqli_fetch_assoc($id_wyniku);
          $data_waznosci = $_POST['data_waznosci'.$i];
          //$tablicaMail1 = $_SESSION['tablicaMail'][$i]; //print_r($_SESSION); // echo $tablicaMail1; 
          $tabMail=$mail_array[$i];
          $sql_zaproszenie=mysqli_query($sqlc, "INSERT INTO zaproszenia (Email_goscia, ID_kwestionariusza, ID_wyniku, Data_zaproszenia, Data_waznosci, Wynik, Ocena, Status) 
                                                VALUES ('$tabMail', $id, '$id_wyniku2[ID_wyniku]', '$data_zaproszenia', '$data_waznosci', NULL, NULL, 'Status')");  //dodawanie kolejnych odpowiedzi do bazy
          echo "<script type='text/javascript'>alert('Zaproszenie wysłano!');</script>";
        }
        else
        {
          echo "<script type='text/javascript'>alert('Zaproszenia NIE wysłano!');</script>";

        }
      }
    }
    mysqli_close($sqlc);        
  }
}
  else
  {
    echo mysqli_connect_errno();
  }    
?> 

最佳答案

Replace below Line. it was crating new array every time with assignment operator

$mail_array=array($licznik => $mail); 
//change this line to 
$mail_array[$licznik]=$mail;

关于PHP 将数组元素添加到数据库不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28628669/

相关文章:

java - 如何在android中将图像黑白图像转换为0-1字节数组

php - 是否可以将 PHP 作为脚本语言嵌入到桌面应用程序中

php - 如何在 php 排序之间插入水平规则

python - 关于使用 np.full 创建数组的 FutureWarning

php - 验证价格值以插入销售表

mysql - 如何在 vs 2008 中使用 Crystal 报表

c# - 为什么我不能在没有初始值设定项的情况下声明隐式类型数组?

php - 保存在 Wordpress 中插入样式到文本的帖子时出现 403 错误(禁止)

php - MYSQL 无法创建带外键的表

php - 使用CMS只管理内容,不展示内容