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

Frage soviele Bilder anzeigen wie verfügbar

MaikT

Neues Mitglied
Hallo. Ich bin zwar noch relativ sehr neu in diesem Bereich, aber komme besonders bei diesem Problem einfach nicht weiter.
Wie kann ich es meiner DB mitteilen das ich in der Ausgabe nur soviele Bilder anzeigen lassen möchte wie ich habe.

Sprich: Ich habe mal 3 Screenshots zum anzeigen, mal 19, mal 7. Diese soll er anzeigen können.
Bisher habe ich nur den Code hinbekommen wie ich anzeigen lassen kann wenn garkeine Bilder vorhanden sind.

Danke für jeden Hinweis!

Gruß, Maik
 
Werbung:
Ich wollte die Links für die Screenshots in die DB auslagern. Genauso wie andere Daten (Publisher usw.).
 
Werbung:
Ich verstehe dein Problem immer noch nicht. Wenn du die Links in der DB stehen hast, dann weißt du doch wieviele Bilder vorhanden sind.
 
Stimmt. Aber es sind immer unterschiedlich viele. Wie kann ich diese auf der Seite ausgeben? Ich kann ja nicht per se 10 mal img src nehmen wenn im Falle xyz nur 3 vorhanden sind.
 
Ähm, nochmal: wenn du die Links in der Datenbank hast, dann kennst du die Anzahl doch! Nach dem Select einfach die DB fragen, wieviel Treffer vorhanden sind.
 
Werbung:
Werbung:
Dann zeige mal, wie du einen Query auf eine Datenbank ausführst und dir das Ergebnis mittels Schleife ausgeben lässt. Das ist Bestandteil von PHP/MySQL Anfänger-Tutorials.
 
Mein Code bisher.
Code:
<?php
  header( 'content-type: text/html; charset=utf-8' );
   ini_set('display_errors', '0');
  error_reporting(E_ALL);

  $intDbId = (isset($_GET['id'])) ? sprintf('%d', $_GET['id'] ) : 0;
  $intDbId = max(0,$intDbId);

  mysql_connect("xxxxx", "xxxxxxxx", "xxxxxxxx") or die (mysql_error ());
   mysql_query("SET NAMES 'utf8'");
  mysql_select_db("db230400x2289096") or die(mysql_error());
   
$strSQL = "SELECT * FROM xyz WHERE id='" . $intDbId . "';";
  $rs = mysql_query($strSQL);
  while($ausgabe = mysql_fetch_array($rs)) {
   echo "<pre><code>".$ausgabe['Spielname']."</code></pre>";
  echo "<img src='".$ausgabe["Kategorie"]."/".$ausgabe["Spielname"]."/1.jpg' widht='200' height='200'>";
   echo "<img src='".$ausgabe["Kategorie"]."/".$ausgabe["Spielname"]."/2.jpg' widht='200' height='200'>";
   echo "<pre><code><span class='hljs-constant'>Name: </span><span class='hljs-symbol'>".$ausgabe['Spielname']."</span><br>";
   
   echo "<span class='hljs-constant'>Version: </span><span class='hljs-symbol'>".$ausgabe['Version']."</span><br>";
   echo "<span class='hljs-constant'>Language / Country: </span><span class='hljs-symbol'>".$ausgabe['Sprache']."</span><br>";
   echo "<span class='hljs-constant'>Flags: </span><span class='hljs-symbol'>".$ausgabe['Kategorie']."</span><br>";
   echo "<span class='hljs-constant'>Year: </span><span class='hljs-symbol'>".$ausgabe['Jahr']."</span><br>";
   echo "<span class='hljs-constant'>Publisher: </span><span class='hljs-symbol'>".$ausgabe['Publisher']."</span><br>";
   echo "<span class='hljs-constant'>Genre(s): </span><span class='hljs-symbol'>".$ausgabe['Genre']."</span><br>";
   echo "</code></pre><blockquote>";
   echo "<p>– Download: <a href='".$ausgabe["Kategorie"]."/".$ausgabe["Link"].".zip'>Klick</a></p><br>";
   
  echo "</blockquote><br>GID: ".$ausgabe['id']."<hr><br><br></body></html>";
     
  }

  mysql_close();
  ?>
 
Ich verstehe deine Hilfe gerade nicht
Dann können wir uns zusammen tun, denn ich verstehe dein Problem immer noch nicht und der Quellcode hilft mir da im Moment auch nicht weiter. Ich sehe da nichts, was mit deinem Problem zu tun haben könnte.
 
Werbung:
Also erst mal, dein PHP-Code ist sehrsehr umständlich und schwerfällig geschrieben, wie ich finde.
Ich entnehme deiner Datanbankabfrage, dass du die URLs in der Tabelle xyz stehen hast und zwar, korrigiere mich bitte wenn falsch,alle in einer Spalte, der Spalte 'Link'. Bitte erläutere einmal konkreter deine Datenbank-Schemata. Ich denke mir, sie ist folgendermaßen aufgebaut:

