Magento - Module INSERT,UPDATE, DELETE, SELECT code

crud, magento, magento-1.7, sql

Solution

Suppose, I have a module named `mynews`. Here follows the code to `select, insert, update, and delete data` from the `news` table.

`INSERT DATA`

`$data` contains array of data to be inserted. The key of the array should be the database table’s field name and the value should be the value to be inserted.

$data = array('title'=>'hello there','content'=>'how are you? i am fine over here.','status'=>1);
$model = Mage::getModel('mynews/mynews')->setData($data);
try {
    $insertId = $model->save()->getId();
    echo "Data successfully inserted. Insert ID: ".$insertId;
} catch (Exception $e){
 echo $e->getMessage();   
}

`SELECT DATA`

$item->getData() prints array of data from ‘news’ table.
$item->getTitle() prints the only the title field.

Similarly, to print content, we need to write `$item->getContent()`.

$model = Mage::getModel('mynews/mynews');
$collection = $model->getCollection();
foreach($collection as $item){
print_r($item->getData());
print_r($item->getTitle());
}

`UPDATE DATA`

`$id` is the database table row id to be updated. `$data` contains array of data to be updated. The key of the array should be the database table’s field name and the value should be the value to be updated.

// $id = $this->getRequest()->getParam('id');
$id = 2;
$data = array('title'=>'hello test','content'=>'test how are you?','status'=>0);
$model = Mage::getModel('mynews/mynews')->load($id)->addData($data);
try {
    $model->setId($id)->save();
    echo "Data updated successfully.";

} catch (Exception $e){
    echo $e->getMessage(); 
}

`DELETE DATA`

`$id` is the database table row id to be deleted.

// $id = $this->getRequest()->getParam('id');
$id = 3;
$model = Mage::getModel('mynews/mynews');
try {
    $model->setId($id)->delete();
    echo "Data deleted successfully.";

} catch (Exception $e){
    echo $e->getMessage(); 
}

In this way you can perform select, insert, update and delete in your custom module and in any `magento code`.

Source: http://blog.chapagain.com.np/magento-how-to-select-insert-update-and-delete-data/

Problem

I created a module and want to used core write and read function to insert,update,delete or select database value with condition, how can I do it without using SQL? Example: $customer_id=123 Model=(referral/referral) SELECT ``` $collection3 = Mage::getModel('referral/referral')->getCollection(); $collection3->addFieldToFilter('customer_id', array('eq' => $customer_id)); foreach($collection3 as $data1) { $ref_cust_id.= $data1->getData('referral_customer_id'); } ``` INSERT ``` $collection1= Mage::getModel('referral/referral'); $collection1->setData('customer_id',$customer_id)->save(); ``` DELETE,UPDATE(with condition)=???

Original source