显示空白页面的PHP脚本

时间:2016-04-08 12:11:04

标签: php mysql database select echo

这是我的脚本,它显示空白,我不知道问题是什么。救命!!!! #new to PHP

 <?php include "connection.php"; 
    // Get the ID from URL.
   if(isset($_GET['id']));
    $id = $_GET['id'];
    $query="SELECT * FROM module WHERE id= '$id'"; 
    $result= mysqli_query($m, $query); 
     while ($row = mysqli_fetch_array($result)){ 
     $title=$row['title']; 
     $level=$row['level']; 
     $credits=$row['credits'];
     $school=$row['school']; 
 echo $title. " " . $level. " " . $credits. "<br />"; 
 }    
 ?> 

错误:

  

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在第1行的'WHERE id ='Careers''附近使用正确的语法

2 个答案:

答案 0 :(得分:5)

这里一个明显的问题是你已经将一个“结束语句”字符包含在分号中。

分号(如果不是拼写错误)正在这样做,“结束”声明。

if(isset($_GET['id']));
                       ^ right there.

它应该是一个大括号{,而不是:{/ p>

if(isset($_GET['id'])){

并且该条件语句应该有一个右括号}

旁注:如果GET数组有值,则分号被认为是PHP中的有效字符,不会给它带来错误。

但是,您应该检查其余代码的错误。

在打开PHP标记后立即将错误报告添加到文件的顶部 例如<?php error_reporting(E_ALL); ini_set('display_errors', 1);然后代码的其余部分,看看它是否产生任何结果,  以及or die(mysqli_error($m))mysqli_query()

确保您确实使用MySQLi_ API连接(不同的MySQL API不混合)并且GET数组有值。

这是重写,假设使用MySQLi_ API成功建立了数据库连接。

<?php

    error_reporting(E_ALL);
    ini_set('display_errors', 1);

if(isset($_GET['id'])){
   $id = $_GET['id'];
} else{
    echo "ID is not set. You need to investigate it.";
    exit; // This will stop your script, dead in its tracks.
}

$query="SELECT * FROM module WHERE id= '$id'"; 
$result= mysqli_query($m, $query) or die(mysqli_error($m)); 

 while ($row = mysqli_fetch_array($result)){ 
 $title=$row['title']; 
 $level=$row['level']; 
 $credits=$row['credits'];
 $school=$row['school']; 

    echo $title. " " . $level. " " . $credits. "<br />"; 
}    

参考文献:

修改

取自评论:

  

“这是我的查询,$ query =”SELECT id,title module WHERE id ='$ id'“; - user5579012 38分钟前”

Link to that comment...

这不是原始问题中的内容。

您发布了SELECT * FROM module WHERE id= '$id'

这里有语法错误,在title之后缺少逗号。

它应该是:

$query="SELECT id, title, module WHERE id= '$id'"; 

所有列都需要用逗号分隔,但最后一个不是module

答案 1 :(得分:0)

确保一切正常。如果可能,回声错误。

<?php include "connection.php"; 
// Get the ID from URL.
 if(isset($_GET['id'])){
$id = $_GET['id'];
$query="SELECT * FROM module WHERE id= '$id'"; 
$result= mysqli_query($m, $query);

if($result){ //query is ok
    if(mysqli_num_rows($result) > 0){//check if a record exists

        while ($row = mysqli_fetch_array($result)){ 
                 $title=$row['title']; 
                 $level=$row['level']; 
                 $credits=$row['credits'];
                 $school=$row['school']; 
            echo $title. " " . $level. " " . $credits. "<br />"; 
        }
     }else{ //no result found
         echo "no results found!";
     }
  }else{ //some error in querying
    echo mysqli_error($m);
   }
}
?>