Jump to content

Archived

This topic is now archived and is closed to further replies.

Sallie_ann

MySQL Query Output Problems

Recommended Posts

Hi...

 

I have connected to a MySQL database that contains information on various companies. I have created a HTML form with 4 drop down list boxes that have static information to (hopefully) search the database including company size, location, sector, etc. The user will select items from the drop down list boxes and click go to retrieve the required data.

 

For example, a user may want to search for all medium sized companies in Leicester in the IT sector. The PHP code I have so far is as follows;

 

 

mysql_select_db(\"beacon\",$db);

 

if($_POST[\'company_size\'] == 1)

$where = \'company_size BETWEEN 1 AND 9\';

if($_POST[\'company_size\'] == 2)

$where = \'company_size BETWEEN 10 AND 49\';

if($_POST[\'company_size\'] == 3)

$where = \'company_size BETWEEN 50 AND 250\';

 

if($_POST[\'County\'] == 1)

$where1 = \'County LIKE Derbyshire\';

if($_POST[\'County\'] == 2)

$where1 = \'County LIKE Leicestershire\';

if($_POST[\'County\'] == 3)

$where1 = \'County LIKE Lincolnshire\';

if($_POST[\'County\'] == 4)

$where1 = \'County LIKE Northants\';

if($_POST[\'County\'] == 5)

$where1 = \'County LIKE Nottinghamshire\';

 

$result = mysql_query(\"SELECT name, County, sector, company_size \" .

\"FROM beacon \" .

\"WHERE\". $where .\"AND\". $where1);

 

echo \"<table border=1 align=center>n\";

 

echo \"<tr><td>Name</td><td>County</td><td>Sector</td><td>Company Size</td></tr>n\";

 

while ($myrow = mysql_query($query))

 

{

 

printf(\"<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>n\",

$myrow[0], $myrow[1], $myrow[2], $myrow[3]);

 

}

 

echo \"</table>n\";

 

 

An example of my HTML drop down list code is as follows;

 

 

<select name=\"company_size\">

<option value=\"0\" selected>Select Company Size</option>

<option value=\"1\">1 - 9</option>

<option value=\"2\">10 - 49</option>

<option value=\"3\">50 - 250</option>

</select>

 

 

 

No data is being output from the database except the table column headings. I managed to output all the database data in the table before I entered the query so I know the problem lies here.

 

Any help would be really appreciated.

 

Sallie-ann

Share this post


Link to post
Share on other sites

The problme is in query

 

ur query should be like

 

$where = \'company_size BETWEEN 1 AND 9\';

 

$where1 = \'County LIKE \'Leicestershire%\' \';

 

$result = mysql_query(\"SELECT name, County, sector, company_size

FROM beacon WHERE. $where .\"AND\". $where1) or die(\"Problem\");

 

 

Remember ur LIKE synatx

 

should be this way

 

 

select * from table where name LIKE \'php\'

 

or

 

select * from table where name LIKE \'%php\'

 

 

use the die statement to see if ur query is working properly

Share this post


Link to post
Share on other sites

Thanks for your help, my queries now read as follows;

 

 

 

mysql_select_db(\"beacon\",$db);

 

if($_POST[\'company_size\'] == 1)

$where = \'company_size BETWEEN 1 AND 9\';

if($_POST[\'company_size\'] == 2)

$where = \'company_size BETWEEN 10 AND 49\';

if($_POST[\'company_size\'] == 3)

$where = \'company_size BETWEEN 50 AND 250\';

 

if($_POST[\'County\'] == 1)

$where1 = \'County LIKE \'Derbyshire%\' \';

if($_POST[\'County\'] == 2)

$where1 = \'County LIKE \'Leicestershire%\' \';

if($_POST[\'County\'] == 3)

$where1 = \'County LIKE \'Lincolnshire%\' \';

if($_POST[\'County\'] == 4)

$where1 = \'County LIKE \'Northants%\' \';

if($_POST[\'County\'] == 5)

$where1 = \'County LIKE \'Nottinghamshire%\' \';

 

$result = mysql_query(\"SELECT name, County, sector, company_size

FROM beacon WHERE. $where .\"AND\". $where1) or die(\"Problem\");

 

echo \"<table border=1 align=center>n\";

 

echo \"<tr><td>Name</td><td>County</td><td>Sector</td><td>Company Size</td></tr>n\";

 

while ($myrow = mysql_query($query))

 

{

 

printf(\"<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>n\",

$myrow[0], $myrow[1], $myrow[2], $myrow[3]);

 

}

 

echo \"</table>n\";

 

 

 

I am being given the following error message referring to the first echo.

 

\"Parse error: parse error, unexpected T_STRING\"

 

And I\'m unsure why!

Share this post


Link to post
Share on other sites

And I am now also getting error messages for the first line of my query

 

$where1 = \'County LIKE \'Derbyshire%\' \';

 

:oops:

Share this post


Link to post
Share on other sites
And I am now also getting error messages for the first line of my query

 

$where1 = \'County LIKE \'Derbyshire%\' \';  

 

:oops:

 

It\'s your quotes. Switch to

 

$where1 = \"County LIKE \'Derbyshire%\'\";

Share this post


Link to post
Share on other sites

I have changed my WHERE statements as you suggested and am now being given error messages for the final line in the following extract of code. :?

 

 

if($_POST[\'County\'] == 1)

$where1 = \"County LIKE \'Derbyshire%\'\";

if($_POST[\'County\'] == 2)

$where1 = \"County LIKE \'Leicestershire%\'\";

if($_POST[\'County\'] == 3)

$where1 = \"County LIKE \'Lincolnshire%\'\";

if($_POST[\'County\'] == 4)

$where1 = \"County LIKE \'Northants%\'\";

if($_POST[\'County\'] == 5)

$where1 = \"County LIKE \'Nottinghamshire%\'\";

 

$result = mysql_query(\"SELECT name, County, sector, company_size

FROM beacon WHERE. $where .\"AND\". $where1) or die(\"Problem\");

Share this post


Link to post
Share on other sites

Try this

 

$result = mysql_query("SELECT name, County, sector, company_size FROM beacon WHERE". $where ."AND". $where1) or die("Problem");

Share this post


Link to post
Share on other sites

It is now outputting \"Problem\". My complete code is now as follows;

 

 

mysql_select_db(\"beacon\",$db);

 

if($_POST[\'company_size\'] == 1)

$where = \'company_size BETWEEN 1 AND 9\';

if($_POST[\'company_size\'] == 2)

$where = \'company_size BETWEEN 10 AND 49\';

if($_POST[\'company_size\'] == 3)

$where = \'company_size BETWEEN 50 AND 250\';

 

if($_POST[\'County\'] == 1)

$where1 = \"County LIKE \'Derbyshire%\'\";

if($_POST[\'County\'] == 2)

$where1 = \"County LIKE \'Leicestershire%\'\";

if($_POST[\'County\'] == 3)

$where1 = \"County LIKE \'Lincolnshire%\'\";

if($_POST[\'County\'] == 4)

$where1 = \"County LIKE \'Northants%\'\";

if($_POST[\'County\'] == 5)

$where1 = \"County LIKE \'Nottinghamshire%\'\";

 

$result = mysql_query(\"SELECT name, County, sector, company_size

FROM beacon WHERE\". $where .\"AND\". $where1) or die(\"Problem\");

 

echo \"<table border=1 align=center>n\";

 

echo \"<tr><td>Name</td><td>County</td><td>Sector</td><td>Company Size</td></tr>n\";

 

while ($myrow = mysql_query($query))

 

{

 

printf(\"<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>n\",

$myrow[0], $myrow[1], $myrow[2], $myrow[3]);

 

}

 

echo \"</table>n\";

Share this post


Link to post
Share on other sites

As a suggestion

 

Try this

 

echo $sql which will be the query now execute the query separtely and see if u are getting the desired output.

 

$sql = "SELECT name, County, sector, company_size 

FROM beacon WHERE". $where ."AND". $where1;



echo $sql;



$result = mysql_query($sql) or die("Problem"); 

Share this post


Link to post
Share on other sites

It is now outputting;

 

 

SELECT name, County, sector, company_size FROM beacon WHEREcompany_size BETWEEN 1 AND 9ANDProblem

Share this post


Link to post
Share on other sites

I guess what is being displayed is not the complete query is that so?

 

SELECT name, County, sector, company_size FROM beacon WHEREcompany_size BETWEEN 1 AND 9 AND County LIKE \'Leicestershire%\'

 

See that u send the correct value and alos I see there is no space

 

\"BETWEEN 1 AND 9AND\" so u have to add a space inbetween

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.