2017-05-19 7 views
0

SQLデータベースからいくつかのデータを取得し、すべての行をトラフループする必要があります。PHP/SQL:mysqli_fetch_assocのループがうまくいかないのはなぜですか?

これは私が書いたものである:行数、最初の行のratingIDと合計:私はそれを実行すると

<?php 

$result = mysqli_query($con,"SELECT * FROM bewertungen;"); 

while($rating = mysqli_fetch_assoc($result)){ 
    echo "number of rows: " . mysqli_num_rows($result) . "<br>"; 
    $sql=" 
     SELECT SUM(rating_direction) 
     FROM commentratings 
     WHERE comment_ID = '".$rating['ID']."'; 
    "; 
    echo "ratingID: " . $rating['ID'] . "<br>"; 

    $result = mysqli_query($con,$sql); 
    if (FALSE === $result) die("Select sum failed: ".mysqli_error); 
    $row = mysqli_fetch_row($result); 
    $sum = $row[0]; 
    if ($row[0] == false) $sum = 0; 

    echo "sum: " . $sum ."<br>"; 

    $sql=" 
     UPDATE bewertungen 
     SET Bewertung_Kommentar = '$sum' 
     WHERE ID = ".$rating['ID']."; 
    "; 

    if ($con->query($sql) == TRUE) { 
     echo 'success'; 
    } 
} 

?> 

、それはすべて正しいです

number of rows: 6 
ratingID: 22 
sum: -1 
success 

を返します。 。

しかし、なぜ他のすべての行も同様にループしませんか? ...私は別の部分でこれを使用し、それがうまく働い事前に

おかげで、 ジュリアン

+0

あなたは上記のコードを正確に行うために何をしようとしていますか? –

+1

最初の '$ result'は' $ result = mysqli_query($ con、$ sql);で上書きされるため、 –

+0

クエリからターミネータ記号を削除します**; ** –

答えて

0

はこれを試してみてください:

<?php 

$result = mysqli_query($con,"SELECT * FROM bewertungen;"); 

while($rating = mysqli_fetch_assoc($result)){ 
echo "number of rows: " . mysqli_num_rows($result) . "<br>"; 
$sql=" 
    SELECT SUM(rating_direction) 
    FROM commentratings 
    WHERE comment_ID = '".$rating['ID']."'; 
"; 
echo "ratingID: " . $rating['ID'] . "<br>"; 

$result2 = mysqli_query($con,$sql); //result -> result2 
if (FALSE === $result2) die("Select sum failed: ".mysqli_error); 
$row = mysqli_fetch_row($result2); //result -> result2 
$sum = $row[0]; 
if ($row[0] == false) $sum = 0; 

echo "sum: " . $sum ."<br>"; 

$sql=" 
    UPDATE bewertungen 
    SET Bewertung_Kommentar = '$sum' 
    WHERE ID = ".$rating['ID']."; 
"; 

if ($con->query($sql) == TRUE) { 
    echo 'success'; 
} 
} 

?> 
+0

ありがとう!見なかった.. – Julian

関連する問題