[php/mysql] niet hetzelfde resultaat eruit krijgen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • amiga1260
  • Registratie: Juni 2003
  • Laatst online: 21-08 16:39
Ik heb een tabel contacten gemaakt.

Daarin staan de volgende gegevens in het veld achternaam:

a
alal
mora
lal


Als ik de onderstaande query uitvoer:

SELECT * FROM acc.contacten WHERE achternaam LIKE '%a%'

krijg ik het bovenstaande lijst

Als ik diezelfde Select query uitvoer in het onderstaande php script, dan krijg ik 'mora' niet te zien.

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
if (isset($_POST['zoekopdracht']))
{   
    $zoek=$_POST['zoekopdracht'];
    $zoekitem=$_POST['zoekitem'];
}

function getContacten($zoekitem,$veld)
{
    GLOBAL $db;
    [b]$sql = "SELECT * FROM acc.contacten WHERE $veld LIKE '%$zoekitem%'";[/b]
    $result =$db->sql_query($sql);
    while ( $row = $db->sql_fetchrow($result) )     
        {
            $contactID=$row["contactID"];
            $bedrijfID=$row["bedrijfID"];
            $voorletters=stripslashes($row["inits"]);
            $tussenvoegsel=stripslashes($row["tussenv"]);
            $achternaam=stripslashes($row["achternaam"]);
            $telefoonintern=$row["telefoonintern"];
            $email1=stripslashes($row["email1"]);
            $email2=stripslashes($row["email2"]);
            $bedrijf=getContactenBedrijf($bedrijfID);
            $naam="$voorlettters $tussenvoegsel $achternaam";   
            echo (" <tr>
    <td><a href=\"card_bedrijf.php?bedrijfid=$bedrijfID\">$bedrijf</a></td>
    <td><a href=\"card_contact.php?contactid=$contactID\">$naam</a></td>
    <td>$telefoonintern</td>
    <td>$email1</td>
    <td width=\"18\"><a href=\"card_contact.php?contactid=$contactID\"><img src=\"../images/aanpassen.gif\" width=\"16\" height=\"16\" border=\"1\"></a></td>
    <td width=\"18\"><a href=\"delete_persoon.php?contactid=$contactID\"><img src=\"../images/verwijderen.gif\" width=\"16\" height=\"16\" border=\"1\"></a></td>
    <td width=\"18\"><img src=\"../images/word.gif\" width=\"16\" height=\"16\" border=\"1\"></td>
  </tr>");  
        } 
    $db->sql_close();       
}

Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

mora komt er wss niet uit omdat je %a% doet. Volgens mij eist die constructie dat er achter de "a" ook iets staat.
Om mora er uit te krijgen moet je %a doen afaik.
Waarom dat via de console wel er uit komt en via PHP niet is mij een raadsel tho...
Probeer het in PHP eens met %a ipv %a%.

[ Voor 27% gewijzigd door McKaamos op 04-12-2006 10:35 ]

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • amiga1260
  • Registratie: Juni 2003
  • Laatst online: 21-08 16:39
Nu heb ik de SQL query omgebouwd naar dit om te testen:

PHP:
1
$sql = "SELECT * FROM acc.contacten WHERE (((achternaam) LIKE '%a')) OR (((achternaam) LIKE '%a')) OR (((achternaam) LIKE 'a%'))"


Maar geeft alleen de eerste drie items en niet 'Mora' dit werkt wel in phpmysqladmin.

Overigens heb ik die query ook geprobeerd in ACCESS en dat werkt ook.

Acties:
  • 0 Henk 'm!

  • sQuarecoW
  • Registratie: Juli 2003
  • Laatst online: 19-09 18:07
Hoe weet je zeker dat je hem niet terug krijgt?

Al een var_dump gedaan van $row?

Acties:
  • 0 Henk 'm!

  • amiga1260
  • Registratie: Juni 2003
  • Laatst online: 21-08 16:39
sQuarecoW schreef op maandag 04 december 2006 @ 11:08:
Hoe weet je zeker dat je hem niet terug krijgt?

Al een var_dump gedaan van $row?
Ik heb een var-dump gedaan, maar krijg alleen die drie items en niet Mora.

Acties:
  • 0 Henk 'm!

  • amiga1260
  • Registratie: Juni 2003
  • Laatst online: 21-08 16:39
Ik weet nu wat het probleem is. Het probleem lag dat het geen karakters van 1 teken lang kunt zoeken.
Pagina: 1