Ik loop tegen het volgende probleem aan, ik kan gewoona alle data uit de database opvragen. Maar wanneer ik dit met LIKE probeer voor mijn zoekfunctie, loop ik tegen het probleem aan dat hij gewoon een blanco pagina weergeeft. Wanneer ik bijvoorbeeld de num_rows echo dan krijg ik -1 Iemand die misschien de oplossing weet? Onderstaand is mijn script:

<?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>'; 
                } 
            }
?>
Probeer het volgende eens:

$row = odbc_exec($conn, "SELECT 
                                               * 
                                            FROM 
                                               PRT_Export 
                                           WHERE 
                                               '".$select."' 
                                             LIKE 
                                             '*".$search."*'"); 


Ik dacht dat je bij odbc * moest gebruiken in je LIKE.
normaal moet het :
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.
Bedoel je $row? Dan krijg ik: Resource id #4
Als ik echt de query echo krijg ik: SELECT * FROM PRT_Export WHERE 'Makey' LIKE 'cad'

$row = odbc_exec($conn, "SELECT 
                                               * 
                                            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?
Dan zit er denk ik in je

<?php
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 />';
}

}

}
?>

iets verkeerd, probeer het volgende eens:

<?php
if($nsend != 0) {
echo 'Komt bij test<br>';
while($fsend = odbc_fetch_array($row)) {
if($fsend['DelIndId'] == 0) {
echo '<a href="verzendbepalingen.php?id='.$fsend['ID'].'">'.$fsend['Omsch'].'</a> ('.$fsend['Makey'].')<br />';
}

}

}
?>

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.
Als hij in de while staat komt hij niet meer tevoorschijn, er zou dus iets fout moeten zitten in die array. Als een query uitvoer zoals die in Access geproduceerd word doet hij het ook niet, dus het ligt toch echt aan die array, maar ik zie de fout niet:S
Even kijken of ik het goed begrijp. Je hebt de query geechoëd.

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

Reageren