Toon posts:

Zoeken in omschrijving met %like%

Pagina: 1
Acties:

Verwijderd

Topicstarter
Volgende probleem heb ik ontdekt. Ik probeer een zoekfunctie te bouwen waar een gebruiker op trefwoorden kan zoeken. Vervolgens moet dit trefwoord voorkomen in "omschrijvinglang". Nou wil het gebeuren dat als ik zoek op het trefwoord "omschrijving" dat ik niets terug krijg. Terwijl er in de database een omschrijvinglang met de volgende waarde is: omschrijvinglang1.

Mijn code is als volgt (ik heb nog geen loop omdat ik nog niet weet hoe ik dat moet doen):
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
$dbcon->query('SELECT * FROM si_product WHERE omschrijving LIKE '%$trefwoord%' ORDER BY product_id DESC LIMIT 0, 10');
if($trefwoord)
{
    if ($dbcon->next_record())
    { 
        echo "We hebben het artikel wat je zoekt gevonden. Klik op de link om het product te bekijken.<BR><BR>"; ?>
        <TABLE BORDER=1>
        <TR>
            <TH COLSPAN=3><ALIGN=LEFT VALIGN=MIDDLE>Product gevonden</TH>
        </TR>
        <TR>
            <TD>Artikelnummer  </TD> <TD>Artikelnaam  </TD> <TD>Omschrijving  </TD>
        <TR>
            <TD><A HREF="product_detail.php"><?php $dbcon->p("product_id"); ?></TD> 
            <TD><A HREF="product_detail.php"><?php $dbcon->p("naam"); ?></TD> 
            <TD><A HREF="product_detail.php"><?php $dbcon->p("omschrijving"); ?></TD>
        </TR> 
        </TABLE>    <?php
    }
    else
    {
        $error=1;
        $errormsg .= "Wij hebben geen artikelen kunnen vinden die voldoen aan jouw trefwoorden.";
        echo "$errormsg";
    }
}
?>

Weten jullie hoe dit komt?

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Op maandag 17 december 2001 14:26 schreef Beginner2001 het volgende:
PHP:
1
2
3
4
5
<?
$dbcon->query('...');
...
$dbcon->next_record()
?>
Als deze code (die in je eigen post) alles is, dan werkt ie niet omdat je met classes werkt die niet gedefinieerd zijn.
Zoek ff ergens een standaard scriptje op php.net en kijk dan hoe ze het daar doen.

Verwijderd

Topicstarter
Op maandag 17 december 2001 14:33 schreef Limhes het volgende:

[..]

Als deze code (die in je eigen post) alles is, dan werkt ie niet omdat je met classes werkt die niet gedefinieerd zijn.
Zoek ff ergens een standaard scriptje op php.net en kijk dan hoe ze het daar doen.
Daar gaat het niet om. Ik heb ook een andere zoekfunctie gebouwd waarbij ik zoek op artikelnummer en die doet het perfect. Code daarvan is:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
$dbcon->query('SELECT * FROM si_product WHERE product_id = "' . $artikel .'"');
If ($artikel)
{
    if ($dbcon->next_record())
    {
        echo "We hebben het artikel wat je zoekt gevonden. Klik op de link om het product te bekijken.<BR><BR>"; ?>
        <TABLE BORDER=1>
        <TR>
            <TH COLSPAN=3><ALIGN=LEFT VALIGN=MIDDLE>Product gevonden</TH>
        </TR>
        <TR>
            <TD>Artikelnummer  </TD> <TD>Artikelnaam  </TD> <TD>Omschrijving  </TD>
        <TR>
            <TD><A HREF="product_detail.php"><?php $dbcon->p("product_id"); ?></TD> 
            <TD><A HREF="product_detail.php"><?php $dbcon->p("naam"); ?></TD> 
            <TD><A HREF="product_detail.php"><?php $dbcon->p("omschrijving"); ?></TD>
        </TR> 
        </TABLE>    <?php
    }
    else
    {
        $error=1;
        $errormsg .= "Wij hebben het artikel wat je zoekt <B>niet</B> kunnen vinden.<BR>Controleer of je het goede artikelnummer ingevoerd hebt.<BR><BR>";
        echo "$errormsg";
    }
}
?>

Deze classes gebruiken wij omdat wij omdat dit zo opgezet is door een ander. Dus vandaar... dat heeft er dus niets mee te maken...

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

