Jump to content

MySQL Query Output Problems


Sallie_ann

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

Link to comment
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

Link to comment
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!

Link to comment
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%\'\";

Link to comment
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\");

Link to comment
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\";

Link to comment
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"); 

Link to comment
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

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

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.