php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 28-03-2005, 14:26
sniper.de
 Junior Member
Links : Onlinestatus : sniper.de ist offline
Registriert seit: Feb 2004
Beiträge: 90
sniper.de ist zur Zeit noch ein unbeschriebenes Blatt
sniper.de eine Nachricht über ICQ schicken
Standard Gallery: Array aus DB wie abarbeiten (INDEX fehlt?)

hallo liebe Genossen

Ich sitze seit ein paar Stunden an einer Gallerie für die Webseite meiner Schule, und habe nun verschiedene Lösungsansätze probiert, um die Bilder aus der Datenbank auszulesen und zeilenweise in jeweils 3 Spalten anzeigen zu lassen.

BILD1 | BILD2 | BILD3
BILD4 | BILD5 | BILD6
BILD7 | BILD8

Die Bildinfos werden aus der Datenbank gelesen, das Thumbnail sofern vorhanden dann aus dem jeweiligen Ordner der Kategorie gelesen.

Ich habe 2 Lösungsansätze probiert, wobei einer halbwegs funktioniert, dor aber das Problem besteht, dass nur dann die Reihe Bilder angezeigt wird, wenn es durch 3 Teilbar ist.

Folgender Code ist für meinen ersten Ansatz vorhanden:
PHP-Code:
// Kategorie vorhanden / laden
    
$kat $db->query_first("SELECT ordner, ID, kategoriename 
FROM kategorie WHERE ID = '"
.$_GET['katid']."' AND images = '1' ");    
    

    
// Daten aus der Datenbank holen
    
$result $db->query("SELECT bilder.bildid AS bildid,
bilder.dateiname AS bildname, bilder.dateigroesse AS bildfilesize, 
bilder.thumbnail AS bildthumbnail,

            bilder.bilddescription AS bilddescription, bilder.hits AS hits
            FROM bilder

            WHERE bilder.kategorie_id = '"
.$kat['ID']."' ORDER BY bilder.dateiname ASC ");
        
    
//$result = $db->query($sql);
    //$kat2 = $db->fetch_array($result);

    // Anzahl aller bilder
    
$anzahlpics $db->num_rows($result);
    
    
// Gibt es überhaupt bilder?
    
if ($anzahlpics == 0$gallery_kat_main $tpl->fetch('no_gallery_pic.html');
    
    
// Spalten
    
$spalten 3;
    
// Zeilen
    
$zeilen = ( $anzahlpics $spalten )
 ? ( ( 
$anzahlpics - ( $anzahlpics $spalten ) ) / $spalten )
:
$anzahlpics $spalten;
    
    
// Laufvariable
    
$i 0;
    
    while ( 
$katpics $db->fetch_array($result) )
    {
        
// es sind bestimmte Zeilen
        // Also laufen wir die Schleife durch und
        // machen nach jeder Zeile eine neue auf
        // und setzen alles auf Anfangswerte
        
        // Thumbnail vorhanden?
        
if ($katpics['bildthumbnail'] == '' )
        {
            
$bildthumbnail 'no_preview.gif';
        }
        else
        {
            
$bildthumbnail $kat['ordner'].'/'.$katpics['bildthumbnail'];
        }
        
        
// Bild laden und Template verarbeiten
        
        
$assign = array(

                                    
'picsize' => sizeoutput$katpics['bildfilesize'] ),
                                    
'url' => $conf['url'],
                                    
'hits' => $katpics['hits'],
                                    
'bildid' => $katpics['bildid'],
                                    
'bildname' => $katpics['bildname'],
                                    
'katordner' => $kat['ordner'],
                                    
'bildthumbnail' => $bildthumbnail
                                    
);
        
$tpl->assign($assign);                            
                                    
        
$mitte $tpl->fetch('gallery_kat_main.html');

        
$td .= "\t\t<td class=\"hebel\">" $mitte "</td>\n";
        
        
$i++;
        
        if ( 
$i == $spalten)
        {
            
// Alle Spalten voll, also neue Zeile
            
$i 0;
            
$gallery_kat_main .= "\t<tr align=\"center\" 
onMouseOver=\"this.bgColor='"
.$conf['bg_main2']."'\"
 
onMouseOut=\"this.bgColor='"
.$conf['bg_main']."'\">\n" $td "\t</tr>\n";
            
$td '';
        }
        
    
    }
    

