В моем приложении я пытаюсь вернуться к каждой строке 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>
<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> <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> "; } 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>
'.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>
'.$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>
'.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 /> • 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 /> • 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».
Я бы, наверное, сказать, что' 'SELECT * FROM ticket_replies WHERE TID =: TID', 'этот запрос не возвращает поле под названием' Content'. сделайте 'print_r ($ TR): exit;' и передайте результат здесь. – mloureiro
Извините за поздний ответ, я получаю '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
, но это всего лишь элемент? это taht 'print_r ($ TR)' или 'print_r ($ Reply)' – mloureiro