PHP:
1
2
3
<?
$dbcon->query('SELECT * FROM si_product WHERE omschrijving LIKE '%$trefwoord%' ORDER BY product_id DESC LIMIT 0, 10');
?>

Lees de FAQ even door mbt Debuggen.

Spoiler:
Je Query is fout $trefwoord word niet vervangen. maak er eens het volgende van
PHP:
1
2
3
4
5
6
<?
$sql="SELECT * FROM si_product WHERE omschrijving LIKE '%".$trefwoord."%' ORDER BY product_id DESC LIMIT 0, 10";
$dbcon->query($sql);

// echo $sql;
?>

Als je nog steeds errors krijgt haal dan de // weg voor de echo.

Programmer - an organism that turns coffee into software.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

PHP:
1
2
3
<?
if($trefwoord)
?>

Als $trefwoord gelijk is aan 1 doet hij het.. zoek je op iets anders klopt het nooit :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Als ik dat echo gebeuren doe met // ervoor, dan gebeurt er niets. Haal ik ze weg dan krijg ik:

SELECT * FROM si_product WHERE omschrijving LIKE '%omschrijving%' ORDER BY product_id DESC LIMIT 0, 10'

En vervolgens zegt hij weer dat hij niets heeft gevonden met deze waarde en dat klopt absoluut niet.....

Verwijderd

Topicstarter
Op maandag 17 december 2001 14:43 schreef dusty het volgende:
PHP:
1
2
3
<?
if($trefwoord)
?>

Als $trefwoord gelijk is aan 1 doet hij het.. zoek je op iets anders klopt het nooit :+
Als ik het invoerveld invul bij $trefwoord dan wordt deze waarde toch 1? Tenminste ik heb dit ook zo bij $artikel, dus waarom werkt het dan niet bij $trefwoord????
Daarbij krijg ik geen errors in de zin van dat de code verkeerd is, maar hij vind gewoon geen resultaten. :'(

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

In essentie zegt jouw programma nu:
PHP:
1
2
3
4
5
6
7
<?
if ($trefwoord=="1") {
  echo "ik heb wat gevonden";
} else {
  echo "Ik heb niets kunnen vinden";
}
?>

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Topicstarter
Ja dus????
Bij $artikel gaat dat toch goed, waarom zou dat niet goed gaan bij $trefwoord?

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op maandag 17 december 2001 14:43 schreef dusty het volgende:
PHP:
1
2
3
<?
if($trefwoord)
?>

Als $trefwoord gelijk is aan 1 doet hij het.. zoek je op iets anders klopt het nooit :+
Niet helemaal waar :+
als $trefwoord ongelijk is aan 0 doet hij het.
en blijkbaar heb je alleen maar getsett met in $artikel alleen maar getallen != 0 waardoor het werkt.

p.s. dusty weet wel waar die over praat ;)

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 17 december 2001 14:26 schreef Beginner2001 het volgende:
(ik heb nog geen loop omdat ik nog niet weet hoe ik dat moet doen)
Krijg je nou eigenlijk "niet het goede" of "geen" resultaat?

In het eerste geval zou je het es in een loop kunnen proberen.
Maar wat waarschijnlijk veel handiger is, is om direct op je database de query met het trefwoord uit te voeren, dan weet je zeker dat jij geen programmeer fout hebt als blijkt dat daar ook hetzelfde resultaat komt.

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op maandag 17 december 2001 16:12 schreef wasigh het volgende:
[...]
Niet helemaal waar :+
als $trefwoord ongelijk is aan 0 doet hij het.
en blijkbaar heb je alleen maar getsett met in $artikel alleen maar getallen != 0 waardoor het werkt.
Ohja das waar ook.. PHP zit brak in elkaar en doet het precies anders dan de meeste andere talen. :+
p.s. dusty weet wel waar die over praat ;)
I do?

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 17 december 2001 14:43 schreef dusty het volgende:
Als $trefwoord gelijk is aan 1 doet hij het.. zoek je op iets anders klopt het nooit :+
Test hetvolgende maar:
PHP:
1
2
3
4
5
6
7
<?
$trefwoord = "a";
if($trefwoord)
    echo "Trefwoord bestaat, dus ACM weet het beter";
else
    echo "dUSTY had nog gelijk ook";
?>

Oeps, dat zei wasigh al :)

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
En mijn nuttige, totaal te late reply:


if($blaat);

kijkt volgens mij oftie geset is of niet. Hetzelfde als IsSet() maar bij isset() doet ook 0 mee :)
Pagina: 1