Re: how to do query on partial field contents ???

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

 



for partial match

like 'value' doesn't work, use
like '%value%'

Hop that helps
Nitin

----- Original Message ----- 
From: "-{ Rene Brehmer }-" <metalbunny@xxxxxxxxxxxxxx>
To: <php-db@xxxxxxxxxxxxx>
Sent: Tuesday, February 24, 2004 11:57 AM
Subject:  how to do query on partial field contents ???


> hi gang
>
> I've mentioned this project before a couple of weeks ago ... just been
busy
> with school, so haven't had time to work on it that much....
>
> But anyways ... the test version is running here:
> http://metalbunny.net/computers/cpudb.php
> it's running with debug code, which should be obvious if you test it ...
>
> It's MySQL database ... testes it on both my webhost and my local test
> server, result is the same.
>
> If you fill in the search field and click the search button, I want it to
> list all records where the fields partially matches... but as it is now,
it
> will only list records where the entire field matches. That is, if you
> search for "Athlon", it will only list those where a field exactly is
> "Athlon", whereas I want to list "Athlon", "Athlon XP", "Athlon MP", and
so
> on ...
>
> Figure that it would require some sort of wildcard, but the traditional
> ones I've tried didn't work, so I'm at a dead end once again...
>
> This is the 90 lines of code that generates the queries. Probably room for
> improvement, but then I'm no expert at this:
>
> $query = 'none';
> $basequery = 'SELECT * FROM cpu';
>
> if (isset($_GET['search'])) {
>    $query = $basequery.' WHERE cpuID <> 0 ';
>    $setorder = true;
>
>    $query .= " AND `model` LIKE '".$_GET['search']."'"; // this block
split
> for debug reasons
>    $query .= " OR `variant` LIKE '".$_GET['search']."'";
>    $query .= " OR `type` like '".$_GET['search']."'";
> }
> else if (isset($_GET['make']) || isset($_GET['model']) ||
> isset($_GET['socket'])) {
>    $query = $basequery;
>    $setorder = true;
>
>    if ($_GET['make'] != 'All' || $_GET['model'] != 'All' ||
$_GET['socket']
> != 'All') {
>      $query .= ' WHERE ';
>      if ($_GET['make'] != 'All') {
>        $query .= "`make`='".str_replace('+',' ',$_GET['make'])."'";
>      }
>      if ($_GET['make'] != 'All' && $_GET['model'] != 'All') {
>        $query .= ' AND ';
>      }
>      if ($_GET['model'] != 'All') {
>        $query .= "`model`='".str_replace('+',' ',$_GET['model'])."'";
>      }
>      if ($_GET['model'] != 'All' && $_GET['socket'] != 'All') {
>        $query .= ' AND ';
>      }
>      if ($_GET['socket'] != 'All') {
>        $query .= "`socket`='".str_replace('+',' ',$_GET['socket'])."'";
>      }
>    }
>
>    $linkquery = str_replace('
>
','+','make='.$_GET['make'].'&model='.$_GET['model'].'&socket='.$_GET['socke
t']);
> }
> if ($setorder) {
>    switch ($_GET['order']) {
>      case 'socket':
>        $query .= ' ORDER BY socket';
>        break;
>      case 'form':
>        $query .= ' ORDER BY form';
>        break;
>      case 'vcache':
>        $query .= ' ORDER BY vcache';
>        break;
>      case 'vcore':
>        $query .= ' ORDER BY vcore';
>        break;
>      case 'l2':
>        $query .= ' ORDER BY l2';
>        break;
>      case 'l1':
>        $query .= ' ORDER BY l1';
>        break;
>      case 'fsb':
>        $query .= ' ORDER BY fsb';
>        break;
>      case 'multi':
>        $query .= ' ORDER BY multi';
>        break;
>      case 'clock':
>        $query .= ' ORDER BY clock';
>        break;
>      case 'type':
>        $query .= ' ORDER BY type';
>        break;
>      case 'variant':
>        $query .= ' ORDER BY variant';
>        break;
>      case 'model':
>        $query .= ' ORDER BY model';
>        break;
>      case 'make':
>      default:
>        $query .= ' ORDER BY make';
>        break;
>    }
>    switch ($_GET['ad']) {
>      case 'd':
>        $query .= ' DESC';
>        break;
>      case 'a':
>      default:
>        $query .= ' ASC';
>        break;
>    }
> }
>
> The order part is of course not that relevant in this case, but I left it
> in the snip for the variables set in the query part to make sense...
> Question is simple: What do I change in the code to make it do partial
> field matches, instead of complete ???
>
>
> Hoping for help :) ... TIA
>
> Rene
> -- 
> Rene Brehmer
> aka Metalbunny
>
> http://metalbunny.net/
> References, tools, and other useful stuff...
>
> -- 
> PHP Database Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>

-- 
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