[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Seltsames Verhalten bei MySQL-Query - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
gupi
Beiträge: 286
Registriert: 20. Nov 2008, 13:49
Wohnort: Elsdorf/Rheinland

Seltsames Verhalten bei MySQL-Query

4. Okt 2014, 19:19

Hallo,

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);
Da ich aber manchmal einen geänderten Status-Abfrage-Operator benötige, sowohl ">=" als auch "=", hatte ich mir folgendes überlegt:
Modul-Input:

Code: Alles auswählen

<?php
...
$html = "Operator: <input type='text' name='VALUE[1]' value='REX_VALUE[1]' />";
echo $html;
?>
Modul-Output:

Code: Alles auswählen

...
 $op = "REX_VALUE[1]";
 $sql .= "(`status` ".$op." '$searchValue') AND (`mitarbeiter_id`='$id') ".$valid;
...
Sobald ich den Operator von "=" auf ">=" setze führt dies zu einem Fehler:
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
)
Nachvollziehen kann ich das nicht. Irgend etwas scheint mit dem String ">=" zu passieren sobald er ein ">" enthält.
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;
}
dann klappt alles wie gewünscht!
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;
}
hier gab die if - Abfrage aber immer ein false zurück!

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
read the manual first

Benutzeravatar
anita
Beiträge: 711
Registriert: 25. Jan 2007, 10:25
Wohnort: Finsterwalde

Re: Seltsames Verhalten bei MySQL-Query

6. Okt 2014, 11:26

Hallo Gunter,

wird vielleicht das > in < umgewandelt?
Gruß Anita

javanita engineering, immer eine zündende Idee
http://www.javanita.com

gupi
Beiträge: 286
Registriert: 20. Nov 2008, 13:49
Wohnort: Elsdorf/Rheinland

Re: Seltsames Verhalten bei MySQL-Query

7. Okt 2014, 09:14

Hi Anita,
Danke für den Hinweis. Da werde ich nochmal genauer hinschauen. Allerdings wüsste ich nicht wo die Umwandlung stattfinden soll. phpMyAdmin zeigt mir dass in der article-slices Tabelle ">" steht. Die Tabelle ist utf8 codiert.

Gruß Gunter
read the manual first

Benutzeravatar
anita
Beiträge: 711
Registriert: 25. Jan 2007, 10:25
Wohnort: Finsterwalde

Re: Seltsames Verhalten bei MySQL-Query

7. Okt 2014, 11:18

Gib mal das gepostete value per echo aus uns schau im Quelltext, was genau augepostet wird.
Gruß Anita

javanita engineering, immer eine zündende Idee
http://www.javanita.com

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

Re: Seltsames Verhalten bei MySQL-Query

10. Okt 2014, 09:26

Hej,

bei der Verwendung von REX_VALUE werden Sonderzeichen umgewandelt. Aus deinem wird somit ein . Verwende daher REX_HTML_VALUE.

Ich würde auch kein input sondern eher ein select mit den gewünschten Operatoren anbieten. Wenn der user da ein falsches Zeichen per Hand setzt ist der Query futsch.

vg Thomas

Benutzeravatar
anita
Beiträge: 711
Registriert: 25. Jan 2007, 10:25
Wohnort: Finsterwalde

Re: Seltsames Verhalten bei MySQL-Query

10. Okt 2014, 10:39

ups, da hab ich ja die Zeichen verwechselt, aber so etwas in der Richtung dachte ich mir schon - gut zu wissen.
Gruß Anita

javanita engineering, immer eine zündende Idee
http://www.javanita.com

Zurück zu „Allgemeines [R4]“