Hilfe bei Blätterfunktion dringend benötigt

fritzje610

Mitglied
Hallo zusammen,

ich versuche schon seid Tagen mir eine Blätterfunktion für meine Fotos zu basteln.
Nach mehreren Versuchen mit fertigen Skripts und deren Anpassung und lesen und machen und tun kam ich zu der Erkenntniss, das da nur selber bauen was hilft.
So habe ich dann einiges gemacht und getan und komme aber jetzt irgendwie nicht mehr weiter. Hier erstmal die Datei, die aufgerufen wird als Vollbidanzeige:


PHP:
<?php
require_once ("../functions/db_connection.php");

echo $_GET['bereich'];
echo "<br>";
echo $_GET['id'];
echo "<br>";
echo "<br>";

$query = "SELECT id FROM bilder WHERE (bereich = '" . $_GET['bereich'] . "')";
$result = mysql_query($query);
if (!$result) 
 {
  die('Ungültige Abfrage: ' . mysql_error());
 }
while ($row = mysql_fetch_assoc($result))
{
$idarray[] = array ($row);
}

print_r ($idarray) . "<br>";


//vorige ID ermitteln und in Variable schreiben
$pid = prev($idarray);
foreach ($pid as $pvalue);
{
 $prev = $pvalue;
 echo"<br>" . $prev ."<br>" ;
} 

//nächste ID ermitteln und in Variable schreiben
$id = next($idarray);
foreach ($id as $value);
{
 $next = $value;
 echo"<br>" . $next ."<br>" ;
}


$query = "SELECT id, bildpfad, bild FROM bilder WHERE (id = '" . $cur . "')";
$result = mysql_query($query);
if (!$result) 
 {
  die('Ungültige Abfrage: ' . mysql_error());
 }

while ($row = mysql_fetch_assoc($result)) 
 {
  echo "<img src='" . $row['bildpfad'] . "/" . $row['bild'] . "' alt='Bilder Johanna'><br>";
  echo $row['id'] . $row['bereich'];
  echo "<br>";
  $bilder = count ($row['id']);
  $bereich = count ($row['bereich']);

  } 

$pictures = count($bilderarray);

echo "<input type=\"button\" onclick=\"location.href='/contents/zeige.php?id=$prev'\" value=\" zur&uuml;ck \">";

echo "<input type=\"button\" onclick=\"location.href='/contents/zeige.php?id=$next'\" value=\" weiter \">";  

?>


Die Vars $_GET['id'] und $_GET_['bereich'] kommen auch an.
Das skript soll die Bild-ID's eines bestimmten Bereiches auslesen. Das funktioniert auch soweit. Dann sollen die ID's in ein Array. Auch das funktioniert. Mit prev, current und next wollte ich dann immer wieder den query neu befüllen um dann das entsprechende Bild zu laden.
Mein Problem ist, wie kriege ich diese mistigen Daten wieder aus dem Array ($idarray) wieder raus. Ich blicks nicht !
Ich muss ja die $_GET['id'] erstmal irgendwo hin schreiben um dann den Zeiger im Array an diese Stelle setzen, da weiß ich auch noch nicht genau wie das gehen soll, um dann im Anschluß die richtigen benachbarten Bilder zu erwischen.

Könntet ihr mir bitte mal auf die Sprünge helfe !!


Gruß

Michael
 
Damit habe ich auch schon gebastelt, aber das ist halt auch wieder was fertiges. Ich würde es halt gerne selbst irgendwie hin kriegen. Da scheint mit das mit den php-Funktionen irgendwie am logischten zu denken. Nur hänge ich halt noch an dem besagten Problem mit diesem fu...ng array.Ich blicks einfach nicht wie ich die ID's da raus bekommen soll.
Ich weiß ich weiß, das sind eigentlich Basics, aber ich seh grad den Wald vor lauter Bäumen nicht mehr.


Gruß

Michael
 
Wenn du eine BildID hast und das nächste Bild "links" davon wäre:

Code:
"SELECT * FROM bilder WHERE id<'$bildid' LIMIT 1"

"rechts":
Code:
"SELECT * FROM bilder WHERE id>'$bildid' LIMIT 1"
 
So in etwa würde der Query aussehen, wobei ich nicht nach * selecten werde sondern nur die Felder die ich brauche, aber das ist ja nicht so das Problem.
Meine Frage ist, wie ich hieraus

PHP:
$query = "SELECT id FROM bilder WHERE (bereich = '" . $_GET['bereich'] . "')";
$result = mysql_query($query);
if (!$result) 
 {
  die('Ungültige Abfrage: ' . mysql_error());
 }
while ($row = mysql_fetch_assoc($result))
{
$idarray[] = array ($row);
}

die ID's, die ja nun mal da drin stehen, wieder rauskriege und den Zeiger des Arrays auf das aktuelle Element stelle.

Ein print_r des Arrays gibt mir folgendes aus:

Code:
Array ( [0] => Array ( [0] => Array ( [id] => 1 ) ) [1] => Array ( [0] => Array ( [id] => 2 ) ) 
[2] => Array ( [0] => Array ( [id] => 3 ) ) [3] => Array ( [0] => Array ( [id] => 4 ) ) 
[4] => Array ( [0] => Array ( [id] => 5 ) ) [5] => Array ( [0] => Array ( [id] => 6 ) ) 
[6] => Array ( [0] => Array ( [id] => 7 ) ) [7] => Array ( [0] => Array ( [id] => 8 ) ) 
[8] => Array ( [0] => Array ( [id] => 9 ) ) [9] => Array ( [0] => Array ( [id] => 10 ) ) 
[10] => Array ( [0] => Array ( [id] => 11 ) ) [11] => Array ( [0] => Array ( [id] => 12 ) ) 
[12] => Array ( [0] => Array ( [id] => 13 ) ) [13] => Array ( [0] => Array ( [id] => 14 ) ) )


Oder denke ich viel zu kompliziert ?


Gruß

Michael
 
Zuletzt bearbeitet:
PHP:
$query = "SELECT id FROM bilder WHERE (bereich = '" . $_GET['bereich'] . "')";
$result = mysql_query($query);
if (!$result) 
 {
  die('Ungültige Abfrage: ' . mysql_error());
 }
while ($row = mysql_fetch_assoc($result))
{
$idarray[] = array ($row); # <-- Array in ein weiteres Array => Kagge, doppelt gemoppelt
$idarray[$row["id"]] = $row; # <-- $idarray[$BILDID] => die Daten des Bildes
}

Lies einfach die 2 Kommentare. Wenn du immernoch nicht noch weitergekommen bist, dann verstehe ich irgendwie dein Problem nicht ganz.

dmx
 
Ich habs geschafft, so funktionierts:

PHP:
require_once ("../functions/db_connection.php");

$id = $_GET['id'];

$prev = $id -1;
$next = $id +1;

echo $prev;
echo $next;

$query = "SELECT bildpfad, bild FROM bilder WHERE (id = '" . $id . "')";  
 $result = mysql_query($query);
 if (!$result) 
 {
  die('Ungültige Abfrage: ' . mysql_error());
 }
 while ($row=mysql_fetch_assoc($result))
 {
  echo "<img src='" . $row['bildpfad'] . "/" . $row['bild'] . "' alt='Bilder Johanna'><br>";
  echo "<br>";
 }



/*$pictures = count($bilderarray);*/

echo "<input type=\"button\" onclick=\"location.href='/contents/zeige.php?id=$prev'\" value=\" zur&uuml;ck \">";

echo "<input type=\"button\" onclick=\"location.href='/contents/zeige.php?id=$next'\" value=\" weiter \">";

So, jetzt muss ich mir noch was für den Anfang und das Ende überlegen. So das am Anfang nur weiter und am Ende nur zurück angezeigt wird und bei allen anderen beide angezeigt werden.

