2015-10-09 4 views
-2

В моем приложении я пытаюсь вернуться к каждой строке MySQL. За исключением, когда я пытаюсь сделать это, я получаю ошибку:PDO & Foreach (Незаконное смещение строки)

[Пт Окт 09 17: 03: 56,314003 2015] [: ошибка] [PID 10641] [клиент 127.0.0.1:40897] PHP Warning: Нелегальная строка смещения 'Дата' в /var/www/html/ViewTicket.php на линии 79, реферер: http://localhost/Support

[Пт 9 октября 17: 03: 56,314041 2015] [: ошибка] [PID 10641] [клиент 127,0 .0.1: 40897] PHP Warning: Illegal строка смещения 'Содержание' в /var/www/html/ViewTicket.php на линии 84, реферер: http://localhost/Support

Вот мое кодирование:

<?php 
$pageT = "View Ticket"; 
require_once("core/inc.php"); 

    $ID = strip_tags(htmlentities($_GET['ID'])); 

    $db = new DB(); 
    $Config = new Config; 
    $User = new User; 
    $Organize = new Organize; 

    $Ticket = $db->fetchRow(
     'SELECT * FROM tickets WHERE ID = :id', 
     [':id' => $ID] 
    ); 

    $TR = $db->fetchRow(
     'SELECT * FROM ticket_replies WHERE TID = :tid', 
     [':tid' => $ID] 
    ); 

    $Poster = $db->fetchRow(
     'SELECT * FROM users WHERE UID = :poster', 
     [':poster' => $Ticket['Poster']] 
    ); 

    $Replier = $db->fetchRow(
     'SELECT * FROM users WHERE UID = :poster', 
     [':poster' => $TR['Poster']] 
    ); 

    if($Ticket == 0) { 
     echo "Sorry, but this is an unkown ticket."; 
     require_once("modules/design/footer.ris.php"); 
     die(); 
    } 

    /* 
    if($User->Info('UID') !== $Ticket['Poster']) { 
     if($User->Info('Rank') !== "Support" || $User->Info('Rank') !== "Admin" || $User->Info('Rank') !== "Admin") { 
      echo "Nice try, this is not your ticket. ;("; 
      require_once("modules/design/footer.ris.php"); 
      die(); 
     } 
    } 
    */ 


    echo ' 
        <div class="row"> 
          <div class="col-md-8 col-lg-9"> 
           <div class="panel panel-default m-t-20"> 
            <div class="panel-heading"> 
             <h3 class="panel-title"> 
             <span class="label label-warning"> '.strip_tags(htmlentities($Ticket['Priority'])).'</span> &nbsp; &nbsp; 
             <span class="label label-primary"> '.strip_tags(htmlentities($Ticket['Dept'])).'</span> '.strip_tags(htmlentities($Ticket['Title'])).''; if($User->Info('Rank') == "Admin" || $User->Info('Rank') == "Owner") { echo "<a style='float:right;margin-left:5px;'class='btn btn-icon waves-effect waves-light btn-danger m-b-5' href=''>Delete Ticket</a> <a style='float:right;margin-left:5px;'class='btn btn-icon waves-effect waves-light btn-info m-b-5' href=''>View Logs</a> &nbsp; <a style='float:right;' class='btn btn-icon waves-effect waves-light btn-info m-b-5' href='AP_EditUser?UID=".$Poster['UID']."'>Edit User</a> &nbsp;"; } echo '</h3> 
            </div> 
            <div class="panel-body"> 
             <div class="media m-b-30"> 
              <div class="media-body"><span class="media-meta pull-right">'.strip_tags(htmlentities($Organize->timeElapsedFromUNIX($Ticket['Date']))).'</span> 
               <h4 class="text-primary m-0"><u>'.strip_tags(htmlentities($Poster['Username'])).'</u></h4> 
              </div> 
             </div> 
              <p> 
               &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.strip_tags(htmlentities($Ticket['Details'])).' 
              </p> 
            </div> 
           </div> 
           '; 

            foreach ($TR as $Reply) { 

            if($Replier['Rank'] == "Support" || $Replier['Rank'] == "Admin" || $Replier['Rank'] == "Owner") { 

            echo ' 
           <div style="border-top:4px solid red;" class="panel panel-default m-t-20"> 
            <div class="panel-body"> 
             <div class="media m-b-30"> 
              <div class="media-body"><span class="media-meta pull-right">'.strip_tags(htmlentities($Organize->timeElapsedFromUNIX($Reply['Date']))).'</span> 
               <h4 class="text-primary m-0">'.strip_tags(htmlentities($Replier['Username'])).'</h4> <small>'.$Replier['Rank'].'</small> 
              </div> 
             </div> 
              <p> 
               &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.$Organize->showBBcodes($Reply['Content']).' 
              </p> 
            </div> 
           </div> 
            '; 

           } else { 
            echo ' 
           <div style="border-top:4px solid #CCC;" class="panel panel-default m-t-20"> 
            <div class="panel-body"> 
             <div class="media m-b-30"> 
              <div class="media-body"><span class="media-meta pull-right">'.strip_tags(htmlentities($Organize->timeElapsedFromUNIX($TR['Date']))).'</span> 
               <h4 class="text-primary m-0">'.strip_tags(htmlentities($Replier['Username'])).'</h4> <small>'.$Replier['Rank'].'</small> 
              </div> 
             </div> 
              <p> 
               &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '.strip_tags(htmlentities($Reply['Details'])).' 
              </p> 
            </div> 
           </div> 
            '; 
           } 
           break; 
          } 

           echo ' 
           <div class="panel panel-default"> 
            <div class="panel-body"> 
             <div class="media"> 
              <form role="form" method="POST"> 
              <div class="media-body"> 
               <textarea class="wysihtml5 form-control" id="replyDetails" name="replyDetails" rows="9" placeholder="Reply here..."></textarea> 
              </div> 
             </div> 
             <div class="text-right"> 
              <button type="submit" id="addReply" name="addReply" class="btn btn-primary waves-effect waves-light m-t-30 w-md">Send Reply</button> 
             </div> 
             </form> 
            </div> 
           </div> 
          </div> 
         </div> 
        </div> 
       </div> 
    '; 

    if(isset($_POST['addReply'])) { 
     $Details = strip_tags(htmlentities($_POST['replyDetails'])); 

     if(empty($Details)) { 
      echo '<div class="col-md-8"><div class="alert alert-danger"><strong>Could not send reply :</strong> <br /> &bullet; You forgot a field or two. Please try again.</div></div>'; 
     } elseif(strlen($Details) > 700) { 
      echo '<div class="col-md-8"><div class="alert alert-danger"><strong>Could not send reply :</strong> <br /> &bullet; You cannot exeed 700 characters. Please try again.</div></div>'; 

     } else { 
      $Values = [ 
       'TID'    => $ID, 
       'Poster'   => $User->Info('UID'), 
       'Content'   => $Details, 
       'Date'   => time() 
      ]; 

      $insertValues = $db->insert('ticket_replies')->values($Values); 

      $Values2 = [ 
       'Username'  => $User->Info('Username'), 
       'UID'    => $User->Info('UID'), 
       'IP'    => $Logs->IP(), 
       'Platform'  => $Logs->Browser(), 
       'Type'   => '8', 
       'Value'   => 'Replied to a ticket.', 
       'Date'   => $Logs->Date(), 
      ]; 

      $insertValues2 = $db->insert('logs')->values($Values2); 
     } 
    } 

Чтобы выполнить описанную выше ошибку, она не выводит никаких ошибок, просто возвращает «1».

+0

Я бы, наверное, сказать, что' 'SELECT * FROM ticket_replies WHERE TID =: TID', 'этот запрос не возвращает поле под названием' Content'. сделайте 'print_r ($ TR): exit;' и передайте результат здесь. – mloureiro

+0

Извините за поздний ответ, я получаю 'array (5) {[" ID "] => string (1)" 1 "[" TID "] => string (1)" 1 "[" Poster "] => string (1) "1" ["Content"] => string (23) "Test content, kthx ily." ["Date"] => string (10) "1444357123"} ' – Varian

+0

, но это всего лишь элемент? это taht 'print_r ($ TR)' или 'print_r ($ Reply)' – mloureiro

ответ

0

Я исправил его, спасибо. Я изменил запрос к билетам и запрос.

`

$Reply = $db->fetchRows('SELECT * FROM ticket_replies WHERE TID = :tid', [':tid' => $ID]); 
    foreach ($Reply as $TR) { 
             $Replier = $db->fetchRow(
              'SELECT * FROM users WHERE UID = :poster', 
              [':poster' => $TR['Poster']] 
             ); 

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