我正在尝试使用PHP和MySQL数据库创建学生考试成绩系统。我遇到了两个问题:
解析错误:语法错误,意外T_ENCAPSED_AND_WHITESPACE,在第12行的C:\ xampp \ htdocs \ s \ display.php中期待T_STRING或T_VARIABLE或T_NUM_STRING
<?php
mysql_connect("WWW.EXAMPLE.COM", "USERNAME", "PASSWORD") or die("Connection Failed");
mysql_select_db("YOUR DATABASE NAME")or die("Connection Failed");
$name = $_POST['name'];
$query = "select * from YOURTABLENAME where REGISTERNUMBER = '$name'";
$result = mysql_query($query);
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "$line['name']."<br />";
echo "$line['subject1']."</div></td>"."<br />";
echo "$line['subject2']."</div></td>"."<br />";
echo "$line['subject3']."</div></td>"."<br />";
echo "$line['subject4']."</div></td>"."<br />";
}
?>
这是我的 index.php
<html>
<form method="post" name="display" action="isplay.php" />
<b>Enter the register number:</b><br>
<input type="text" name="name" />
<input type="submit" value="Search" />
</form>
</html>
答案 0 :(得分:0)
检查你的报价
<?php
mysql_connect("WWW.EXAMPLE.COM", "USERNAME", "PASSWORD") or die("Connection Failed");
mysql_select_db("YOUR DATABASE NAME")or die("Connection Failed");
$name = $_POST['name'];
$query = "select * from YOURTABLENAME where REGISTERNUMBER = '$name'";
$result = mysql_query($query);
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo $line['name']."<br />";
echo $line['subject1']."</div></td>"."<br />";
echo $line['subject2']."</div></td>"."<br />";
echo $line['subject3']."</div></td>"."<br />";
echo $line['subject4']."</div></td>"."<br />";
}
?>
答案 1 :(得分:0)
这是因为你的字符串没有匹配的开始和结束引号:
echo "$line['name']."<br />";
echo "$line['subject1']."</div></td>"."<br />";
echo "$line['subject2']."</div></td>"."<br />";
echo "$line['subject3']."</div></td>"."<br />";
echo "$line['subject4']."</div></td>"."<br />";
试试这个:
echo "{$line['name']}<br>";
echo "{$line['subject1']}</div></td><br>";
echo "{$line['subject2']}</div></td><br>";
echo "{$line['subject3']}</div></td><br>";
echo "{$line['subject4']}</div></td><br>";
您输出的HTML也不正确。你应该read a little about how tables work。
如果您希望我们通过MYSQL数据库帮助您创建PHP学生考试成绩系统&#34;那你问得太多了。你应该像其他人一样学习PHP和SQL:研究它并使用它。
答案 2 :(得分:0)
您在行获取变量后错过了关闭"
。遵循:
<?php
mysql_connect("WWW.EXAMPLE.COM", "USERNAME", "PASSWORD") or die("Connection Failed");
mysql_select_db("YOUR DATABASE NAME")or die("Connection Failed");
//added to prevent sql injection
$name = mysql_real_escape_string($_POST['name']);
$query = "select * from YOURTABLENAME where REGISTERNUMBER = '$name'";
$result = mysql_query($query);
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "$line['name']"."<br />";
echo "$line['subject1']"."</div></td>"."<br />";
echo "$line['subject2']"."</div></td>"."<br />";
echo "$line['subject3']"."</div></td>"."<br />";
echo "$line['subject4']"."</div></td>"."<br />";
}
?>
你不需要围绕PHP变量引用,但上面的代码也会起作用,因为双引号"
强制将其中的任何变量解析为变量但要注意不是这种情况使用单引号'
。
Please, don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。