|
 |
|
| Autor |
Nachricht |
BiBaButzemann Erfahrener [User]

Anmeldung: 25.06.06 Beiträge: 91 Wohnort: Moers
|
Verfasst am: 30.08.2007, 12:37 Titel: Probleme bei Fotogalerie |
|
|
Hallo,
ich habe Probleme bei einer Homepage die ich für eine Band mache!
Es soll auf dieser Homepage eine Fotogalerie drauf!
So, dann hab ich mir Gedanken gemacht wie der Userbereich aussehen kann für so eine Galerie.
Ich kam aber nur auf die Idee - da der eigentliche Startseitenbereich sehr sehr klein ist, das ich nur mit Tabellen arbeiten kann. Das insgesamt 9 Fotos aus einer DB angezeigt werden!
Drei Zeilen und drei Spalten!.
Aber - das bekomme ich nicht ganz hin, da ich nicht möchte das die Tabelle schon direkt am Anfang steht, trotzdem keine Bilder z.B. in einer Kategorie sind.
Ich muss irgendwie mit for und while Schleifen arbeiten, aber wie genau?? Ich komm da irgendwie nicht weiter.
Ihr könnt euch mal die URL ansehen der ganzen HP:
http://www.happyjumble.de
Ich dachte ganz optimal wäre es, wenn man das Bild mit den meisten "Hits" auf der Startseite der Galerie anzeigt und dann auf die jeweilige Kategorie klickt (sie auswählt) und dann die alle Bilder der Kategorie angezeigt werden, wie oben beschrieben.
Nur - wie????
Es wäre sehr schön wenn mir einer da helfen könnte!
Die Band "sitzt mir im Nacken mit der Zeit" ^^
Danke _________________ Mit freundlichen Grüßen
BiBaButzemann
|
|
| Nach oben |
|
 |
JFM Beliebter [User]


Anmeldung: 25.09.05 Beiträge: 324 Wohnort: Gütersloh
|
Verfasst am: 30.08.2007, 13:38 Titel: |
|
|
Reicht es nicht, wenn du der Tabelle eine feste Breite gibst.
Deine Thumbnails scheinen ja immer die gleiche größe zu haben.
Wenn die Thumbnails nun zB. 100px breit sind und die Tabelle hat eine max. größe von 350px so wird nach dem dritten Bild automatisch ein Umbruch erzeugt und die folgenden drei Bilder werden in der nächsten Zeile ausgegeben.
Den Abstand zwischen den Bildern lässt sich ganz einfach mit CSS festlegen.
Und das nur max. 9 Bilder auf der Seite ausgegeben werden ist ja ein Problem das man mit der SQL abfrage Lösen kann.
SELECT * FROM bilder ORDER BY aufrufe LIMIT 0,9 _________________
http://www.FCG-Frauen.de
JFM:Blog
'Was zum Töten animiert, gehört verboten' (Edmund K.)
War Ede nicht derjenige, der Bruno hat erschießen lassen?
|
|
| Nach oben |
|
 |
BiBaButzemann Erfahrener [User]

Anmeldung: 25.06.06 Beiträge: 91 Wohnort: Moers
|
Verfasst am: 30.08.2007, 14:46 Titel: |
|
|
hallo, ja - generell ist es das.
Aber - SQL soll alle Bilder auslesen, aber PHP auf einer Seite nur max 9 Bilder anzeigen und danach wie im GB (per Switch) auf "Seite 2") übergehen!
Das GB hat ein anderer gemacht der das für mich viel zu verwirrend programmiert hat. Ich denke das - geht an sich einfacher. Aber - ich weis nicht wie.
Guck dir auch mal bitte das GB an! _________________ Mit freundlichen Grüßen
BiBaButzemann
|
|
| Nach oben |
|
 |
JFM Beliebter [User]


