phpmyadmin Datenbank erstellen und darin Rezepte mit Zutatenliste speichern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • phpmyadmin Datenbank erstellen und darin Rezepte mit Zutatenliste speichern

    Hallo zusammen,

    ich bastle gerade eine Seite für Essensrezepte. Nun möchte ich gerne eine Datenbanktabelle erstellen in der ich Rezepte in verschiedene Kategorien speichern kann. Wie z.b Pizza, Pasta (Italienisch) oder Eisbein mit Sauerkraut,
    Rinderschmorbraten (Deutsch) Burger (Amerikanisch) so in der Art.

    Wenn ich dann das Rezept in der Kategorie gespeichert habe, will ich wenn ich dann die entsprechende Kategorie ausgewählt habe, das mir alle Rezepte aus der Kategorie angezeigt werden.

    Zusätzlich möchte ich die einzelnen Zutaten, sowie die Arbeitsschritte zum herstellen dieses Rezeptes speichern, und später beim klicken auf den entsprechenden Link des Rezepts angezeigt bekommen.

    Leider weis ich nicht genau wie genau das Konstrukt aufgebaut sein muss.
    Benötige ich mehrere Tabellen (da ja verschiedene Kategorien) bzw. kann man eine Zutatenliste speichern?

    Huiii ich hoffe ich konnte es einigermaßen verständlich erklären was ich möchte

    Ich würde mich freuen wenn mir jemand helfen kann.

    Herzliche Grüße

  • #2
    Hey Keulenkarl,


    selbstverständlich kannst du alle informationen in der Datenbank speichern, dafür ist ja die Datenbank da. Du kannst z.B. eine Tabelle mit dem Namen Kategorie erstellen, jede dieser Kategorie hat eine eindeutige ID und diese kannst du dann den Rezepten zuweisen. Dafür brauchst du natürlich eine neue Tabelle mit der Bezeichnung Rezepte. Damit du ein verständnis dafür hast, würde ich dir empfehlen phpmyadmin anzuschauen, falls du bereit eine Webentwicklungsumgebung hast wie z.B. XAMPP oder LAMPP.



    Ich zeige dir mal zwei Beispiel Tabellen eventuell hilft es dir ja.


    Das hier ist die Kategorie Tabelle:






    Erklärung Kategorie Tabelle:
    Die ID steht für Identifikationsnummer. Die muss einzigartig sein.
    Dann haben wir die Spalte Bezeichnung, hier kommen die Namen das Kategorien rein. Somit hat jede Kategorie eine eindeutige nummer die du
    in der nächsten Tabelle verwenden kannst.







    Das hier ist die Rezepte Tabelle:





    Erklärung Rezepte Tabelle:
    Hier haben auch eine ID die eindeutig ist, die für jeden rezept steht. Dann
    haben hier die Kategorie ID, die du von der oberigen Tabellen zuweisen kannst. Die Spalte bezeichnung für den Namen des Rezeptes, beschreibung
    für die Zutaten und erklärung des Rezeptes und zuletzt noch ein Bild. Den
    ohne bild sieht es sicherlich nicht so gut aus


    Ich hoffe ich konnte dir ein wenig behilflich sein.






    Wichtiger Hinweis: Bitte beachte das alles was hier gepostet wurde nur ein Vorschlag zur Lösung ist und nicht zu 100% funktionieren kann, da noch viel mehr dazu fehlt.

    Kommentar


    • #3
      Wow vielen lieben Dank, für dir ausführliche Rückantwort. Ich werde dies mal so probieren und mich wieder melden, wenn es geklappt oder ggfs. nicht geklappt hat :-)

      Kommentar


      • #4
        Eine Frage habe ich dazu noch! Wie kann ich beide Tabellen über die ID verbinden?

        Muss ich das dann über LEFT JOIN (Relation) machen oder wie genau würde das funktionieren.

        z.B. aus der 1ten. Tabelle (Kategorien) die Spalte (Italienische Rezepte, ID 1) alle Rezepte zu dieser Kategorie aus der 2ten. Tabelle (Rezepte)

        Wie müsste demnach der sql code aussehen? Ich versteh das nicht ganz mit der Zuweisung

        Liebe Grüße Keulenkarl
        Zuletzt geändert von Keulenkarl; 18.10.2021, 23:40.

        Kommentar


        • #5
          Hey Keulenkarl,


          das ist eingentlich recht einfach.



          PHP-Code:
          $kategorie_id 1;
          $abfrage "SELECT id,bezeichnung,beschreibung,bild FROM rezepte WHERE kategorie_id = '$kategorie_id'"

          Du erstellst eine Abfrage bei der Tabelle Rezept und machst eine WHERE Bedingung mit der Kategorie ID, wie du die Kategorie id übergibst ist natürlich dir überlassen, ob du es vom oben der URL auslesen möchtest oder ein anderen weg dafür codest, ist dir überlassen.


          Mfg
          Flavaslava

          Kommentar


          • #6
            Hey Keulenkarl,


            eventuell kannst du mir dein Code senden, was du bisher gemacht hast und ich kann dir dann sagen wo und wie du den rest coden kannst. Oder wir können auch über Teamviewer kommunizieren, manchmal ist es besser wenn man es live macht, dann versteht man auch wie es gemacht werden kann, falls du interesse hast.


            Mfg
            Flavaslava

            Kommentar


            • #7
              Huhu Flavaslava,

              sry das ich mich erst jetzt wieder melde, aber war gestern so gut wie gar nicht am PC.
              Also dank deiner Hilfe läuft das Programm echt super! Ich lasse mir aus beiden DB Tabellen die Sachen anzeigen die ich benötige. Hier z.B erstmal nur Rezeptbezeichnung.

              <?php
              $server = 'mysql:host=localhost;dbname=Rezepte';
              $username = 'root';
              $passwort = '';

              try{
              $verbindung = new PDO($server, $username, $passwort);
              }
              catch(Exeption $fehler){
              print $fehler->getMessage();
              }
              $kategorie_id = 1;
              $sqlBefehl = "select id,Rezeptbezeichnung FROM tbl_rezepte WHERE kategorie_id = '$kategorie_id'";
              $abfrage = $verbindung->prepare($sqlBefehl);
              $abfrage->execute();
              $ergebnismenge = $abfrage->fetchAll();

              foreach($ergebnismenge as $zeile){
              echo $zeile["Rezeptbezeichnung"] . "<br>";
              }
              ?>


              so sieht aktuell meine Abfrage und Ausgabe aus. Soweit funktioniert alles Prima

              Kommentar


              • #8
                Kann man eigentlich

                im <a> tag aus einer Datenbank ein Bild als Link einfügen und das ganze dann ausgeben via echo?

                quasi so würde ich mir das vorstellen!

                <?php echo '<a href" hier die Datenbankabfrage nach einem Bild das als Link dienen soll">'; ?>

                Bekomme das leider nicht so hin!




                Lg Keuli

                Kommentar


                • #9
                  natürlich kannst du das machen.


                  das würde dann so aussehen:


                  PHP-Code:
                  <a href="<?php echo $zeile["bild_link"]; ?>">Link</a>

                  Kommentar


                  • #10
                    Zitat von Flavaslava Beitrag anzeigen
                    natürlich kannst du das machen.


                    das würde dann so aussehen:


                    PHP-Code:
                    <a href="<?php echo $zeile["bild_link"]; ?>">Link</a>
                    Ich glaube ich habe es nicht ganz richtig erklärt, wie ich meine!

                    $server = 'mysql:host=localhost;dbname=tortentraum_holler';
                    $username = 'root';
                    $passwort = '';

                    try{
                    $verbindung = new PDO($server, $username, $passwort);
                    }
                    catch(Exeption $fehler){
                    print $fehler->getMessage();
                    }
                    $kategorie_id = 1;
                    $sqlBefehl = "select id,Rezeptbezeichnung,Bild FROM tbl_rezepte WHERE kategorie_id = '$kategorie_id'";
                    $abfrage = $verbindung->prepare($sqlBefehl);
                    $abfrage->execute();
                    $ergebnismenge = $abfrage->fetchAll();

                    foreach($ergebnismenge as $zeile){
                    ?> <li><a href="<?php echo $zeile["bild_link"] target="vorschau";?>"><?php echo $zeile["[COLOR="Red"]Rezeptbezeichnung[/COLOR]"] ."<br>"; ?></a></li><?php
                    }

                    Es soll quasi dann die [COLOR="red"]Rezeptbezeichnung[/COLOR] als Link ausgegeben werden, und wenn ich dann auf den Link klicke soll ein Bild des (Kuchen) in einem dafür vorgesesehen div Fenster (Target) angezeigt werden. Ich hoffe du verstehst wie ich meine Das Bild wird mir ansich auch noch als Binärcode dargestellt. Ich glaube ich habe da ein Fehler bei der Speicherung der Bildinformationen

                    Hier nochmal der Bereich wie ich es jetzt habe. Ansich tut sich schon was in dem Vorschau Fenster, allderdings erscheint nicht das Bild

                    <li><a href="data:Bild/jpg;base64,<?php echo base64_encode($data);?>" target="vorschau"><?php echo $zeile["Rezeptbezeichnung"] ."<br>"; ?></a></li><?php
                    Zuletzt geändert von Keulenkarl; 21.10.2021, 17:31.

                    Kommentar


                    • #11
                      Vielleicht sollte ich noch dazu sagen das Bild ist in der Datenbank als "Blob" gepeichert, evt. hat es damit was zu tun

                      Kommentar


                      • #12
                        Dann hast du in der Datenbank Tabelle einen fehler gemacht, denn man speichert niemals das Bild selbst in der Datenbank. Man speichert lediglich nur den pfad zu dem Bild in der Datenbank. Also sollte deine Spalte mit dem "bild_link" kein binärercode sein, sondern ein varchar(100) sein. Dort in der spalte speicherst du dann den link des Bildes. z.B. befindet sich das bild das du hoch lädst in einem Ordner mit dem namen "Bilder" dann musst du in die Spalte speichern "bilder/bild1.jpg" und somit kannst du es dann per img-Attribute den bild aufrufen. Ich glaube du wirst einiger solcher fragen noch haben, deswegen hatte ich dir eventuell darum gebeten das wir es per Teamviewer machen, weil so wird es mit der erklärung schwierig, das ich nicht genau weiss wo du im code fest steckst. Schau mal in deine Privat nachricht hab dir dort mal geschrieben.


                        Mfg
                        Flava

                        Kommentar


                        • #13
                          eventuell schaust du dir mal einige Beispiel Scripte an wie man einen Bild hoch lädt und diese speichert mithilfe von HTML und PHP. Auf der Webseite selfhtml.org sollte diesbezüglich themen sein. Einfach in google suchen, dann sollte was heraus kommen. Suchbegriffe wären "php bilder hochladen html formular" oder "html php bilder hochladen". Da kannst du dann schauen wie ein Bild hochgeladen wird.


                          Ausserdem ist deine Anzeige Abfrage noch falsch:


                          PHP-Code:
                          ?><li><a href="<?php echo $zeile["bild_link"]; ?>"><?php echo  $zeile["Rezeptbezeichnung"];  ?></a></li><?php

                          Das Bild als Link darzustellen ist so oder so nicht die richtige richtung denke ich mal, weil jedes Rezept soll ja eine eigene Seite sein. Damit dies geschieht, wäre es doch besser wenn du dein code so verändern würdest.


                          PHP-Code:
                          ?><li><a href="http://deinewebseite.de/<?php echo $zeile["id"]; ?>"><?php echo  $zeile["Rezeptbezeichnung"];  ?></a></li><?php

                          Sobald man auf den Link klickt soll ja eine neue Seite mit der jeweiligen Rezept beschreibung und Bild erscheinen.


                          Mfg
                          Flava

                          Kommentar


                          • #14
                            ich habe dir mal eine E-Mail über diese Webseite zukommen lassen, würde mich freuen, wenn du es lesen könntest.


                            Mfg
                            Flava

                            Kommentar


                            • #15
                              Tree Service Redding

                              Great Forum. Thanks for sharing your knowledge. Trees

                              Kommentar

                              Lädt...
                              X