Ankündigung

Einklappen
Keine Ankündigung bisher.

If bei php/mysql?

Einklappen

Neue Werbung 2019

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

  • If bei php/mysql?

    Hallo!

    ich bin absoluter neuling im gebiet von php, dennoch wollte ich nicht immer in excel mit datenbanken arbeiten, sondern endlich auch mal "online" mithilfe von php und mysql.

    ich habe ein kleines projekt gestartet, welches die benötigten zutaten und die gesamtkosten der herstellung von kuchen anzeigen soll. bis hierhin kam ich gut durch, hatte ein kleines buch welches die grundzüge von php und mysql erklärt.

    jetzt steh ich aber vor einem problem: ich habe testweise mal mit 2 Kuchenarten ausprobiert, der eine hat 3 zutaten in der datenbank, der andere nur 2.
    wer lust hast kann sich das ja kurz anschauen:
    Beispielformular

    ich hab bei Erdbeer einfach in der Datenbank angegeben, dass der Kuchen kein Wasser brauch (nur zu Testzwecken) Blaubeer hingegen brauch alle 3 Zutaten.

    Wenn man jetzt nur vergleicht: bei Erdbeer steht freier Text rum, wo bei Blaubeer steht "Kosten für Wasser 0,50, für ein Kuchen brauch man 3 davon"
    steht bei Erdbeer zb nur der Leertext "Kosten für", und dann nichts mehr.

    kann man da irgendwie eine If-Abfrage reinbringen? Dass also nur dann Text angezeigt wird, wenn es auch einen dazugehörigen Datenbankeintrag gibt?

    hab in der Datenbank bei Erdbeer für die freien Zeilen "NULL" eingestellt.


  • #2
    hab in der Datenbank bei Erdbeer für die freien Zeilen "NULL" eingestellt.
    Dieser Satz macht so keinen Sinn, Zeilen braucht man für „leere“ Zutaten sicher nicht anlegen, falls Du Spalten meinst, ist das DB-Design falsch (was wenn ein Rezept 20 Zutaten benötigt).

    Ansonsten lautet die Antwort: ja. Also bitte genauer fragen!
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      ah ok, ich hab mal hier was zur veranschaulichung:

      diese 2 Tabellen habe ich in der Datenbank,
      die erste Die Kuchennamen mit benötigten Zutaten



      und die Kosten für die Zutaten



      ein teil der php-datei ist dann das hier:

      PHP-Code:
      echo "Kosten für $zeile1[zutatname]$zeile1[kosten]";
      echo 
      "<br>";
      echo 
      "Für einen Kuchen benötigt man $zeile1[anzahl1] davon";
      echo 
      "<br>";
      echo 
      "Kosten für $zeile2[zutatname]$zeile2[kosten]";
      echo 
      "<br>";
      echo 
      "Für einen Kuchen benötigt man $zeile2[anzahl2] davon";
      echo 
      "<br>";
      echo 
      "Kosten für $zeile3[zutatname]$zeile3[kosten]";
      echo 
      "<br>";
      echo 
      "Für einen Kuchen benötigt man $zeile3[anzahl3] davon";
      echo 
      "<br>"
      die Variablen sind einfach frei entstanden, kommen von diesem befehl hier:
      PHP-Code:
      $ergebnis1 $mysqli->query("SELECT kosten,zutatname,anzahl1 FROM zutaten,kuch WHERE kuch.zutat1=zutaten.zutatname AND name='{$_POST[a]}';");
      $zeile1 $ergebnis1->fetch_array(); 
      hoffe das erklärt mein problem nun ein wenig besser
      Und die Frage ist halt, was man im oberen php-code einfügen könnt, damit zb bei Erdbeer "echo "Für einen Kuchen benötigt man $zeile3[anzahl3] davon" überhaupt nicht mehr angezeigt wird.

      Kommentar


      • #4
        Einfach prüfen ob die Variable leer ist. Außerdem werf ich dir jetzt mal die Wörter Serialisierung und JOIN an den Kopf^^
        BTW:
        Zitat von Johnny2nd Beitrag anzeigen
        PHP-Code:
        echo "Kosten für $zeile1[zutatname]$zeile1[kosten]"
        Solltest du eher in
        PHP-Code:
        echo "Kosten für {$zeile1['zutatname']}{$zeile1['kosten']}"
        ändern (vorausgesetzt zutatname und kosten sind keine Konstanten, dann die einfachen Anführungszeichen weglassen).
        MfG

        Kommentar


        • #5
          Wie nikosch schon sagte - dein Datenmodell ist falsch.

          Informiere dich über das Stichwort Normalisierung.

          Kommentar

          Lädt...
          X