Related
My Model
<?php
class Keluhan extends CI_Model {
var $tabel = 'tb_keluhan';
function __construct() {
parent::__construct();
}
function GetAllCustomer() {
$hasil = $this->db->query("SELECT * FROM tb_customer ORDER BY username");
if ($hasil->num_rows() > 0) {
foreach ($hasil->result() as $row) {
$data[] = $row;
}
return $data;
}
}
function GetCustomerSession($username) {
$hasil = $this->db->query("SELECT * FROM tb_customer WHERE username='" . $username . "'");
if ($hasil->num_rows() > 0) {
foreach ($hasil->result() as $row) {
$data[] = $row;
}
return $data;
}
}
function InsertFeedback($data) {
$this->db->insert('tb_keluhan', $data);
return;
}
function InsertRating($data) {
$this->db->insert('tb_rating', $data);
return;
}
//CRUD
function insertCustomer($data) {
$this->db->insert('tb_customer', $data);
return;
}
function get_data_by_id($table, $kode) {
$this->db->where('id', $kode);
return $this->db->get($table);
}
function updateCustomer($table, $kode, $data) {
$this->db->where('id', $kode);
return $this->db->update($table, $data);
}
function del_by_id($table, $kode) {
$this->db->where('id', $kode);
$this->db->delete($table);
}
function GetAllKeluhan() {
$hasil = $this->db->query("SELECT * FROM tb_keluhan");
if ($hasil->num_rows() > 0) {
foreach ($hasil->result() as $row) {
$data[] = $row;
}
return $data;
}
}
function GetAllSudahProses() {
$hasil = $this->db->query("SELECT * FROM tb_keluhan WHERE status='SELESAI' ORDER BY status");
if ($hasil->num_rows() > 0) {
foreach ($hasil->result() as $row) {
$data[] = $row;
}
return $data;
}
}
function GetAllBelumProses() {
$hasil = $this->db->query("SELECT * FROM tb_keluhan WHERE status='BELUM' ORDER BY status");
if ($hasil->num_rows() > 0) {
foreach ($hasil->result() as $row) {
$data[] = $row;
}
return $data;
}
}
//END OF CRUD
}
?>
My controller //controler
public function rateform($username,$id,$name) {
$rating = $this->input->post('rating');
$name2 = urldecode($name);
$data = array
(
'id' => $this->input->post('id'),
'username' => $this->input->post('username'),
'rating' => $this->input->post('rating')
);
$result = $this->login_database->InsertRating($data);
if ($result == TRUE) {
$data['message_display'] = 'Registration Successful !';
} else {
$data['message_display'] = 'Username already exist!';
}
help me, I can't insert data to database.
$result always false and data didn't enter to the database
I not understand with the error
Change your controller function with below code
I think You are calling wrong model for inserting rating
public function rateform($username,$id,$name) {
$this->load->Model('Keluhan'); // load your model
$rating = $this->input->post('rating');
$name2 = urldecode($name);
$data = array
(
'id' => $this->input->post('id'),
'username' => $this->input->post('username'),
'rating' => $this->input->post('rating')
);
$result = $this->Keluhan->InsertRating($data); // change your model name where you want to insert rating
if ($result == TRUE) {
$data['message_display'] = 'Registration Successful !';
} else {
$data['message_display'] = 'Username already exist!';
}
}
my problem is i whenever i input fname and mname i got an error from the database. i just want to search both of fname and mname in search field.
my search controller function
public function search()
{
$li = $this->session->userdata('logged_in');
$id = $this->session->userdata('idnumber');
if($li == TRUE)
{
$this->load->model('users_model');
$this->load->helper('smiley');
$this->load->library('table');
$image_array = get_clickable_smileys('http://localhost/efg/images/smileys', 'status');
$col_array = $this->table->make_columns($image_array, 8);
$image_array2 = get_clickable_smileys('http://localhost/efg/images/smileys', 'status');
$col_array2 = $this->table->make_columns($image_array2, 8);
$this->data['smiley_table1'] = $this->table->generate($col_array);
$this->data['smiley_tables'] = $this->table->generate($col_array2);
if($this->input->post())
{
$search = $this->input->post('search');
$memb = $this->users_model->search($search);
$usersearch = $this->users_model->search($search);
$grpsearch = $this->users_model->searchgrp($search);
redirect ('home/profile/'.$memb);
}
}
}
My users_model model
public function search($search)
{
$this->db->select('*');
$this->db->from('users');
$this->db->like('username',$search);
$this->db->or_like('fname',$search);
$this->db->or_like('lname',$search);
$this->db->or_like('mname',$search);
$query = $this->db->get();
foreach ($query->result_array() as $row)
{
$memb = $row['idnumber'];
}
$error = 'There is no record for the one you searched. Please go Back.';
$query1 = $this->db->query("SELECT * FROM users WHERE idnumber ='$memb'");
$hehe = $query1->result_array();
if($hehe==NULL)
{
echo $error; exit;
}
else
{
return $memb;
}
}
Always check the varibles using in condition are declared before the condition.
If it doesnt pass the condition what would be the output
public function search($search)
{
$this->db->select('*');
$this->db->from('users');
$this->db->like('username',$search);
$this->db->or_like('fname',$search);
$this->db->or_like('lname',$search);
$this->db->or_like('mname',$search);
$query = $this->db->get();
$memb = null;
foreach ($query->result_array() as $row)
{
$memb = $row['idnumber'];
}
$error = 'There is no record for the one you searched. Please go Back.';
$query1 = $this->db->query("SELECT * FROM users WHERE idnumber =$memb");
$hehe = $query1->result_array();
if($hehe==NULL)
{
return $error;
}
else
{
return $memb;
}
}
Make sure the variables that youll be using in queries are set. Trap before executing queries.
Also, use Query Builder (Active Record) when you can.
public function search($search)
{
$this->db->select('*');
$this->db->from('users');
$this->db->like('username',$search);
$this->db->or_like('fname',$search);
$this->db->or_like('lname',$search);
$this->db->or_like('mname',$search);
$query = $this->db->get();
$memb = '';
if ($query->result_array() > 0) {
foreach ($query->result_array() as $row) {
$memb = $row['idnumber'];
}
if ($memb) {
$this->db->select("*");
$this->db->where("idnumber", $memb);
$query1 = $this->db->get("users");
//$query1 = $this->db->query("SELECT * FROM users WHERE idnumber ='$memb'");
$hehe = $query1->result_array();
return ($hehe) ? $memb : false;
}
return false;
}
$error = 'There is no record for the one you searched. Please go Back.';
return $error;
}
OK, I am new to PHP so I plead you to have understanding.
I have made my new application, however I can't figure out why is it complaining about. I get very odd and strange error
db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
foreach ($row as $key => $val) {
$this->$key = $val;
}
return $row;
}
return null;
}
function getUser($info=NULL, $active=NULL) {
$sql = "SELECT * FROM tv_user WHERE 1 = 1 ";
if (!is_null($info)) {
if (empty($info->username) || empty($info->password)) {
return null;
}
if (!empty($info->username)) {
$sql .= " AND (username = '{$info->username}' OR email = '{$info->username}' OR id = '{$info->username}') ";
}
if (!empty($info->password)) {
$sql .= " AND password = '".md5($info->password)."' ";
}
}
if (!empty($active)) {
$sql .= " AND active = '{$active}' ";
}
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
foreach ($row as $key => $val) {
$this->$key = $val;
}
return $row;
}
return null;
}
function getUsers($active=NULL) {
$sql = "SELECT * FROM tv_user WHERE 1 = 1";
if (!empty($active)) {
$sql .= " AND active = '{$active}'";
}
$query = $this->db->query($sql);
return $query->result();
}
function isUserExist($username=NULL, $active=NULL) {
$sql = "SELECT * FROM tv_user WHERE 1 = 1 ";
if (!empty($username)) {
$sql .= " AND username = '{$username}' ";
}
if (!empty($active)) {
$sql .= " AND active = '{$active}' ";
}
$query = $this->db->query($sql);
return ($query->num_rows() > 0);
}
function getUserByEmail($email, $active=NULL) {
if (empty($email)) { return null; }
$sql = "SELECT * FROM tv_user WHERE email = '{$email}' ";
if (!empty($active)) {
$sql .= " AND active = '{$active}' ";
}
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
foreach ($row as $key => $val) {
$this->$key = $val;
}
return $row;
}
return null;
}
function getSocialUser($uid=NULL, $provider,$email=NULL, $active=NULL) {
if (empty($provider)) { return null; }
$sql = "SELECT * FROM tv_user WHERE 1 = 1 ";
if (!empty($uid)) { $sql .= " AND uid = '{$uid}' "; }
if (!empty($email)) { $sql .= " AND email = '{$email}' "; }
$sql .= " AND provider='{$provider}'";
if (!empty($active)) { $sql .= " AND active = '{$active}' "; }
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
foreach ($row as $key => $val) {
$this->$key = $val;
}
return $row;
}
return null;
}
function uuid() {
return strtoupper(substr(dechex(time()).dechex(mt_rand(1,65535)), 0, 6));
}
function add($data) {
return $this->db->insert("tv_user", $data);
}
function update($data, $where) {
return $this->db->update("tv_user", $data, $where);
}
function delete($where) {
return $this->db->delete("tv_user", $where);
}
function login($username, $password) {
if (empty($username) || empty($password)) {
return FALSE;
}
$password = md5($password);
$sql = "SELECT * FROM tv_user WHERE username='{$username}' AND password='{$password}' AND active=1";
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$user = $query->row();
$user_data = array();
foreach($user as $key => $val){
$user_data[$key] = $val;
}
$user_data["login"] = TRUE;
$this->session->set_userdata('user', $user_data);
if ($user->user_type == USR_ROOT) {
$this->session->set_userdata('root_addmin_logged_in', TRUE);
$this->session->set_userdata('addmin_logged_in', TRUE);
} else
if (in_array($user->user_type,array(USR_ADMIN,
USR_MODERATOR,
USR_TOUR,
USR_HOTEL,
USR_FLIGHT,
USR_VISA)
))
{
$this->session->set_userdata('root_addmin_logged_in', FALSE);
$this->session->set_userdata('addmin_logged_in', TRUE);
} else {
$this->session->set_userdata('root_addmin_logged_in', FALSE);
$this->session->set_userdata('addmin_logged_in', FALSE);
}
$this->session->set_userdata('logged_in', TRUE);
$this->session->set_userdata('logged_user', $user);
return TRUE;
}
return FALSE;
}
function logout() { $this->session->sess_destroy(); }
function verify_reset_password_code($email, $code) {
if (empty($email) || empty($code)) {
return FALSE;
}
$sql = "SELECT * FROM tv_user WHERE email = '{$email}' ";
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
return ($code == md5(SITE_NAME.$row->fullname))? TRUE : FALSE;
} else {
return FALSE;
}
}
}
?>
which is interpreted as
PHP Fatal error: Class 'M_user' not found in C:\wamp\www\system\core\Loader.php on line 303
I am not very good in this since I am new. I have to say that I am running my application under WAMP.It may be something trivial, but I don't get it.
I have even included all modules in my autoload.php file as following:
$autoload['model'] = array(
'm_user',
'm_user_online',
'm_content_category',
'm_content',
'm_nation',
'm_mail',
'm_message',
'm_feedback',
'm_photo',
'm_tour',
'm_tour_rate',
'm_tour_departure',
'm_tour_departure_rate',
'm_tour_itinerary',
'm_tour_category',
'm_tour_activity',
'm_tour_destination',
'm_tour_tripnote',
'm_tour_request',
'm_visa',
'm_visa_tips',
'm_question',
'm_hotel',
'm_room',
'm_room_rate',
'm_album_category',
'm_album',
'm_tour_option_category'
);
Part of the code where it gets mentioned:
// --------------------------------------------------------------------
/**
* Model Loader
*
* This function lets users load and instantiate models.
*
* #param string the name of the class
* #param string name for the model
* #param bool database connection
* #return void
*/
public function model($model, $name = '', $db_conn = FALSE)
{
if (is_array($model))
{
foreach ($model as $babe)
{
$this->model($babe);
}
return;
}
if ($model == '')
{
return;
}
$path = '';
// Is the model in a sub-folder? If so, parse out the filename and path.
if (($last_slash = strrpos($model, '/')) !== FALSE)
{
// The path is in front of the last slash
$path = substr($model, 0, $last_slash + 1);
// And the model name behind it
$model = substr($model, $last_slash + 1);
}
if ($name == '')
{
$name = $model;
}
if (in_array($name, $this->_ci_models, TRUE))
{
return;
}
$CI =& get_instance();
if (isset($CI->$name))
{
show_error('The model name you are loading is the name of a resource that is already being used: '.$name);
}
$model = strtolower($model);
foreach ($this->_ci_model_paths as $mod_path)
{
if ( ! file_exists($mod_path.'models/'.$path.$model.'.php'))
{
continue;
}
if ($db_conn !== FALSE AND ! class_exists('CI_DB'))
{
if ($db_conn === TRUE)
{
$db_conn = '';
}
$CI->load->database($db_conn, FALSE, TRUE);
}
if ( ! class_exists('CI_Model'))
{
load_class('Model', 'core');
}
require_once($mod_path.'models/'.$path.$model.'.php');
$model = ucfirst($model);
$CI->$name = new $model();
$this->_ci_models[] = $name;
return;
}
// couldn't find the model
show_error('Unable to locate the model you have specified: '.$model);
}
This is my m_user.php class:
<?
class M_User extends CI_Model
{
function load($id)
{
$sql = "SELECT * FROM tv_user WHERE id = '{$id}' ";
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
foreach ($row as $key => $val) {
$this->$key = $val;
}
return $row;
}
return null;
}
function getUser($info=NULL, $active=NULL)
{
$sql = "SELECT * FROM tv_user WHERE 1 = 1 ";
if (!is_null($info)) {
if (empty($info->username) || empty($info->password)) {
return null;
}
if (!empty($info->username)) {
$sql .= " AND (username = '{$info->username}' OR email = '{$info->username}' OR id = '{$info->username}') ";
}
if (!empty($info->password)) {
$sql .= " AND password = '".md5($info->password)."' ";
}
}
if (!empty($active)) {
$sql .= " AND active = '{$active}' ";
}
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
foreach ($row as $key => $val) {
$this->$key = $val;
}
return $row;
}
return null;
}
function getUsers($active=NULL)
{
$sql = "SELECT * FROM tv_user WHERE 1 = 1";
if (!empty($active)) {
$sql .= " AND active = '{$active}'";
}
$query = $this->db->query($sql);
return $query->result();
}
function isUserExist($username=NULL, $active=NULL)
{
$sql = "SELECT * FROM tv_user WHERE 1 = 1 ";
if (!empty($username)) {
$sql .= " AND username = '{$username}' ";
}
if (!empty($active)) {
$sql .= " AND active = '{$active}' ";
}
$query = $this->db->query($sql);
return ($query->num_rows() > 0);
}
function getUserByEmail($email, $active=NULL)
{
if (empty($email)) {
return null;
}
$sql = "SELECT * FROM tv_user WHERE email = '{$email}' ";
if (!empty($active)) {
$sql .= " AND active = '{$active}' ";
}
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
foreach ($row as $key => $val) {
$this->$key = $val;
}
return $row;
}
return null;
}
function getSocialUser($uid=NULL, $provider,$email=NULL, $active=NULL)
{
if (empty($provider)) {
return null;
}
$sql = "SELECT * FROM tv_user WHERE 1 = 1 ";
if (!empty($uid)) {
$sql .= " AND uid = '{$uid}' ";
}
if (!empty($email)) {
$sql .= " AND email = '{$email}' ";
}
$sql .= " AND provider='{$provider}'";
if (!empty($active)) {
$sql .= " AND active = '{$active}' ";
}
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
foreach ($row as $key => $val) {
$this->$key = $val;
}
return $row;
}
return null;
}
function uuid()
{
return strtoupper(substr(dechex(time()).dechex(mt_rand(1,65535)), 0, 6));
}
function add($data)
{
return $this->db->insert("tv_user", $data);
}
function update($data, $where)
{
return $this->db->update("tv_user", $data, $where);
}
function delete($where)
{
return $this->db->delete("tv_user", $where);
}
function login($username, $password)
{
if (empty($username) || empty($password)) {
return FALSE;
}
$password = md5($password);
$sql = "SELECT * FROM tv_user WHERE username='{$username}' AND password='{$password}' AND active=1";
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$user = $query->row();
$user_data = array();
foreach($user as $key => $val){
$user_data[$key] = $val;
}
$user_data["login"] = TRUE;
$this->session->set_userdata('user', $user_data);
if ($user->user_type == USR_ROOT) {
$this->session->set_userdata('root_addmin_logged_in', TRUE);
$this->session->set_userdata('addmin_logged_in', TRUE);
}
else if (in_array($user->user_type, array(USR_ADMIN,USR_MODERATOR,USR_TOUR,USR_HOTEL,USR_FLIGHT,USR_VISA))) {
$this->session->set_userdata('root_addmin_logged_in', FALSE);
$this->session->set_userdata('addmin_logged_in', TRUE);
}
else {
$this->session->set_userdata('root_addmin_logged_in', FALSE);
$this->session->set_userdata('addmin_logged_in', FALSE);
}
$this->session->set_userdata('logged_in', TRUE);
$this->session->set_userdata('logged_user', $user);
return TRUE;
}
return FALSE;
}
function logout()
{
$this->session->sess_destroy();
}
function verify_reset_password_code($email, $code)
{
if (empty($email) || empty($code)) {
return FALSE;
}
$sql = "SELECT * FROM tv_user WHERE email = '{$email}' ";
$query = $this->db->query($sql);
if ($query->num_rows() > 0) {
$row = $query->row();
return ($code == md5(SITE_NAME.$row->fullname))? TRUE : FALSE;
} else {
return FALSE;
}
}
}
?>
Set
short_open_tag=On
in php.ini
And restart your Apache server.
As per the comments:
Your first chunk of PHP is appearing in your HTML view - good idea to include a screenshot! That would indicate that it is not being parsed as PHP, and instead is being parse as HTML, so I would check to see if a <?php appears at the start.
I'm creating a class in which MySQL queries will be generated automatically , but I've some problem ...
here is my Database class...
<?php
class Database {
var $host="localhost";
var $username="";
Var $password="";
var $database="";
var $fr_query;
var $row= array() ;
public function connect()
{
$conn= mysql_connect($this->host,$this->username,$this->password);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
}
public function db()
{
$conn_db = mysql_select_db($this->database);
if(! $conn_db )
{
echo 'Could Not Connect the Database';
}
}
public function run_query($sql)
{
$run = mysql_query($sql);
if(!$run)
{
throw new Exception("!!!!!Invalid query!!!!!!!");
}
$newId = mysql_insert_id();
if($newId)
{
return $newId;
}
return true;
}
public function fetchRow($fr)
{
if($fr)
{
$run = mysql_query($fr);
if($run)
{
return mysql_fetch_assoc($run);
}
}
return null;
}
function fetchAll($fr_query)
{
if($fr_query)
{
$run = mysql_query($fr_query);
if($run)
{
$data=array();
while($row=mysql_fetch_assoc($run))
{
$data[]=$row;
}
return $data;
}
}
return null;
}
}
$n = new Database();
$n->connect();
$n->db();
?>
and this is my test.php
<?php
include("database.php");
class Model_Abstract
{
protected $_data = array();
protected $_tableName = null;
protected $_primaryKey = null;
public function getTableName()
{
return $this->_tableName;
}
public function getPrimaryKey()
{
return $this->_primaryKey;
}
public function __set($key, $value = NULL)
{
$key = trim($key);
if(!$key)
{
throw new Exception('"$key" should not be empty.');
}
$this->_data[$key] = $value;
return $this;
}
public function __get($key)
{
$key = trim($key);
if(!$key)
{
throw new Exception('"$key" should not be empty.');
}
if(array_key_exists($key, $this->_data))
{
return $this->_data[$key];
}
return NULL;
}
public function insert()
{
print_r($this->_data);
$keyString = "`".implode("`,`", array_keys($this->_data))."`";
$valueString = "'".implode("','", array_keys($this->_data))."'";
echo $query = "INSERT INTO `{$this->getTableName()}` ({$keyString}) VALUES ({$valueString})";
$this->adpater()->run_query($query);
echo 'Inserted';
}
public function setData($data)
{
if(!is_array($data))
{
throw new Exception('"$data" should not be empty.');
}
$this->_data = $data;
return $this;
}
public function load($id, $key = null)
{
if(!is_int($id) && $id)
{
throw new Exception('"$id" should not be blank.');
}
if($id)
{
echo $query = "SELECT * FROM `{$this->getTableName()}` WHERE `{$this->getPrimaryKey()}` = '{$id}'";
$data[] = $this->adpater()->fetchRow($query);
$tabelName = $this->getTableName();
foreach($data as &$_data)
{
print_r($_data);
$object = new $tabelName();
$object->setData($_data);
$_data = $object;
}
print_r($data);
return $this;
/*
$query = "SELECT * FROM `{$this->getTableName()}` WHERE `{$this->getPrimaryKey()}` = '{$id}'";
$this->_data = $this->adpater()->fetchRow($query);
return $this; */
}
}
public function loadAll()
{
$query = "SELECT * FROM `{$this->getTableName()}`";
$data[] = $this->adpater()->fetchAll($query);
return $data;
}
public function delete($id, $key = null)
{
if(!is_int($id) && $id)
{
throw new Exception('"$id" should not be blank.');
}
if($id)
{
echo $query = "DELETE FROM `{$this->getTableName()}` WHERE `{$this->getPrimaryKey()}` = '{$id}'";
$data[] = $this->adpater()->run_query($query);
$tabelName = $this->getTableName();
$msg = 'Deleted Successfully....';
return $msg;
}
}
public function update()
{
print_r($this->_data);
$keyString = "`".implode("`,`", array_keys($this->_data))."`";
$valueString = "'".implode("','", array_keys($this->_data))."'";
echo $query = "UPDATE`{$this->getTableName()}` SET ({$keyString}) = ({$valueString}) WHERE `{$this->getPrimaryKey()}` = '{$id}'";
$this->adpater()->run_query($query);
echo 'Updated';
}
public function adpater()
{
return new Database();
}
}
class Product extends Model_Abstract
{
protected $_tableName = 'product';
protected $_primaryKey = 'product_id';
}
$product = new Product();
echo $product->name;
$product->insert();
print_r($product);
$product = new Product();
$product->name = 'Nokia Lumia';
$product->description = 'Windows';
$product->price = '15000';
$product->quantity = '12';
$product->sku = 'x2';
$product->status = '2';
$product->created_date = '0000-00-00 00:00:00';
$product->updated_date = ' ';
?>
So in here my problem is in Insert query, the values are same the column_name ...
I'm having Problem in loadAll();
the browser says "Catchable fatal error: Object of class Product could not be converted to string in"
$keyString = "`".implode("`,`", array_keys($this->_data))."`";
$valueString = "'".implode("','", array_keys($this->_data))."'";
Same lines, same value. Perhaps you meant
$keyString = "`".implode("`,`", array_keys($this->_data))."`";
$valueString = "'".implode("','", $this->_data) ."'";
Which would take the array keys for $keyString and the array values for $valueString.
Depreciation warning
mysql_* are deprecated functions. Use mysqli_* or PDO
Warning
This class does not protect you against SQL injections.
I'm writing a class and handful of functions to connect to the database and retrieve the information from the tables. I went through previous posts having similar titles, but most of them have written using mysql functions and I am using mysqli functions.
I want somebody who can go through this simple script and let me know where I am making my mistake.
This is my class.connect.php:
<?php
class mySQL{
var $host;
var $username;
var $password;
var $database;
public $dbc;
public function connect($set_host, $set_username, $set_password, $set_database)
{
$this->host = $set_host;
$this->username = $set_username;
$this->password = $set_password;
$this->database = $set_database;
$this->dbc = mysqli_connect($this->host, $this->username, $this->password, $this->database) or die('Error connecting to DB');
}
public function query($sql)
{
return mysqli_query($this->dbc, $sql) or die('Error querying the Database');
}
public function fetch($sql)
{
$array = mysqli_fetch_array($this->query($sql));
return $array;
}
public function close()
{
return mysqli_close($this->dbc);
}
}
?>
This is my index.php:
<?php
require_once ("class.connect.php");
$connection = new mySQL();
$connection->connect('localhost', 'myDB', 'joker', 'names_list');
$myquery = "SELECT * FROM list";
$query = $connection->query($myquery);
while($array = $connection->fetch($query))
{
echo $array['first_name'] . '<br />';
echo $array['last_name'] . '<br />';
}
$connection->close();
?>
I am getting the error saying that Error querying the Database.
Few problems :-
you don't die without provide a proper mysql error (and is good practice to exit gracefully)
fetch method is only FETCH the first row
mysqli have OO method, why you still using procedural function?
The problem is either this:
public function fetch($sql)
{
$array = mysqli_fetch_array($this->query($sql));
return $array;
}
or this:
while($array = $connection->fetch($query))
Because you are using the result from the query to query again. Basically, you are doing:
$r = mysqli_query($this->dbc, $sql);
$array = mysqli_fetch_array(mysqli_query($this->dbc, $r));
And you are getting an error, because $r is not a query string. When it's converted to a string, it's a "1" (from your other comment).
Try changing the function to (changed name of variable so you can see the difference):
public function fetch($result)
{
return mysqli_fetch_array($result);
}
or just call the function directly.
If you don't do your own db abstraction for learning php and mysql, you can use Medoo (http://medoo.in/).
It's a free and tiny db framework, that could save a huge work and time.
Obviously an error occurs on SELECT * FROM list you can use mysqli_error to find the error:
return mysqli_query($this->dbc, $sql) or die('Error:'.mysqli_error($this->dbc));
This will display the exact error message and will help you solve your problem.
Try to check this
https://pramodjn2.wordpress.com/
$database = new db();
$query = $database->select(‘user’);
$st = $database->result($query);
print_r($st);
class db {
public $server = ‘localhost';
public $user = ‘root';
public $passwd = ‘*****';
public $db_name = ‘DATABASE NAME';
public $dbCon;
public function __construct(){
$this->dbCon = mysqli_connect($this->server, $this->user, $this->passwd, $this->db_name);
}
public function __destruct(){
mysqli_close($this->dbCon);
}
/* insert function table name, array value
$values = array(‘first_name’ => ‘pramod’,’last_name’=> ‘jain’);
*/
public function insert($table,$values)
{
$sql = “INSERT INTO $table SET “;
$c=0;
if(!empty($values)){
foreach($values as $key=>$val){
if($c==0){
$sql .= “$key='”.htmlentities($val, ENT_QUOTES).”‘”;
}else{
$sql .= “, $key='”.htmlentities($val, ENT_QUOTES).”‘”;
}
$c++;
}
}else{
return false;
}
$this->dbCon->query($sql) or die(mysqli_error());
return mysqli_insert_id($this->dbCon);
}
/* update function table name, array value
$values = array(‘first_name’ => ‘pramod’,’last_name’=> ‘jain’);
$condition = array(‘id’ =>5,’first_name’ => ‘pramod!’);
*/
public function update($table,$values,$condition)
{
$sql=”update $table SET “;
$c=0;
if(!empty($values)){
foreach($values as $key=>$val){
if($c==0){
$sql .= “$key='”.htmlentities($val, ENT_QUOTES).”‘”;
}else{
$sql .= “, $key='”.htmlentities($val, ENT_QUOTES).”‘”;
}
$c++;
}
}
$k=0;
if(!empty($condition)){
foreach($condition as $key=>$val){
if($k==0){
$sql .= ” WHERE $key='”.htmlentities($val, ENT_QUOTES).”‘”;
}else{
$sql .= ” AND $key='”.htmlentities($val, ENT_QUOTES).”‘”;
}
$k++;
}
}else{
return false;
}
$result = $this->dbCon->query($sql) or die(mysqli_error());
return $result;
}
/* delete function table name, array value
$where = array(‘id’ =>5,’first_name’ => ‘pramod’);
*/
public function delete($table,$where)
{
$sql = “DELETE FROM $table “;
$k=0;
if(!empty($where)){
foreach($where as $key=>$val){
if($k==0){
$sql .= ” where $key='”.htmlentities($val, ENT_QUOTES).”‘”;
}else{
$sql .= ” AND $key='”.htmlentities($val, ENT_QUOTES).”‘”;
}
$k++;
}
}else{
return false;
}
$del = $result = $this->dbCon->query($sql) or die(mysqli_error());
if($del){
return true;
}else{
return false;
}
}
/* select function
$rows = array(‘id’,’first_name’,’last_name’);
$where = array(‘id’ =>5,’first_name’ => ‘pramod!’);
$order = array(‘id’ => ‘DESC’);
$limit = array(20,10);
*/
public function select($table, $rows = ‘*’, $where = null, $order = null, $limit = null)
{
if($rows != ‘*’){
$rows = implode(“,”,$rows);
}
$sql = ‘SELECT ‘.$rows.’ FROM ‘.$table;
if($where != null){
$k=0;
foreach($where as $key=>$val){
if($k==0){
$sql .= ” where $key='”.htmlentities($val, ENT_QUOTES).”‘”;
}else{
$sql .= ” AND $key='”.htmlentities($val, ENT_QUOTES).”‘”;
}
$k++;
}
}
if($order != null){
foreach($order as $key=>$val){
$sql .= ” ORDER BY $key “.htmlentities($val, ENT_QUOTES).””;
}
}
if($limit != null){
$limit = implode(“,”,$limit);
$sql .= ” LIMIT $limit”;
}
$result = $this->dbCon->query($sql);
return $result;
}
public function query($sql){
$result = $this->dbCon->query($sql);
return $result;
}
public function result($result){
$row = $result->fetch_array();
$result->close();
return $row;
}
public function row($result){
$row = $result->fetch_row();
$result->close();
return $row;
}
public function numrow($result){
$row = $result->num_rows;
$result->close();
return $row;
}
}
The mysqli_fetch_array function in your fetch method requires two parameters which are the SQL result and the kind of array you intend to return. In my case i use MYSQLI_ASSOC.
That is it should appear like this:
public function fetch($sql)
{
$array = mysqli_fetch_array($this->query($sql), MYSQLI_ASSOC);
return $array;
}
**classmysql.inc.php**
<?php
class dbclass {
var $CONN;
function dbclass() { //constructor
$conn = mysql_connect(SERVER_NAME,USER_NAME,PASSWORD);
//$conn = mysql_connect(localhost,root,"","");
if(!$conn)
{ $this->error("Connection attempt failed"); }
if(!mysql_select_db(DB_NAME,$conn))
{ $this->error("Database Selection failed"); }
$this->CONN = $conn;
return true;
}
//_____________close connection____________//
function close(){
$conn = $this->CONN ;
$close = mysql_close($conn);
if(!$close){
$this->error("Close Connection Failed"); }
return true;
}
function error($text) {
$no = mysql_errno();
$msg = mysql_error();
echo "<hr><font face=verdana size=2>";
echo "<b>Custom Message :</b> $text<br><br>";
echo "<b>Error Number :</b> $no<br><br>";
echo "<b>Error Message :</b> $msg<br><br>";
echo "<hr></font>";
exit;
}
//_____________select records___________________//
function select ($sql=""){
if(empty($sql)) { return false; }
if(!eregi("^select",$sql)){
echo "Wrong Query<hr>$sql<p>";
return false; }
if(empty($this->CONN)) { return false; }
$conn = $this->CONN;
$results = #mysql_query($sql,$conn);
if((!$results) or empty($results)) { return false; }
$count = 0;
$data = array();
while ( $row = mysql_fetch_array($results)) {
$data[$count] = $row;
$count++; }
mysql_free_result($results);
return $data;
}
//________insert record__________________//
function insert ($sql=""){
if(empty($sql)) { return false; }
if(!eregi("^insert",$sql)){ return false; }
if(empty($this->CONN)){ return false; }
$conn = $this->CONN;
$results = #mysql_query($sql,$conn);
if(!$results){
$this->error("Insert Operation Failed..<hr>$sql<hr>");
return false; }
$id = mysql_insert_id();
return $id;
}
//___________edit and modify record___________________//
function edit($sql="") {
if(empty($sql)) { return false; }
if(!eregi("^update",$sql)){ return false; }
if(empty($this->CONN)){ return false; }
$conn = $this->CONN;
$results = #mysql_query($sql,$conn);
$rows = 0;
$rows = #mysql_affected_rows();
return $rows;
}
//____________generalize for all queries___________//
function sql_query($sql="") {
if(empty($sql)) { return false; }
if(empty($this->CONN)) { return false; }
$conn = $this->CONN;
$results = mysql_query($sql,$conn) or $this->error("Something wrong in query<hr>$sql<hr>");
if(!$results){
$this->error("Query went bad ! <hr>$sql<hr>");
return false; }
if(!eregi("^select",$sql)){return true; }
else {
$count = 0;
$data = array();
while ( $row = mysql_fetch_array($results))
{ $data[$count] = $row;
$count++; }
mysql_free_result($results);
return $data;
}
}
function extraqueries($sql="") {
if(empty($sql)) { return false; }
if(empty($this->CONN)) { return false; }
$conn = $this->CONN;
$results = mysql_query($sql,$conn) or $this->error("Something wrong in query<hr>$sql<hr>");
if(!$results){
$this->error("Query went bad ! <hr>$sql<hr>");
return false; }
else {
$count = 0;
$data = array();
while ( $row = mysql_fetch_array($results))
{ $data[$count] = $row;
$count++; }
mysql_free_result($results);
return $data;
}
}
}
?>
**config.inc.php**
<?php
ini_set("memory_limit","70000M");
ini_set('max_execution_time', 900);
ob_start();
session_start();
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
############################################
# Database Server
############################################
if($_SERVER['HTTP_HOST']=="localhost")
{
define("DB_NAME","DB_NAME");
define("SERVER_NAME","SERVER_NAME");
define("USER_NAME","USER_NAME");
define("PASSWORD","PASSWORD");
}
else
{
define("DB_NAME","DB_NAME");
define("SERVER_NAME","SERVER_NAME");
define("USER_NAME","USER_NAME");
define("PASSWORD","PASSWORD");
}
#############################################
# File paths
#############################################
// For the Database file path
include("system/classmysql.inc.php");
//For the inc folders
define("INC","inc/");
//For the Function File of the pages folders
define("FUNC","func/");
//For the path of the system folder
define("SYSTEM","system/");
$table_prefix = 'dep_';
################################################################
# Database Class
################################################################
$obj_db = new dbclass();
?>
**Function Page**
<?php
// IF admin is not logged in
if(!isset($_SESSION['session_id']))
{
header("location:index.php");
}
$backpage = 'page.php?type=staff&';
if(isset($_REQUEST['endbtn']) && trim($_REQUEST['endbtn']) == "Back")
{
header("location:".$backpage);
die();
}
// INSERT into database.
if(isset($_REQUEST['submit']) && trim($_REQUEST['submit']) == "Submit")
{
$pass = addslashes(trim($_REQUEST['password']));
$password = encrypt($pass, "deppro");
$username = addslashes(trim($_REQUEST['username']));
$sql = "select * from ".$table_prefix."users where `UserName` ='".$username."'";
$result = $obj_db->select($sql);
if(count($result) == 0)
{
$insert="INSERT INTO ".$table_prefix."users (`UserName`)VALUES ('".$username."')";
$sql=$obj_db->insert($insert);
$newuserid = mysql_insert_id($obj_db->CONN);
}
header("location:".$backpage."msg=send&alert=2");
die();
}
// DELETE record from database
if(isset($_REQUEST['action']) && trim($_REQUEST['action'])==3)
{
if(isset($_REQUEST['id']) && trim($_REQUEST['id']!=""))
{
$id = site_Decryption($_REQUEST['id']);
$sql_del = "Delete from ".$table_prefix."users where StaffID ='$id'";
$del = $obj_db->sql_query($sql_del);
header("location:".$backpage."msg=delete&alert=2");
die();
}
}
// UPDATE the record
$action=1;
if((isset($_REQUEST['action']) && trim($_REQUEST['action'])==2) && (!(isset($_REQUEST['submit']) && trim($_REQUEST['submit']) == "Submit")))
{
if(isset($_REQUEST['id']) && trim($_REQUEST['id']!=""))
{
$id = site_Decryption($_REQUEST['id']);
//$id = $_SESSION['depadmin_id'];
$sql = "select * from ".$table_prefix."users where StaffID ='$id'";
$result = $obj_db->select($sql);
if($result)
{
foreach($result as $row)
{
$title = stripslashes($row['StaffTitle']);
$action=2;
}
}
if(isset($_REQUEST['submit']) && trim($_REQUEST['submit']) == "Update")
{
$title = addslashes(trim($_REQUEST['title']));
$sql_upd ="UPDATE ".$table_prefix."users SET `StaffTitle` = '$title' WHERE StaffID ='$id'";
$result = $obj_db->sql_query($sql_upd);
$action=1;
header("location:".$backpage."msg=edited&alert=2");
die();
}
}
}
if(isset($_REQUEST['vid']) && trim($_REQUEST['vid']!=""))
{
$id = site_Decryption($_REQUEST['vid']);
$sql = "select * from ".$table_prefix."users where StaffID ='$id'";
$result = $obj_db->select($sql);
if($result)
{
foreach($result as $row)
{
$username = stripslashes($row['UserName']);
}
}
}
?>
<td class="center"><span class="editbutton"> </span> <span class="deletebutton"> </span> <a class="lightbox" title="View" href="cpropertyview.php?script=view&vid=<?php echo site_Encryption($sql[$j]['PropertyID']); ?>&lightbox[width]=55p&lightbox[height]=60p"><span class="viewbutton"> </span></a></td>