Ergebnis 1 bis 7 von 7

Thema: Zugriff mit TAL auf ZSQL gibt keine Werte zurück

  1. #1
    Azubi(ne)
    Registriert seit
    28.06.2007
    Beiträge
    60
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Zugriff mit TAL auf ZSQL gibt keine Werte zurück

    Hi all,

    ich versuch mir gerade TAL usw anzueignen, bin jetzt aber auf ein Problem gestoßen das ich trotz Doku nicht gelöst bekommen. Vielleicht sehe ich vor lauter Bäumen auch den Wald nicht mehr.

    Also, ich habe zwei Tabellen in einer MySQL DB. Die eine wird erfolgreich durchlaufen und die Daten in einer Spalte dargestellt (ZSQL Methode).

    Nun sind in der zweiten Tabelle daten die mit einem Datensatz der ersten zusammenhängen. Diese sollen ausgelesen werden und dargestellt werden.

    Habe dazu dies entworfen:

    Code:
       <td tal&#58;define="userid kunden/id">
        <span tal&#58;repeat="test context/domains_kundenid/userid">
    	<span tal&#58;content="test/id"></span>
        </span>
       </td>
    tal:define definiert die Variable, dies habe ich schon geprüft, darin steht die richtige ID. Mit Repeat will ich dann durch die Datensätze der zweiten Tabelle gehen und diese darstellen.
    Doch es kommt folgender Fehler: Iterator does not support <Shared.DC.ZRDB.DA.Traverse object at 0xbaf8b4c>

    Die Z_SQL Methode domains_kundenid funktioniert, ein test im ZMI spuckt die richtigen Werte aus.

    Wo liegt mein Fehler? Ideen?

    Gruß
    GomezR
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hmmm...du kannst mal schauen was er überhaupt zurückliefert. Es gibt Rückgabewerte (ich glaube Brains waren das) sind im HTML nicht sichtbar. Jedoch kann man sie sichtbar machen.
    Code:
    <td tal&#58;define="userid kunden/id">
        <span tal&#58;repeat="test context/domains_kundenid/userid">
       <span tal&#58;content="python&#58;'result&#58; ' + str&#40;test.id&#41;"></span>
        </span>
       </td>
    NOTE! Evtl. muss es bei dir auch str(test.id()) lauten. Das merkst du aber ja dann.

    Torty
    "Carpe Diem" powered by positiv Feelings

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    28.06.2007
    Beiträge
    60
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Danke für die Antwort, Torty.

    Bei tal:repeat komme ich leider nicht soweit, es kommt der Fehler: Fehler: Iterator does not support. !?!

    Deshalb habe ich dies erstellt:

    Code:
       <td tal&#58;define="userid kunden/id">
       <span tal&#58;define="test context/domains_kundenid/userid">
         <span tal&#58;content="python&#58;'result&#58; ' + str&#40;test.id&#41;"></span>
       </span>      
       </td>
    damit bekomme ich dann dieses Ergebnis: result: domains_kundenid. Also nur den Namen/id der ZSQL Methode.
    Ich denke in test sind keine Daten aus der Tabelle. Irgendwas läuft da falsch.

    Habe ich noch andere Möglichkeiten den Wert der ersten Tabelle (kunden/id) an die zweite Abfrage zu übergeben und so werte zurückzubekommen?

    Vielen Dank im voraus

  4. #4
    Interessierte/r Avatar von derstappenit
    Registriert seit
    04.09.2006
    Ort
    Leipzig
    Beiträge
    132
    Danke
    0
    Bekam 3 mal "Danke" in 3 Postings

    Standard

    warum machst du so etwas?
    Wenn du 2 Tabellen hast, dann geht das doch alles über eine SQL-Abfrage. So das du nur eine Liste zurück bekommst und diese dann in deinem Template anzeigst. Bringen deine ZSQL-Methoden die richtigen Ergebnisse?

    Poste bitte mal deine Tabellen, damit wir besser sehen was du machen möchtest.

    Gruß Maik

  5. #5
    Azubi(ne)
    Themenstarter

    Registriert seit
    28.06.2007
    Beiträge
    60
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Also ich habe zwei Tabellen:

    Beispiel:

    Kunden
    ID, Name, Ort, ....

    Domains
    ID, Domainname, Kundenid

    In meinem Template möchte ich nun in einer Zeile diese Daten ausgeben:

    Kunden.id, Kunden.Name, Kunden.ort, Domains.Domainname1,Domainname2,Domainname3

    Ein Kunde kann ja mehrere Domains haben.

    Wende ich z.B. dieses SQL an:

    SELECT kunden.* , domains.kundenid, domains.domainname
    FROM kunden, domains
    WHERE kunden.id = domains.kundenid
    AND kunden.id =<dtml-sqlvar userid type=int>

    bekomme ich ja aber für jede Domain auch nochmal sämtliche Kundendaten, was ja auch nicht optimal ist.

    Gruß

  6. #6
    Interessierte/r Avatar von derstappenit
    Registriert seit
    04.09.2006
    Ort
    Leipzig
    Beiträge
    132
    Danke
    0
    Bekam 3 mal "Danke" in 3 Postings

    Standard

    das ist aber besser als das was du machst, du kannst jetzt ja einfach die Kunden Daten nur einmal ausgeben, das die daten in deinem Suchergebniss mehrfach m9it drinn sind ist ja egal.

    Aber es gibt bestimmt auch SQL-Querys die es so zurück geben wie du es brauchst. Da muss du mal schauen, eine Datenbank ist dabei aber immer flexibler und sollte dafür verwendet werden, das Ergebnis sauber zurück zu geben.

    Es macht keinen Sinn, das Suchergebnis im Programmcode nochmal zu bearbeiten, da dies immer langsamer ist, als wenn die DB gleich das richtige zurück gibt.


    Gruß Maik

  7. #7
    Azubi(ne)
    Themenstarter

    Registriert seit
    28.06.2007
    Beiträge
    60
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Habe das Problem gelöst, obs elegant ist, weiß ich nicht.

    Gelernt habe ich aber etwas, Variablen müssen an ZSQL Methoden explizit übergeben werden:
    Code:
    <td tal&#58;define="userid kunden/id">
         <span tal&#58;repeat="row python&#58; here.domains_kundenid&#40;userid=userid&#41;">
           <span tal&#58;replace="row/domainname"></span>
     
         </span>   
       </td>

Ähnliche Themen

  1. ZSQL Parametrisieren?
    Von glmuelle im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 0
    Letzter Beitrag: 02.09.2007, 19:27
  2. CSS Gibt keine Bilder bei Opera ... aus. Beim IE ist OK
    Von Area51sbk im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 16.07.2007, 10:37
  3. Applet Werte übergeben und Werte zurückgeben
    Von martin80 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 08.03.2007, 19:11
  4. get_class gibt "falsche" Namen zurück
    Von Torty im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 09.06.2005, 00:12
  5. Wie ... es gibt keine dummen Fragen?
    Von dumme Frage im Forum Das Forum für Spiele, Fun & Jokes
    Antworten: 0
    Letzter Beitrag: 28.07.2003, 10:14

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •