Page 1 of 1

Help searching a database

Posted: Thu Sep 06, 2007 5:20 pm
by cs1h
feyd | Please use

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]


Hi, 

I'm new to php and Mysql, I am trying to develope a databse for travel reviews. So far people can submit articles to my database but I cannot get a search to work with the criteria I want. I have tried to find tutorials online but none of them do what I need. 

If any one can point me to one that would help or one give me some hints it would be much appriciated. 

My search form is as follows

[syntax="html"]<body>
<form id="form1" name="form1" method="post" action="">
  <label>
  Select type of article you want
  <select name="lista" id="lista">
    <option>News </option>
    <option>Magazine</option>
    <option>Listing</option>
    </select>
  <br />
  Select Region 
  <select name="listb" id="listb">
    <option>Africa</option>
    <option>Asia</option>
    <option>Europe</option>
    <option>North America</option>
    <option>Oceania</option>
    <option>South America</option>
  </select>
  </label>
  <p>Search for a Keyword 
    <label>
    <input type="text" name="keyword" id="keyword" />
    </label>
  </p>
</form>
</body>
And my database table is,
Article_type VARCHAR 100, Place VARCHAR 100, Article TEXT
.

I want people to be able to select the article type, then select the places that they want and then matching words in the article.

Any help would be much appriciated,

Thanks,
Colin


feyd | Please use[/syntax]

Code: Select all

,

Code: Select all

and [syntax="..."] tags where appropriate when posting code. Your post has been edited to reflect how we'd like it posted. Please read:  [url=http://forums.devnetwork.net/viewtopic.php?t=21171]Posting Code in the Forums[/url] to learn how to do it too.[/color]

Posted: Thu Sep 06, 2007 8:09 pm
by Christopher

Code: Select all

$article_type = isset($_POST['lista']) ? preg_replace('/[^a-zA-Z0-9\ ]/', '', $_POST['lista']) : '';
$place = isset($_POST['listb']) ? preg_replace('/[^a-zA-Z0-9\ ]/', '', $_POST['listb']) : '';
$keyword = isset($_POST['keyword']) ? preg_replace('/[^a-zA-Z0-9\ ]/', '', $_POST['keyword']) : '';

$where = array();
if ($article_type) {
     $where[] = "Article_type='$article_type'";
}
if ($place) {
     $where[] = "Place='$place'";
}
if ($keyword ) {
     $where[] = "Article LIKE '%$keyword%'";
}
if ($where) {
     $sql = "SELECT * FROM articles WHERE " . implode(' AND ', $where);
     // query and display results
} else {
    // redisplay form and error message because no values were entered
}