// HIER erfolgt dann ausgabe über Smarty 
Bei diesem Ansatz habe ich das Problem, dass nur dann eine neue Zeile aufgerufen wird, wenn die Schleife 3 mal durchlaufen wurde, also werden bei 26 Bildern eben nur 24 angezeigt, da der rest nur 2 bilder sind und die for-Schleife nicht aufgerufen wird.



###############################

Dann habe ich noch einen zweiten Ansatz, den ich irgendwo mal aufgegriffen hatte.

Dort wird alles per FOR-Schleife abgearbeitet, bedingt aber ein ARRAY.
Da ich die Daten ja mit FETCH_ARRAY auslese, habe ich eines, aber trotzdem funktioniert es nicht, ich denke es liegt daran, dass ich keine INDEXES habe.

Code hierzu:
PHP-Code:
// Kategorie vorhanden / laden
    
$kat $db->query_first("SELECT ordner, ID, kategoriename
FROM kategorie WHERE ID = '"
.$_GET['katid']."' AND images = '1' ");    
    

    
// Daten aus der Datenbank holen
    
$result $db->query("SELECT bilder.bildid AS bildid, 
bilder.dateiname AS bildname, bilder.dateigroesse AS bildfilesize, 
bilder.thumbnail AS bildthumbnail,


    bilder.bilddescription AS bilddescription, bilder.hits AS hits
    FROM bilder

    WHERE bilder.kategorie_id = '"
.$kat['ID']."' ORDER BY bilder.dateiname ASC ");
        
    
//$result = $db->query($sql);
    //$kat2 = $db->fetch_array($result);

    // Anzahl aller bilder
    
$anzahlpics $db->num_rows($result);
    
    
// Gibt es überhaupt bilder?
    
if ($anzahlpics == 0$gallery_kat_main =
 
$tpl->fetch('no_gallery_pic.html');
    
    
// Spalten
    
$spalten 3;
    
// Zeilen
    
$zeilen = ( $anzahlpics $spalten )
?( ( 
$anzahlpics - ( $anzahlpics $spalten ) ) / $spalten )
:
$anzahlpics $spalten;
    

    
$katpics mysql_fetch_array($resultMYSQL_NUM);
/*    $z = 0;
    while ( $katpics2 = mysql_fetch_array($result, MYSQL_NUM) )
    {
        $katpics[$z++] = $katpics2;
    
    }*/
    
    
echo $zeilen."<br>".$spalten."<br>".$anzahlpics;
    
    

        
// Daten verabeiten

        
        
$tr '';
        
        
// Zeile für Zeile
        
for( $i 0;$i $zeilen; ++$i )
        {
            
            
// Spalte für Spalte
            
            // Spalten auf leer setzen
            
$td '';
            for( 
$ii 0;$ii $spalten; ++$ii )
            {
                if (isset( 
$katpics[$i $spalten $ii] ) )
                {
                
// Thumbnail vorhanden?
                
if ($katpics[$i $spalten $ii]['bildthumbnail'] == '' )
                {
                    
$bildthumbnail 'no_preview.gif';
                }
                else
                {
                    
$bildthumbnail $kat['ordner'].'/'.$katpics[$i $spalten $ii]['bildthumbnail'];
                    }
                    
                    
// Bild laden und Template verarbeiten
                    
            
$assign = array(
                        
'picsize' => sizeoutput$katpics[$i $spalten $ii]['bildfilesize'] ),
                        
'url' => $conf['url'],
                        
'hits' => $katpics[$i $spalten $ii]['hits'],
                        
'bildid' => $katpics[$i $spalten $ii]['bildid'],
                        
'bildname' => $katpics[$i $spalten $ii]['bildname'],
                        
'katordner' => $kat['ordner'],
                        
'bildthumbnail' => $bildthumbnail
                                                
);
                
$tpl->assign($assign);
                                                        
                
$mitte $tpl->fetch('gallery_kat_main.html');
                    
                    
//$katpics2[$i * $spalten + $ii];
                
                
}
                else
                {
                    
$mitte "&nbsp;";
                }
                
// wenns nichts mehr gibt, ein &nbsp;
                
                
$td .= "\t\t<td class=\"hebel\">" $mitte "</td>\n";
            } 
            
            
// Ende des TRs
            
$gallery_kat_main .= "\t<tr align=\"center\" 
onMouseOver=\"this.bgColor='"
.$conf['bg_main2']."'\" 
onMouseOut=\"this.bgColor='"
.$conf['bg_main']."'\">\n" $td "\t</tr>\n";
            
            
            
        } 
