したがって、postで受け取った値がnullの場合は、テーブル行に特定の値を表示しようとしています。 は、これまでのところ私は(それはスペイン語です)私の小さなデータベースとしてこれを持っている:受信した値がnullの場合は値を挿入します
DROP DATABASE IF EXISTS fantasmas;
CREATE DATABASE fantasmas;
USE fantasmas;
CREATE TABLE tipos(
ID tinyint(2) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
TIPO VARCHAR(45) UNIQUE
);
CREATE TABLE datos(
ID tinyint(2) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
NOMBRE VARCHAR(50) NOT NULL,
ARCHIVO VARCHAR(30),
AVISTAMIENTO VARCHAR(50) NOT NULL,
LOCALIDAD VARCHAR(50) NOT NULL,
INFO VARCHAR(200),
FKTIPOS TINYINT(2) UNSIGNED,
FOREIGN KEY (FKTIPOS) REFERENCES tipos(ID)
);
INSERT INTO tipos (TIPO) VALUES('Vapor'), ('Forma Animal'), ('Forma Humanoide'), ('Dios/Semidios'),('No Catalogado');
「tipos」にそれらの挿入された値は、このようなオプションであったされています
<select name="tipos">
<option value="sintipo">---------</option>
<?php
while($row = mysqli_fetch_assoc($rta)):
$tipo = $row['TIPO'];
echo '<option value="'.$row['ID'].'">'.$tipo.'</option>';
endwhile;
?>
</select>
後、とき
$query = "INSERT INTO datos SET NOMBRE='$nombre', AVISTAMIENTO='$lugar', LOCALIDAD='$localidad', INFO='$info', ARCHIVO='$ruta', FKTIPOS = NULLIF('$tipo','sintipo')";
形で満たされたすべてのデータは、その後、次のとおりです。フォームは次のようになり、誰かが「------」オプションを選択した場合、それはnull値を代入し、テーブルに、インセットを送られ、 diffeで示されたテーブルの家賃の列。 私が今必要とするのは、誰かが "------"オプションを選択した場合、画面に表示される値は "カタログなし"です これまでのところ私はそれを行うことができませんでした。 誰でも助けてくれますか?
最後のクエリ$ queryでは、$ tipoを一重引用符で囲むべきではありません。 '$ tipo'のように$ tipoを置かないとうまくいきません! –
SQLがクエリで$ paramsをエスケープしてください。表示されているコードはSQLインジェクションが発生する可能性があります。これは本当に大きなリスクです – Roberto