$db->next_record();
$db->next_record();
hallo,
kann mir jemand ganz kurz erklären, was genau die methode bzw. die funktion "$db->next_record();" macht?
$db sei dabei ein zweidimensionaler array.
wird in die nächste zeile gesprungen?
vielen dank,
matze
kann mir jemand ganz kurz erklären, was genau die methode bzw. die funktion "$db->next_record();" macht?
$db sei dabei ein zweidimensionaler array.
wird in die nächste zeile gesprungen?
vielen dank,
matze
mhhh,
er springt also in eine neue reihe, wenn das jeweilige ergebnis ein neuen wert hat.
gibt es auch einen befehl, bei dem definitiv jede zeile ausgelesen wird? (next_row oder so)
hintergrund???
bei mir läßt er nämlich immer ein "content"-element mit gleicher "typeid" aus und springt zum nächsten.
thanks,
matze
er springt also in eine neue reihe, wenn das jeweilige ergebnis ein neuen wert hat.
gibt es auch einen befehl, bei dem definitiv jede zeile ausgelesen wird? (next_row oder so)
hintergrund???
bei mir läßt er nämlich immer ein "content"-element mit gleicher "typeid" aus und springt zum nächsten.
thanks,
matze
die sql-abfrage funktioniert fehlerfrei. allerdings schaffe ich es nicht die drei elemente auszulesen, die ich will. ein element wird immer übersprungen.
sql-abfrage (eigentlich auf mehrere artikel)
-> ergebnis ist der array $db mit folgenden inhalten:
nun habe ich folgende abfrage gemacht, um die variablen $projekt["titel"], $projekt["teaser"] und "$projekt["inhalt"] für die jeweiligen artikel zu füllen:
die variable $projekt["teaser"] wird immer mustergültig gefüllt.
von den zwei variablen $projekt["titel"] und "$projekt["inhalt"] wird aber immer nur eine von beiden gefüllt. (die verschachtelte abfrage muss ich ja machen, da sie die gleiche "typeid" haben.)
nach meinem verständnis, müsste er aber alle drei variablen füllen.
krübelnde grüße,
matze
sql-abfrage (eigentlich auf mehrere artikel)
Code: Alles auswählen
SELECT * FROM con_content WHERE idartlang = 9
-> ergebnis ist der array $db mit folgenden inhalten:
Code: Alles auswählen
idartlang / idtype / typeid / value
9 / 2 / 1 Das ist Inhaltstext. bla bla bla
9 / 1 / 1 Überschrift U1
9 / 2 / 2 Teasertext
Code: Alles auswählen
$j=0;
while ($j < $db->num_rows())
{
$db->next_record();
switch ($db->f("typeid"))
{
case 1:
switch ($db->f("idtype"))
{
case 1:
$projekt["titel"][$anz] = $db->f("value");
break;
case 2:
$projekt["inhalt"][$anz] = $db->f("value");
break;
}
break; // end case 1
case 2:
$projekt["teaser"][$anz] = $db->f("value");
break;
} // end switch
$j++;
} // end while
von den zwei variablen $projekt["titel"] und "$projekt["inhalt"] wird aber immer nur eine von beiden gefüllt. (die verschachtelte abfrage muss ich ja machen, da sie die gleiche "typeid" haben.)
nach meinem verständnis, müsste er aber alle drei variablen füllen.
krübelnde grüße,

matze
-
- Beiträge: 74
- Registriert: Fr 7. Nov 2003, 11:35
- Wohnort: München
- Kontaktdaten:
versuch das mal: (ich habs aber nicht getestet)
Code: Alles auswählen
$j=0;
while ($j < $db->num_rows())
{
$db->next_record();
if ($db->f("typeid") == 1) {
if ($db->f("idtype") == 1) {
$projekt["titel"][$anz] = $db->f("value");
}
if ($db->f("idtype") == 2) {
$projekt["inhalt"][$anz] = $db->f("value");
}
}
if ($db->f("typeid") == 2) {
$projekt["teaser"][$anz] = $db->f("value");
}
$j++;
} // end while
-
- Beiträge: 174
- Registriert: Mi 22. Okt 2003, 11:08
- Kontaktdaten:
Hi matze!
Ich schlage Dir mal folgendes vor:
Weil next_record() doch schon nen boolean zurückgibt, falls es einen weiteren Wert gibt, brauchst Du doch nicht die Zeilen zu zählen!
Gruß,
Black Widow
Ich schlage Dir mal folgendes vor:
Code: Alles auswählen
$sql_query = "SELECT * FROM con_content WHERE idartlang = 9";
$db->query($sql_query);
while($db->next_record())
{
switch ($db->f("typeid"))
{
case 1:
{
switch ($db->f("idtype"))
{
case 1:
{
$projekt["titel"][$anz] = $db->f("value");
break;
}
case 2:
{
$projekt["inhalt"][$anz] = $db->f("value");
break;
}
}
break; // end case 1
}
case 2:
{
$projekt["teaser"][$anz] = $db->f("value");
break;
}
} // end switch
}
Gruß,
Black Widow
hallo alle miteinander,
zunächst einmal ein großes dankeschön für den tollen support.
hier eine kurze versuchsauswertung:
_ code mit if-abfrage (emergence): funktioniert
_ code mit switch (black widow): funktioniert
_ mein vorschlag: funktioniert auch
auflösung:
ich dödel habe vergessen eine abfrage auszukommentieren, die vor der while-schleife gemacht wird:
$db->next_record();
$head = $db->f("value");
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head .= '..';
} // end if
ich schätze, da dort schon "next_record()" aufgerufen wurde,
startete die abfrage in der while-schleife ständig mit dem zweiten anstatt mit dem ersten content-element.
nichts desto trotz, jetzt funktionierts!
vielen dank an alle!
matze, der glückliche
zunächst einmal ein großes dankeschön für den tollen support.
hier eine kurze versuchsauswertung:
_ code mit if-abfrage (emergence): funktioniert
_ code mit switch (black widow): funktioniert
_ mein vorschlag: funktioniert auch
auflösung:
ich dödel habe vergessen eine abfrage auszukommentieren, die vor der while-schleife gemacht wird:
$db->next_record();
$head = $db->f("value");
if ( strlen($head) > "CMS_VALUE[3]") {
$head = substr($head, 0, "CMS_VALUE[3]");
$head .= '..';
} // end if
ich schätze, da dort schon "next_record()" aufgerufen wurde,
startete die abfrage in der while-schleife ständig mit dem zweiten anstatt mit dem ersten content-element.
nichts desto trotz, jetzt funktionierts!
vielen dank an alle!
matze, der glückliche

Versuch es doch über die API, mit den Klassen Article und ArticleCollection, ich denke das bringt dir recht viel:
http://contenido.de/forum/viewtopic.php?t=2087
http://contenido.de/forum/viewtopic.php?t=2087