簡體   English   中英

PHP MySQLi查詢使用有效語法返回null

[英]PHP MySQLi Query returning null with valid syntax

好吧

我一直在嘗試為wxPanel創建一個票務系統,以便為該應用程序提供基本支持。 盡管我很容易用提供的代碼來記錄數據庫:

PHP:

if (isset($_POST['submit'])) {
    $subject = $_POST['subject'];
    $message = $_POST['message'];

    $date = date('D M H:i');

    $subject = mysqli_real_escape_string($subject);
    $message = mysqli_real_escape_string($message);
    $ticket_id = 'TICK_'.rand(00000,99999);

    if (strlen($subject) === 0) {
        echo "Subject Invalid.";
    } elseif (strlen($message) === 0) {
        echo "Message Invalid.";
    } else {
        mysqli_query("INSERT INTO tickets VALUES(
        NULL,
        '".$ticket_id."',
        '".$_SESSION['user']."',
        '".$subject."',
        '1',
        '".$date."',
        '".$message."'
        )");
    }
    header('Location: /view-ticket?identifier='.$ticket_id);
}

可以正常工作...然后是此操作,可以讀取票證記錄並逐個顯示標題:

PHP:

$query = mysqli_query("SELECT `subject`,`ticket_id` FROM tickets WHERE `username` = '".$_SESSION['user']."'");

while ($row = mysqli_fetch_assoc($query)) {
    $tickets = $row['subject'];
    $id = $row['ticket_id'];
}

foreach ($tickets as $ticket) {
    echo '
    <a href="view-ticket?identifier='.$id.'"><h2>'.$ticket.'</h2></a>
    ';
}

這總是返回NULL。 而且,這些都不起作用:

if (isset($_GET['identifier']) === false || empty($_GET['identifier']) === true) {
    header('Location: /tickets');
    exit();
}

$id = mysqli_real_escape_string($_GET['identifier']);

$query = mysqli_query("SELECT `ticket_id`,`message`,`timestamp`,`status` FROM tickets WHERE `ticket_id` = '".$id."'");

while($row = mysqli_fetch_assoc($query)) {
    $ticket_id = $row['ticket_id'];
    $message = $row['message'];
    $timestamp = $row['timestamp'];
    $status = $row['status'];
}

foreach($message as $msg) {
    echo '
    <div class="ticket-message">
        <h2>'.$message.'</h2>
    </div>';
}

先感謝您!

ps我的某些代碼可能很亂。 忠告總是感激:)

一旦SELECT查詢開始工作,您還必須查看處理結果的代碼。

如果ticket_id標識唯一行

$query = mysqli_query($con, "SELECT ticket_id,message,timestamp,status 
                             FROM tickets WHERE ticket_id = '$id'");


$row = mysqli_fetch_assoc($query);
$ticket_id = $row['ticket_id'];
$message   = $row['message'];
$timestamp = $row['timestamp'];
$status    = $row['status'];

echo '<div class="ticket-message"><h2>'.$message.'</h2></div>';

如果ticket_id不能標識唯一行

$query = mysqli_query($con, "SELECT ticket_id,message,timestamp,status 
                             FROM tickets WHERE ticket_id = '$id'");

// initialise the arrays that hold multiple row results
$ticket_id[] = array();
$message[]   = array();
$timestamp[] = array();
$status[]    = array();

while($row = mysqli_fetch_assoc($query)) {
   $ticket_id[] = $row['ticket_id'];
   $message[]   = $row['message'];
   $timestamp[] = $row['timestamp'];
   $status[]    = $row['status'];
}

foreach($message as $msg) {
   echo '<div class="ticket-message"><h2>'.$msg.'</h2></div>';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM