Hallo, ik heb een script waarmee ik debiteurgegevens opzoek in mijn database, maar nu geeft hij, als ik een naam intyp niet de resultaten weer die overeenkomen met mijn trefwoord, maar hij zet gewoon de hele query neer
wat doe ik verkeerd..?

dit is mijn script;

    // Bouw query op met gekozen zoekveld en trefwoord
$sql = "SELECT
             veld9, veld15,  veld121, veld19, veld23, veld35, veld17, veld40, veld46, veld44, veld37, veld31, veld27, veld85, veld121, veld11   from debiteur_bsmdb
        UNION
        SELECT 
             veld9, veld15,  veld121, veld19, veld23, veld35, veld17, veld40, veld46, veld44, veld37, veld31, veld27, veld85, veld121, veld11   from debiteur_bsumdb
        UNION 
        SELECT 
             veld9, veld15,  veld121, veld19, veld23, veld35, veld17, veld40, veld46, veld44, veld37, veld31, veld27, veld85, veld121, veld11   from debiteur_tsmdb
        WHERE
            '".$_POST['veld']."' LIKE '".$_POST['trefwoord']."'";

		// Voer de query uit op de database
$rs = mysql_query($sql) or trigger_error(mysql_error());    
    
?>

<table width="600" border="0" align="center" cellpadding="2" cellspacing="2">
    <tr>
        <td align="left" width="125" class="style7">Debiteurennr</td>
        <td align="left" width="125" class="style7">Naam</td>
        <td align="left" width="200" class="style7">Adres</td>
        <td align="left" width="200" class="style7">Woonplaats</td>
    </tr>
</table>

<?

		// Bepaal aantal records
		$aantal_records = mysql_num_rows($rs);


		// Als er nul records zijn gevonden, geef melding.
		if( $aantal_records == 0 )
    {
        echo 'Er zijn geen gegevens gevonden die aan uw zoekcriteria voldoen.';
    }
		if (strlen($_POST["trefwoord"]) < 1)
    {
        echo 'U dient minimaal 1 karakter in te vullen.';
    }
    else
    {
        // Ga resultaten weergeven
		    while($row = mysql_fetch_array($rs))
			  {
?>
<br>
            <table width="600" border="0" align="center" cellpadding="2" cellspacing="2">              
        <td width="125" align="left"><b><a href="opslaan.php?veld9=<?=urlencode($row['veld9']);?>"><?=$row['veld9'];?></a></b></td>
        <td width="125" align="left"><?=$row['veld15'];?></td>
        <td width="200" align="left"><?=$row['veld19'];?></td>
        <td width="200" align="left"><?=$row['veld35'];?></td>
            </table>
            <?
    }
    }
    echo '</table>';
}

mysql_close();
?>
</center>

</body>
</html>
de topicstarter is niet compleet achterlijk en weet wat relevant is en wat niet , dus wat weglaten kan best. gulden middenweggetje dan maar :)
@ Wess en All : dat is (mijnsinziens) nu precies de vinger op de zeeeeere plek van alle irritaties van de regelmatige bezoek(st)er hier op het forum. Anders gezegd verplaats je is in die ander en verwacht niet dat alles je 1-2-3 wordt voorgekauwd.

@ Admin(s) : gaan jullie nog wat doen met mijn eerder voorgestelde subforum voor de zogenaamde "diehards"... ?
SanThe schreef op 27.03.2006 12:33
LIKE '".$_POST['trefwoord']."'

wordt

LIKE '%".$_POST['trefwoord']."%'


Werkt dit nou?
lissy schreef op 27.03.2006 13:00
@ Wes en All : dat is (mijnsinziens) nu precies de vinger op de zeeeeere plek van alle irritaties van de regelmatige bezoek(st)er hier op het forum. Anders gezegd verplaats je is in die ander en verwacht niet dat alles je 1-2-3 wordt voorgekauwd.

@ Admin(s) : gaan jullie nog wat doen met mijn eerder voorgestelde subforum voor de zogenaamde "diehards"... ?



edit: typo
@ santhe;
met die procent-tekens maakte geen verschil helaas...

@ everyone;
maar laten we over dat boek of geen boek ophouden en hulp gaan bieden aan degene die dat nodig hebben..?
PHPerik schreef op 27.03.2006 12:35
@Burrug
Wat is de bedoeling dat er allemaal geselecteerd wordt?

wat bedoel je hier precies mee PHP erik?
Nou kijk, je voegt drie query's samen door UNIONs. Je zegt in je topic dat er iets mis gaat met de query. Wat moet er geselecteerd worden (in MySQL) en wat wordt er daadwerkelijk geselecteerd? Waar zit het probleem? Leg uit! :D
het probleem is dat mijn query mijn trefwoord niet filtert, dus als ik op achternaam zoek op trefwoord 'berg' dan krijg ik geen resultaten, maar gewoon de inhoud van mijn query...

even een kleine legenda voor de veldnamen;

veld 9 = debiteurnummer
veld 15 = klantnaam
veld 19 = klantadres
veld 35 = woonplaats

waarom dit zo is gaan heten weet ik niet, ik ben maar een stagair die midden in een project word geplant met de bedoeling van; los jij dit ff op zonder kennis van PHP...
ben al een heel eind moet ik zeggen :D...

ff een screenshotjevan m'n output...;
http://home.kabelfoon.nl/~wwwhbnl/screenshot.jpg
Wat dom dat ik er overheen heb gelezen, maar kijk:


WHERE
            '".$_POST['veld']."' LIKE '".$_POST['trefwoord']."'"


een veldnaam mag geen quotes er omheen hebben.

En verder snap je wel dat je met die eerste twee selects (als in "select1 UNION select2 UNION select3") ook al een hele hoop selecteert hè?

edit: oplossing is dus:


WHERE
            ".$_POST['veld']." LIKE '%".$_POST['trefwoord']."%'"


(de procenttekens zijn wildcards en misschien toch wel handig)
Heb nu dit, maar krijg nog steeds dezelfde output..

$sql = "SELECT
             veld9, veld15, veld19, veld35   
        from debiteur_bsmdb
        UNION
        SELECT 
             veld9, veld15, veld19, veld35  
        FROM debiteur_bsumdb
        UNION 
        SELECT 
             veld9, veld15, veld19, veld35     
        FROM debiteur_tsmdb
        WHERE
            ".$_POST['veld']." LIKE '%".$_POST['trefwoord']."%'";

		// Voer de query uit op de database
$rs = mysql_query($sql) or trigger_error(mysql_error());    

Reageren