0
これは私の仕事では使用しないので、これはPHPの最初の手順です。データベーステーブルにデータを追加するフォームを準備したいと思います。 私は、コードのこの部分を準備:PHP IF文はWhileループで一度だけ真の値を返します
<?php
require "init.php";
$marina_id=$_POST["marina_id"];
$b_cor=$_POST["b_cor"];
$size=$_POST["size"];
$available_place=$_POST["available_place"];
$l_cor=$_POST["l_cor"];
$is_open=$_POST["is_open"];
$description=$_POST["description"];
$sql= "insert into marinas (marina_id, b_cor, l_cor, size, available_place, is_open, description) values('$marina_id', '$b_cor', '$l_cor', '$size', '$available_place', '$is_open', '$description');";
if (mysqli_query($con, $sql))
{
echo "values were added";
} else {
echo "values were not added";
}
$count = 0;
while ($count<$size)
{
if ($count<$available_place) {
$isavailable = 1;
$accesscode = "";
} else {
$isavailable = 0;
$accesscode = "abcdefgh";
}
$dock_id=(string)$marina_id."0".(string)$count;
$nullObject="";
$sql2= "insert into places (
place_id,
b_cor, l_cor,
is_available,
plan,
depth,
width,
length,
description,
marina_id,
access_code,
reserved_from,
reserved_to,
last_update) values (
'$dock_id',
'$b_cor',
'$l_cor',
'$isavailable',
'$nullObject',
'$nullObject',
'$nullObject',
'$nullObject',
'$nullObject',
'$marina_id',
'$accesscode',
'$nullObject',
'$nullObject',
'$nullObject');";
if (mysqli_query($con, $sql2)) //$con comes from init.php
{
echo "complete.";
} else {
echo "something wrong with data.";
}
$count = $count+1;
}
?>
私の考えは、マリーナのテーブルにデータを持つ行を挿入するためであり、その「サイズ」の値に基づいてサイズ値は何度でも場所のテーブルにデータを余分な行を追加します。私はwhileループを使用しましたが、$ sql2のIF文は一度だけtrueを返しますが、なぜそれがあるのかわかりません。私の場合は、コードロジックが正常であると思われ、いくつかのデータが追加されました。私のようなソリューションのPHPには何か制限がありますか?
* $ dock_id =(string)$ marina_id。 "0"。(string)$ count; *はplace_idの値を一意にしませんか?整数値を文字列に結び付ける正しい方法ではないのですか? – Darek
別の方法は、整数を引用符で囲むことです。 $ foo = 5; $ foo = "$ foo" 質問を印刷するにはecho –
ありがとう、Francesco。あなたが言ったように、ユニークなキーに問題がありました。私はDB設定時に間違いを犯し、place_idではなくmarina_idに 'unique'を設定しました。 – Darek