• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bildergalerie - php macht Kummer

Hesoyam

Neues Mitglied
Hallo,

ich habe mir ein kleines Script aufgebaut mit dem ich in eine Datenbank Bilder eintragen kann.
Diese werden dann ausgelesen und angezeigt, soweit noch nichts besonderes und auch noch keine Probleme.

Dann habe ich noch eingebaut, dass die Bilder den jeweiligen Jahren zugeordnet wird (im script zum eintragen muss angegebn werden, welches jahr und welcher Monat)
Bis dahin habe ich auch noch kein problem
Code:
if ($jahr == "2007") { echo ""; } else { echo ""; }
Nun kommt aber der Punkt, an dem ich dringend Hilfe brauche.

1. Ich möchte, dass wenn vom Jahr 2007 keine Bilder in der Datenbank zu finden sind, soll der Text angezeigt werden "Für dieses Jahr sind noch keine Bilder verfügbar"
Das habe ich auchnoch hinbekommen.
ABER
Ich habe derzeit 3 Jahreskategorien (2006,2007,2008).
Wenn im Jahr 2008 Bilder gefunden worden sind, dann werden diese angezeigt und es kommt kein Text.
In den jahren 2007/2006 (trotzdem dass bilder eingetragen sind) wird nach den Bildern der text angezeigt.

Code:
if ($jahr == 2007) {echo "";} else {echo "blablabla"";}
Und diesen Code habe ich im Jahr 2008/2007/2006 gleich, (ausser Jahrezahlen)

Ich ahbe leider vergessen die nötigen Dateien vom Homesvr mitzunehmen, aber ich hoffe ihr könnt mir da dennoch was sagen.


2. Ich möchte, dass wenn im Jahr 2007 keine Bilder eingetragen sind, dass dann die Kategorie 2007 überhaupt nicht angezeogt wird.

3. Wenn im Monat September mehr als 10 Bilder geschossen worden sind, soll dieser Monat als gesonderte Kategorie
Code:
<h2>Kolumbien 2007</h2>
<h3>September</h3>
angezeigt werden.
Die restlichen Monate, sofern nicht mehr als 10 Bilder pro monat eingetragen sind, sollen dann wie folgt aufgelistet werden
Code:
<h2>Kolumbien</h2>
<h3>Januar - August</h3>
[BILDER]
<h3>September</h3>
[BILDER]
<h3>Oktober - November</h3>
[BILDER]

Ist das möglich?

So ... das ist ja sehr viel text und leider habe ich keinerlei Dateien da um euch zu zeigen wie es aussieht, aber sobald ich wieder im internet sein kann, werde ich die nötigen Daten umgehendst nachreichen.

Wenn ihr ihrendwelche Dateien genauer wissen wollt, sagt es nur, ich kann sie euch dann als Code hier zeigen.

Ich hoffe Ihr helft mir, da mir das sehr wichtig wäre.
Es soll nicht so rüber kommen, als würde ich hier einen Auftrag aufgeben oder ähnliches, aber ich will das so hinbekommen, wie es oben beschrieben ist und da ich das Alleine nicht kann und ich auch nirgends dazu ein Tutorial finden werde und auch keines gefunden habe hoffe ich, dass sich hier jmd. erbarmt mir zu helfen..


Grüße
und danke im vorraus, auch fürs nix tun ^^
 
hmm also mit deinen phantasie-codeschnipseln kann ich jetzt wenig anfangen. schwer zu sagen warum die fehlermeldung nur bei 2008 nicht kommt. da solltest du uns nochmal mehr code zeigen.

um zu ermitteln, ob mehr als 10 bilder vorhanden sind natürlich mysql_num_rows($result) > 10, ist ja nix besonderes. allerdings die weitere kategorisierung, januar bis september etc. .... könnte kompliziert werden. da müsstest du vielleich zwei get-parameter nutzen. $monat_start und $monat_ende

hier, dies hab ich mal mit einem array getestet
PHP:
<?php
$monate = array(
                1 => '5',
                2 => '75',
                3 => '1',
                4 => '2',
                5 => '2',
                6 => '3',
                7 => '5',
                8 => '4',
                9 => '15',
                10 => '7',
                11 => '9',
                12 => '12'
);
$monat_start = 1;
for ($i = 1; $i <= 12; $i++) {
  //Select-abfrage nach bilder mit monat $i
  if ($monate[$i] > 10) { //diesen vergleich durch eine mysql_num_rows()-prüfung ersetzen
    $monat_ende = $i - 1;
    if ($monat_ende > $monat_start) {
      echo '<p>Monat: <a href="detailansicht.php?monat_start=' . $monat_start . '&monat_ende=' . $monat_ende . '">' . $monat_start . ' - ' . $monat_ende . '</a></p>';
      echo '<p>Monat: <a href="detailansicht.php?monat_start=' . $i . '&monat_ende=' . $i . '">' . $i . '</a></p>';
      $monat_start = $i + 1;
    } else {
      if ($monat_ende == $monat_start) {
        echo '<p>Monat: <a href="detailansicht.php?monat_start=' . ($i - 1) . '&monat_ende=' . ($i - 1) . '">' . ($i - 1) . '</a></p>';
      }
      echo '<p>Monat: <a href="detailansicht.php?monat_start=' . $i . '&monat_ende=' . $i . '">' . $i . '</a></p>';
      $monat_start = $i + 1;
    }
  }
}
if ($i <= 12) {
  $monat_ende = 12;
  echo '<p>Monat: <a href="detailansicht.php?monat_start=' . $monat_start . '&monat_ende=' . $monat_ende . '">' . $monat_start . ' - ' . $monat_ende . '</a></p>';
}
?>

nicht schön, aber selten :D
 
Danke fürs erste, werde das testen.

Das mit den nötigen Codes, das dachte ich mir schon fast, aber ich wollte nur schonmal desn Threat aufmachen, damit schonmal das gemacht ist und dann reiche ich selbstverständlich die index.php der Galerie nach.

Aber danke schonmal für das array, werde es gleichmal ausprobieren, wenn ich daheim bin.

Grüße
 
also wenn du da hilfe brauchst ohne das dir jemand nen neuen code schreiben muss, dann musst du uns schon ein wenig mehr code zukommen lassen ;)
 
