CodeForum.chc-worker.ch Foren (Partner Site)Text Db APIAntworten ( Re: PHP Error: [8] Object of class ResultSet could not be converted to int [Line:970 )
Antworten
Warnung: In diesem Thema wurde seit 120 Tagen nicht mehr geschrieben.
Sollten Sie Ihrer Antwort nicht sicher sein, starten Sie ein neues Thema.
Name:
E-Mail:
Betreff:
Symbol:
FettKursivUnterstrichenDurchgestrichen|GlühenSchattenMarquee|Vorformatierter TextLinksbündigZentriertRechtsbündig|Horizontale Linie|SchriftgrößeSchriftart
Flash einfügenBild einfügenLink einfügenE-Mail Adresse einfügenFTP-Link einfügen|Tabelle einfügenTabellenzeile einfügenTabellenspalte einfügen|SuperscriptSubscriptSchreibmaschine|Code einfügenZitat einfügen|Liste einfügen
Smiley Zwinkernd Lächelnd Grinsend Ärgerlich Traurig Schockiert Cool Huch Augen rollen Zunge Verlegen Schweigend Unentschlossen Küsschen Weinen Teuflisch Azn [Mehr Smileys]
Visuelle Verifizierung:
Geben Sie die angezeigten Buchstaben aus dem Bild ein
Geben Sie die angezeigten Buchstaben aus dem Bild ein
+ Erweiterte Optionen...

Shortcuts: mit Alt+S Beitrag senden oder Alt+P für Vorschau



Zusammenfassung
Datum/Zeit: 21. Januar 2010, 14:00:59
Autor: dr_snuggles
Ich glaube hier ist der Fehler in der txt-db-api:
Code:
for(;$i<count($resultSets);++$i) {
  if($resultSets[$i] != 0) {
    $rsMaster=$rsMaster->joinWithResultSet($resultSets[$i]);
  }
}
In database.php in Zeile 970 wird auf " != 0" abgeprüft und das scheint dem PHP nicht zu gefallen.

Vielleicht kannst du mal statt:
Code:
if($resultSets[$i] != 0) {
dasd hier probieren:
Code:
if(isset($resultSets[$i])) {

Super, das funktioniert.
Ich geb Dir ein virtuelles Bier aus dafür.

Gruß
dr_snuggles
Datum/Zeit: 15. Januar 2010, 02:47:20
Autor: SuperMario
Ich glaube hier ist der Fehler in der txt-db-api:
Code:
for(;$i<count($resultSets);++$i) {
  if($resultSets[$i] != 0) {
    $rsMaster=$rsMaster->joinWithResultSet($resultSets[$i]);
  }
}
In database.php in Zeile 970 wird auf " != 0" abgeprüft und das scheint dem PHP nicht zu gefallen.

Vielleicht kannst du mal statt:
Code:
if($resultSets[$i] != 0) {
dasd hier probieren:
Code:
if(isset($resultSets[$i])) {
Datum/Zeit: 13. Januar 2010, 16:50:44
Autor: dr_snuggles
Ok, kritik wohlwollend angenommen, ändert aber nix an der Fehlermeldung.
Das Problem bleibt weiterhin bestehen.

Gruß
dr_snuggles
Datum/Zeit: 13. Januar 2010, 15:52:32
Autor: Gobo
Ja, es funktioniert, aber wenn wir schon klugscheissen, dann auch richtig. Durch das Weglassen der Stringbegrenzer im Array versucht PHP erst, name als Konstante aufzulösen und deren Wert für den Zugriff als Index für den Array zu nehmen. Wenn Du alle Warnungen einschaltest, bekommst Du auch eine entsprechende Meldung.

Daher stammt wahrscheinlich auch die ursprüngliche Fehlermeldung. Du versuchst bestimmt, auf ein assoziatives Array zuzugreifen, lässt aber bei einem String-Index die Anführungszeichen weg und PHP löst den Bezeichner als Integer auf, der im assoziativen Array nun mal nicht gefunden wird.
Datum/Zeit: 13. Januar 2010, 14:00:36
Autor: dr_snuggles
Ok, das mit der WHERE Bedingung ist korrekt und hab ich auch schon mit eingebaut, klappt aber dennoch nicht.
Die Fehlermeldung wird auf jeden Fall ausgegeben sobald ich versuche eine Abfrage über mehr als eine Tabelle zu machen.

Zitat
Code:
echo "<td><a href='#'>$record[name]</a></td>\n";

Das klappt so nicht.

Probier es mal so:
Code:
echo "<td><a href='#'>" . $record['name'] . "</a></td>\n";

D.h. die Array-Angabe aus dem String raus und mit "." Punkt zusammensetzen und bei Angabe des Array-Keys mußt du glaube ich Hochkommas drumrum schreiben.

<Klugscheissermodus an>  Grinsend
Funktioniert sehr wohl, da ich die Echo Anweisung in doppelte Anführungszeichen schreibe werden alle Variablen/Arrays innerhalb dieser Anführungszeichen aufgelöst.
Die Hochkommas sind auch nicht wirklich notwendig.
</ Klugscheissermodus aus>  Grinsend


Dennoch vielen Dank für Deine Antwort auch wenn sie nicht wirklich bei meinem Problem hilft.

Ich habe die beiden Tabellen getrennt abgefragt was jetzt auch nach einigem hin und her ganz gut funktioniert.

Ich muss sagen ich bin absolut Begeistert von der txt-db-api. So etwas hab ich schon lange gesucht.

Gruß
dr_snuggles


Datum/Zeit: 11. Januar 2010, 17:04:24
Autor: SuperMario
Du bist dir aber schon im klaren, daß du hier ein Kreuzprodukt erstellt. Du solltest deine beiden Tabellen schon irgendwie miteinander verknüpfen/verjoinen, d.h. eine WHERE Bedingung hinzufügen. Wenn deine beide Tabellen nichts miteinander zu tun haben, dann solltest du sie am besten beide getrennt abrufen.

Code:
echo "<td><a href='#'>$record[name]</a></td>\n";
Das klappt so nicht.

Probier es mal so:
Code:
echo "<td><a href='#'>" . $record['name'] . "</a></td>\n";
D.h. die Array-Angabe aus dem String raus und mit "." Punkt zusammensetzen und bei Angabe des Array-Keys mußt du glaube ich Hochkommas drumrum schreiben.
Datum/Zeit: 08. Januar 2010, 17:28:51
Autor: dr_snuggles
Hallo,

ich möchte eine Abfrage aus zwei Tabellen in einer Datenbank machen doch leider kommt immer wieder der obige Fehler.

Hier einmal ein Codeschnipsel:

Code:

   $db = new Database(txt_DB);  // eine Instanz der Datenbank erstellen
    $result = $db->executeQuery("SELECT * FROM content, menu");
    while ($result->next()) {
        $record = $result->getCurrentValuesAsHash();
        echo "<tr>\n";
        echo "<td><a href='#'>$record[name]</a></td>\n";
        echo "<td>$record[menu_name]</td>\n";                   // hier soll eigentlich der Name des Menüpunktes erscheinen
        echo "<td>$record[content_active]</td>\n";
        echo "<td>$record[content_id]</td>\n";
        echo "<td>$record[valid_from]</td>\n";
        echo "<td>$record[valid_to]</td>\n";
        echo "<td><a href='#'><img src='' title='edit' alt='edit'></a></td>\n";
        echo "<td><a href='#'><img src='' title='del' alt='del'></a></td>\n";
        echo "</tr>\n";
     }

und hier die einzelnen Tabellen:
[content]
Code:
c_id#content#parent_id#content_active#content_id#valid_from#valid_to#name
inc#str#int#str#int#int#int#str
###true####
1#Content1#0#true#0#1262304000#1275091200#startseite
2#Content2#0#true#1#1262304000#1275091200#startseite
3#Content3#1#true#0#1262304000#1275091200#weitereseite

und
[menu]
Code:
id#menu_name#menu_id#active
inc#str#inc#str
###true
1#Startseite#0#true
2#Speisekarte#1#true
3#Reservierungen#2#true
4#Kontakt#3#true
5#Impressum#4#true

Ich steh ziemlich aufm Schlauch und seh evtl. den Wald vor lauter Bäumen nicht.
Würde mich sehr freuen wenn mir jemand auf die Sprünge helfe könnte.

Gruß
dr_snuggles
 

Partner Sites

Werbung

TinyPortal v1.0.5 beta 1© Bloc