itemsProcFunc versucht auf felder zuzugreifen, die es nicht gibt?! [Gelöst]

  • TW TW
    Jedi-General
    0 x
    1560 Beiträge
    0 Hilfreiche Beiträge
    21. 01. 2008, 09:48

    Hallo ihr helfenden Geister,

    folgendes Problem habe ich.

    Für eine Extension habe ich per flexforms und über itemsProcFunc ein auswahlfeld erstellt! soweit kein problem - ist auch nicth das erste mal das ich sowas mache.

    das einbinden von werten klappt, das abspeichern auch. allerdings bekomme ich oberhalb der eingabemaskee im backend folgende fehlermeldung!

    ---
    Table 'xxx.sys_language' doesn't exist This may indicate a table defined in tables.php is not existing in the database!Table 'xxx-xxx.fe_groups' doesn't exist This may indicate a table defined in tables.php is not existing in the database
    ---

    ich ziehe mir mit der itemsProcFunc daten aus einer externen tabelle in typo3 rein. wie gesagt alles kein ding, nur bekomme ich diese fehlermeldung und ich weiss nicht wo die herkommt, da na klar in einer fremden db es keien fe_groups gibt und schn gar keine sys_language...

    die funktion mit der ich mir daten hole sieht wie folgt aus..

    1. function user_addFieldCamper ($config) {
    2.  
    3. $this->CONNECT = mysql_connect($this->db_2host,$this->db_2user,$this->db_2pass) or die("Verbindung zur Datenbank fehlgeschlagen");
    4. mysql_select_db($this->db_2name,$this->CONNECT);
    5. $query = "select * from yyy where parent='yyy'";
    6. $res = mysql_query($query);
    7.  
    8.  
    9.  
    10. $optionList = array();
    11.  
    12.  
    13. while ($row = mysql_fetch_array($res)){
    14. $optionList []= array(0 => utf8_encode($row['label']), 1 => $row['fieldid']);
    15. }
    16.  
    17. $config['items'] = array_merge($config['items'],$optionList);
    18. return $config;
    19.  
    20. }

    aufgerufen über

    [TS]<camper>
    <TCEforms>
    <displayCond>FIELD:mode:=:camper</displayCond>
    <label>LLL:EXT:xx/locallang.xml:flexform.sheets.general.camper.0</label>
    <config>
    <type>select</type>
    <multiple>1</multiple>
    <size>25</size>
    <maxitems>100</maxitems>
    <autosizemax>5</autosizemax>
    <allownonidvalues>1</allownonidvalues>
    <selectedListStyle>width:250px</selectedListStyle>
    <itemListStyle>width:250px</itemListStyle>
    <items type="array"></items>
    <itemsProcFunc>tx_xxx_pi2->user_addFieldCamper</itemsProcFunc>
    </config>
    </TCEforms>
    </camper>
    [/TS]

    danke im voraus...
    typo3 version 4.1.5


  • 1
  • just2b just2b
    TYPO3-Yoda
    0 x
    18741 Beiträge
    2 Hilfreiche Beiträge
    21. 01. 2008, 23:17

    Hallo,

    puhh das glauben fällt ja fast schwer... wenn du die itemproc rausnimmst ist alles gut? dann könnte man in der itemproc sicher noch schauen woher der fehler genau kommt.

    generell deutet ja der fehler auf das hin was gesagt wird > Tabelle für Mehrsprachigkeit bzw fe-groups konfiguriert, aber die Felder sind nicht vorhanden: Ist es denn so?

    lg georg

  • jenses jenses
    Flash Gordon
    0 x
    3087 Beiträge
    106 Hilfreiche Beiträge
    21. 01. 2008, 23:46

    [quote="TW"]
    da na klar in einer fremden db es keien fe_groups gibt und schn gar keine sys_language...
    [/quote]
    Nee, klar.
    Aber die Frage ist doch: existieren die Felder in der Tabelle, die du per BE befüllen willst? ;)

  • TW TW
    Jedi-General
    0 x
    1560 Beiträge
    0 Hilfreiche Beiträge
    22. 01. 2008, 15:59

    hi zusammen und danke fürs feedback....

    also wie ich mittlerweile herausgefunden habe, war mein code völlig in ordnung. nun ich hatte schon am meinem verstand gezweifelt.
    das eigentliche problem war und ist finde ich etwas skuril.

    ich habe für den zugriff auf die externe db denselben user genommen, wie für den zugriff auf die typo3 db - da beide die selben rechte für die dbs haben. jedoch ist genau das das problem.

    anscheinend kommt typo3/mysql wie auch immer, völig ins schwitzen, wenn man den aufruf durch die itemsprocfunc so durchzieht wie ich das probiert habe.

    das script hat sich dann mit den db verhaspelt - ist quasi ein wenig durcheinander gekommen.

    nun hab nen neuen user angelegt mit denselben rechten für die dbs.
    also zwei unterschiedliche db user

    und siehe da - alles war gut :)
    aber bis ich da drauf gekommen bin - nunja #angry#

    gruß
    tw

  • 1