OK ... also da ich es etz mehrmals verpeilt habe die nötigen Dateien mitzunehmen, werde ich euch jetzt das schreiben, was ich weiss und das wird auch so ziemlich richtig sein, da ich den Code warsch nie vergessen werde, weil der mich so aufregt.

PHP:
<h2>Kolumbien 2009</h2>
<? include('../inc/mysql.inc');
// DB-Abfrage mit zuordnung von $imgpath; $title; $jahr; $monat; $format
if ($jahr = "2009") {
echo "<a href=\"$imgpath\"><img scr=\"$imgpath\" alt=\"$title\" $format></a>&nbsp;"
}
 if ($jahr = "2009") {
echo ""} else { echo "Für dieses Jahr sind keine Bilder verfügbar" }
?>
<h2>Kolumbien 2008</h2>
<?php // Hier dann selber Code wie oben, nur mit dem einen Unterschied, dass statt 2009 2008 dasteht. --> ?>
<h2>Kolumbien 2007</h2>
<?php // Und wieder das selbe
//Falls ich irgendwo ';' vergessen haben sollte, sry, aber ich hab das alles aus dem Kopf heraus und da weiss ich
//nicht genau wo ';' hinmuss. Im Org-Codee stimmt alles soweit ... Dreamweaver 4 hat da zumindest keine
// Validation-Fehler gefunden. ?>
Ich werde trotzdem noch den Org-Code hinstellen, nur damit ihr schonmalwas habt.
Der Code ist min 98% von dem, was in der Org-Datei steht, aber ich Dösel hab sie schon zum 3ten mal vergessen und ich bräuchte das ziemlich dringend.
Und da ich immer spontan hier am Inet-Café vorbeilaufe denk ichd a nicht dran das immer dabei zu haben.
Also falls ihr mir mit dem obigen Code nicht helfen wollt, verstehe ich, werde ja dennoch Org-Code holen.

