2017-08-21 18 views
-2

まず、変数とテキストはドイツ語ですので、問題ありません。 これは私の最初の質問です、私の最初のクエリは正常に動作します。私は正確に他の人がうまくいかない理由を知っていませんが、私はそれが複数の質問のためだと思います!PHP - 最初のクエリは機能しますが、他のクエリは機能しません

私はプログラミングがかなり新しいです。

これは私のパレットのデータベースを更新するための私のPHPです!

<?php 
    // SQL Login 
    $host  = "localhost"; 
    $user  = "name"; 
    $password = "password"; 
    $db   = "test_nico"; 
    $mysqli = new mysqli($host, $user, $password, $db) or die (mysqli_error()); 

    if (!$mysqli) { echo 'SQL Server nicht gefunden oder Zugangsdaten passen nicht!';}; 
    $mysqli->query("SET NAMES 'utf8'"); 
    if ($mysqli->connect_errno) { 
     die("Verbindung fehlgeschlagen: " . $mysqli->connect_error); 
    } 


    // Tauschpartner ID 
    $id    = $_POST['id']; 
    // Eingang 
    $eingang_pgp  = $_POST['eingang_pgp']; 
    $eingang_pfp  = $_POST['eingang_pfp']; 
    $eingang_klt  = $_POST['eingang_klt']; 
    $eingang_halbe = $_POST['eingang_halbe']; 
    $eingang_viertel = $_POST['eingang_viertel']; 
    // Ausgang 
    $ausgang_pgp  = $_POST['ausgang_pgp']; 
    $ausgang_pfp  = $_POST['ausgang_pfp']; 
    $ausgang_klt  = $_POST['ausgang_klt']; 
    $ausgang_halbe = $_POST['ausgang_halbe']; 
    $ausgang_viertel = $_POST['ausgang_viertel']; 
    // Query 
    $search = "SELECT * FROM tauschpartner"; 
    $result = mysqli_query($mysqli, $search); 

    while($row = mysqli_fetch_array($result)) { 
     $tid     = $row['id']; 
     $firma_array[$tid] = $row['firma']; 
     $pfp_array[$tid]  = $row['pfp']; 
     $pgp_array[$tid]  = $row['pgp']; 
     $klt_array[$tid]  = $row['klt']; 
     $halbe_array[$tid] = $row['halbe']; 
     $viertel_array[$tid] = $row['viertel']; 
    } 
    // Bestand 
    $pgp_bestand  = $pgp_array[$id]; 
    $pfp_bestand  = $pfp_array[$id]; 
    $klt_bestand  = $klt_array[$id]; 
    $halbe_bestand = $halbe_array[$id]; 
    $viertel_bestand = $viertel_array[$id]; 
    // Berechnung 
    $pgp  = $pgp_bestand  + $eingang_pgp  - $ausgang_pgp; 
    $pfp  = $pfp_bestand  + $eingang_pfp  - $ausgang_pfp; 
    $klt  = $klt_bestand  + $eingang_klt  - $ausgang_klt; 
    $halbe = $halbe_bestand + $eingang_halbe - $ausgang_halbe; 
    $viertel = $viertel_bestand + $eingang_viertel - $ausgang_viertel; 
    // SQL Query 
    $sql_query = "UPDATE tauschpartner SET pfp = $pfp, pgp = $pgp, klt = $klt, halbe = $halbe, viertel = $viertel WHERE id = $id"; 
    $sql = mysqli_query($mysqli, $sql_query); 
     echo "ID: ".$id."\n"; 
     echo "eingang_pgp: ".$eingang_pgp."\n"; 
     echo "eingang_pfp: ".$eingang_pfp."\n"; 
     echo "eingang_klt: ".$eingang_klt."\n"; 
     echo "eingang_halbe: ".$eingang_halbe."\n"; 
     echo "eingang_viertel: ".$eingang_viertel."\n"; 
     echo "\n"; 
     echo "ausgang_pgp: ".$ausgang_pgp."\n";  
     echo "ausgang_pfp: ".$ausgang_pfp."\n"; 
     echo "ausgang_klt: ".$ausgang_klt."\n"; 
     echo "ausgang_halbe: ".$ausgang_halbe."\n"; 
     echo "ausgang_viertel: ".$ausgang_viertel."\n"; 
     echo "\n"; 
     echo "Bestand pgp: ".$pgp."\n";  
     echo "Bestand pfp: ".$pfp."\n"; 
     echo "Bestand klt: ".$klt."\n"; 
     echo "Bestand halbe: ".$halbe."\n"; 
     echo "Bestand viertel: ".$viertel."\n"; 
     echo "\n"; 


    $sql_query_all = "SELECT SUM(pgp) AS pgp_all, SUM(pfp) AS pfp_all, SUM(klt) AS klt_all, SUM(halbe) AS halbe_all, SUM(viertel) AS viertel_all FROM tauschpartner WHERE ID != 1"; 
    $sql = mysqli_query($mysqli, $sql_query_all); 
     while($row_all = mysqli_fetch_array($sql)) { 
      $pgp_bestand_all  = $row['pgp_all']; 
      $pfp_bestand_all  = $row['pfp_all']; 
      $klt_bestand_all  = $row['klt_all']; 
      $halbe_bestand_all = $row['halbe_all']; 
      $viertel_bestand_all = $row['viertel_all']; 
     }; 


    $sql_query_update_gd_bestand = "INSERT INTO tauschpartner SET pgp = $pgp_bestand_all, pfp = $pfp_bestand_all, klt = $klt_bestand, halbe = $halbe_bestand_all, viertel = $viertel_bestand_all WHERE id =1"; 
    $sql = mysqli_query($mysqli, $sql_query_update_gd_bestand); 
     echo $row['viertel_all']."\n"; 
     echo "GD Bestand pgp: ".$pgp_bestand_all."\n"; 
     echo "GD Bestand pfp: ".$pfp_bestand_all."\n"; 
     echo "GD Bestand klt: ".$klt_bestand_all."\n"; 
     echo "GD Bestand halbe: ".$halbe_bestand_all."\n"; 
     echo "GD Bestand viertel: ".$viertel_bestand_all; 
     echo "\n"; 
