Forenindex » Programmierung/Entwicklung » PHP und MySQL » Fotoalbum blättern

Fotoalbum blättern

HackTack30
Beiträge gesamt: 17

21. Jun 2005, 14:31
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
Hi !

Ich mal wieder !

Habe meine Fotoalben soweit fertig, es gibt nur Probleme mit der Blätterfunktion ! Gehe ich auf Seitenzahl gibt er mir nichts mehr aus ?


<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="style3.css" rel="stylesheet" type="text/css">

</head>

<body leftmargin="60">
<?php

$mysqlhost="localhost"; // MySQL-Host angeben

$mysqluser="???"; // MySQL-User angeben

$mysqlpwd="???"; // Passwort angeben

$mysqldb="????"; // Gewuenschte Datenbank angeben




$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die

("Verbindungsversuch fehlgeschlagen");




mysql_select_db($mysqldb, $connection) or die("Konnte die Datenbank nicht

waehlen.");



$Zeilen_pro_Seite = 1;


if (!isset($Anfangsposition)) {
$Anfangsposition = 0;
}

if( $jahr == "" or $monat == "" or $tag == "") {
if( $location == ""){


echo "<p align = left>";
echo "Bitte füllen Sie alle Datumsfelder aus";
echo "<br>";
echo "<br>";
echo "<a href =\"selektion_fotos.htm\">zur&uuml;ck<a/>";
echo "</p>";
exit();

}
else {
$sql = "select * from bilder Where location = '$location' limit $Anfangsposition, $Zeilen_pro_Seite";
$result=mysql_query($sql);
$result1=mysql_query("select * from bilder Where location = '$location'");

}

}

else{
if($location==""){

$sql = "select * from bilder Where jahr= '$jahr' and tag= '$tag' and monat= '$monat' limit $Anfangsposition, $Zeilen_pro_Seite";

$result=mysql_query($sql);
$result1=mysql_query("select * from bilder Where jahr= '$jahr' and tag= '$tag' and monat= '$monat'");

}
else

{
$sql = "select * from bilder Where jahr= '$jahr' and tag= '$tag' and monat= '$monat' and location= '$location' limit $Anfangsposition, $Zeilen_pro_Seite";

$result=mysql_query($sql);
$result1=mysql_query("select * from bilder Where jahr= '$jahr' and tag= '$tag' and monat= '$monat' and location= '$location'");


}

}
if (mysql_num_rows($result1) == ""){
echo "<p align = left>";
echo "Keine Termine vorhanden" ;

echo "<br>";
echo "<br>";
echo "<a href =\"selektion_fotos.htm\">zur&uuml;ck<a/>";
echo "</p>";

}


$Anzahl=mysql_num_rows($result1);

if ($location != "") {
echo "$location.";
}
else
{
echo "$tag"."$monat"."$jahr";
}
while ($row=mysql_fetch_array($result))

{
$tag=$row["tag"];
$monat=$row["monat"];
$jahr=$row["jahr"];
$location=$row["location"];
$bildpfad=$row["bildpfad"];




?></div>
<p>
<?php

$bild_pfad = $bildpfad; // Ordner in dem die Bilder sind

$oeffne_pfad=opendir($bild_pfad); // Ordner öffnen

while ($find = readdir($oeffne_pfad)) // Ordnerinhalt auslesen
{
if (preg_match("/^$item.*\.(?:jpg|gif|png)$/i", $find))
{
$bild = "$bild_pfad/$find";
$anzahl++;
$anzahl_bilder = $anzahl;

//Ausgabe der Bildvorschau
echo "<a href='$bild' target='pic_haupt'><img src='$bild' width=100 height=75 border=1'></a>";

}

}

?>

<?php
}

echo "Anzahl". $Anzahl;
if($Anfangsposition > 0) {
echo "<a href=\"anzeigen_foto.php?Anfangsposition=0&jahr=$jahr&monat=$monat&tag=$tag&location=$location\">&nbsp;[erste Seite]&nbsp;</a>";

$back=$Anfangsposition-$Zeilen_pro_Seite;
if($back < 0) {
$back = 0;
}
echo "<a href=\"anzeigen_foto.php?Anfangsposition=$back&jahr=$jahr&monat=$monat&tag=$tag&location=$location\">&nbsp;[eine Seite zur&uuml;ck]&nbsp;</a>";

}


if($Anzahl>$Zeilen_pro_Seite) {
$Seiten=intval($Anzahl/$Zeilen_pro_Seite);
if($Anzahl%$Zeilen_pro_Seite) {
$Seiten++;
}
}



for ($i=1;$i<=$Seiten;$i++) {
$fwd=($i-1)*$Zeilen_pro_Seite;
echo "<a href=\"anzeigen_foto.php?Anfangsposition=$fwd&jahr=$jahr&monat=$monat&tag=$tag&location=$location\">&nbsp;$i&nbsp;</a>";
}

if($Anfangsposition < $Anzahl-$Zeilen_pro_Seite) {
$fwd=$Anfangsposition+$Zeilen_pro_Seite;
echo "<a href=\"anzeigen_foto.php?Anfangsposition=$fwd&jahr=$jahr&monat=$monat&tag=$tag&location=$location\">&nbsp;[eine Seite weiter]&nbsp;</a>";
$fwd=$Anzahl-$Zeilen_pro_Seite;
echo "<a href=\"anzeigen_foto.php?Anfangsposition=$fwd&jahr=$jahr&monat=$monat&tag=$tag&location=$location\">&nbsp;[letzte Seite]&nbsp;</a>";
}

?>
</p>
</body>
</html>

Fotoalbum blättern

Pozor
Beiträge gesamt: 892

21. Jun 2005, 17:39
Bewertung:

gelesen: 6243

Beitrag als Lesezeichen
Sali,

das Thema haben wir mit dir glaubs schonmal besprochen:
$_POST $_GET etc benutzen


Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download

(Dieser Beitrag wurde von Pozor am 21. Jun 2005, 17:39 geändert)

Fotoalbum blättern

Intermedia
Beiträge gesamt: 1287

21. Jun 2005, 19:06
Bewertung:

gelesen: 6231

Beitrag als Lesezeichen
Hallo,

was Stefan sagt sollte doch mal beachtet werden!
Selbst wenn die register_globals = on sind, sollte man sich daran gewöhnen.

So ich hab mir den Code einmal angesehen, auf den ersten Blick kann ich keinen Fehler feststellen. Die Routine für die Seitenanzahl zum direkten anspringen scheint ok zu sein. Was für Zahlen stehen denn in der Statuszeile wenn du mit der Maus drüber fährst?
Da würde ich als erstes mal nachsehen.

Mit deinen Querys ist es etwas chaotisch und schwierig durchzusteigen.
Für die Fehlersuche lass dir doch die Querys mal auf dem Bildschirm ausgeben, dann kann man sehen was dabei rauskommt und es wird auch ersichtlich wenn eine Variable fehlt.

Das mit deinen Bedingungen um die richtige Query anzuspringen könnte so zwar funktionieren, aber hast du mal drüber nachgedacht eine Query zusammenzusetzen entsprechend der Variablen die du zur Verfügung hast? Könnte Übersichtlicher werden.
Von der Sache her ist es nichts anderes als Strings zusammenzusetzen.

Etwa so:

if ($var1 != "") $query .= "nächste Query ";
if ($var2 != "") $query .= "wieder eine Query";

usw.

Nun frag ich mal ketzerisch, du hattest nachgefrag wie man die Tabellen aufbaut, da wurden die Tabelle von 3 auf 2 reduziert und nun kommst dann hier mit einer Tabelle an.
Warum steckst du die Location nicht in eine separate Tabelle wie es schonmal vorgeschlagen wurde?


Um Fehler zu suchen lass dir an den entsprechenden Stellen die Werte der Variablen ausgeben.

Leider kann ich im Moment nicht mehr für dich tun.

Dir wurden schon sehr viele Tipps gegeben, wenn du hier noch
länger geholfen werden soll, dann fang auch bitte einmal an die Tipps zu berücksichtigen.
Es macht keinem Spaß alles mehrmals durchzukauen nur weil das Prinzip das gleiche ist und es nur etwas anders aussieht.

Nimm es nicht persönlich, wenn dir keiner helfen wollte, würde es auch keiner machen.


Gruß Sven


http://www.aurahysil.de?hds Mit Aurahysil Freizeit schaffen - Beschichtungen der besonderen Art - http://www.intermedia-bg.de?hds INTERMEDIA bürogemeinschaft

Fotoalbum blättern

HackTack30
Beiträge gesamt: 17

22. Jun 2005, 15:43
Bewertung:

gelesen: 6219

Beitrag als Lesezeichen
Hi !

Die Variablen werden richtig übergeben, jedoch bei dem zweiten Aufruf, Seitenzahl oder vor, zurück sind die Variablen leer !

Fotoalbum blättern

Intermedia
Beiträge gesamt: 1287

22. Jun 2005, 16:17
Bewertung:

gelesen: 6215

Beitrag als Lesezeichen
Hi,

ja was nun? Wenn die Variablen richtig übergeben werden dann müssen diese auch da sein ansonsten werden sie nicht übergeben bzw. falsch weiterverarbeitet.

Im Falle das diese wirklich nicht übergeben werden, dann mach doch mal das was dir schon öfters gesagt wurde, verwende $_POST und $_GET um mit Variablen zu arbeiten!

Hier mal etwas zum testen damit man mal sieh welche Variablen mit den entsprechenden Werten zur Verfügung stehen, bau das am Anfang deine Seite ein, mir hilft es in der Entwicklungsphase ungemein, gerade bei der Fehlersuche.

foreach ($_REQUEST as $key=>$value)
{
echo "$key=$value<br>";

}

Was steht denn dann in deiner Query wenn du die Seite blätterst?
Daran kann man auch sehen welche Variablen nicht da sind.

Wenn du wieder ein Problem hast das Variablen nicht übergeben werden und du Quellcode ohne $_GET und $_POST arbeitest wirst du hier vermutlich keine Antwort mehr bekommen.

Gruß Sven


http://www.aurahysil.de?hds Mit Aurahysil Freizeit schaffen - Beschichtungen der besonderen Art - http://www.intermedia-bg.de?hds INTERMEDIA bürogemeinschaft

Fotoalbum blättern

Pozor
Beiträge gesamt: 892

22. Jun 2005, 18:48
Bewertung:

gelesen: 6206

Beitrag als Lesezeichen
Hallo,

ich empfehle immer
print_r($_POST);
print_r($_GET);

so hat man ein überblick was alles zur verfügung steht, auch wens
arrays sind etc.


Gruss Stefan


"KISS - KEEP IT SIMPLE, STUPID"
PHP Documentation Download

Fotoalbum blättern

Intermedia
Beiträge gesamt: 1287

22. Jun 2005, 19:10
Bewertung:

gelesen: 6205

Beitrag als Lesezeichen
Antwort auf: Hallo,

ich empfehle immer
print_r($_POST);
print_r($_GET);

so hat man ein überblick was alles zur verfügung steht, auch wens
arrays sind etc.


Oder so...... ;-)

Da hat so jeder sein eigenes System.
So nach dem Motto: der Weg ist egal, das Ergebins zählt. ;-)

Aber mir fällt noch was auf:
if (mysql_num_rows($result1) == "")

Nun bin ich mir auch nicht ganz sicher, aber wenn beim ausführen einer Query kein DS gefunden wird, dürft mysql_num_rows($result1) ne 0 sein, oder irre ich mich?

Gruß Sven


http://www.aurahysil.de?hds Mit Aurahysil Freizeit schaffen - Beschichtungen der besonderen Art - http://www.intermedia-bg.de?hds INTERMEDIA bürogemeinschaft