Zum Inhalt springen

Parameterfehler in SQL Syntax

Erstellt am 3. November 2006 · 5 Antworten · letzte Antwort am 3. November 2006

Tags: Frage

alpentypo ·

Hallo Leute!

Hab hier scheinbar ein Problem mit einer SQL Abfrage. Hab zwar angegeben er soll hidden und deleted Datensätze nicht ausgeben, werden aber trotzdem ausgegeben.

Könnten mal jemand nen Blick draufwerfen.

Vielen Dank

Christian

                 // Die Datenbank ansprechen und in einer Schleife ausgeben

                  $res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*",
                       "user_projekte_main","deleted=0 AND hidden=0 AND pid='".$projektPageId."'
                             OR pid='".$projektPageId1."'
                             OR pid='".$projektPageId2."'
                             OR pid='".$projektPageId3."'
                             OR pid='".$projektPageId4."'
                             OR pid='".$projektPageId5."'
                             OR pid='".$projektPageId6."'
                             OR pid='".$projektPageId7."'
                             OR pid='".$projektPageId8."'",
                             "",
                             "projektname ASC",
                             ""
                             );

                                                      
                  while ($row = $GLOBALS["TYPO3_DB"]->sql_fetch_assoc($res)){
                     $marker["###PROJEKTNAME###"] = $row["projektname"];                    
                     $marker["###ARBEITSUMFANG###"] = $row["arbeitsumfang"];                     
                     $marker["###ZEITRAUM###"] = $row["zeitraum"];
                     $content .=$this->cObj->substituteMarkerArrayCached($tmpl_eintrag,$marker);
                  }

                  
                  //Ergebnis ausgeben
                  $content = $this->cObj->substituteSubpart($tmpl,"###EINTRAG###",$content);
                  return $content;
steffenk ·

statt Deiner OR-Statements solltest Du eine Kommaliste generieren und dann mit IN(...) abfragen, ansonsten Kommaregel.

alpentypo ·

Ich habs je mal mit folgendem Code probiert.
Hier wird aber nur die erste ID in der Liste verwendet, alle anderen nicht.

Könnt ihr mir vielleicht weiter richtung Lösung helfen.

plugin.user_projektliste_pi1{
  projektPageId = 39,45,44,43,42,41,92,91
  }
                  $projektPageId = $conf["projektPageId"];

                  $res = $GLOBALS["TYPO3_DB"]->exec_SELECTquery("*",
                       "user_projekte_main","deleted=0 AND hidden=0 AND pid IN('".$projektPageId."')",
                             "",
                             "projektname ASC",
                             ""
                             );
alpentypo ·

hallo steffenk

Dank für den Hinweis auf den Fehler. Muss mich mit den PHP Ausdrücken, etc noch tiefer befassen. Jetzt funktionierts wie es soll.

@snareoj
Der Tip mit der Funktion in der API sieht interessant aus. Wenn ich in Typoscript etwas sattelfester bin, werden ich mich damit beschäftigen.

@steffenk und alle anderen
Vielen Dank für die spitzenmäßige Unterstützung im Forum.

Ciao
Christian