MsKrissy
asked on
can't figure out how to implement the where clause
I have my grid working when I want to display all data, but I can't figure out how to implement a where clause so I can narrow my grid results.
Can someone please show me how/where to implement this clause: WHERE id='$id'
MY_Portfolio.php
This is the class.eyedatagridPORTFOLIO .inc.php
Can someone please show me how/where to implement this clause: WHERE id='$id'
MY_Portfolio.php
<?php
session_start();
if(!isset($_SESSION['id'])){
header("location:login.php");
}else{
$id = $_SESSION['id'];
}
//echo "$id";
require 'connections/class.eyemysqladap.inc.php';
require 'connections/class.eyedatagridPORTFOLIO.inc.php';
$db = new EyeMySQLAdap('host', 'user', 'password', 'name');
$x = new EyeDataGrid($db);
// Set the query
$x->setQuery("Symbol,Full_Name,Industry,Affiliation,Current_Value,Movement,id", "portfolio");
// Hide ID Column
$x->hideColumn('id');
// Allows filters
$x->allowFilters();
// Change column type
$x->setColumnType('Symbol', EyeDataGrid::TYPE_HREF);
$x->setColumnType('Industry', EyeDataGrid::TYPE_IMAGE);
?>
This is the class.eyedatagridPORTFOLIO
<?php
* EyeDataGrid
* Provides datagrid control features
* @link http://www.eyesis.ca/projects/datagrid.html
class EyeDataGrid
{
private $primary = ''; // Tables primary key column
private $query; // SQL query
private $hidden = array(); // Hidden columns
private $type = array(); // Column types
private $controls = array(); // Row controls, std or custom
private $order = false; // Current order
private $filter = false; // Current filter
private $limit = true; // Current limit
private $_db, $result; // Database related
private $select_fields = ''; // Field used to select
private $select_where = ''; // Where clause
private $select_table = ''; // Table to read
/**
* Set the SELECT query
*
* @param string $fields Feilds to fetch from table. * for all columns
* @param string $table Table to select from
* @param string $primay Optional primary key column
* @param string $where Optional where condition
*/
public function setQuery($fields, $table, $primary = '', $where = '')
{
$this->primary = $primary;
$this->select_fields = $fields;
$this->select_table = $table;
$this->select_where = $where;
}
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I tried the following (separately) and all of them did not work:
$x->setQuery("Symbol,Full_ Name,Indus try,Affili ation,Curr ent_Value, Movement,i d", "portfolio",,$id);
$x->setQuery("Symbol,Full_ Name,Indus try,Affili ation,Curr ent_Value, Movement,i d", "portfolio",$id);
$x->setQuery("Symbol,Full_ Name,Indus try,Affili ation,Curr ent_Value, Movement,i d", "portfolio",'$id');
$x->setQuery("Symbol,Full_ Name,Indus try,Affili ation,Curr ent_Value, Movement,i d", "portfolio","$id");
$x->setQuery("Symbol,Full_
$x->setQuery("Symbol,Full_
$x->setQuery("Symbol,Full_
$x->setQuery("Symbol,Full_
ASKER
I tried the following, and nothing changed:
$x->setQuery("Symbol,Full_
$x->setQuery("Symbol,Full_
$x->setQuery("Symbol,Full_
$x->setQuery("Symbol,Full_
$x->setQuery("Symbol,Full_
After "portfolio" there needs to be two commas.
Also, instead of just $id, as the parameter, I think it should be "id=".$id
Also, instead of just $id, as the parameter, I think it should be "id=".$id
What about adding "id" as the parameter after "portfolio"
$x->setQuery("Symbol,Full_ Name,Indus try,Affili ation,Curr ent_Value, Movement,i d", "portfolio","id","id=".$id );
$x->setQuery("Symbol,Full_
ASKER
"portfolio",,"id=".$id);
every time I put two commas in, I get the following error:
Parse error: syntax error, unexpected ',' in /home/content/html/mskriss y/xchange/ scripts/my _portfolio .php on line 18
every time I put two commas in, I get the following error:
Parse error: syntax error, unexpected ',' in /home/content/html/mskriss
ASKER
No errors, but it doesn't return any records either. But there are several records under this id. I also did an echo out of the id to ensure the session_id is working and it's working.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
I get the following error when I tried that:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near WHERE id=3) ORDER BY `Current_Value` DESC LIMIT 0, 9 at line 1
it recognized the id, but it didn't like the SQL syntax we offered it in.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near WHERE id=3) ORDER BY `Current_Value` DESC LIMIT 0, 9 at line 1
it recognized the id, but it didn't like the SQL syntax we offered it in.
ASKER
We got it, thank you. here is what we have:
I added this variable:
$where = "id=$id";
then I modified the code to this:
$x->setQuery("Symbol,Full_ Name,Indus try,Affili ation,Curr ent_Value, Movement,i d", "portfolio", "", "$where");
I added this variable:
$where = "id=$id";
then I modified the code to this:
$x->setQuery("Symbol,Full_
Nice. Glad it works now.
ASKER
Thank you for the help, I will be submitting another question in like 5 minutes to figure out the LIMIT clause. I wanted to separate the questions.
Thanks for everything.
Thanks for everything.
// Set the query
$x->setQuery("Symbol,Full_