php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.05.2005, 21:47  
Gast
 
Beiträge: n/a
Standard PEAR::DB und Smarty limit_query ausgabe leer

So ich will die letzten 5 newstitle aus meiner db.
PEARB hat zwar ein getAll aber ich möchte limitquery benützten, allerdings liefert dieser mir kein Array sonder irgendwas anderes.
Wie kriege ich die newstitle also in meine foreach schleife in meiner smartytemplate?
PHP-Code:
<?php
$res 
$db->limitQuery('SELECT title FROM news ORDER BY date DESC'05);

// Hier muss ein fetchinto oder sowas rein allerdings ohne while schleife ich hab kein plan wie. ne einfach loop ausgabe in meiner tpl. mit Getall gehts.

$t->assign('data'$res);
$t->assign('PAGETITLE''Hauptseite');
$t->assign('WELCOME''Wilkommenstext!');
$t->display('index.htm');
?>
template
Code:
{include file="header.htm"}
{$WELCOME}
{foreach from=$data item=news}
{$news.title}
{/foreach}

{include file="footer.htm"}
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 09.05.2005, 21:58  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hmmm... hast du denn überhaupt mal geguckt, was print_r($res) zurückgibt?

übrigens ist das wort 'date' ein reserviertes wort in mysql - du könntest also sogar einen syntax-fehler in der abfrage haben.
axo ist offline  
Alt 09.05.2005, 22:09  
Gast
 
Beiträge: n/a
Standard

Der Rückgabewert ist ein DB_result-Objekt (oder ein Fehler)
siehe auch:
http://pear.php.net/package/DB/docs/...thodlimitQuery
http://pear.php.net/package/DB/docs/...DB_result.html
http://pear.php.net/package/DB/docs/...#methodisError

PHP-Code:
<?php

require 'DB.php';
$dsn '...://...:...@.../...';
$options = array();

$db =&DB::connect($dsn$options);
if( 
DB::isError($db) )
    die( 
$db->toString() );
    
$query 'SELECT title FROM news ORDER BY date DESC';
$res $db->limitQuery($query05);
if( 
DB::isError($res) )
    die( 
$res->toString() );
    
while( 
$row=$res->fetchRow() )
    echo 
$row[0], "\n"
?>
 
Alt 10.05.2005, 18:29  
Gast
 
Beiträge: n/a
Standard

Der Query mit der Spalte funktioniert. Mit dem die->getMessage() bekomme ich keinen Syntaxfehler. Der Query ist korrekt.
getAll liefert mir ein Array zurück. Allerdings möchte ich das beschränken und nutze LimitQuery, welches mir ein Result gibt welches ich in meiner smarty template loopen will

@Volker
dein DB query ist ja ganz hübsch allerdings mit echo komm ich nicht weit. Es soll schon in die Template.
 
Alt 10.05.2005, 23:48  
Gast
 
Beiträge: n/a
Standard

Das eigentliche Skript ist ja auch Dein Prolem und nicht meines.
Aber ich bin sicher, Du schaffst die Anpassung vom "echo"-Beispiel zum "template zuweisen"-Code.

Kernaussage ist:
- Rückgabewert von limitQuery() ist ein DB_result oder DB_error
- DB::isError() ermittelt, ob es ein DB_error-Objekt ist
- ist es ein DB_result-Objekt, kann per $obj->fetchRow() der jeweils nächste Datensatz abgeholt werden
- gibt es keinen weiteren Datensatz, liefert fetchRow() false zurück
- while( Bedingung ) bricht ab, wenn Bedingung zu false ausgewertet wird
PHP-Code:
<?php
...

while( 
$row=$res->fetchRow() )
{
    
// hier entspricht $row dem aktuellen per fetchRow() abgeholten Datensatz
    // tu damit, was immer Du willst
    // ausgeben, irgendwas zuweisen, verändern, irgendwas
}

...
?>
 
Alt 11.05.2005, 17:40  
Gast
 
Beiträge: n/a
Standard

das man in der While Schleife einiges drehen kann is klar. allerdings soll dieses While in der smarty template stattfinden. Habe es eben so gelöst das in der while schleife ein Array gefüllt wird. Na ja ist vielleicht nicht schlecht wenn ich mal was mitreinpacken will.
 
Alt 11.05.2005, 18:42  
Gast
 
Beiträge: n/a
Standard

Zitat:
Habe es eben so gelöst das in der while schleife ein Array gefüllt wird.
Wie denn sonst? Weiss Smarty mit Datenbanken umzugehen und templates automagisch zu füllen?
Das ist eine ernstgemeinte Frage, da ich mich mit Smarty nicht auseinandergesetzt habe.
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Smarty + MySQL = immer falsche Ausgabe m0use` PHP Tipps 2006 44 21.11.2008 20:30
Was ist Aufgabe des Templates (Smarty), was nicht? agrajag PHP Tipps 2007 8 24.02.2007 13:19
Sortierung der Ausgabe PHP-Fortgeschrittene 3 08.10.2004 09:22
Smarty ausgabe in eine Var PHP Tipps 2004 0 22.09.2004 14:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
foreach schleife smarty begrenzen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.