Grüsse
 
sorry, aber mit diesem Phantasicode kann man nicht wirklich viel anfangen

PHP:
if ($jahr = "2009") {
das ist eine zuweisung, die immer true zurückgibt und keine bedingung. ich denke nicht, dass du dies so in deinem "echten" Quelltext stehen hast.

bitte nur nur direkt-kopierten code posten. das bringt so nichts

PS:
PHP:
if ($jahr = "2009") {
echo ""} else { echo "Für dieses Jahr sind keine Bilder verfügbar" }
diese "bedingung" macht keinen sinn. wenn du sowieso nichts ausgeben willst wenn die bedingung "wahr" ist, dann teste doch gleich auf ungleich (!=) und da dürfte auch der fehler zu suchen sein. du testest ja nur auf das aktuelle jahr. bei allen anderen jahren würde die Fehlermeldung ausgegeben werden.

zudem kannst du deine beiden "Bedingungen" in eine zusammenfassen, da es ja die gleiche ist
 
also du hast dir ja wenigstens mühe gegeben aber ich kann dir nur sagen, wenn du deinen code nicht ordentlich formatierst und einrückst dann wirst du es nie lernen.
 
Soooo
da ich es nun endlich geschafft habe daran zu denken die Webseite mitzunehmen, kommt hier nun der komplette und der originle Code der webseite und dann kann mir ja nun endlich geholfen werden ^^

PHP:
<?php include('../inc/titel.inc'); ?>
<?php $thisPage = "Galerie"; ?>
<?php
    $nopic = "<h5>Für dieses Jahr sind keine Bilder verfügbar!</h5>";
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title><?= $titel ?> - <?= $thisPage ?></title>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   <meta http-equiv="Content-Style-Type" content="text/css" />
   <meta name="Content-Language" content="de" />
   <meta name="author" content="Hesoyam Design" />
   <meta name="KeyWords" content="Reise, Columbien, Bogota, Süd, Amerika" />
   <meta name="Description" content="Auf dieser Seite wird in die Reise eingeführt" />
    <link href="../css/print.css" rel="stylesheet" type="text/css" media="print" />
    <link href="../css/screen.css" rel="stylesheet" type="text/css" media="screen, projection" />
    <!--[if lte IE 6]><link rel="stylesheet" href="css/ielte6.css" type="text/css" media="screen" /><![endif]-->
    
    <link href="../css/Galerie/Galerie.css" rel="stylesheet" type="text/css"  media="screen, projection"/>
    <script type="text/javascript" src="../js/addEvent.js"></script>
    <script type="text/javascript" src="../js/Galerie.js"></script>
    <script type="text/javascript">
        whenDOMReady (function() {
            new Galerie (document.getElementById('colombia08'));
            new Galerie (document.getElementById('colombia07'));
            new Galerie (document.getElementById('colombia06'));
        })
    </script>
 </head>
 <body onLoad="Vorladen02()">
 <div id="container">
  <a class="skip" href="#main">Navigation &uuml;berspringen</a>
      <? include('../inc/logo.inc') ?>
    <? include('../inc/menu.inc')?>
    <? include('../inc/subnav.inc')?>
  
  <div id="main">
       <h1>Galerie</h1>
    <h2>Kolumbien 2008</h2>
        <p id="colombia08">
        <?php include('../inc/mysql.inc');
            $query = "SELECT * FROM galerie ORDER BY id";
            $sql = mysql_query($query);
            while ($db = mysql_fetch_object($sql)) {
                $jahr = $db->jahr;
                $monat = $db->monat;
                $titel = $db->titel;
                $imgpath = $db->imgpath;
                $format = $db->format;
                
                if ($format == "hoch") {
                    $format2 = "height=\"189px\" width=\"140px\"";
                } elseif ($format == "quer") {
                    $format2 = "width=\"140px\" height=\"107px\"";
                } else { 
                    $format = "";
                };
                
                if ($jahr == "2008") {
                    echo "<a href=\"$imgpath\"><img src=\"$imgpath\" alt=\"$titel\" $format2 /></a>&nbsp;";
                }
            }  if ($jahr == "2008") {
                echo "";
            } else {
                echo "$nopic<br>";
            }; ?>
        </p>
    <h2>Kolumbien 2007</h2>
        <p id="colombia07">
        <?php include('../inc/mysql.inc');
            $query = "SELECT * FROM galerie ORDER BY id";
            $sql = mysql_query($query);
            while ($db = mysql_fetch_object($sql)) {
                $jahr = $db->jahr;
                $monat = $db->monat;
                $titel = $db->titel;
                $imgpath = $db->imgpath;
                $format = $db->format;
                
                if ($format == "hoch") {
                    $format2 = "height=\"189px\" width=\"140px\"";
                } elseif ($format == "quer") {
                    $format2 = "width=\"140px\" height=\"107px\"";
                } else { 
                    $format = "";
                };
                
                
                if ($jahr == "2007") {
                    echo "<a href=\"$imgpath\"><img src=\"$imgpath\" alt=\"$titel\" $format2 /></a>&nbsp;";
                }
            }  if ($jahr == "2007") {
                echo "";
            } else {
                echo "$nopic<br>";
            }; ?>
        </p>
    <h2>Kolumbien 2006</h2>
        <p id="colombia06">
        <?php include('../inc/mysql.inc');
            $query = "SELECT * FROM galerie ORDER BY id";
            $sql = mysql_query($query);
            while ($db = mysql_fetch_object($sql)) {
                $jahr = $db->jahr;
                $monat = $db->monat;
                $titel = $db->titel;
                $imgpath = $db->imgpath;
                $format = $db->format;
                
                if ($format == "hoch") {
                    $format2 = "height=\"189px\" width=\"140px\"";
                } elseif ($format == "quer") {
                    $format2 = "width=\"140px\" height=\"107px\"";
                } else { 
                    $format = "";
                };
                
                
                if ($jahr == "2006") {
                    echo "<a href=\"$imgpath\"><img src=\"$imgpath\" alt=\"$titel\" $format2 /></a>&nbsp;";
                }
            } 
            if ($jahr == "2006") {
                echo "";
            } else {
                echo "$nopic<br>";
            }; ?>
           </p>
  </div>
  <p id="footer"></p>
 </div>
 </body>
</html>

Soo ... und bevor irgendwelche scharfe Kritik kommt:
Ich bin in php mehr als unerfahren. Alle Codes die ich derzeit schreiben kann habe ich aus einem Lehrbuch von irgendsoeinem Doktor der so eine Schnell-Lern-Reihe gemacht hat.
Ich kann überhaupt froh sein, dass ich billigste Ein- und Ausleseverfahren machen kann.

Grüsse
 
Zwar finde ich es ein bisschen schade, dass mir keiner mehr helfen will, aber daran lässt sich wohl nichts ändern oder?

Es wäre echt nett, wenn mir da einer helfen würde.
Hoffe es melded sichd a noch einer.

Grüsse
 
Naja,

helfen wollen wir denke ich alle, aber du erschlägst uns hier eingentlich nur mit deinem Code und es sieht so aus als wolltest du sagen "macht mal".

Bisher gepostete Ratschläge hast du ja auch noch nicht wahr genommen.

Asipak4you schrieb:
PS:
PHP-Code:
if ($jahr = "2009") {
echo ""} else { echo "Für dieses Jahr sind keine Bilder verfügbar" }
diese "bedingung" macht keinen sinn. wenn du sowieso nichts ausgeben willst wenn die bedingung "wahr" ist, dann teste doch gleich auf ungleich (!=) und da dürfte auch der fehler zu suchen sein. du testest ja nur auf das aktuelle jahr. bei allen anderen jahren würde die Fehlermeldung ausgegeben werden.

zudem kannst du deine beiden "Bedingungen" in eine zusammenfassen, da es ja die gleiche ist

damit meinte ich diesen Teil
PHP:
if ($jahr == "2007") {
                    echo "<a href=\"$imgpath\"><img src=\"$imgpath\" alt=\"$titel\" $format2 /></a>&nbsp;";
                }
            }  if ($jahr == "2007") {
                echo "";
            } else {
                echo "$nopic<br>";
            }; ?>