Anmeldung: 25.09.05 Beiträge: 324 Wohnort: Gütersloh
|
Verfasst am: 30.08.2007, 16:08 Titel: |
|
|
Sagen wir es sind 20 Bilder in einer Galerie vorhanden, dann Rechnest du zuerst aus wie viele Seiten du à 9 Bilder benötigst:
| Code: |
$anzahl_seiten = $row->bildmenge/9;
|
Damit du keinen ungeraden Wer erhälst, musst du den errechneten Wert noch auf die nächste ganze Zahl aufrunden:
| Code: |
$anzahl_seiten = ceil($anzahl_seiten);
|
Dann weist du jetzt schon wie viele Seiten du hast.
So könntest du mit einer While-Schleife eine Navigation für die Weiteren Seiten einbauen:
| Code: |
$ii = 1;
while($anzahl_seiten !=0)
{
<a href=index.php?page=$i>[$ii]</a>
$i++;
$ii++;
$anzahl_seiten--;
}
|
Damit hast du dann die möglichkeit für deine Datenbankabfrage auszurechnen welche Bilder ausgegeben werden sollen.
| Code: |
if($page=='')
{
$sql_start = 0;
$sql_end = 9;
}
else
{
$sql_start = $_GET[page]*9+1;
$sql_end = $sql_start + 8;
}
|
Die Variable musst du dann in die Datenbankabfrage einbauen:
| Code: |
(...)LIMIT $sql_start,$sql_end |
Irgendwie so würde ich das wohl versuchen. Kann gut sein das es bessere Lösungen gibt, aber davon weiß ich dann nichts [/quote] _________________
http://www.FCG-Frauen.de
JFM:Blog
'Was zum Töten animiert, gehört verboten' (Edmund K.)
War Ede nicht derjenige, der Bruno hat erschießen lassen?
|
|
| Nach oben |
|
 |
BiBaButzemann Erfahrener [User]

