Codeigniter insérer s'il n'existe pas et si pas de mise à jour
j'ai deux tables pour ces produits de la catégorie de celui où je stocke les catégories de produits et l'autre est la liste de produits où j'insère des produits lorsque vous insérez un nouveau produit, il y aura un menu déroulant permettant de choisir parmi les catégories stockées sur la catégorie de produit, mais si vous souhaitez ajouter une autre catégorie, il y a un "autre" option dans la liste déroulante et un textarea apparaîtront et vous permet de créer une autre catégorie, mon problème est que si j'ajoute un nouveau produit à une catégorie existante dans la base de données elle ne marche pas, insérez-les dans les deux tables, mais si j'ajoute un nouveau produit avec une nouvelle catégorie, il réussi à inserts
mon contrôleur:
function do_upload() {
$config['upload_path'] = './assets/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '2000';
$config['max_width'] = '2000';
$config['max_height'] = '2000';
$config['new_image'] = './assets/';
$config['overwrite'] = TRUE;
$this->load->library('upload', $config);
$this->form_validation->set_rules('name', 'Product Name', 'required|xss_clean');
$this->form_validation->set_rules('description', 'Product Description', 'required|xss_clean');
$this->form_validation->set_rules('price', 'Price', 'required');
if (!$this->upload->do_upload() || !$this->form_validation->run()) {
$error = array('error' => $this->upload->display_errors());
redirect('add_products');
} else {
$data = $this->upload->data();
$this->thumb($data);
$category = $_POST["prod_category"];
if($category == "2")
{
$category = $_POST["other_category"];
}
$file = array(
'img_name' => $data['raw_name'],
'thumb_name' => $data['raw_name'] . '_thumb',
'ext' => $data['file_ext'],
'product_name' => $this->input->post('name'),
'product_description' => $this->input->post('description'),
'product_price' => $this->input->post('price'),
'product_category' =>$category,
);
$this->db->insert("product_category",array("category"=>$category));
$this->User->insert_prod($file);
$data = array('upload_data' => $this->upload->data());
echo '<script>alert("You Have Successfully Added a new Product!");</script>';
redirect('admin_products','refresh');
}
}
modèle
public function insert_prod($file){
$this->db->insert('product_table',$file);
}
- Vous ne savez pas si elle est admissible à titre de réponse: andrea.codes/... C'est trop verbeux d'un motif...
- essayé de l'utiliser mais n'arrive pas à le faire fonctionner
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord vérifier si l'utilisateur ou les données sont issues ou non. ensuite, vous pouvez effectuer la mise à jour et l'opération d'insertion.
Il y a une façon de plus de par l'utilisation de mysql query
Explication
Supposons que c'est la table.
maintenant, nous réalisons
ON DUPLICATE KEY UPDATE
résultat est
Example
a été inséré dans le tableau, car il n'y a pas d'entrée avec la cléid
est-il maintenant si nous essayons d'insérer des données sur la position 1 ou 2 puisAlors le résultat est
Pour plus d' informations