Toon posts:

[PHP] Zoekformulier maken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goeiedag, ik wil zelf een zoekformuliertje maken met behulp van php/mysql.

ik heb met html een input formuliertje gemaakt, waarmee ik een variabele doorgeef. die variabele haal ik dan op in php met $_GET[var]

maar nu wil ik dus dat ik deze variabele kan gebruiken in de zoekfunctie. het hoeft geen ingewikkelde zoekfunctie te zijn, hoeft dus niet case-sensitive te zijn enzo, gewoon een makkelijke functie, liefste met REGEXP.

gaat ongeveer zo, maar ik weet niet meer precies hoe ik hem toe moet passen -->

SELECT * FROM tabel WHERE REGEXP '$_GET[var]'

maar het wil maar niet werken, iemand een idee hoe ik dit aan de praat krijg?

Acties:
  • 0 Henk 'm!

  • ReallyStupidGuy
  • Registratie: Januari 2002
  • Laatst online: 21-09 19:57
Volgens mij hoort dit meer in P&W.

Niet dat ik ooit met Mysql heb gewerkt maar ik neem aan dat de select query iets moet zijn van:
code:
1
2
3
SELECT * 
FROM tabel 
WHERE REGEXP = :$_GET

Waar dan :ITEMNAAM staat voor de variabele die je aan de query kunt meegeven (parameter). Of je maakt de SQL aan als string. Wat je hier probeert snap ik niet helemaal tenzij REGEXP'<var>' een boolean als resultaat heeft natuurlijk, maar dan lijkt het mij alsof je een PHP functie in SQL probeert uit te voeren.

dat was eigenlijk wel weer genoeg op de voor mij maandagochtend over een onderwerp waar ik eigenlijk geen verstand van heb.....

Duizend wijzen kunnen meer vragen stellen dan één idioot kan beantwoorden.


Acties:
  • 0 Henk 'm!

  • IJnte
  • Registratie: Juni 2003
  • Laatst online: 22-09 09:54
Mysql RegExp usage. Misschien heb je daar wat aan :?

Nog een linkje. Daar heb je denk ik meer aan!!!
MySQL/RegExp Pattern Modifiers

[ Voor 42% gewijzigd door IJnte op 17-05-2005 10:08 ]

Exploring the world by bicycle! cyclingsilk.wordpress.com


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Ik ben al mijn PHP kennis door onbruik al weer vergeten, maar [google=SELECT WHERE REGEXP $_GET] lijkt met http://www.ozzu.com/ftopic42962.html al de oplossing te geven. Je moet alleen de hier overbodige zaken er weer uitslopen :Y) Maar ik kan er naast zitten dus SA --> Programming & Webscripting + ik pas de titel aan volgens de sticky topics (Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/Sticky_off.gif) aldaar.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Waarom zo moeilijk met regexps? :?

Doe gewoon lekker met LIKE:
PHP:
1
2
$result = mysql_query("SELECT * FROM Table
                       WHERE Field LIKE '%".addslashes($_GET["val"])."%'");

Zal maar een tikkie performanter zijn :)

[ Voor 6% gewijzigd door curry684 op 17-05-2005 10:40 ]

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Wel is aan fulltext search gedacht???

Heb nog wel wat zoek funties voor je "als het goed is kloppen ze" je moet ze dan nog wel ff aanpassen.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    function fulltextSearch($search){
   
    if (str_word_count($search)==1){
        $query = "SELECT fulltekst.ID, fulltekst.docID, fulltekst.fullTekst, documents.name, revisions.orgFileName, revisions.fileName, revisions.type, revisions.size, revisions.release,
                  MATCH (fulltekst.fullTekst) AGAINST ('".$search."' WITH QUERY EXPANSION) as score 
                  FROM fulltekst, documents, revisions  
                  WHERE MATCH (fullTekst) AGAINST ('".$search."' WITH QUERY EXPANSION)
                  AND documents.ID=fulltekst.docID AND revisions.ID=fulltekst.revisionID";
    }
    elseif (str_word_count($search)>1 && preg_match('/[*\-+~<">)(]/', $search)){
       $query = "SELECT fulltekst.ID, fulltekst.docID, fulltekst.fullTekst, documents.name, revisions.orgFileName, revisions.fileName, revisions.type, revisions.size, revisions.release,
                 MATCH (fullTekst) AGAINST ('".$search."' IN BOOLEAN MODE) as score 
                 FROM fulltekst, documents, revisions 
                 WHERE MATCH (fullTekst) AGAINST ('".$search."' IN BOOLEAN MODE) 
                 AND documents.ID=fulltekst.docID AND revisions.ID=fulltekst.revisionID
                 ORDER by score desc";
    }else{
       $query = "SELECT fulltekst.ID, fulltekst.docID, fulltekst.fullTekst, documents.name, revisions.orgFileName, revisions.fileName, revisions.type, revisions.size, revisions.release,
                 MATCH (fulltekst.fullTekst) AGAINST ('".$search."') as score 
                 FROM fulltekst, documents, revisions  
                 WHERE MATCH (fulltekst.fullTekst) AGAINST ('".$search."')
                 AND documents.ID=fulltekst.docID AND revisions.ID=fulltekst.revisionID";   
    }

[ Voor 104% gewijzigd door Verwijderd op 17-05-2005 12:48 ]

Pagina: 1