Earthfighter
Gebruiker
- Lid geworden
- 5 sep 2012
- Berichten
- 28
Beste forumbezoekers,
Op het internet vond ik een manier om een leeg variabel te negeren. De gebruiker selecteert een aantal velden om een rapportage te maken. Het kan gebeuren dat hij een aantal velden leeg laat. Dan is het de bedoeling dat het programma dit herkent en alle records uit de database haalt. Vult hij het wel in dan zoekt het programma alleen de records met die specifieke waarden.
Dit ben ik tegengekomen:
Dit is mijn resultaat tot nu toe:
Nu lukt het me om de eerste variabel in te vullen en de rest leeg te laten.
Nu wil ik alleen de 2de variabel invullen maar dan geeft hij als foutmelding aan dat hij de 'AND' niet snapt in de query. Nu snap ik dat de query dit als foutmelding geeft. Hoe kan ik het zo voor elkaar krijgen dat ik alleen de 2de of 3de variabel invul en de 1ste niet zonder een foutmelding te geven? Moet je perse een vaste variabel invullen? zoals in mijn eerste voorbeeld (Ik bedoel daarmee dat de eerste WHERE altijd gedefinieerd moet worden).
Op het internet vond ik een manier om een leeg variabel te negeren. De gebruiker selecteert een aantal velden om een rapportage te maken. Het kan gebeuren dat hij een aantal velden leeg laat. Dan is het de bedoeling dat het programma dit herkent en alle records uit de database haalt. Vult hij het wel in dan zoekt het programma alleen de records met die specifieke waarden.
Dit ben ik tegengekomen:
PHP:
$sql = "";
if(!empty($value1))
$sql = "AND location = '{$value1}' ";
if(!empty($value2))
$sql .= "AND english_name = '{$value2}'";
$query = "SELECT * FROM moth_sightings WHERE user_id = '$username' {$sql} ";
$result = mysql_query($query) or die(mysql_error());
$r = mysql_numrows($result);
Dit is mijn resultaat tot nu toe:
PHP:
<?php
$dsn = "Test";
$user = "";
$pass = "";
$conn = odbc_connect("$dsn","$user","$pass");
$value1= '12';
$value2= 'Quantitative';
if(!empty($value1))
$sql = " P_ID = '{$value1}'";
if(!empty($value2))
$sql = " AND MethodologyType = '{$value2}'";
if(!empty($value3))
$sql .= " AND ClientName = '{$value3}'";
$query = "SELECT * FROM NL_Project WHERE {$sql} ";
$result = odbc_exec($conn, $query);
echo "<table border='1' id='customer'>
<tr>
<th>ID</th>
<th>methodology</th>
<th>ClientName</th>
</tr>";
while(odbc_fetch_row($result)) {
echo "<tr>";
echo "<td>" .odbc_result($result,1). "</td>";
echo "<td>" .odbc_result($result,4). "</td>";
echo "<td>" .odbc_result($result,6). "</td>";
echo "</tr>";
}
echo "</table>";
?>
Nu lukt het me om de eerste variabel in te vullen en de rest leeg te laten.
Nu wil ik alleen de 2de variabel invullen maar dan geeft hij als foutmelding aan dat hij de 'AND' niet snapt in de query. Nu snap ik dat de query dit als foutmelding geeft. Hoe kan ik het zo voor elkaar krijgen dat ik alleen de 2de of 3de variabel invul en de 1ste niet zonder een foutmelding te geven? Moet je perse een vaste variabel invullen? zoals in mijn eerste voorbeeld (Ik bedoel daarmee dat de eerste WHERE altijd gedefinieerd moet worden).