?> 

私のクエリが機能しない理由を教えてもらえますか?予め

おかげで、ニコ

+1

誤った挿入クエリ。 –

+1

SQLインジェクションにご注意ください!クエリは準備されたステートメントではなく、簡単に挿入することができるため、ハッキングの危険があります。 – Sjenkie

+0

2番目のクエリはどれですか(私はselectを見ることができます)? mysqli_error()を使ってエラーをチェックする。 – Jens

答えて

1

ループもし$ row_allを使用しているが、値をフェッチするときに$行を使用している間のあるコードの下で。それを変更して、動作します。

$sql_query_all = "SELECT SUM(pgp) AS pgp_all, SUM(pfp) AS pfp_all, SUM(klt) AS klt_all, SUM(halbe) AS halbe_all, SUM(viertel) AS viertel_all FROM tauschpartner WHERE ID != 1"; 
$sql = mysqli_query($mysqli, $sql_query_all); 
    while($row_all = mysqli_fetch_array($sql)) { // see here 
     $pgp_bestand_all  = $row_all['pgp_all']; // change $row to $row_all 
     $pfp_bestand_all  = $row_all['pfp_all']; 
     $klt_bestand_all  = $row_all['klt_all']; 
     $halbe_bestand_all = $row_all['halbe_all']; 
     $viertel_bestand_all = $row_all['viertel_all']; 
    }; 

私はあなたの問題を解決することを願っています。

+0

ありがとう、私はcompletlyこれを読んで、それを感謝します! –

+0

wc!私の回答にあまりにも投票をしてください – Naincy

+0

私の担当者がとても低いので、Ofcourse私はあなたの答えをupvotedちょうどdoesntショー –

関連する問題