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

Ausarbeitung eines Konzepts

Tabula_Rasa

Mitglied
Hallo,

ich habe eine Tabelle die folgende Spalten haben: a_id, kürzel, name, dateipfad (für das Bild). Der Code sieht so aus:

PHP:
<body>
   <nav id="navigation" class="navigation">
      <div>
         <a href="index.html">Home</a>
        <a href="Anime.html">Animes</a>
         <a href="">Anime Scenes</a>
         <a href="">AMV</a>
        <a href="">Previews</a>
      </div>
   </nav>
   
   <div class="outer">
   <h1>All Animes:</h1>
   <div class="content">
      <div class="container-fluid">
     <div class="row justify-content-center">
     
       <?php include ("data_con.php"); 
   
     $conn = new mysqli($servername, $username, $password, $db);
   
     if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
     } 

$sql = "SELECT `name`, `dateipfad`, `a_id` FROM animes";
$result = $conn->query($sql)
  or die ("MySQL-Error: " . $conn->error); 
     
    if ($result->num_rows >0) {
        while ($row = mysqli_fetch_assoc($result)){ ?>
       
           <div class="col-xs-6 col-sm-6 col-md-6 col-lg-6 no-gutter">
        <div class="rahmen">
            <img src="<?php echo $row['dateipfad']; ?>" class="img-fluid" alt="Responsive image" width="100%" ; />
            <p>
                <?php echo $row['name'] ?>
            </p>
</div>
</div>           
   
<?php

        } // while
    } // if num_rows
 
    else {
    echo "Scheiße";
}
$conn->close();
    echo ""; ?>    
   
 
   
    </div>
    </div>
   
    <br>
   

   
   </div>
   </div>


</body>

Alles funktioniert einwandfrei. Nun habe ich das Problem, dass beim Klicken auf ein Anime eine neue Seite aufgerufen wird, dessen Struktur für alle Animes gilt. Nur bestimmte Daten (wie Links, Titel, Bilder) sind variabel. Je nachdem welcher Anime ausgesucht wurde, wird der passende Inhalt ausgewählt. Das Problem ist, wie ich das machen soll. Ist es möglich je nachdem was angeklickt wurde eine bestimmte Datenbankabfrage getätigt wird? Mit meinem jetzigen Wissenstand ist es nicht machbar, auch wenn ich so drüber nachdenke scheint es nicht machbar zu sein. Falls es nicht möglich ist, hättet ihr Alternativen?
 
Werbung:
Erstmal ist der Code sowas von 2005. Ein Query gehört nicht ins Template, sondern sollte in einer API und der dazugehörige Request in einem Service gekapselt werden. Außerdem verwendest du XML-Notation und Dateinamen schreibt man grundsätzlich in Kleinbuchstaben.

Hinsichtlich deiner Frage sehe ich hier eine Seitennavigation aber keine Links, für die in der While-Schleife ausgegebenen Images. Insofern kann ich nur vermuten, dass du konzeptionell nach Master-Detail suchst, d.h. eine Liste von Items, in der man beim Klick auf deren Detailansicht gelangt.
 
In der Schule hat man nicht wirklich was gelernt, deshalb muss ich mich an alles heranarbeiten. Ich will keine extrem professionelle Seite, dafür reichen meine Kapazität nicht.

Es hat nichts mit der Navigation zu tun. Ich möchte später in der While-Schleife einen Link reinpacken, aber bevor ich das tu, entwickel ich ein Konzept, wie es später funktionieren soll und genau das ist mein Problem, ich hab kein Konzept (oben beschrieben weshalb).
Hast du Stichwörter, die ich googlen könnte, um mein Problem zu lösen?
 
Werbung:
Ich habe mich damit beschäftigt. Nichts scheint vereinbar mit meinem derzeitigen Konzept zu sein. Um sicherzugehen: was hättest du gemacht? Da sind zwar einige Ansätze im Netz, aber für das, was ich möchte, scheinen sie nicht zu funktionieren.

Das Problem:

Bislang können Anime-Schaubilder + Titel erzeugt werden - in der Master-Detail-Beziehung wäre das die Master. Die Verlinkung zum Detail-Item stellt für mich ein Problem dar.

Ein für mich nicht passender Ansatz:

Ich könnte zwar immer die Detail-Item-Datei erstellen für jedes Anime (also: Anime1 --> Anime1_Detail.php, Anime 2 -> Anime2_Detail.php) und den Dateinamen einfach in die Datenbank zu dem dazugehörigen Anime eintragen und einfach den Limk in der While-Schleife ausgeben. Das Problem ist die Menge an Dateien. Wenn man nur 50 Animes auf der Liste hat, muss man 50 Detail Items erstellen.

Deshalb noch mal die Frage: Wie wärst du vorgegangen? Was hättest du benutzt um diese Master-Detail-Beziehung zur realisieren (Asp.net, php etc)? Ich würde liebend gerne diese Beziehung mittels Mysqli zu realisieren, aber die Verlinkung stellt eine große Herausforderung für mich dar.

Ich danke euch für das Lesen meines Beitrags.
 
Master bedeutet eine Listenansicht von Items, bsw. die Threads eines Forums. Detail öffnet den entprechenden Thread und zeigt dessen Beiträge.

