Re: Looking for specific data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-------- Original Message  --------
Subject:  Looking for specific data
From: DeadTOm <deadtom@xxxxxxxxxxxx>
To: php-db@xxxxxxxxxxxxx
Date: 22.11.2007 3:22
There has to be an easier way to do this. I have a page with a list of
29 options utilizing checkboxes. The options that are checked get put
into a mysql table as a 1 and the options not checked get entered as a 0.

So the table looks like this

id    cs01     cs02     cs03     cs04

1        0         0             1         0

2         1        0             0         0

3         0        0             0         1


The problem I'm running into is getting these things back out of the
table. I only want the columns where the answer is a 1. What I'm doing
right now looks like this:


$getPos = "SELECT * FROM pos WHERE id = '$id'";

$getPos_res = mysql_query($getPos,$conn) or die(mysql_error());


while ($getPos_info= mysql_fetch_array($getPos_res)) {

$getPos_cs01 = $getPos_info['cs01'];

$getPos_cs02 = $getPos_info['cs02'];

$getPos_cs03 = $getPos_info['cs03'];

$getPos_cs04 = $getPos_info['cs04'];

}


Then I use a series of IF statements to filter out the variables
containing a 0 so that on another page I can view only the options they
selected and leave out the ones they didn't. Obviously this takes a
crazy amount of code to accomplish this way. Is there some way, using
something like mysql_fetch_array or in my SELECT statement, to just get
the data containing a 1? Or can someone propose an entirely different
way of accomplishing the same thing?
Thanks!

depends if cs01..cs04 are related.

*1. Related (option in multiple select)*
something like "choose favorite colors: red/white/black/blue"

there are 2 ways how to handle that:
/a. m:n/

table customer (
 idCustomer)

table color_options (
 idColor
 colorName)

table customer_favorite_color (
 idCustomer
 idColor)

SELECT idCustomer FROM customer,customer_favorite_color WHERE customer_favorite_color.idCustomer=customer.idCustomer GROUP BY customer.idCustomer;
/
b. set
/table customer (
 idCustomer,
favoriteColor <= varchar, you will store idColor separated by commas like for example '1,2,3'
 )

table color_options (
 idColor
 colorName)

SELECT idCustomer FROM customer WHERE favoriteColor IS NOT NULL;

*2. Not related
*$testColums=array("cs01","cs02","cs03","cs04");
$where=join("!=0 or ",$testColumns)."!=0";
$query="SELECT * FROM pos WHERE $where";

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux