0

I have array which get all E-mails which are invited by the user before. I checking which e-mails are selected by checkbox and then I add them to the table 'zaproszenia'. The array saves the records. When i click the button 'Zapisz'(SAVE) I have error:

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

This line is:

 $tabMail=$mail_array[$i];

I want save to the table 'zaproszenia' the e-mail which is select by checkbox. I have no idea how do that. I was trying and trying and nothing.Sorry about my english. I hope that I describing the problem clear.

Code fragment with file: zaproszenia.php - List the emails and checkboxes for them:

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

Save the selected emails by checkboxes:

<?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();
  }    
?> 
1
  • $mail_array=array($licznik => $mail); change this line to $mail_array[$licznik]=$mail; Commented Feb 20, 2015 at 12:33

1 Answer 1

1

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;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.