私はこのコードを持っています:
public function updateOrder($num, $ufood, $uquan) {
$response = array();
mysql_query("SET NAMES 'utf8'");
foreach ($ufood as $index => $f) {
$result = mysql_query("SELECT food, quantity, uquantity FROM table1 WHERE food ='".$f."'") or die(mysql_error());
$no_of_rows = mysql_num_rows($result);
$response['number rows'] = $no_of_rows;
if ($no_of_rows>0) {
while ($row = mysqli_fetch_array($result)); {
if (!$row['uquantity']) {
$w = "INSERT INTO table1(uquantity) VALUES ('$uquan[$index]')";
mysql_query($w);
$e = (int)$row['quantity'];
$q = (int)$uquan[$index];
$sum = $e+$q;
$s = (string)$sum;
$d = "UPDATE table1 SET quantity = '$s' WHERE food = ".$row['$food']." ";
mysql_query($d);
} else if($row['uquantity']) {
$c = (int)$row['uquantity'];
$q = (int)$uquan[$index];
$sumq = $c+$q;
$sq = (string)$sumq;
$d = "UPDATE table1 SET uquantity = '$sq' WHERE food = ".$row['$food']." ";
}
}
} else {
$string ="INSERT INTO table1(food,uquantity) VALUES ('".$f."','".$uquan[$index]."')";
$z = mysql_query($string);
}
}
}
まあ、私はこれを機能させることはできません。私はあらゆる種類のことを試していますが、それでも機能しません。だから私はいくつかの質問があります:
この構造は
foreach
有効while
ですか?クエリはデータベースからいくつ
$result
かの行を返しますが$row['quantity']
、 を値として使用しようとすると、 が得られnull
ます。
このコードでは、Android アプリからいくつかのデータを受け取り、my のタイプ food のエントリが既にあるかどうかを「確認」しようとしますdb_table(table1)
。エントリがある場合、送信されたアンドロイドの数量エントリをデータベースに合計し、データベース内にあるデータとデータを合計して、フィールドを更新します。これが基本です。しかし、データベースから取得したデータを使用しようとすると、null 値が返されます。
誰かが私にいくつかのヒントを与えることができれば、私は本当に立ち往生しているので..