我正在尝试创建一个页面,用户可以在其中传递SQL-Server数据库表中的值。我已通过PHP连接到数据库,但是单击“下一步”按钮时无法增加f_counter变量。
<?php
require('db.php'); // Bring in the database connection
include("auth.php"); // Make sure the user is logged in to an account
$f_array = array(); // Create the array of values for the WHERE statement
$sel_query = "SELECT fiche
FROM test.dbo.[F_Globale]
ORDER BY f ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {
array_push($f_array, $sel_row['f']);
}
if(isset($_POST['new']) && $_POST['new']==1)
{
$ficheCount ++;
echo 'fail';
}else{
$ficheCount = 0;
echo 'pass';
}
$sel_query = "SELECT *
FROM test_2018.dbo.[F_Globale]
WHERE f = ".$f_array[$fCount]."
ORDER BY fiche ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {
?>
我的表格只是一个简单的按钮。 html在输入中引用了来自数据库的值(未显示),但是,这些值仅在我第一次单击next按钮时更新。
<form name="page_form" method="post" action="" enctype="multipart/form-data">
<input type="hidden" name="new" value="1" />
<td rowspan="2">
<button name="next" id="next" value="next" style="font-size: 20px;"><i class="fa fa-angle-right"></i></button>
</td>
</form>
<script>
$(document).ready(function(){
$("#page_form button").click(function (ev) {
ev.preventDefault()
if ($(this).attr("value") == "next") {
$("#page_form").submit();
}
});
});
</script>
任何人都可以看到我在做什么错。好像我的$ ficheCount变量在每次页面加载时都在重置,但是我已经检查了所有代码,并且只有在未设置$ _POST ['new']或$ joe <> 0时,它才会设置为0。添加了回声(失败和通过),似乎该值不应该被重置。
任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
如@WillardSolutions所建议的那样,将代码转换为包含供主题计数的会话变量,从而修复了页面。
session_start();
$fiche_array = array();
$sel_query = "SELECT f
FROM test.dbo.[F_Globale]
ORDER BY fiche ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {
array_push($fiche_array, $sel_row['f']);
}
if(isset($_POST['new']) && $_POST['new']==1)
{
$_SESSION['ficheCount'] ++;
echo 'fail';
}else{
$_SESSION['ficheCount'] = 0;
echo 'pass';
}
$sel_query = "SELECT *
FROM test.dbo.[F_Globale]
WHERE fiche = ".$fiche_array[$_SESSION['ficheCount']]."
ORDER BY f ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {