Like query Access in PHP
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
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
<?php
if($conn) {
$safe = array("'" => "","'" => "","/" => "");
$sword = $_GET['search'];
$search = strtr($sword,$safe);
$row = odbc_exec($conn, "SELECT
*
FROM
PRT_Export
WHERE
'".$select."'
LIKE
'".$search."'");
}elseif (odbc_error()) {
echo 'Er is een probleem op getreden in onze database neem contact op met de beheerder.';
}
$nsend = odbc_num_rows($row);
if($nsend != 0) {
while($fsend = odbc_fetch_array($row)) {
if($fsend['DelIndId'] == 0) {
echo '<a href="verzendbepalingen.php?id='.$fsend['ID'].'">'.$fsend['Omsch'].'</a> ('.$fsend['Makey'].')<br />';
}
}
}else{
echo'Er zijn geen resultaten gevonden die overeen komen met ';
if(isset($_GET['search'])) {
echo '<b>'.$_GET['search'].'<b>';
}
}
?>
if($conn) {
$safe = array("'" => "","'" => "","/" => "");
$sword = $_GET['search'];
$search = strtr($sword,$safe);
$row = odbc_exec($conn, "SELECT
*
FROM
PRT_Export
WHERE
'".$select."'
LIKE
'".$search."'");
}elseif (odbc_error()) {
echo 'Er is een probleem op getreden in onze database neem contact op met de beheerder.';
}
$nsend = odbc_num_rows($row);
if($nsend != 0) {
while($fsend = odbc_fetch_array($row)) {
if($fsend['DelIndId'] == 0) {
echo '<a href="verzendbepalingen.php?id='.$fsend['ID'].'">'.$fsend['Omsch'].'</a> ('.$fsend['Makey'].')<br />';
}
}
}else{
echo'Er zijn geen resultaten gevonden die overeen komen met ';
if(isset($_GET['search'])) {
echo '<b>'.$_GET['search'].'<b>';
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Marcellino van Hecke
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$row = odbc_exec($conn, "SELECT
*
FROM
PRT_Export
WHERE
'".$select."'
LIKE
'*".$search."*'");
*
FROM
PRT_Export
WHERE
'".$select."'
LIKE
'*".$search."*'");
Ik dacht dat je bij odbc * moest gebruiken in je LIKE.
LIKE '%".$search."%'
zijn, maar met een odbc connector weet ik het niet ;)
Owh klein foutje van mij, hij doet het niet met * en ook niet met %...
Echo je query eens een keer zodat we kunnen zien wat hij verstuurd naar de database .. eventueel # proberen. Dacht ergens te hebben gelezen dat het * of # was.
Als ik echt de query echo krijg ik: SELECT * FROM PRT_Export WHERE 'Makey' LIKE 'cad'
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$row = odbc_exec($conn, "SELECT
*
FROM
PRT_Export
WHERE
".$select."
LIKE
'*".$search."*'");
*
FROM
PRT_Export
WHERE
".$select."
LIKE
'*".$search."*'");
Probeer dat eens. Weet alleen niet precies wat je in de like moet gebruiken, dus probeer daar *, # en %
Ik heb nu de '' weggehaald bij WHERE Makey
Had daar even overheen gelezen bij de eerste post. Verder bedoelde ik inderdaad echt de query.
En wat doet hij als je de query uitvoert in je database? Geeft hij daar dan een error? Hoeveel records zou hij dan eigenlijk terug moeten geven?
Gewijzigd op 01/01/1970 01:00:00 door kitty N
Geen resultaat nog steeds blanco pagina.
Code (php)
iets verkeerd, probeer het volgende eens:
Code (php)
Dit om te controleren of hij bij test komt.
Als hij test weer geeft moet je hem daarna verplaatsen. dan zetten onder de while en zo steeds verder. Dan laten weten waar hij test wel liet zien en waar niet.
Gewijzigd op 01/01/1970 01:00:00 door kitty N
Gewijzigd op 01/01/1970 01:00:00 door Marcellino van Hecke
je krijgt dan het volgende: SELECT * FROM PRT_Export WHERE 'Makey' LIKE 'cad'
Of hoe je hem nu hebt, maar ongeveer zo. (met *, # of % natuurlijk)
Als je deze kopieert en uitvoert in access krijg je geen resultaat te zien???
Gewijzigd op 01/01/1970 01:00:00 door kitty N
Nee dan krijg ik helemaal niks...
Marcellino schreef op 20.10.2009 12:00:
Nee dan krijg ik helemaal niks...
Dat wil dus zeggen dat je query nog niet goed is of dat er ook geen resultaat is voor die zoek functie.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$row = odbc_exec($conn, "SELECT
PRT_Export.ID, PRT_Export.Makey, PRT_Export.Omsch
FROM
PRT_Export
WHERE((
(PRT_Export.".$select.")
Like
'*".$search."*'))");
PRT_Export.ID, PRT_Export.Makey, PRT_Export.Omsch
FROM
PRT_Export
WHERE((
(PRT_Export.".$select.")
Like
'*".$search."*'))");
Gewijzigd op 01/01/1970 01:00:00 door Marcellino van Hecke
Marcellino schreef op 20.10.2009 12:41:
Maar als er een fout in zit hoort hij toch een error aan te geven.. Ik gebruik nu deze die wel goed werkt in access, maar niet in php.
En je krijgt nu dus in access wel resultaat te zien? Hoeveel records krijg je daar terug?
echo eens $nsend
Gewijzigd op 01/01/1970 01:00:00 door kitty N
SELECT PRT_Export.ID, PRT_Export.Makey, PRT_Export.Omsch FROM PRT_Export WHERE(( (PRT_Export.Makey) Like '*cad*'))
Dan krijg ik 4 records 3 zijn er gevuld dus en als laatste krijg ik er nog eentje te zien en die is leeg.
1657 UCAD Cadmium (U)
3346 CADA Cadasil
3608 CAD Cadmium (b)
Als ik $nsend echo krijg ik als resultaat: -1
http://php.net/manual/en/function.odbc-num-rows.php Wat ik dan ook vreemd vind is dat als ik die num_rows weg haal hij het ook niet doet. Dus dan zou de fout in die arrray moeten zitten..
Ja error reporting staat gewoon aan, is echt heel vreemd ik heb ook nog gekeken op php.net en daar komt die -1 ook vaker voor bij Access. Daar zou ook de oplossing op moeten staan maar ik begrijp niks van die functies die ze daar neerzetten. http://php.net/manual/en/function.odbc-num-rows.php staat ook: Note: Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers..
Kortom... gebruik geen num_rows() maar gewoon count() op je array met resultaten.
Bij de NOTES op Kortom... gebruik geen num_rows() maar gewoon count() op je array met resultaten.
Gewijzigd op 01/01/1970 01:00:00 door Marcellino van Hecke