Ich würde mir zuerst Gedanken über das Model machen. Welche Properties besitzt ein Anime: Name, Image, etc. Anschließend über das Backend. Das muss nicht auf dem eigenen Server liegen, sondern könnte auch ein externer Provider wie Firebase sein, der eine API anbietet. Für den Anfang lässt sich das sogar mit JSON Files mocken.

Im Frontend, ich mache das mit Angular, benötige ich zwei Komponenten mit HTML-Templates (Master/Detail) sowie zwei Routen: my_domain/:category und my_domain/:category/:item und einen Service für den Ajax-Request. Außerdem noch die Frage, welches UI-Framework (Bootstrap, Material, etc.) ich verwenden will.
 
Werbung:
Sehr, sehr viel Input, huch. Ich glaube, ich taste mich weiterhin voran. Deshalb versuch ich mein aktuelles Problem zu lösen. Dein Beispiel mit den Threads und dessen Beiträge ist ein perfektes Beispiel für mein Problem.

Wenn ich dieses Prinzip dahinter verstehe, kann ich das auf meine Seite anwenden. So fing die suche an. Da ich dachte, dass es viele Tutorials gibt, in denen gezeigt wird, wie man ein Forum "from scratch" erstellt, war ich sogar bereit, von Anfag bis zum Ende ein Mini-Forum zu programmieren. Jedoch ließ sich nur ein veraltetes Tutorial finden, in dem die meisten Befehle nicht mehr aktuell waren (https://code.tutsplus.com/tutorials/how-to-create-a-phpmysql-powered-forum-from-scratch--net-10188). So stellt sich mir weiterhin die Frage, wie ich solch eine Master/Detail-Beziehung mit MySQL und PHP hinbekomme.

Wenn ich nur diese Logik dahinter verstehen würde, wie Threads dazukommen und bei einem Klick genau die Beiträge dieses Threads angezeigt werden, wäre ich extrem erleichtert.

Hast du irgendwas, was mich voranbringen könnte?

Die Anfänger-Fragen tun mir wirklich leid. Nur ist es so, dass ich ein Anfänger bin :D. Deshaöb bitte ich euch um Verständnis.
 
Wenn ich nur diese Logik dahinter verstehen würde, wie Threads dazukommen und bei einem Klick genau die Beiträge dieses Threads angezeigt werden, wäre ich extrem erleichtert.

Viel zu komplex für dein Vorhaben.

Vergiss PHP/MySQL. Moderne Websites laden lediglich die Bestandteile einer Seite neu, welche sich verändern und das bedeutet ausschließlich JavaScript im Frontend. Für dein Anime-Projekt benötigst du eine index.html und zwei Templates, die je nach Route eingebunden werden. Wenn du statt MySQL eine NoSQL-Datenbank (Mongo, Couch) verwendest, kannst du dir die Tables und Joins ersparen. Noch einfacher geht es mit Cloud-Backends wie firebase oder backand.com

Den Einstieg findest du hier. Das offizielle Tutorial ist kostenlos, aber ich fand es eher schwerfällig.
https://angular.io/tutorial

oder hier. Ist nicht kostenlos, aber geht mehr in die Tiefe und ist zugänglicher.
https://www.udemy.com/the-complete-guide-to-angular-2

Ergänzend lädst du hier
https://www.jetbrains.com

die Trial von Webstorm herunter. Die lässt sich 4 Wochen kostenlos nutzen. Wenn du in diesem Zeitraum die Tutorials durcharbeitest, hast du das Prinzip verstanden anschließend keine Probleme mehr mit deinen Animes.
 
Ich bin bereit, diesen mich in diesen Kurs einzuschreiben. Angular ist ein JavaScript Framework. Syntax ist dann wahrscheinlich ähnlich. Das Problem ist ich kann nicht wirklich JavaScript.

EDIT: Ich schreibe mich trotzdem ein. Vielleicht verstehe ich ja doch etwas :)
 
Werbung:
Das Problem ist ich kann nicht wirklich JavaScript.

Ist auch nicht notwendig. Du lernst hier TypeScript. Das hat wenig mit dem JavaScript zu tun, wie du es bisher kennengelernt hast, sondern orientiert sich syntaktisch eher an Java und ist auch für Leute, die bisher nur PHP kennen, deutlich einfacher zu lesen.
 
So. 20 Videos durch und schon kommen Fragen auf :D. In der CSS-Datei werden Überschriften ignoriert. Ich habe versucht, die h-tags, also h1 h2 h3 usw, zu färben. Mit dem Code in der CSS-Datei funktioniert es komischerweise nicht, aber wenn ich nicht auf eine andere Datei verweise sondern direkt mittels styles: [`h1 {color: red;}`] die Überschrift färbe, funktioniert es. Dann habe ich geschaut, ob auf die richtige Datei verwiesen wird, und die Antwort lautet: ja. Dann habe ich den h1 tag durch einen p-tag ersetzt und versucht, diesen zu färben und es hat geklappt. Jetzt bin ich ziemlich verwirrt... Weißt du, woran es liegen könnte?

EDIT: Wahnsinn... ich ändere die Farbe und es klappt auf einmal. Ich verstehe überhaupt nichts mehr, aber hey, es klappt :D. Hab nach der Änderung der Farbe strg+z gedrückt, um wieder die alte Farbe zu haben, die nicht übernommen werden wollte und gespeichert. Jetzt wird sie übernommen.
 
Zuletzt bearbeitet:
Zurück
Oben