Wo hängst du gerade, hast du noch was an deinem Script gemacht? Erkläre nochmal dein genaues Problem und poste möglicherweise einen Screenshot von ein paar Einträgen aus der Datenbank.

Gruß
 
Hallo,

also wenn das so ankommt, dann möchte ich mich dafür entschuldigen, so sollte das nicht rüberkommen, schließlich bekommt ihr hier ja kein Geld von mir, sonst wäre das ja auch was anderes.

Also mein eigentliches Problem ist, dass das Script zwar alle Bilder anzeigt, die das Kriterium Jahr erfüllen (also 2009,2008,2007,etc.)
Allerdings durch den Zusatz, dass das Script "Für dieses Jahr ist kein Bild verfügbar" anzeigen soll, wenn kein Bild bei bsp. 2007 eingetragen ist, gerät alles iwie durcheinander.
Damit meine ich, dass dann in jeder Kategorie angezeigt wird "Für dieses Jahr ist kein Bild verfügbar" OBWOHL Bilder vorhanden sind.

Das ist das Problem.

Und vom Script wünschen tu ich mir, dass es die Bilder nach Monat sortiert und wenn es >10 in einem Monat gibt, dass dieser Monat dann eine gesonderte Kategorie hat

PHP:
<h2>Kolumbien 2009</h2>
<h3>Januar</h3>
[12 Bilder]
<h3>Februar - Dezember</h3>
[15 Bilder]
Zum Beispiel

