hoi,

ik heb een simpel form gemaakt die een waarde doorstuurd naar mysql en deze dan weergeeft.

Nu wil ik dat dit form/mysql meerdere inputs accepteerd en ook handeld vanuit hetzelfde input field.

form:

<form id="form1" name="form1" method="post" action="results.php">
<input type="text" name="orders" /><br />
<input type="Submit" name="Submit" value="Send" ><br />

code:

<?php


$order = $_REQUEST['orders']

$query_array=array();

if ($order!=''){ // gebruik ik omdat ik nog een ander input field heb die de zelfde query gebruikt)
$query_array[]="ordernaam ='".$order."'";
}

$query = mysql_query("SELECT ordernaam,naam,adres FROM data WHERE $query_string");

?>

kan iemand mij helpen hoe ik in 'orders' meerdere orders kan mee sturen en laten verwerken door mysql?

thx!
nathan
Je hebt een vloek in je script! $_REQUEST is de vuilnisbak van $_GET/$_POST dus gebruik de laats genoemde superglobals en verban de vloek $_REQUEST

Je hebt een enekelvoudig input form dus is hetgeen je hebt hetgeen je nodig hebt. Met andere woorden je moet duidelijker verwoorden wat je wilt. Als je 2 orders wilt kunnen oproepen heb je dus 2 input velden nodig.

Nog wat aandachtspunten:
-> Controle en validatie op superglobals en andere waarden die van binnen en van buiten komen
-> SQL Injectie
-> mysql_query geeft een resultaat terug geen query, geef je variabelen een betekenisvolle naam!
-> (mysql) foutafhandeling
stel dat ik 2 orders (of meer) in 1 field wil stoppen en mqsql deze waardes wil laten ophalen.
hoe doe ik dit dan?
de waardes zitten trouwens in dezelfde collum in de database
"stel dat ik 2 orders (of meer) in 1 field"
In mijn ogen een foutief uitgangspunt

1 input veld resulteerd in 1 waarde voor gebruik
2 input velden resulteerd in 2 waarden voor gebruik

Dus, hoe wil jij in 1 input veld meerdere ordernummers weten te onderscheiden
door bijvoorbeeld een spatie.

[size=xsmall]Toevoeging op 10/09/2010 14:07:55:[/size]

de reden hiervoor is, dat ik bepaalde waardes per mail krijg, deze waardes wil ik in het script "gooien" zodat ik output krijg aan de hand van mijn mysql query.
een spatie is een geen bruikbare seperator!!

Het lijkt mij veel handiger als je je form als volgt maakt:


<form id="form1" name="form1" method="post" action="results.php">
   <input type="text" name="orders[]" />
   <input type="text" name="orders[]" />
   <input type="text" name="orders[]" />
   <input type="text" name="orders[]" />
   <input type="text" name="orders[]" />
   <input type="Submit" name="Submit" value="Send" >
</form>


dan kan je er 5 kwijt en is $_POST['orders'] een array

Note: je kan uiteraard met 1 input name="orders[]" aanvangen en dat je iets in javascript maakt om nog een input name="orders[]" aan je form toe te voegen.

En als je dan toch zo eigenwijs wilt doorzetten met een seperator dan:
http://www.php.net/explode
http://www.php.net/implode

en SQL
http://www.w3schools.com/sql/sql_in.asp
Nathan f op 10/09/2010 14:06:19

door bijvoorbeeld een spatie.


Niet doen. Geeft alleen maar problemen.

Reageren