Ankündigung

Einklappen
Keine Ankündigung bisher.

Was benötige ich?

Einklappen

Neue Werbung 2019

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

  • Was benötige ich?

    Hi zusammen,

    ich bin noch Anfänger und bräuchte ein Tipp für die richtige Richtung da ich nicht weiß was es sonst noch für Möglichkeiten gibt.
    Mein Ziel ist es Kochrezepte in einer Übersicht und die dazugehörigen Zutaten abzubilden.

    Die Suchleiste samt einer SQL Abfrage habe ich nur wird das nicht so dargestellt wie ich möchte, ich weiß nicht ob ich es mit Arrays oder etwas anderen programmieren soll, ob ich zwei SQL Abfragen brauche eine für die Rezeptnamen und eine für die Zutatennamen... bin bisschen am verzweifeln.


    Zuerst das Beispiel und danach zeige ich wie es momentan dargestellt wird.

    SOLL Zustand________________________
    "Rezeptname"
    -"Zutatname"
    -"Zutatname"
    .
    .
    .

    Pizza
    -Mehl
    -Eier
    -Tomatensoße

    Tomatensuppe mit Nudeln
    -Tomaten
    -Wasser

    Tomatensuppe mit Sahne
    -Tomaten
    -Wasser
    -Sahne
    ________________________


    IST Zustand_______________

    Pizza
    -Mehl

    Pizza
    -Eier

    Pizza
    -Tomatensoße

    Tomatensuppe mit Nudeln
    -Tomaten

    Tomatensuppe mit Nudeln
    -Wasser

    Tomatensuppe mit Sahne
    -Tomaten

    Tomatensuppe mit Sahne
    -Wasser

    Tomatensuppe mit Sahne
    -Sahne
    ________________________


    Danke euch!

    MacDilles

  • #2
    ob ich zwei SQL Abfragen brauche eine für die Rezeptnamen und eine für die Zutatennamen
    In der Regel nicht, trozdem ist es immer sinnvoll Code so zu posten, daß man auch helfen kann.
    In deinem Fall fehlt das DB-desing um Dir eine Abfrage vorzuschlagen.

    Kommentar


    • #3
      Hi tomBuilder,

      tomBuilder danke für deine schnelle Antwort .

      tbl_rezepte
      id_rezept rezeptname
      1 Pizza
      2 Tomatensuppe mit Nudeln
      3 Tomatensuppe mit Sahne
      tbl_r_z
      id id_rezept id_zutat
      1 1 1
      2 1 2
      3 1 3
      4 2 4
      5 2 5
      6 3 4
      7 3 5
      8 3 6
      tbl_zutaten
      id_zutat zutatname
      1 Mehl
      2 Eier
      3 Tomatensoße
      4 Tomaten
      5 Wasser
      6 Sahne

      PHP-Code:
             $sql "SELECT rezeptname,zutatname
                      FROM tbl_rezepte
                          INNER JOIN tbl_r_z
                          ON ( tbl_rezepte.id_rezept =tbl_r_z.id_rezept )
                          INNER JOIN tbl_zutaten
                          ON ( tbl_zutaten.id_zutat = tbl_r_z.id_zutat)
                      WHERE" 
      $abfrage ;


                      
      $result mysqli_query($conn$sql);
                      
      $queryResult mysqli_num_rows($result);

                      while (
      $row mysqli_fetch_assoc($result))
                          {
                          if (
      $queryResult 0)
                              {
                              echo 
      "<div>";
                              echo 
      "<p>".$row['rezeptname']."</p>";
                              if (
      $queryResult 0)
                                  echo 
      "<p> -".$row['zutatname']."</p>";
                              echo 
      "</div></br>";
                              }      
                          } 

      Kommentar


      • #4
        Sorry, Eingangspost nicht verstanden.
        In der Wissensammlng heisst das Gruppenbruch
        https://php-de.github.io/jumpto/grup...h/#beispiel-1b

        Kommentar


        • #5
          Danke dir aber das mit dem Gruppenbruch habe ich bereits probiert nur kann man das später nicht so schön gestalten daher bin ich auf der Suche nach einer anderen Lösung.
          Gibt es noch eine andere Lösung? :/

          Kommentar


          • #6
            Andere Lösung ?
            ist:
            Pizza
            -Mehl

            Pizza
            -Eier
            Soll

            Pizza
            -Mehl
            -Eier
            Also:
            Code:
            Pizza merken und solange Gericht  = Pizza  Gericht nicht ausgeben.
            Du schreibst zweimal:
            PHP-Code:
            if ($queryResult 0){} 
            anstatt den oben aufgeführten Test (PseudoCode) durchzuführen.

            Kommentar


            • #7
              Zitat von MacDilles Beitrag anzeigen
              Danke dir aber das mit dem Gruppenbruch habe ich bereits probiert nur kann man das später nicht so schön gestalten daher bin ich auf der Suche nach einer anderen Lösung.
              Inwiefern?
              [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
              [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

              Kommentar


              • #8
                tomBuilder verstehe nicht genau was du meinst ? Ja genau das Gericht Pizza soll solange gemerkt werden bis alle Zutaten beisammen sind dann soll es ausgegeben werden. Wie hier in dem Post beschrieben ist der Gruppenbruch leider keine Lösung.

                VPh

                Die Normale Ausgabe sieht mit einem Rahmen gestaltet bisher so aus:
                Pizza
                -Mehl
                Pizza
                -Eier
                Wenn ich den Gruppenbruch anwende erhalte ich das folgende Ergebnis:
                Pizza
                -Mehl
                -Eier

                Die Ausgabe soll so aussehen:
                Pizza
                -Mehl
                -Eier

                Das Problem bei dem Gruppenbruch ist dass die Gestaltungselemente wie der Rahmen hier mit übernommen wird.
                Bzw. es ein geschlossener Rahmen um jede Zutat nach der ersten Ausgabe mit ausgibt.
                Hier wird zwar die Zutaten unter der Überschrift untersortiert aber diese dennoch als einzelne Abfrage angesehen wird und somit ein eigenen geschlossenen Rahmen bekommt.


                Kommentar


                • #9
                  Absolut ungetestet.

                  PHP-Code:
                  while ($row mysqli_fetch_assoc($result))
                  {
                     
                  $rezepte[$row['rezeptname']][] = $row['zutatname'];    
                  }
                  foreach(
                  $rezepte as $rezeptname=>$rezept) {
                       echo 
                  '<div'>;
                       echo 
                  "<p>".$rezeptname."</p>";
                        foreach(
                  $rezept as $k=>$zutat) {
                              echo 
                  '<p>-' $zutat '</p>';
                         }
                        echo 
                  '</div>';

                  Kommentar


                  • #10
                    Dein Verständnissproblem ist das Du Gruppenbruch für Layout hältst, aber:
                    Der Gruppenbruch oder Gruppenwechsel ist ein Verfahren zum Gruppieren linear verwalteter Daten (wie zum Beispiel die Rückgabemenge einer Datenbankabfrage).
                    Das mit SQL Injection und mehrsadendem Thread Titel sei auch mal erwähnt

                    Kommentar


                    • #11
                      tomBuilder danke dir für dein Lösungsvorschlag das geht aber weniger in die Richtung was mein Ergebnis nachher sein soll.
                      jonas3344 hat mir die Richtung gezeigt wie es funktionieren kann danke dir auch . Hab den Code mal eingefügt aber er funktioniert so noch nicht, ich werde mal ein wenig daran herum basteln

                      Kommentar


                      • #12
                        Aaaaah wie geil danke dir jonas3344 es funktioniert ...habe selber ein kleinen Fehler noch mit eingebaut aber dein Code funktioniert so wie ich es haben möchte!!!!
                        Ich sitze schon ewig daran und da Postet man hier etwas ins Forum und nach zwei Tagen helfen einen für mich Profis und es funktioniert .

                        Bin gerade mega glücklich ich danke euch allen!!!

                        Kommentar


                        • #13
                          jonas3344 ich habe hier noch eine letzte Frage an dich.

                          Wenn ich hier nach allem Suche zeigt es mir hier genau das so an dass alle Zutaten den Rezepten untergeordnet sind.
                          Wenn ich aber nach der Zutat Wasser suche zeigt es mir auch alle Rezepte an und dort untergeordnet das Wasser aber es lässt alle dazugehörigen Zutaten weg wie z.B. Tomaten wenn die auch zu dem Rezept gehören.

                          Was muss ich da noch mit angeben oder ist das komplizierter?

                          Danke dir nochmal für die schnelle Hilfe

                          Kommentar


                          • #14
                            Ich weiss nicht ob ich ganz verstehe was du genau willst. Du willst aus der Datenbank alle Rezepte holen, die eine gewisse Zutat x drin haben?

                            Kommentar


                            • #15
                              Ich zeige das am besten nochmal anhand einem Beispiel auf

                              Wenn ich in meiner Suchleiste " * " eingebe dann erhalte ich alle Rezepte mit allen Zutaten so wie ich es haben möchte und wie du es hin bekommen hast
                              sprich das Ergebnis sieht folgendermaßen aus
                              Pizza
                              -Mehl
                              -Wasser
                              -Eier
                              -Tomatensoße
                              Tomatensuppe mit Nudeln
                              -Wasser
                              -Tomaten
                              -Nudeln
                              usw...


                              Wenn man jetzt in der Suchleiste "Tomaten" eingibt erhält man folgendes Ergebnis:
                              Pizza
                              -Tomatensoße
                              Tomatensuppe mit Nudeln
                              -Tomaten
                              Hier fehlen die Zutaten welche man noch dafür benötigt die sollen auch angezeigt werden, wie das Ergebnis darüber.



                              Wie ich es erkenne hast du ein Array erstellt.
                              Muss man in dem Array etwas ändern oder in der SQL Abfrage um das obere Ergebnis zu erhalten auch wenn man "Tomaten" in der Suchleiste eingegeben hat dass man die restlichen Zutaten aufgezeigt bekommt?








                              Kommentar

                              Lädt...
                              X