Und das ganze soll natürlich noch mit der Galerie von design-noir kompatiebl sein.
 
Hesoyam schrieb:
Und vom Script wünschen tu ich mir, [...]
Mit Wünschen wirst du nicht weitkommen. Da heißt es lesen lesen lesen...


Hesoyam schrieb:
PHP:
<h2>Kolumbien 2009</h2>
<h3>Januar</h3>
[12 Bilder]
<h3>Februar - Dezember</h3>
[15 Bilder]
Zum Beispiel
Mein Beispielcode aus meinem ersten Post konnte dir da nicht weiterhelfen?

http://www.html.de/191862-post2.html

Hesoyam schrieb:
Und das ganze soll natürlich noch mit der Galerie von design-noir kompatiebl sein.

natürlich :D hey, schritt für schritt, nicht alles auf einmal

Dass überall diese Fehlermeldung angezeigt wird, kann ich leider nicht nachvollziehen. Wahrscheinlich sind die Varaiblen falsch gesetzt oder... ?!?!!?

Sorry, ist nicht wirklich hilfreich, aber was du beschreibst ist einfach zu unpräzise. Da gibt es einfach zig Möglichkeiten. Man könnte Stundenlang raten und kommt nicht drauf.

Du solltest deinen Code mal debuggen, sprich Variablen probeweise ausgeben lassen um zu schauen ob die Werte die sind, welche du erwartest. etc ...
 
Achja ... genau, der is beim Transport von internetcafé nach hause verloren gegangen, der Stick is in ne Pfütze gefallen.

Ok, wenn du mit Debuggen meinst, dass ich Bilder in die DB eintrage und diese Auslesen lasse ... habe ich schon gemacht.
Oder was meinst du sonst mit Debuggen?

Langsam wirds mir fasst schon peinlich hier was zu posten ^^
 
Oder was meinst du sonst mit Debuggen?
Asipak4You hat geschrieben, was er mit "Debuggen" meint.
Debugger – Wikipedia

Langsam wirds mir fasst schon peinlich hier was zu posten
Wenn man nichts weiß, muss einem das nicht peinlich sein. Wenn man nicht richtig liest, nicht Tipps zu Herzen nimmt, wenn man nicht selbst auch bei Google sucht, um nicht ganz verständliche Antworten mit Sinn zu füllen und wenn man beleidigend wird, DANN muss es einem peinlich sein.
 
Zurück
Oben