MSSQL zoekfunctie
Hejj,
Ik ben bezig met een MSSQL database van meer dan 80000 records.
Ik wil hier een zoekfunctie bij maken zodat mensen niet heel de lijst van alle records door hoeven te zoeken.
Ik limiteer nu de records met de SELECT TOP functie.
Heeft er iemand een idee hoe ik dat met php kan doen?
Verder heb ik nog een probleem.
Als ik sorteer op DESC, dan worden de records weergegeven vanaf 9999, dan 9998, etc, etc. Enig idee hoe dit kan?
Groeten,
Ik ben bezig met een MSSQL database van meer dan 80000 records.
Ik wil hier een zoekfunctie bij maken zodat mensen niet heel de lijst van alle records door hoeven te zoeken.
Ik limiteer nu de records met de SELECT TOP functie.
Heeft er iemand een idee hoe ik dat met php kan doen?
Verder heb ik nog een probleem.
Als ik sorteer op DESC, dan worden de records weergegeven vanaf 9999, dan 9998, etc, etc. Enig idee hoe dit kan?
Groeten,
Gewijzigd op 01/01/1970 01:00:00 door Robin Avoort
Over dat laatste, dan moet je ASC doen ;-)
Dan krijg ik iets heel raars :s
1ste record: 1
2e record: 10
3e record: 100
4e record: 1000
5e record: 10000
6e record: 10001
etc
Ik wil dat het laatste record bovenaan staat.. dan heb je toch DESC nodig?
1ste record: 1
2e record: 10
3e record: 100
4e record: 1000
5e record: 10000
6e record: 10001
etc
Ik wil dat het laatste record bovenaan staat.. dan heb je toch DESC nodig?
Hm, dan ligt het toch echt aan MSSQL denk ik... Die ziet dat een 9 groter is dan een 1 ;-)
Ok, toch bedankt voor je reacties..
Je hebt niet toevallig een oplossing voor mijn eerste probleem? :P
Je hebt niet toevallig een oplossing voor mijn eerste probleem? :P
@Robin; Probeer dit maar ;-)
Deze moet kloppen, wel even aanpassen natuurlijk. Houd er rekening mee dat in tegenstelling tot MySQL, MSSQL wél verschil ziet tussen ' en " ;-) (MSSQL Quote Escapen )
Succes!
Deze moet kloppen, wel even aanpassen natuurlijk. Houd er rekening mee dat in tegenstelling tot MySQL, MSSQL wél verschil ziet tussen ' en " ;-) (MSSQL Quote Escapen )
Succes!
als mijn zoek formulier op een andere pagina staat, moet ik dan bij zoekterm gebruik maken van post of get of iets dergelijks?
Ik heb namelijk ongeveer de zelfde code als die je gepost hebt.
Ik krijg alleen een error wanneer ik met post/get aan de gang ga.
Dat van die ' en " wist ik nog niet.. bedankt :)
Nog een klein vraagje tussendoor, (als ik nog niet teveel gevraagd heb :o)
LIKE, kun je dat ook vervangen door CONTAIN ofzo. Ik bedoel dat je ook een deel van een woord kunt zoeken?
Ik heb namelijk ongeveer de zelfde code als die je gepost hebt.
Ik krijg alleen een error wanneer ik met post/get aan de gang ga.
Dat van die ' en " wist ik nog niet.. bedankt :)
Nog een klein vraagje tussendoor, (als ik nog niet teveel gevraagd heb :o)
LIKE, kun je dat ook vervangen door CONTAIN ofzo. Ik bedoel dat je ook een deel van een woord kunt zoeken?
LIKE vergelijkt al met woorden waar de waarde in voorkomt.
ok bedankt voor je reactie
'Robin:
Dan krijg ik iets heel raars :s
1ste record: 1
2e record: 10
3e record: 100
4e record: 1000
5e record: 10000
6e record: 10001
etc
1ste record: 1
2e record: 10
3e record: 100
4e record: 1000
5e record: 10000
6e record: 10001
etc
...waarschijnlijk gebruik je een VARCHAR veld voor je artikelnummers, gebruik in plaats daarvan een INT veld.
@Lauren: Dat zou het wel eens kunnen zijn...
enige probleem is, dat er voor elk nummer een " staat..
Dat komt omdat ik een csv bestand geimporteert heb in mijn database. Elk gegeven word daarin tussen "" gezet. In mijn query voor het importeren had ik als scheidingsteken "," ingesteld, dus geen enkele andere record heeft nog een ". (alleen de laatste, heeft achteraan een ")
Is er een manier om dit teken snel weg te halen? (iig zo snel mogelijk, want het lijkt me niet dat een database met zoveel records zo 1,2,3 al die tekens verwijdert worden xD)
enige probleem is, dat er voor elk nummer een " staat..
Dat komt omdat ik een csv bestand geimporteert heb in mijn database. Elk gegeven word daarin tussen "" gezet. In mijn query voor het importeren had ik als scheidingsteken "," ingesteld, dus geen enkele andere record heeft nog een ". (alleen de laatste, heeft achteraan een ")
Is er een manier om dit teken snel weg te halen? (iig zo snel mogelijk, want het lijkt me niet dat een database met zoveel records zo 1,2,3 al die tekens verwijdert worden xD)
Die is er, de volgende code verwijderd alle dubbele quotes uit de kollom id.
Bedankt! volgens mij werkt het!
Alleen het zoeken werkt nu nog niet :(
Iemand nog ideeën?
Alleen het zoeken werkt nu nog niet :(
Iemand nog ideeën?
@Robin, plaats je huidige zoek-SQL eens? En wát werkt er precies niet?
Dit is mijn huidige zoekfunctie:
Wanneer ik op Submit klik (in index.php) wordt er nu nergens naar gezocht. ik weet niet wat ik in moet vullen bij ????.
Code (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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
$conn = odbc_connect('MyDSN','naam','ww');
$query = "SELECT * FROM Table_1 WHERE StartDate LIKE ????";
$result=odbc_exec($conn, $query);
echo "<table border=\"1\"><tr>";
$colName = odbc_num_fields($result);
for ($j=1; $j<= $colName; $j++)
{
echo "<th>";
echo odbc_field_name ($result, $j );
echo "</th>";
}
while(odbc_fetch_row($result))
{
echo "<tr>";
for($i=1;$i<=odbc_num_fields($result);$i++)
{
echo "<td>";
if(odbc_result($result,$i))
echo odbc_result($result,$i);
else
echo "-";
echo "</td>";
}
echo "</tr>";
}
echo "</td> </tr>";
echo "</table >";
odbc_close ($conn);
?>
$conn = odbc_connect('MyDSN','naam','ww');
$query = "SELECT * FROM Table_1 WHERE StartDate LIKE ????";
$result=odbc_exec($conn, $query);
echo "<table border=\"1\"><tr>";
$colName = odbc_num_fields($result);
for ($j=1; $j<= $colName; $j++)
{
echo "<th>";
echo odbc_field_name ($result, $j );
echo "</th>";
}
while(odbc_fetch_row($result))
{
echo "<tr>";
for($i=1;$i<=odbc_num_fields($result);$i++)
{
echo "<td>";
if(odbc_result($result,$i))
echo odbc_result($result,$i);
else
echo "-";
echo "</td>";
}
echo "</tr>";
}
echo "</td> </tr>";
echo "</table >";
odbc_close ($conn);
?>
Wanneer ik op Submit klik (in index.php) wordt er nu nergens naar gezocht. ik weet niet wat ik in moet vullen bij ????.
Gewijzigd op 01/01/1970 01:00:00 door Robin Avoort
Snodver, klikte de pagina weg toen ik nog niet had gesubmit....
Maar goed, doe je dit via POST of via GET? (Staat in je form: method="POST" of method="GET")
Als dit via GET is, roep je hem op dmv $_GET['search'] (of hoe je input hebt genaamd). Daarna doe je je query zo:
Maar goed, doe je dit via POST of via GET? (Staat in je form: method="POST" of method="GET")
Als dit via GET is, roep je hem op dmv $_GET['search'] (of hoe je input hebt genaamd). Daarna doe je je query zo:
Het werkt niet :(
In mijn form heb ik aangegeven "GET", heb de juiste namen gebruikt, maar het wil niet werken...
Als ik nu iets intyp(maakt niet uit wat) krijg ik gewoon de hele database te zien.
In mijn form heb ik aangegeven "GET", heb de juiste namen gebruikt, maar het wil niet werken...
Als ik nu iets intyp(maakt niet uit wat) krijg ik gewoon de hele database te zien.
Het werkt :) eindelijk..
Ik had bij input veld een ID gegeven, maar nu heb ik er NAME bij gezet, en nu werkt het.
Bedankt voor jullie hulp allemaal!
Ik had bij input veld een ID gegeven, maar nu heb ik er NAME bij gezet, en nu werkt het.
Bedankt voor jullie hulp allemaal!
Geen probleem, weet wat voor een draak MSSQL kan zijn (niet voor niets een paar keer wat over geschreven in m'n blog ;-))




