Vraag & Antwoord

Webprogrammeren & scripting

select from where (php/mysql) werkt selectief

Anoniem
Rumaro
3 antwoorden
  • Als ik in onderstaande code de where weglaat, dan krijg ik dit:

    http://www.verlofboek.nl/overzichtomroep.php

    Als ik $funktie ='amp'; meegeef krijg ik dit:

    http://www.verlofboek.nl/overzichttrdl.php

    En als ik $funktie ='trdl'; meegeef krijg ik helemaal niks.

    Ik kan maar niet ontdekken waar de fout zit.

    [code:1:3f2c34e3d2]<?php
    include("config.php");

    $funktie='trdl';
    $db = mysql_connect($server,$user, $w8woord);
    $result = mysql_select_db($database,$db);
    $result = mysql_query("select * from personeel where functie = '$funktie' ",$db);
    $rows = mysql_num_rows($result);
    echo '<table>';
    for ($index = 0 ; $index < $rows; $index++)
    {
    $data = mysql_fetch_object($result);
    echo("<tr>
    <td><font color=red size=2>$data->id</font></td>
    <td><font color=blue size=2>$data->naam</font></td>
    <td><font color=red size=2>$data->pnummer</font></td>
    <td><font color=red size=2>$data->functie</font></td>
    <td><font color=blue size=2>$data->wachtwoord</font></td></tr>");
    }
    echo '</table>';
    ?>[/code:1:3f2c34e3d2]
  • Een goede manier om de fout te zoeken is de query niet alleen uitvoeren maar ook even naar het scherm schrijven. Zo kan je zien of je de query uitvoert die je verwacht, want niet zelden zit je er nét even naast. Je zou ook kunnen kijken of het verschil maakt als je [i:b6596a6ec6]LIKE[/i:b6596a6ec6] gebruikt in plaats van een exacte match.

    - Bas
  • de LIKE zal het oplossen. In de broncode kan je zien dat achter trdl nog heel veel spaties staan; dat is niet gelijk aan 'trdl' (dus zonder spaties). Bij amp staan er geen spaties achter dus dat gaat wel goed

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.