0

sqlite クエリによって返されたユーザー数をカウントし、それらのユーザー間で「請求書」を分割するコードを記述しようとしていますが、何らかの理由でカウンターが増加せず、ゼロ除算エラーが発生します。私のコードはここにあります:

<?php
session_start();
require 'database.php';
$db = new Database();
$name = $_POST['name'];
$amount = $_POST['amount'];
$due = $_POST['due'];
$gid = $_GET['gid'];
$uid = $_SESSION['id'];
$count = 0;

$users = $db->query("select * from members where(gid='$gid');");
while($data = $users->fetchArray()) {
$count++;
}

$amount = $amount / $count;
while($data = $users->fetchArray()) {
if($data['uid'] == $uid) {
    continue;
} else {
    $temp = $data['uid'];
    $db->exec("insert into bills values(NULL,'$gid','$uid','$temp','$amount','$due','false','$name');");
}
}

header('Location:grouppage.php?gid='.$gid.'');
?>

誰でもこれを修正する方法について何か考えがありますか?

4

2 に答える 2

0

select がレコードを返さない場合は、大文字と小文字を区別しません。

コードを見てください:

$users = $db->query("select * from members where(gid='$gid');");
while($data = $users->fetchArray()) {
$count++;
}

データが選択されていません -- while-body が実行されず、$count がインクリメントされず、ゼロのままになり、結果として次の行に「ゼロ除算」エラーが発生しました。

$amount = $amount / $count;
于 2013-03-11T23:14:32.400 に答える