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>
Echo de hele query eens. En wat is het verschil tussen de 3 tabellen waaruit je selecteert?

( echo $sql )
de 3 tabellen worden elke dag gesynchroniseerd door een CSV bestand welke gegenereerd word door Exact, wat ze op de boekhouding gebruiken...

een query echo'en... :)
ik doe het nu zo maar weet zeker dat het fout is..
ik krijg alleen op me output te zien; $sql


<?php

// Laat alle errors zien
error_reporting(E_ALL);

$host="localhost";
$user="root";
$password="password";
$database="debiteur";
mysql_pconnect($host, $user, $password) or trigger_error (mysql_error()); // or die ("<center><h1>Kon geen verbinding maken met de database</h1><br>Neem contact op met het systeembeheer</center>");
mysql_select_db($database) or trigger_error(mysql_error()); // or die ("<center><h1>Kon de database niet selecteren</h1><br>Neem contact op met het systeembeheer</center>");
?>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
        <td width="120">
            <h5>Zoek Debiteur</h5>
        </td>
    </tr>
    <td><p align="center"></p>
    <br>
      <form action="sql.php" method="post">
            <tr>
              <td width="75">Zoek op</td>
              <td width="425"><select name="veld">
                  <option value="veld15" selected>Naam</option>
                  <option value="veld9">Debiteurennummer</option>
                  <option value="veld35">Woonplaats</option>
                </select>
              </td>
            </tr>
            <tr>
        <td align="left">Zoekcriteria&nbsp;</td>
        <td align="left"><span class="label">
            <label for="trefwoord"></label>
            </span>
            <input id="trefwoord" name="trefwoord" type="text" size="20"></td>
            </tr>
<tr>
<td>&nbsp;

</td>
</tr>
            <tr>
              <td>&nbsp;</td>
              <td><input name="submit" type="submit" value="Zoeken"></td>
            </tr>
          </table>
        </center>
        <div align="left"></div>
      </form>
      <center>
    </center></td>
  </tr>
</table>
<?
$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
		
echo ($sql);

?>
echo $sql;

Een variabele moet niet tussen quotes, al helemaaaal niet enkele quotes :-)

Maar je moet 'm even echo-en met de WHERE-clause erbij. Dus de échte query.
ja dan krijg ik dus gewoon;

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 LIKE '%%'

op m'n scherm
Dan zijn dus beide POSTs leeg....

Je moet wel even het formulier submitten; je (ik) wil namelijk weten welke query er precies uitgevoerd wordt.
die heb ik dus ook gesubmit..:) ik heb ff me script geupdate bij mijn vorige scriptpost..

Reageren