// HIER Ausgabe über Smarty 
Das ist alles mal bisschen provisorisch, aber wenns funzt kann man dann ja eh optimieren

Hier habe ich nun das Problem, dass auf das Array nicht zugriffen wird. Es ist ja vorhanden, aber das mit dem Index scheint nicht zu stimmen.
Ich habe mich schon durch die Doku von php gewälzt, aber werde nicht schlau.


Wie könnte ich dieses Problem, gut es sind 2.., beheben?
Ihr könnt es auch als Brainstomring betrachten, aber im grunde habe ich ja die Ansätze, nur bei der Durchführung hapert's...

ciaoo

sniper.de

Geändert von sniper.de (29-03-2005 um 00:49 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 28-03-2005, 14:37
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Horizontales Scrolling mag hier glaube ich niemand...
ReadIt
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 28-03-2005, 14:40
sniper.de
 Junior Member
Links : Onlinestatus : sniper.de ist offline
Registriert seit: Feb 2004
Beiträge: 90
sniper.de ist zur Zeit noch ein unbeschriebenes Blatt
sniper.de eine Nachricht über ICQ schicken
Standard

habe ja schon umbrüche gemacht.
Noch mehr und man kann den Code kaum lesen, aber ok.

Ich mach mehr umbrüche rein, auch für die Leute, die noch in 800x600 rumsurfen

danke für den Hinweis!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

OnPremise versus Cloud - das richtige System finden
Wir beleuchten in diesem Artikel, die Vor- und Nachteile für Cloud oder OnPremise Systemen. Und warum es definitiv Zeit wird in die Cloud zu wechseln.

09.05.2022 | julia_mjr

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni


 

Aktuelle PHP Scripte

phpBasics Counter

Der Counter arbeitet mit einer klassischen einstellbaren IP-Reloadsperre. Er zählt die Besucher, die Seitenaufrufe und ermittelt auch die aktuellen Onlineuser. Zur Datenspeicherung wird eine MySQL-Datenbank genutzt. Der Counter überprüft seine Instal

09.09.2022 numaek | Kategorie: PHP/ Counter
MyPHPlib-Bibliotheksverwaltung

MyPHPlib ist eine Scriptsammlung, mit der die Bibliotheksverwaltung incl. Ausleihe und Recherche gelingt. Die Scriptsammlung wird seit Mitte 2005 entwickelt und ist besonders an den Bedürfnissen von Schulen angepasst.

11.08.2022 RobertG | Kategorie: PHP/ Management
responsive vertikales Menu

Diese Menu basiert auf php, jQuery, css und ajax. Wer sein Menu mit nested sets vertikal realisieren will, findet darin eine gute Lösung.

11.08.2022 COVISIONMEDIA | Kategorie: JAVASCRIPT/ Navigation
 Alle PHP Scripte anzeigen

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