Tabelle xyz
id-----------Spielname---------------------------Kategorie-----------Link
1-----------Pokemon-------------------------------kategorie1----------test.jpeg
2-----------Zelda----------------------------------- kategorie1----------bla.png
3-----------Tetris------------------------------------kategorie1---------- uqr.gif
4-----------Mensch-ärgere-dich-nicht--------kategorie2----------rawala.png
5-----------Monopoly------------------------------kategorie2----------ukulele.jpeg


Sollte so deine Tabelle aufgebaut sein, so brauchst du nur eine Abfrage wie folgt zu machen
Code:
SELECT Link FROM xyz WHERE Kategorie='kategorie2'
Und dann mit foreach-Schleife die Links auslesen. SO in etwa zumindest...

Und noch was, die mysql-Funktionen unter PHP ist veraltet und wird in naher Zukunft entfernt werden. Nutze stattdessen lieber das mysqli-Archiv.
 
Zuletzt bearbeitet:
Ja richtig erkannt. Hm, dann muss ich mich wohl schlau machen wie ich das in mysqli umschreibe. mal schauen. :(
Inwiefern ist er schwerfällig? Dachte nur er ist sicher und klein?
bisher geht alles wunderbar (außer die bilder) über id= :D
 
Werbung:
Das umschreiben ist wirklich sehr leicht
http://www.peterkropff.de/site/php/mysqli_grundlagen.htm

In deinem Code, wo ist da denn die Stelle wo du die Screenshots ausgeben lassen willst?
Also erstmal ist nun zu klären ob du die Pfade der Screenshots in der DB gespeichert hast, wenn nicht dann hast du ja sicher eine Ordnerstruktur, also ein Ordner screenshot zu jedem Game wo die Bilder enthalten sind.

Dann navigierst du anhand des Gamenamen und genre zu dem Ordner und liest diesen mit glob aus
 
Hm, dann muss ich mich wohl schlau machen wie ich das in mysqli umschreibe. mal schauen. :(
Es ist ansich kaum schwerer mysqli statt mysql zu verwenden, vielleicht nur etwas umständlicher, wenn du auf Prepared Statements verzichten möchtest, was ich dir als Anfänger glaube ich auch anraten würde (auf die Gefahr hin, dass die Community jetzt wieder ein riesen Theater macht...).
Inwiefern ist er schwerfällig? Dachte nur er ist sicher und klein
Naja, das ist meine subjektive Meinung, dass dein Code etwas unübersichtlich gestaltet und schwer zu durchblicken ist. Wenn du damit arbeiten kannst, ist aber alles bestens.
bisher geht alles wunderbar (außer die bilder) über id= :D
Versuch mal selbst etwas weiterzukommen und melde dich bei Unklarheiten oder Problemen einfach wieder.
 
In deinem Code, wo ist da denn die Stelle wo du die Screenshots ausgeben lassen willst?
Sollte hier sein:
PHP:
echo "<img src='".$ausgabe["Kategorie"]."/".$ausgabe["Spielname"]."/1.jpg' widht='200' height='200'>";
echo "<img src='".$ausgabe["Kategorie"]."/".$ausgabe["Spielname"]."/2.jpg' widht='200' height='200'>";

================================================================

Also erstmal ist nun zu klären ob du die Pfade der Screenshots in der DB gespeichert hast, wenn nicht dann hast du ja sicher eine Ordnerstruktur, also ein Ordner screenshot zu jedem Game wo die Bilder enthalten sind.
Wurde bereits erwähnt:
Ich wollte die Links für die Screenshots in die DB auslagern. Genauso wie andere Daten (Publisher usw.).
 
Werbung:
Hab den Thread nur so überflogen :D
Es ist ansich kaum schwerer mysqli statt mysql zu verwenden, vielleicht nur etwas umständlicher, wenn du auf Prepared Statements verzichten möchtest, was ich dir als Anfänger glaube ich auch anraten würde (auf die Gefahr hin, dass die Community jetzt wieder ein riesen Theater macht...).

*THEATER MACH* Also ich bin der Meinung, wenn man es sich schon anschaut, dann auch richtig ;) Bringt ja nichts zuerst was zu lernen was, sagen wir einem hilft seinen Code abzusichern :D Sonst verzichtet man aus bequemlichkeit immer auf prepared Statements ;)

Und dann warten wir mal bis er selbst was probiert hat
 
Thread kann geschlossen werden, habe mir selbst geholfen...
----------------------
Code:
  if($handle = opendir($ausgabe["Kategorie"])) {
  while (false !== ($file = readdir($handle))) {
  $file_ext=strtolower(substr($file, strrpos($file, ".")));
  if($file_ext==".gif" OR $file_ext==".jpg" OR $file_ext==".png") {
  echo "<img src='".$ausgabe["Kategorie"]."/".$file."' widht='200' height='200'>";
  $bilder[] = $file;
  }
  }
  closedir($handle);
  }
 
Zurück
Oben