PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Abfrage


kraadde
03.01.2007, 00:16:27
ich heb noch ein Problem.
Ich mache eine Vergleich ob ein Feld einer Datenbank der eine Jahreszahl enthält (Typ varchar(4)) innerhal eines Intervals liegt. Der Vergleich mache ich so:

$sqlAB="SELECT ......, year FROM ....
WHERE
.....
AND year >= '$txYearFrom'
AND year <= '$txYearTo'
AND ....
order by ...";


$txYear.. sind Textstrings die ich aus einem Formular auslese mit
<input name="txYearFrom" type="text">

Die Abfrage gibt ab und zu falsche Resultate.
Wie mache ich sowas richtig, um eindeutige Resultate zu bekommen?

Danke für ein Tip

Adriano
kraadde@yahoo.com

xabbuh
03.01.2007, 12:07:01
Die Abfrage gibt ab und zu falsche Resultate.
Ein Beispiel, wann deine Abfrage falsche Ergebnisse liefert, wäre wohl recht angebracht, So ist dein Problem nicht nachzuvollziehen.

kraadde
03.01.2007, 12:17:12
Sorry, war wohl nicht klar in meiner Aussage.
Die ausgabe der Abfrage gibt nicht alle zutreffenden Record aus.
Beispiel, ich gebe ein wert für xxFrom = 0 und xxTo = 2007 ein, müsste die Ausgabe der Abfrage alle records ausgeben, passen doch alle Daten innerhalb des Intervals. Das ist aber nicht der Fall. es werden nur Teile der dB Records ausgegeben.
Ich vermute es hat etwas mit den Variable-Typen zu tun, aber konnte es nocht herausfinden..

xabbuh
03.01.2007, 14:55:41
Welchen Typ hat die Spalte year?

kraadde
03.01.2007, 16:17:41
..siehe oben, die Spalte year hat den Typ varchar(4). Die Abfragekriterien (xxFrom resp. xxTo) haben den Typ text.

xabbuh
03.01.2007, 17:51:24
Behandel die Vergleich als Integer (wie es korrekterweise auch sein muss). Vermutlich reicht das schon aus:
[...] WHERE `year` >= 0 AND `year` <= 2007