[PHP/MySQL] Zoekfunctie in database voor betaling

Pagina: 1
Acties:
  • 682 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Nu online

mydogisgone

Watskeburtwithmydog

Topicstarter
Ik ben nu al een paar dagen bezig met een zoekfunctie waarbij 2 gegevens worden ingevoerd die vergeleken worden of ze allebei in een bepaalde rij voorkomen.
Waarna dus de rest van de informatie op dezelfde pagina word weergeven.

De invoer die ik gebruik zijn orderid en de postcode.

Deze 2 moeten beide in de rij voorkomen.
Maar ik weet niet hoe ik zoiets moet aanpakken.
met 1 krijg ik het wel een beetje voor elkaar maar lange na niet zoals ik het wil

dit is wat ik nu ongeveer heb:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form method="post" action="">
            <fieldset>
                 <legend>Input</legend>
                <input type="text" name="orderid" />
                <input type="text" name="postcode" />
                <input type="submit" />
            </fieldset>
        </form>
<?php


$query="SELECT * FROM orders WHERE orderid LIKE ". $_POST["orderid"] ."";
$result = mysql_query($query) or die("FOUT : " . mysql_error());

echo($query);

while (list($clientcity) = mysql_fetch_row($result)){
    echo("<tr><td>. $clientcity .</td></tr>");}

?>


nu heb ik in een database de tabel "Orders"

en daar in heb ik een aantal velden waaronder:

Orderid, orderdate, clientname, clientadress, clientzipcode, clientcity, clienttelephone, clientmail, orderpayment, orderremarks, orderstatus.

Dit wil ik allemaal laten zien nadat dus orderid en clientzipcode zijn ingevoerd.
want deze gegevens zijn bekend bij de gebruiker.

Verde heb ik bij orderstatus 3 verschillende waardes.

Deze 3: D, C en U

U betekend nog niet bevestigd
C Betekend afgehandeld
D betekend nog niet afgehandeld.

iig dat wou ik ook omzetten naar tekst ipv een letter als gegeven.
Maar nu heb ik me rot gezocht daar naar en krijg het dus niet voor elkaar.

Het is ook geen probleem als alleen orderstatus word weergeven na het invoeren van de 2 gegevens.
Maar hier bij moet orderremarks wel meegenomen worden omdat daar de code in staat van de TPG voor het versturen, mits afgehandeld.

Hoop dat iemand me een beetje een duwtje in de rug kan geven om deze functie voor elkaar te krijgen!!

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Over je eerste vraag: gewoon een WHERE-clause met meerdere checks erin? :? Dus:
SQL:
1
2
3
...
WHERE `orderid` = ingevoerdewaarde
  AND `postcode` = 'ingevoerdewaarde'

Waarom je daar zelf LIKE gebruikt ontgaat me verder, aangezien je gewoon wil kijken of de waardes exact hetzelfde zijn.

Overigens sta je met je huidige code wagenwijd open voor SQL injection attacks.

Wat betreft die orderstatus:
PHP:
1
2
3
4
5
$status = array(
  'U' => 'Nog niet bevestigd',
  'C' => 'Afgehandeld',
  'D' => 'Nog niet afgehandeld'
);

Vanaf dan kun je gewoon $status['D'] gebruiken, of, wat bij data uit de database handiger is, $status[$databaseveld].

Je op één na laatste alinea begrijp ik niet, en met de rest van je post had ik eerlijk gezegd ook nogal wat moeite. Ik weet dat het al laat is, maar zou je (in het vervolg) iets duidelijker kunnen zijn?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mydogisgone
  • Registratie: Februari 2002
  • Nu online

mydogisgone

Watskeburtwithmydog

Topicstarter
Ja hier kan ik wel al wat verder komen.
Sorry voor mijn onduidelijke zinnen, ik was gister moe en beetje pissed dat het niet wou lukken.
Nu zie ik ook al een beetje waardoor dat komt, zal iig proberen mijn verhaal volgende keer wat beter neer te zetten.

Mijn hond is nog steeds echt weg! En die komt ook niet weer. :O