私はphpとmysqlを初めて使いましたが、私はSilex 2.0とSymfonyで自分のクラスにしなければならないプロジェクトがあり、私のPHPコードと外国語に問題があります。データベース内の私の製品テーブルのキー。PHP/MySQLの外部キーはデータベースにid = 0として保存されます
問題は私のプログラムで関数を保存する適切な方法です。
は、ここで私は新製品を追加したり、編集しようとすると、私のデータベースに何が起こるかだ - 私が取得idCategoryとidProducent = 0:/
そして、私のコードの一部はProductModel.phpでそれを保存する責任がありますデータベースに(テーブルの製品に):ここで
public function addProduct($data) { $sql = 'INSERT INTO `products` (`id`, `idCategory`, `idProducent`, `name`, `price_netto`, `price_brutto`, `desc`) VALUES (NULL,?,?,?,?,?,?)'; $data['price_netto'] = $data['price_brutto'] * 1.22; $this->_db->executeQuery( $sql, array( $data['idCategory'], $data['idProducent'], $data['name'], $data['price_netto'], $data['price_brutto'], $data['desc']) ); }
public function saveProduct($data)
{
if (isset($data['id']) && ctype_digit((string)$data['id'])) {
$sql = "UPDATE
products
SET
idCategory = ?, idProducent = ?, name = ?,
price_netto = ?, price_brutto = ?, `desc` = ?
WHERE
id = ?";
$data['price_netto'] = $data['price_brutto'] * 1.22;
$this->_db->executeQuery(
$sql, array(
$data['idCategory'], $data['idProducent'], $data['name'],
$data['price_netto'], $data['price_brutto'], $data['desc'], $data['id'])
);
} else {
$sql = "INSERT INTO
`products` (`id`, `idCategory`, `idProducent`, `name`, `price_netto`, `price_brutto`, `desc`)
VALUES
(NULL,?,?,?,?,?,?)";
$data['price_netto'] = $data['price_brutto'] * 1.22;
$this->_db->executeQuery(
$sql, array($data['id']), array(
$data['idCategory'], $data['idProducent'], $data['name'],
$data['price_netto'], $data['price_brutto'], $data['desc'])
);
}
}
あなたはProductController.phpは、[Iが思う部分がここでは重要である]があります。 また
がProducentsModel.phpとCategoriesModel.phpから機能:あなただけのリンクを与えるが、これはスタックオーバーフローと私の最初の時間であるため
public function getProducents()
{
$sql = 'SELECT * FROM producents;';
return $this->_db->fetchAll($sql);
}
public function getCategories()
{
$sql = 'SELECT * FROM categories;';
return $this->_db->fetchAll($sql);
}
申し訳ありませんが、ご理解いただければ幸いです。
テーブル構造を共有できますか? –
http://screenshot.sh/oe5YXJ1HXU3Jq http://screenshot.sh/n9GN2B179sVUM – Abadd0n
MyISAMまたはInnoDBを使用していますか? –