Zum Inhalt springen

Problem mit exec_SELECT_mm_query

Erstellt am 28. Oktober 2006 · 8 Antworten · letzte Antwort am 21. Oktober 2008

Tags: Frage

IYF ·

Hi,

bin gerade dabei, eine Extension zu schreiben, bei der ein Artikel über eine Verknüpfungstabelle zu einer Autorentabelle mit dem entsprechenden Autor verknüpft wird.
Ich habe also die Datenbanktabellen:

  • tx_artikel_main
    tx_autor_main_connect_mm
    tx_autor_main

Bei der Abfrage dieser Tabellen mit exec_SELECT_mm_query bekomme ich aber leider immer einen Fehler. Hier der entsprechende Code-Schnipsel:

case "autor":
  if (!count($this->autorCache)) {
    $query = $GLOBALS['TYPO3_DB']->exec_SELECT_mm_query (
      'tx_autor_main.*',
      'tx_artikel_main',
      'tx_autor_main_connect_mm',
      'tx_autor_main',
      ' AND tx_autor_main_connect_mm.uid_local='.$this->internal['currentRow']['uid'].'',
      '',
      '');
        $res = mysql(TYPO3_db,$query);
          while ($row=mysql_fetch_assoc($res)) {
            $this->autorCache[$row['uid']]=$row;
          }
      }
  return htmlspecialchars($this->autorCache[$this->internal['currentRow']['uid']]['bandname']);
break;

In der Ausgabe erhalte ich dann immer folgende Fehlermeldung:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

Hat da vielleicht jemand 'ne Idee, woran es liegt? Ich komm einfach gerade nicht drauf!

steffenk ·

Dein Fehler ist folgender:

$res = $GLOBALS['TYPO3_DB']->exec_SELECT_mm_query (
      'tx_autor_main.*',
      'tx_artikel_main',
      'tx_autor_main_connect_mm',
      'tx_autor_main',
      ' AND tx_autor_main_connect_mm.uid_local='.$this->internal['currentRow']['uid'].'',
      '',
      '');
        while ($row=mysql_fetch_assoc($res)) {
            $this->autorCache[$row['uid']]=$row;
          }
      }

exec_SELECT_mm_query führt die Abfrage aus, die Query erhälst Du mit
SELECT_mm_query

beelzebub ·

Habe auch dieses problem, verstehe leider nicht ganz wie ich
SELECT_mm_query einsetzen soll

Statt exec_SELECT_mm_query ?? dann erhalte ich eine Fehlermeldung

Call to undefined function: select_mm_query()

einpraegsam.​net ·
beelzebub schrieb

Ähm ja, das hilft mir jetzt nicht wirklich weiter 😉

Ich verstehe dein Problem überhaupt nicht - oben ist doch ein Beispiel wie man exec_SELECT_mm_query einsetzen muss. Jetzt kommst du und schreibst etwas von einer Funktion namens select_mm_query die es nicht gibt.

Wie kann ich dir also helfen?

beelzebub ·

Mich verwirrt folgende Aussage:

exec_SELECT_mm_query führt die Abfrage aus, die Query erhälst Du mit
SELECT_mm_query

beelzebub ·

Ok, ich bin zu .... für die Typo3 Datenbankabfragen.
Ich möchte lediglich wissen wieviele Einträge für bestimmte Newskategorien vorhanden sind.

PHPMYADMIN SQL_ABFRAGE über 3 Tabellen funzt bestens

SELECT tt_news.uid  FROM `tt_news`, tt_news_cat_mm,tt_news_cat where tt_news_cat.title='Ballsport'  AND tt_news_cat_mm.uid_local=tt_news.uid AND tt_news_cat_mm.uid_foreign=tt_news_cat.uid

Meine Typo3variante:

$res = $GLOBALS['TYPO3_DB']->exec_SELECT_mm_query(
'tt_news.uid',       
'tt_news',    
'tt_news_cat_mm',     
'tt_news_cat',    
'tt_news_cat.title='.$val.'  AND tt_news_cat_mm.uid_local=tt_news.uid AND tt_news_cat_mm.uid_foreign=tt_news_cat.uid'

wobei $val Der Kategoriename ist.

Meine Überprüfung ob $res einen Inhalt hat
if (!$res)
{
echo "ist nix";
}

ergibt die Ausgabe is nix