2017-01-09 63 views
1

mysql查询从我的数据库中获取数据,并通过while循环将其发布到表中的输入字段中。这工作正常,显示所有252个预期的表行。 按下相应PHP页面上的提交按钮应将数据发送到计算脚本并将数据写入数据库。PHP POST不发送所有输入

问题:只有200行正在进入处理页面。即52行不通过。我已经建立了一个快速脚本来检查输出,这也表明只有200行通过。

我已经发现:只要我一行一行地减少表格数据的数量就越多。只有3行(tipp_id,tipp_heim,tipp_gast)全部252行通过。

有没有我不知道的吞吐量限制?或者有什么想法如何解决这个问题?

查询&表(表包括252行):

$records = mysqli_query($conn, " 
    SELECT 
     sp.spiel_id, 
     sp.tore_heimteam, 
     sp.tore_gastteam, 
     t.match_id, 
     t.tipp_heim, 
     t.tipp_gast, 
     t.tipp_id 
    FROM 
     spielplan sp 
    LEFT JOIN tipps t 
     ON sp.spiel_id = t.match_id 
"); 
while($fields = mysqli_fetch_assoc($records)) { 
?> 
    <tr> 
     <td><input type="text" name="tipp_ids[]" value="<?php echo fields["tipp_id"] ?>"></td> 
     <td><input type="text" name="goals_hometeams[]" value="<?php echo $fields["tore_heimteam"] ?>"></td> 
     <td><input type="text" name="goals_guestteams[]" value="<?php echo $fields["tore_gastteam"] ?>"></td> 
     <td><input type="text" name="tipp_guestteams[]" value="<?php echo $fields["tipp_gast"] ?>"></td> 
     <td><input type="text" name="tipp_hometeams[]" value="<?php echo $fields["tipp_heim"] ?>"></td> 
    </tr> 

脚本来检查POST输出(输出= 200行):

$goalsHome = $_POST['goals_hometeams']; 
$goalsGuest = $_POST['goals_guestteams']; 
$tippHomes = $_POST['tipp_hometeams']; 
$tippGuests = $_POST['tipp_guestteams']; 
$tipp_id = $_POST['tipp_ids']; 

$i=0; 
foreach($goalsHome as $key => $ghome) { 
    $i++; 
    echo $ghome.";"; 
    echo $goalsGuest[$key].";"; 
    echo $tippHomes[$key].";"; 
    echo $tippGuests[$key].";"; 
    echo $tipp_id[$key].";"; 
    echo "<br>"; 
} 
echo $i; 
+0

表为什么形式计值??? –

回答

4

我相信你会被打你的max_input_vars限制。默认是1000.

你可以通过编辑你的php.ini来解决这个问题。 (请参阅:This post on SO

尽管我会建议更改界面。

在接口的东西有点详细说明;

如果您想要让访问者填写1000+个输入字段,请使用增加的max_input_vars选项。期。

但是,如果输入字段实际上只是一个前端机制,你使用它们是错误的(在我看来)。输入字段是什么,INPUT字段。如果您不需要最终用户的输入,请勿使用输入字段。您可以使用任何HTML元素来显示数据。

如果您只需要用户的一个或两个值。只要求那些一个或两个值。也许创建一个小的JavaScript弹出窗口,请求输入你需要的。从那里你可以重新计算数据,并用xhttp请求将其发回到数据库中。

+0

谢谢@fyntasia!我需要联系我的主机,因为我无法编辑php.ini。我会尽快跟进答案。 – mario

+0

其他问题:您将如何更改该界面?背景:我需要表中的值来根据请求做出一些数学运算(即单击一个按钮),然后更新数据库中的相应值。请注意:我是一个绝对的PHP初学者,所以没有火箭科学预计。 – mario

+0

我编辑了我的评论,将我的愿景包含在输入字段中。我对你的项目不熟悉,所以我不知道你在做什么。我希望现在能够澄清一些事情。 – Fyntasia

3

看看你的php.ini参数max_input_vars = 2500默认值是2500,但你的设置可能不同。我猜你已经超过了这种形式

尝试增加以匹配的所有形式的输入

max_input_vars = 3500