Anmeldung: 25.06.06 Beiträge: 91 Wohnort: Moers
|
Verfasst am: 30.08.2007, 18:00 Titel: |
|
|
Also ehrlich gesagt, hab ich deine Lösung nicht verstanden!
sorry
Aber, die Lösung von dem Kollegen der das gb programmiert hat verstehe ich auch nicht so ganz ^^ (
Geht das nicht einfach als so?
| Code: |
<?php
function gb_index()
{
if(isset($_GET['subm']))
{
if($_GET['subm'] == 1)
{
require('gb_verfassen.php');
guestbook_verfassen();
}
else if($_GET['subm'] == 2)
{
require('gb_insert.php');
guestbook_insert();
}
else
{
echo 'Fehlerhaftes Submenu';
}
}
else
{
$count = @mysql_query('Select count(*) from guestbook') or die('Fehler bei einer Select Abfrage');
while($row = @mysql_fetch_array($count))
{
$anzahl_betraege = $row['count(*)'];
}
$limit = $anzahl_betraege / 10;
$limit = ceil($limit);
$counter = $limit;
//$counter=0;
//echo "$limit <br/>";
echo'
<div align="center">
';
echo '
<a href="' . $_SERVER['PHP_SELF'] . '?menu=gb&limit='. $limit .'">['. $limit .']</a>
';
while($counter > 1)
{
$counter = $counter - 1;
echo '
<a href="' . $_SERVER['PHP_SELF'] . '?menu=gb&limit='. $counter .'">['. $counter .']</a>
';
}
echo'
</div>
';
if(!isset($_GET['limit']))
{
$ausgabe = @mysql_query('select id, name, email, datum, homepage, inhalt, kommentar from guestbook order by id desc limit 10');
if (!$ausgabe)
{
exit('Fehler beim Ausführen:' . mysql_error() .'<br />');
}
}
else
{
//echo "$anzahl_betraege \n <br/>";
$limit = $_GET['limit'] * 10;
//echo "$limit <br/>";
//$limit = $anzahl_betraege
$start = $anzahl_betraege - $limit;
//$limit--;
//echo "$start <br/>";
$max = 10;
if($start < 0)
{
//echo "$start <br/>";
$max = 10 + $start;
//echo $max;
$ausgabe = @mysql_query("select id, name, email, datum, homepage, inhalt, kommentar from guestbook order by id desc limit 0 , $max");
$anzahl_betraege = ($_GET['limit'] -1) * 10 + $max;
}
else
{
$ausgabe = @mysql_query("select id, name, email, datum, homepage, inhalt, kommentar from guestbook order by id desc limit $start , $max");
$anzahl_betraege = ($_GET['limit']) * 10;
}
//echo "select id, name, email, datum, homepage, inhalt, kommentar from guestbook limit $limit , $max";
if (!$ausgabe)
{
exit('Fehler beim Ausführen:' . mysql_error() .'<br />');
}
}
echo '
<p align="center">
<a href="' . $_SERVER['PHP_SELF'] . '?menu=gb&subm=1">Einen eigenen Beitrag verfassen</a>
</p>
';
while($row = mysql_fetch_array($ausgabe))
{
$kommentar = $row['kommentar'];
$kommentar = htmlspecialchars($kommentar);
$kommentar = ereg_replace("\n","<br />", $kommentar);
$inhalt = $row['inhalt'];
$inhalt = htmlspecialchars($inhalt);
$inhalt = ereg_replace("\n","<br />", $inhalt);
echo '
<fieldset>
<legend>Beitrag Nr. '. $anzahl_betraege .'</legend>
<table width="400px" align="center">
<tr>
<td><a href="mailto:'. $row['email'] .'">'. $row['name'] .'</a> schrieb am '. $row['datum'] .'</td>
</tr>
<tr>
<td>'. $inhalt .'</td>
</tr>
';
if($kommentar != NULL)
{
echo '
<tr>
<td><i><br/>Kommentar:</i></td>
</tr>
<tr>
<td><i>'. $kommentar .'</i></td>
</tr>
';
}
echo '
</table>
<br />
</fieldset>
<br />
';
if(isset($_GET['limit']))
{
$anzahl_betraege = $anzahl_betraege - 1;
}
else
{
$anzahl_betraege = $anzahl_betraege - 1;
}
}
echo '
<p align="center">
<a href="' . $_SERVER['PHP_SELF'] . '?menu=gb&subm=1">Einen eigenen Beitrag verfassen</a>
</p>
';
}
}
?>
|
Ich muss dazu sagen, bitte nicht auf die "Eigenarten" des Programmierers achten ^^
er liebt offensichtlich für alles was er programmiert Funktionen ^^ auch wenn sie unnötig sind, und benutzt etliche if Abfragen wo ich einfach eine einzige switch Abfrage benutzen würde!  _________________ Mit freundlichen Grüßen
BiBaButzemann
|
|
| Nach oben |
|
 |
JFM Beliebter [User]


Anmeldung: 25.09.05 Beiträge: 324 Wohnort: Gütersloh
|
Verfasst am: 30.08.2007, 19:49 Titel: |
|
|
Also die Seitennavigation ist von der Idee her eigentlich genauso wie bei meinem Vorschlag.
Habe das mal schnell umgesetzt, allerdings ohne Datenbank. Das müsste man noch implementieren. Aber im Groben sähe das dann so aus:
| Code: |
<?
$count_pic = 12; //Anzahl der Bilder in der Galerie
$pic_per_page = 9; //anzahl der Bilder die auf einer Seite angezeigt werden sollen
$pages = ceil($count_pic/$pic_per_page); Berechnen wieviele Seiten benötigt werden
$page_num = 1; //variable für die Ausgabe der Seiten
if($_GET[page] =='') //wenn keine Angabe über die Seite mitgeliefert wird
{
$start = 1; //werden die ersten neun Bilder ausgegeben
$end = 9;
}
else
{
$start = $_GET[page]*9+1; //andernfalls wird anhand der Seite die Aufgerufen wurden
$end = $start + 8; //berechnet welche Bilder aufgerufen werden sollen
}
if($end > $count_pic) //prüfen ob es genug Bilder gibt oder ob die Abfrage vorher abgebrochen werden muss
{
$end = $count_pic; //die Ausgabe wird beim letzten Bild abgebrochen
}
while($start <= $end)
{
echo"<img src=galerie_1/$start.jpg>"; //bilder X-Fach ausgeben
$start++; //variable um 1 erhöhen
}
echo"<br />";
while($i != $pages) //schleife für die Navigation
{
echo"<a href=?page=$i>[Seite $page_num]</a> "; //Navigation X-Fach ausgeben
$i++; //variable um 1 erhöhen
$page_num++; //variable um 1 erhöhen
}
?> |
_________________
http://www.FCG-Frauen.de
JFM:Blog
'Was zum Töten animiert, gehört verboten' (Edmund K.)
War Ede nicht derjenige, der Bruno hat erschießen lassen?
|
|
| Nach oben |
|
 |
BiBaButzemann Erfahrener [User]

Anmeldung: 25.06.06 Beiträge: 91 Wohnort: Moers
|
Verfasst am: 01.09.2007, 13:40 Titel: |
|
|
Ok,
puuuuh - ich komm irgendwie nicht weiter!
Vielleicht kann mir einer von euch bei dem Code helfen:
| Code: | <?php
mysql_connect('','','');
mysql_select_db('');
if(isset($_POST['catid'])) {
$catid = $_POST['catid'];
$count = mysql_query('SELECT count(*) FROM galerie_test WHERE galerie_test.piccatid = '.$catid.'');
$piccount = mysql_fetch_assoc($count);
$pics = $piccount['count(*)'];
$pics_per_page = 9;
$page_num = 1;
$picsres = ceil($pics/$pics_per_page);
echo $picsres;
$galquery = mysql_query('SELECT galerie_cat_test.catid, galerie_cat_test.catname, galerie_cat_test.catdesc, galerie_test.picid, galerie_test.piccatid, galerie_test.picpath, galerie_test.picname, galerie_test.picsize FROM galerie_test, galerie_cat_test WHERE galerie_cat_test.catid = galerie_test.piccatid AND galerie_test.picactive = 1 AND galerie_test.piccatid = '.$catid.' ORDER BY galerie_test.picid desc');
$count_pic = $piccount['count(*)']; //Anzahl der Bilder in der Galerie
$pic_per_page = 9; //anzahl der Bilder die auf einer Seite angezeigt werden sollen
$pages = ceil($count_pic/$pic_per_page); //Berechnen wieviele Seiten benötigt werden
$page_num = 1; //variable für die Ausgabe der Seiten
if($_GET[page] =='') //wenn keine Angabe über die Seite mitgeliefert wird
{
$start = 1; //werden die ersten neun Bilder ausgegeben
$end = 9;
}
else
{
$start = $_GET[page]*9+1; //andernfalls wird anhand der Seite die Aufgerufen wurden
$end = $start + 8; //berechnet welche Bilder aufgerufen werden sollen
}
if($end > $count_pic) //prüfen ob es genug Bilder gibt oder ob die Abfrage vorher abgebrochen werden muss
{
$end = $count_pic; //die Ausgabe wird beim letzten Bild abgebrochen
}
while($start <= $end)
{
$row = mysql_fetch_object($galquery);
echo"<img src=\"".$row->filepath."\" style=\"max-height:90px;\" />\n"; //bilder X-Fach ausgeben
$start++; //variable um 1 erhöhen
}
echo"<br />";
while($i != $pages) //schleife für die Navigation
{
echo"<a href=?catid=$catid&page=$i>[Seite $page_num]</a>\n"; //Navigation X-Fach ausgeben
$i++; //variable um 1 erhöhen
$page_num++; //variable um 1 erhöhen
}
} else {
$catq = mysql_query('SELECT catid, catname, catdesc, catactive FROM galerie_cat_test WHERE catactive = 1');
echo "<fieldset>\n";
echo "<legend>Kategorie auswählen</legend>\n";
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\" name=\"catform\">";
echo "<table width=\"90$\" style=\"color:#FFFFFF;\">";
echo "<tr>";
echo "<td><b>Kategorie:</b>";
echo "<td><select name=\"catid\">";
while($row = mysql_fetch_object($catq)) {
echo "<option value=\"".$row->catid."\">".$row->catname."</option>\n";
}
echo "</select>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td> </td>";
echo "<td><input type=\"submit\" name=\"submit\" value=\"Kategorie auswählen\"></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
}
?> |
Ich komm einfach nicht weiter. Ich hab das Beispiel von oben genommen, aber das Problem ist - das dieser Teil bereits in einer If Abfrage ausgeführt wird!
Ich bin echt am verzweifeln! Hoffentlich kann mir einer helfen! _________________ Mit freundlichen Grüßen
BiBaButzemann
|
|
| Nach oben |
|
 |
thepiep Beliebter [User]

Anmeldung: 24.08.06 Beiträge: 329 Wohnort: NRW
|
Verfasst am: 01.09.2007, 15:38 Titel: |
|
|
Nochmal eine Frage, da ich deinen Ansatz im Ansatz nicht ganz verstehe
Du willst eine Galerie machen und auf jeder Seite sollen 9 Bilder angezeigt werden?
Von jeder Seite aus sollen alle anderen Seiten anwählbar sein?
Sowas wie das? http://kvg-2008.de/?id=galerie&cat=images/lappe_1-6-07/ (nicht die Fotos beachten ) nur, eben mit einer anderen Anordnung - von der seite könnte ich dir jedenfalls das script geben und die bilder pro seite zu ändern ist das kleinere problem.
PS: | Code: | echo"hallo";
echo"Bla"; |
Kann man schreiben als
ist etwas kürzer
|
|
| Nach oben |
|
 |
BiBaButzemann Erfahrener [User]

Anmeldung: 25.06.06 Beiträge: 91 Wohnort: Moers
|
Verfasst am: 01.09.2007, 23:37 Titel: |
|
|
Ja - genau das ist es was ich meinte!
Genau soetwas suche ich. Nur - das man vorher noch die jeweilige Kategorie aussucht!
Denn - es ist geplant das eine Kategorie z.B. 50 Bilder hat!
Wenn du mir dein Script (oder auch vielleicht schon angepasst) posten könntest wäre ich dir sehr dankbar!
Wenn du es nicht hier posten möchtest, kannst du mir es auch gerne an webmaster@fairlife-projekt.de mailen!
| Zitat: |
PS: | Code: | echo"hallo";
echo"Bla"; |
Kann man schreiben als
ist etwas kürzer |
ja - eigentlich hast du Recht, damit ich aber jede einzelne Zeile gut einrücken kann usw. mach ich das eben so
Danke _________________ Mit freundlichen Grüßen
BiBaButzemann
|
|
| Nach oben |
|
 |
thepiep Beliebter [User]

Anmeldung: 24.08.06 Beiträge: 329 Wohnort: NRW
|
Verfasst am: 02.09.2007, 00:41 Titel: |
|
|
Bei meiner Lösung gibt es durchaus mehrere Kategorien, nur im Moment gibts auf der Seite nur eine.
Man benötigt hier zwei Tabellen - eine für die Bilder und eine für die Kategorien.
Allerdings musst du noch einige Zahlen anpassen, da das Script momentan pro Seite 20 Bilder anzeigt und nur die ersten 20 Kategorien.
Du musst also nur jedesmal die 20 durch 9 ersetzen und die LIMIT Bedingung in der ersten query einfach weglassen und ein ORDER BY title einbauen.
Ich hoffe, dass hilft dir soweit und sonst frag einfach per mail oder icq - das beantworte ich schneller...
PHP-Code:
| Code: | <?php
// /mainsite/galerie.php
if($_GET['cat'] == ''){
echo '
Bitte wähle eine Kategorie!
<br /><br />';
$query_loadconfig = mysql_query("SELECT * FROM galcat LIMIT 0,20") or ($error[] = mysql_error());
while($cat = mysql_fetch_object($query_loadconfig)){
$query = mysql_query("SELECT count(*) FROM galerie WHERE url = '$cat->url'")or die(mysql_error());
$anbildercat = mysql_result($query,0);
echo '
<div class="abox">
<h3>'.$cat->title.' ('.$anbildercat.' Fotos)</h3>
<a href="?id=galerie&cat='.$cat->url.'" title="Galerie">
'.$cat->text.'<br />
<img src="'.$cat->img.'" class="aimg" alt="'.$cat->title.'" /></a>
</div>
';
}
}elseif(!isset($_GET['picid'])){
$start = $_GET[start];
if($start == '') $start = 0;
$query = mysql_query("SELECT count(*) FROM galerie WHERE url = '$_GET[cat]'")or die(mysql_error());
$anbildercat = mysql_result($query,0);
$lauf = $start;
$bluuub = $start;
if($start-20 <0 && $start != 0) $start = 20;
if($start-20 >= 0){
echo '<a href="?id=galerie&cat='.$_GET[cat].'&start='.($start-20).'" style="float:left;margin:10px 10px 10px 20px;">Vorherige Seite</a>';
}
if($start+20 <= $anbildercat){
echo '<a href="?id=galerie&cat='.$_GET[cat].'&start='.($start+20).'" style="float:right;margin:10px 20px 10px 10px;">Nächste Seite</a>';
}
echo '<div style="text-align:center;position:relative;top:0.8em;width:60%;margin:auto;">';
for($help=0;$help <= $anbildercat;$help=$help+20)
{
if($start >= $help && $start < $help+20)
echo '<strong style="margin:0 5px 0 5px;">'.(($help/20)+1).'</strong>';
else
echo '<a href="?id=galerie&cat='.$_GET[cat].'&start='.($help).'" style="margin:0 3px 0 3px;">'.(($help/20)+1).'</a>';
}
echo '</div><div class="clear"></div>';
$query_loadconfig = mysql_query("SELECT * FROM galerie WHERE url = '$_GET[cat]' LIMIT $bluuub,20") or ($error[] = mysql_error());
while($pic = mysql_fetch_object($query_loadconfig)){
echo '
<div class="galpic">
<a href="?id=galerie&cat='.$_GET[cat].'&picid='.$lauf.'">
<img src="'.$pic->url.'small/'.$pic->file.'" alt="Foto-ID: '.$pic->id.'" />
<br />
</a>
Dieses Bild wurde bereits '.$pic->views.'x aufgerufen.
</div>
';
$lauf++;
$countout++;
}
echo '<div class="clear"></div>';
if($start-20 >= 0){
echo '<a href="?id=galerie&cat='.$_GET[cat].'&start='.($start-20).'" style="float:left;margin:10px 10px 10px 20px;">Vorherige Seite</a>';
}
if($start+20 <= $anbildercat){
echo '<a href="?id=galerie&cat='.$_GET[cat].'&start='.($start+20).'" style="float:right;margin:10px 20px 10px 10px;">Nächste Seite</a>';
}
echo '<div style="text-align:center;position:relative;top:0.8em;width:60%;margin:auto;height:30px;">';
for($help=0;$help <= $anbildercat;$help=$help+20)
{
if($start == $help)
echo '<strong style="margin:0 5px 0 5px;">'.(($help/20)+1).'</strong>';
else
echo '<a href="?id=galerie&cat='.$_GET[cat].'&start='.($help).'" style="margin:0 3px 0 3px;">'.(($help/20)+1).'</a>';
}
echo '</div>';
if($countout==0){
echo "Hinweis: Die von dir angeforderte Kategorie ist entweder leer oder existiert nicht!";
}
}elseif(isset($_GET[picid])){
$goon = $_GET['picid']-1;
if($goon < 0){ $goon = 0; $helper++;}
$query_loadconfig = mysql_query("SELECT * FROM galerie WHERE url = '$_GET[cat]' LIMIT $goon,3") or ($error[] = mysql_error());
while($pic = mysql_fetch_object($query_loadconfig)){
switch($helper){
case 0:
$ausgabe = '
<a href="?id=galerie&cat='.$_GET[cat].'&picid='.($_GET[picid]-1).'">
<img class="smallpic" src="'.$pic->url.'small/'.$pic->file.'" alt="Foto-ID: '.$pic->id.'" />
</a>
';
break;
case 1:
$newview = $pic->views+1;
mysql_query("UPDATE galerie SET views = '$newview' WHERE id = '$pic->id'") or ("Error: " . mysql_error());
echo '
<div class="galpicgross">
<a href="'.$pic->url.$picurlthis.'" title="Volle Auflösung">
<img src="'.$pic->url.'medium/'.$pic->file.'" alt="Foto-ID: '.$pic->id.'" />
</a>
<br />
Dieses Bild wurde bereits '.$newview.'x aufgerufen.
</div> <br /><div style="text-align:center;width:40%;margin:auto;height:30px;">
<a href="?id=galerie&cat='.$_GET[cat].'&start='.($_GET[picid]).'" style="margin:0 5px 0 5px;">Übersicht</a></div>
';
break;
case 2:
echo '
<a href="?id=galerie&cat='.$_GET[cat].'&picid='.($_GET[picid]+1).'">
<img class="smallpic fright" src="'.$pic->url.'small/'.$pic->file.'" alt="Foto-ID: '.$pic->id.'" />
</a>
';
break;
}
$helper++;
}echo $ausgabe;
}
?> |
SQL-Code zum generieren der passenden MySQL-Tabellen:
| Code: | -- Tabellenstruktur für Tabelle `galcat`
--
CREATE TABLE `galcat` (
`url` varchar(255) collate latin1_general_ci NOT NULL default '',
`title` varchar(255) collate latin1_general_ci NOT NULL default '',
`text` varchar(255) collate latin1_general_ci NOT NULL default '',
`img` varchar(255) collate latin1_general_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `galerie`
--
CREATE TABLE `galerie` (
`id` varchar(32) collate latin1_general_ci NOT NULL default '',
`file` varchar(255) collate latin1_general_ci NOT NULL default '',
`url` varchar(255) collate latin1_general_ci NOT NULL default '',
`views` int(14) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; |
|
|
| Nach oben |
|
 |
BiBaButzemann Erfahrener [User]

Anmeldung: 25.06.06 Beiträge: 91 Wohnort: Moers
|
Verfasst am: 02.09.2007, 23:02 Titel: |
|
|
So, so weit wie jetzt war ich noch nie *freu*
aber - ich hab jetzt noch ein paar Probleme bei dem Script!
Zur Veranschaulichung habe ich mal als title in jedem Bild die ID ausgeben lassen damit man den Fehler auch anhand der ID sieht!
Es sind insgesamt 11 Bilder.
9 Davon werden auf der ersten Seite auch absteigend aufgelistet! (Bild ID: 30 - 22)
Aber - eigentlich sollte dann auf der "Seite 2" die Bild ID 21 und 20 noch stehen!
Es wird jedoch wieder das Bild mit der ID 30 und 29 ausgegeben!
Also - irgendwas stimmt da nicht!
Vielleicht könnt ihr mir hier nochmal helfen bitte! Ich poste das komplette Script von mir mit SQL Files zum ausprobieren und Test URL:
Test URL: http://www.happyjumble.de/test4.php
PHP Script:
| Code: | <style>
#notactive { color:#FF0000; text-decoration:blink; };
</style>
<?php
mysql_connect('','','');
mysql_select_db('');
function catid() {
$catq = mysql_query('SELECT catid, catname, catdesc, catactive FROM galerie_cat_test');
echo "<table width=\"90$\" border=\"0\" style=\" background:#003399; color:#FFFFFF; border:#FF0000 2px outset; text-align:center;\" align=\"center\">\n";
echo "<tr>\n";
echo "<td><b>Kategorie:</b>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><select name=\"catid\">\n";
while($row = mysql_fetch_object($catq)) {
if($row->catactive == 1) {
echo "<option value=\"".$row->catid."\" onclick=\"window.location.href='".$_SERVER['PHP_SELF']."?catid=".$row->catid."&page=0'\">".$row->catname."</option>\n";
} else {
echo "<option id=\"notactive\" value=\"".$row->catid."\" title=\"Kategorie nicht aktiv\">".$row->catname."</option>\n";
}
}
echo "</select></td>\n";
echo "</tr>\n";
echo "</table>\n";
}
if(!isset($_GET['catid'])) {
catid();
} else {
$count = mysql_query('SELECT count(*) FROM galerie_test WHERE galerie_test.piccatid = '.$_GET['catid'].'');
$piccount = mysql_fetch_assoc($count);
$pics = $piccount['count(*)'];
$pics_per_page = 9;
$page_num = 1;
$picsres = ceil($pics/$pics_per_page);
$count_pic = $piccount['count(*)'];
$pic_per_page = 9; //anzahl der Bilder die auf einer Seite angezeigt werden sollen
$pages = ceil($count_pic/$pic_per_page); //Berechnen wieviele Seiten benötigt werden
if($_GET['page'] == '0') {
$start = 1;
$end = 9;
} else {
$start = $_GET['page']*8+1; //andernfalls wird anhand der Seite die Aufgerufen wurden
$end = $start + 8; //berechnet welche Bilder aufgerufen werden sollen
}
if($end > $count_pic) {
$end = $count_pic; //die Ausgabe wird beim letzten Bild abgebrochen
}
$galquery = mysql_query('SELECT galerie_cat_test.catid, galerie_cat_test.catname, galerie_cat_test.catdesc, galerie_test.picid, galerie_test.piccatid, galerie_test.picpath, galerie_test.picname, galerie_test.picsize FROM galerie_test, galerie_cat_test WHERE galerie_cat_test.catid = galerie_test.piccatid AND galerie_test.picactive = 1 AND galerie_test.piccatid = '.$_GET['catid'].' ORDER BY galerie_test.picid desc');
echo "<center>\n";
while($start <= $end) {
$row = mysql_fetch_object($galquery);
echo"<img src=\"".$row->picpath."\" title=\"Bild ID: ".$row->picid."\" style=\"max-height:90px;\" />\n"; //bilder X-Fach ausgeben
$start++; //variable um 1 erhöhen
}
echo "</center>\n";
echo"<br />";
echo "<center>\n";
while($i != $pages) {
echo"<a href=?catid=".$_GET['catid']."&page=$i>[Seite $page_num]</a>\n"; //Navigation X-Fach ausgeben
$i++;
$page_num++;
}
echo "</center>\n";
echo "\n<br>".catid();
}
?>
|
SQL Datenbanken:
| Code: | --
-- Tabellenstruktur für Tabelle `galerie_cat_test`
--
CREATE TABLE `galerie_cat_test` (
`catid` int(11) NOT NULL auto_increment,
`catname` varchar(30) default NULL,
`catdesc` text,
`catactive` int(1) NOT NULL default '0',
PRIMARY KEY (`catid`)
) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
-- --------------------------------------------------------
--
-- Tabellenstruktur für Tabelle `galerie_test`
--
CREATE TABLE `galerie_test` (
`picid` int(11) NOT NULL auto_increment,
`piccatid` int(1) default NULL,
`picname` varchar(50) default NULL,
`picsize` varchar(10) default NULL,
`picpath` varchar(100) default NULL,
`picdate` varchar(10) default NULL,
`picactive` int(1) default NULL,
PRIMARY KEY (`picid`)
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;
|
Das ist jetzt die grobe Grundstruktur von der Galerie die ich mir vorstelle!
Aber bisher bin ich schon sehr zufrieden
Ich hoffe das man den anderen kleinen Fehler leicht beheben kann!
Ich würd mich freuen wenn mir noch einmal jemand helfen könnte! _________________ Mit freundlichen Grüßen
BiBaButzemann
|
|
| Nach oben |
|
 |
thepiep Beliebter [User]

Anmeldung: 24.08.06 Beiträge: 329 Wohnort: NRW
|
Verfasst am: 03.09.2007, 15:32 Titel: |
|
|
dein Ansatz die Anzahl der Bilder zu begrenzen ist falsch
Wieso machst du's nicht wie in meinem Script per LIMIT page*9,9?
|
|
| Nach oben |
|
 |
BiBaButzemann Erfahrener [User]

Anmeldung: 25.06.06 Beiträge: 91 Wohnort: Moers
|
Verfasst am: 03.09.2007, 19:51 Titel: |
|
|
Dankeschön!
Aber - ich hab jetzt ne ganz andere (leichtere) Lösung mit einem gefunden! ^^
Alles geht super. so wie ich mir das vorstelle!
Nur noch nicht im Zusammenspiel mit der HP!
Aber das werd ich denk ich auch lösen!
Auf jeden Fall - das Script läuft super!
Trotzdem danke _________________ Mit freundlichen Grüßen
BiBaButzemann
|
|
| Nach oben |
|
 |
|
|
 |
|
Alle Zeiten sind GMT + 1 Stunde
|
| Seite 1 von 1 |
|  |