Vielen Dank schon mal für Eure Hilfe ! ! !



Gruß

Michael
 
Hmmm, ganz so perfekt ist es doch noch nicht. Das Skript kann beim blättern in negative Zahlen blättern und es werden alle Bilder angezeigt und nicht nur die, die per bereich in die Vorschau geladen werden.Negative Zahlen, denke ich kann man mit ner Anfrage ob $prev = 0 ist abfangen. Nur wie fange ich es ab, das nur die Vorschaubilder auch als Vollbild angezeigt werden können?



Gruß

Michael
 
Hmmm, ganz so perfekt ist es doch noch nicht. Das Skript kann beim blättern in negative Zahlen blättern und es werden alle Bilder angezeigt und nicht nur die, die per bereich in die Vorschau geladen werden.Negative Zahlen, denke ich kann man mit ner Anfrage ob $prev = 0 ist abfangen. Nur wie fange ich es ab, das nur die Vorschaubilder auch als Vollbild angezeigt werden können?

PHP:
<div id='menu'>
<?php
//Datenbank verbinden
require_once ($root . "/functions/db_connection.php");



//Bereiche links im div laden 
$query = "SELECT * FROM bereiche";
$result = mysql_query($query);
if (!$result) 
	 {
      die('Ungültige Abfrage: ' . mysql_error());
	 }
 while($row = mysql_fetch_array($result))
 {
  echo "<li><a href='index.php?ziel=fotoalbum&id=" . $row['bereich'] . "'>" . $row['bereich'] . "</a></li>";
 }
 echo "</ul>";
 echo "</div>";

echo "<div id='contents'>";
$merker = 0;





//Prüfen was geklickt wurde, entsprechenden Teil aus der DB holen und als Thumb anzeigen
if (isset ($_GET['id']))
{
  $merker = 1;	
  $counter = 0;
  $id = $_GET['id'];

  $query = "SELECT id, bereich, thumbpfad, thumb FROM bilder WHERE (bereich = '" . $id . "')";  
  $result = mysql_query($query);
  if (!$result) 
   {
    die('Ungültige Abfrage: ' . mysql_error());
   }
  echo "<center><table cellpadding=\"0\" cellspacing=\"30\">\n<tr>";

  //echo $id; Hier muss noch der Bilname hingebasltet werden !

  while($row = mysql_fetch_assoc($result))
  {
    if ($counter == 3)
    {
     echo "</tr><tr>\n";
     $counter = 0;
    }
   echo "<td><a href='index.php?ziel=fotoalbum&id=" . $row['id'] . "'><img src='" . $row['thumbpfad'] . "/" . $row['thumb'] . "' alt='Bilder Johanna'></a></td>\n";
   $counter++;
   $bid = $row['bereich'];
  }
  echo "</tr></table>";
}
else
{
 echo "Bitte was aussuchen !";
}






//Es wurde ein Bild aus dem vorher gewählten Bereich angeklickt. Vollbild und Bläätern anzeigen
if ($merker == 1)
{
$id = $_GET['id'];

$prev = $id -1;
$next = $id +1;

echo $prev;
echo $next;

$query = "SELECT bildpfad, bild FROM bilder WHERE (id = '" . $id . "')";  
 $result = mysql_query($query);
 if (!$result) 
 {
  die('Ungültige Abfrage: ' . mysql_error());
 }
 while ($row=mysql_fetch_assoc($result))
 {
  echo "<img src='" . $row['bildpfad'] . "/" . $row['bild'] . "' alt='Bilder Johanna'><br>";
  echo "<br>";
 }



/*$pictures = count($bilderarray);*/

echo "<input type=\"button\" onclick=\"location.href='/index.php?ziel=fotoalbum&id=$prev'\" value=\" zur&uuml;ck \">";

echo "<input type=\"button\" onclick=\"location.href='/index.php?ziel=fotoalbum&id=$next'\" value=\" weiter \">";  

}
echo "</div>";

?>

Gruß

Michael
 
Zurück