2017-01-09 64 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