【发布时间】:2015-12-11 21:42:56
【问题描述】:
任何人都知道为什么每次我从数据库中得到响应时我都会得到一个 0 的回报吗? Fx 如果我在表格中输入数字 5,我会返回 0 5 等。我已经发布了相关代码。
我希望有人可以帮助我。 最好的祝福 朱莉
HTML:
<div class="content">
<p>Number</p>
<div class="form">
<fieldset>
<legend>Record Number</legend>
<form id="myForm" action="select.php" method="post">
<input type="number" name="numbervalue" min="1" max="2">
<button id="sub">Save</button>
</form>
</fieldset>
</div>
<span id="result"></span>
</div>
JS
// Insert function for number
function clearInput() {
$("#myForm :input").each( function() {
$(this).val('');
});
}
$(document).ready(function(){
$("#sub").click( function(e) {
e.preventDefault(); // remove default action(submitting the form)
$.post( $("#myForm").attr("action"),
$("#myForm :input").serializeArray(),
function(info){ $("#result").html(info);
});
clearInput();
});
})
// Recieve data from database
$(document).ready(function() {
setInterval(function () {
$('#show').load('response.php')
}, 3000);
});
响应.php
<?php
include('session.php');
$query = "SELECT numbers FROM numbertable";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
{
echo "{$row['numbers']} <br>";
} ;
select.php
<?php
include('session.php');
// Insert To Database
$strSQL = "INSERT INTO numbertable(numbers) VALUES('" .$_POST["numbervalue"] . "')";
if(mysql_query("INSERT INTO numbertable VALUES('numbers')"))
echo "Insert Succesfull";
else
echo "Failed";
// The SQL statement is executed
mysql_query($strSQL) or die (mysql_error());
// Close the database connection
mysql_close();
?>
session.php
<?php
// Establishing Connection with Server by passing server_name, user_id and password as a parameter
$connection = mysql_connect("localhost", "root", "root");
// Selecting Database
$db = mysql_select_db("roulette_db", $connection);
session_start();// Starting Session
// Storing Session
$user_check=$_SESSION['login_user'];
// SQL Query To Fetch Complete Information Of User
$ses_sql=mysql_query("SELECT username FROM login WHERE username='$user_check'", $connection);
$row = mysql_fetch_assoc($ses_sql);
$login_session =$row['username'];
if(!isset($login_session)){
mysql_close($connection); // Closing Connection
header('Location: index.php'); // Redirecting To Home Page
}
?>
【问题讨论】:
-
不知道是否要在此处输入字符串文字
VALUES('numbers')或作为来自/用于整数的变量(整数需要存储为整数类型)。检查错误,并检查您的控制台。select.php你有 INSERT 语法;有点矛盾。 -
您当前的代码对SQL injection开放。使用
mysqli_*with prepared statements,或PDO 和prepared statements。 -
“0”可能来自
select.php的响应,而数字来自response.php。您返回一个数字 (0) 作为第一个脚本的输出,然后附加第二个脚本。我不知道select.php文件中的if语句发生了什么;没有大括号,所以这似乎不是有效的代码。 -
@Sablefoste
if(mysql_query("INSERT INTO numbertable VALUES('numbers')"))不是无效的,因为没有大括号,这只会使下一行执行(使读取有点混乱,可能会产生意想不到的结果,但没有问题)。查询本身虽然不正确(可能);假设numbers是int列.. -
非常感谢您的所有回答。我刚刚更正了 if 语句中的大括号。我将尝试在这里调查您的建议。我忘了写“数字”是一个 int 列。