ich verstehe die Welt nicht mehr!
folgende Syntax meines Moduls (Output) funktioniert ohne Probleme:
Code: Alles auswählen
$db = rex_sql::factory();
$sql = "SELECT * FROM `rex_relations` WHERE ";
...
...
$sql .= "(`status`>='$searchValue') AND (`mitarbeiter_id`='$id') AND (`end_datum` = '');";
$res = $db->getArray($sql);
Modul-Input:
Code: Alles auswählen
<?php
...
$html = "Operator: <input type='text' name='VALUE[1]' value='REX_VALUE[1]' />";
echo $html;
?>
Code: Alles auswählen
...
$op = "REX_VALUE[1]";
$sql .= "(`status` ".$op." '$searchValue') AND (`mitarbeiter_id`='$id') ".$valid;
...
Nachvollziehen kann ich das nicht. Irgend etwas scheint mit dem String ">=" zu passieren sobald er ein ">" enthält.rex_sql Object
(
[values] => Array
(
)
[fieldnames] => Array
(
)
[table] =>
[wherevar] =>
[query] => SELECT * FROM `rex_relations` WHERE (`status` >= '10') AND (`mitarbeiter_id`='4') AND (`end_datum` = '');
[counter] => 0
[rows] => 0
[result] =>
[last_insert_id] =>
[debugsql] =>
[identifier] => Resource id #140
[DBID] => 1
[error] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';= '10') AND (`mitarbeiter_id`='4') AND (`end_datum` = '')' at line 1
[errno] => 1064
)
Letztendlich habe ich den Output des Moduls folgendermaßen geändert:
Code: Alles auswählen
if ($op == "=") {
$sql .= "(`status`='$searchValue') AND (`mitarbeiter_id`='$id') ".$valid;
} else {
$sql .= "(`status`>='$searchValue') AND (`mitarbeiter_id`='$id') ".$valid;
}
Meine erste Änderung sah übrigens so aus:
Code: Alles auswählen
if ($op == ">=") {
$sql .= "(`status`>='$searchValue') AND (`mitarbeiter_id`='$id') ".$valid;
} else {
$sql .= "(`status`='$searchValue') AND (`mitarbeiter_id`='$id') ".$valid;
}
Hat jemand eine Idee woran sowas liegt? (Die Suche hat mich übrigens fast zwei Tage gekostet)
Ich bin sicher nicht der einzige der an sowas verzweifelt.
Danke und viele Grüße
Gunter