mehrere BETWEEN-bedingungen in einem query
max
- datenbank
moin,
habe probleme mit meiner mysql-abfrage:
ich will mehrere BETWEEN bedingungen erfüllt haben:
$ergebnis=mysql_query("select * from tabelle where
(datum BETWEEN '$datum' AND '$datum2') AND (alter BETWEEN '$alter' AND '$alter2')");
(zur abfrage sollen beliebig viele (von 10) bedingungungen in ein formular eingegeben werden und dann die einträge ausgegeben werden, die allen angegebenen kriterien entsprechen.)
das ist nur eine von den zahreichen möglichkeiten die ich probiert habe (statt klammern AND und & und kommas) hat aber alles nichts geholfen.das aussagakräftigste war :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in....
weiss irgendjemand wie die syntax ist? hab bei google und im archiv nichts dazu gefunden...
danke schon mal im vorraus!
max
Hi,
$ergebnis=mysql_query("select * from tabelle where
(datum BETWEEN '$datum' AND '$datum2') AND (alter BETWEEN '$alter' AND '$alter2')");
"alter" ist, soweit ich weiß, ein Schlüsselwort in MySQL (ALTER TABLE ...) und darf daher nicht als Spaltenname benutzt werden (bzw. müßte in `` stehen).
das ist nur eine von den zahreichen möglichkeiten die ich probiert habe (statt klammern AND und & und kommas) hat aber alles nichts geholfen.das aussagakräftigste war :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in....
Du solltest prüfen, ob mysql_query gutgeht und falls nicht, mysql_error ausgeben.
cu,
Andreas
"alter" ist, soweit ich weiß, ein Schlüsselwort in MySQL (ALTER TABLE ...) und darf daher nicht als Spaltenname benutzt werden (bzw. müßte in `` stehen).
alter war nur ein beispiel.
echo mysql_error(); hilft auch nicht weiter...
max
Hi,
"alter" ist, soweit ich weiß, ein Schlüsselwort in MySQL (ALTER TABLE ...) und darf daher nicht als Spaltenname benutzt werden (bzw. müßte in `` stehen).
alter war nur ein beispiel.
Du hast also Problem mit einem Stück Code.
Statt dieses Stück Code zu zeigen, zeigst Du irgendein Stück Code, das nichts mit dem Problem zu tun hat.
Das erleichtert uns natürlich sehr die Fehlersuche.
cu,
Andreas
dieses stück code hier sollte das ganze nur nicht unnötig kompliziert machen, aber ok:
$ergebnis=mysql_query("select * from training where
(datum BETWEEN '$datum' AND '$datum2') AND (km BETWEEN '$km' AND '$km2') AND (puls BETWEEN '$puls' AND '$puls2') AND (zeit BETWEEN '$zeit' AND '$zeit2') AND art='$art' AND belastungstyp='$belastungstyp'
");
echo mysql_error();
while ($row=mysql_fetch_array($ergebnis)){
echo "datum: ".$row[datum]."<br>art des trainings: ".$row[art]."<br>belastungstyp: ".$row[belastungstyp]."<br> tagesform: ".$row[tagesform]."<br> KM: ".$row[km]."<br>Puls: ".$row[puls]."<br>Dauer: ".$row[zeit]."<br>bemerkungen: ".$row[bemerkungen]."<br>";}
if (!isset($row)){echo "keine einträge gefunden";}
max