checkaline Geschrieben 9. August 2017 Autor Geschrieben 9. August 2017 Ich habe es schon alles ausgeben lassen, dabei zeigt er mir immer das richtige an. Er gibt mir das wieder, je nachdem was für ein Auto der Benutzer wählt. Alles funktioniert, bloß die mit Klammern nicht Zitieren
Crash2001 Geschrieben 9. August 2017 Geschrieben 9. August 2017 vor 23 Minuten schrieb checkaline: Die stehen doppelt weil zb Audi gibt es mit verschiedenen Baujahren dann mit verschiedenen typen usw[...] In einer normalisierten Datenbank in der dritten Normalform kommen aber keine Redundanzen vor. Somit würde es in einer weiteren Tabelle dann eine Liste geben mit ID und zugeordnet Auto und die entsprechende ID würde dann in der Haupttabelle stattdessen stehen. Klebrig reagierte darauf 1 Zitieren
Whiz-zarD Geschrieben 9. August 2017 Geschrieben 9. August 2017 vor 40 Minuten schrieb checkaline: Ich habe es schon alles ausgeben lassen, dabei zeigt er mir immer das richtige an. Er gibt mir das wieder, je nachdem was für ein Auto der Benutzer wählt. Alles funktioniert, bloß die mit Klammern nicht Das kann ja nicht sein. Ansonsten würde die if-Abfrage funktionieren. Schon mal mit var_dump() geschaut, was da drinnensteht? Zitieren
Rienne Geschrieben 10. August 2017 Geschrieben 10. August 2017 vor 16 Stunden schrieb checkaline: Alles funktioniert, bloß die mit Klammern nicht Das liegt daran, dass Klammern als Teil des Codes angesehen werden und nicht als Inhalt der Variable. Ich kenne mich leider mit PHP nicht aus, so dass ich nicht wüsste, wie man es umgeht. Aber auch ich hätte es mit einfachen oder doppelten Anführungszeichen versucht. Ansonsten, wie @Whiz-zarD schon geschrieben hat, mal nach dem Datentyp schauen und was der tatsächliche Inhalt der Variable ist, wenn es sich um "Groß (SUV)" handelt. Auch solch ein Problem bei der Abfrage könnte man vermeiden, wenn man in der Datentabelle die "Größe" eines Wagens in eine weitere Tabelle auslagert und lediglich einen Zahlenwert in der ursprünglichen Tabelle für diese Spalte hinterlegt. Das Normalisieren bei Datenbanken ist übrigens ein sehr beliebtes Thema von Abschlussprüfungen und sollten dementsprechend bekannt sein und auch angewendet werden können. Genauso wie syntaktisch korrekte SQL-Abfragen, die übrigens in den letzten Jahren für den FIAE-Prüfungsteil sehr an Komplexität zugenommen haben. Zitieren
Crash2001 Geschrieben 10. August 2017 Geschrieben 10. August 2017 Ja, Normalisierung sollte man definitiv können. Beim Thema SQL haben wir damals in der Berufsschule nur ganz einfache Abfragen durchgenommen. Zum Glück waren die Abfragen in der Abschlussprüfung damals noch nicht so kompliziert (kompliziert, nicht komplex) wie heutzutage. Anderseits ist Datenbankzugriff eigentlich etwas ganz normales für einen Programmierer und dementsprechend sollte die SQL-Syntax zumindest in Grundlagen (bis zu den verschiedenen Joins) auch beherrscht werden. Zu den Klammern.... da muss ein einfaches Anführungszeichen vor und hinter den kompletten Ausdruck. Ansonsten interpretiert PHP es aufgrund der Klammern als Funktion, die er nicht kennt. Alternativ den Ausdruck in doppelte Anführungszeichen und vor jedes Klammerzeichen ein \ (Backslash) zur Maskierung vor setzen. Ausdrücke in doppelten Anführungszeichen werden von PHP interpretiert (daher muss man Sonderzeichen dann auch maskieren), Ausdrücke in einfachen Anführungszeichen werden nicht interpretiert (und somit auch keine Maskierung notwendig), sondern als reiner Text angesehen. Die Kosten sollten übrigens auch in der Datenbank stehen und nicht im Quellcode, damit man diese einfach verändern kann, ohne das Script anpassen zu müssen. Ich würde sagen, du versuchst die Tabellen am besten erst einmal auf die dritte Normalform zu bringen (also Datenbank entweder komplett neu designen, oder die Redundanzen auslagern in weitere Tabellen. Also eine Tabelle "size" in der die verschiedenen Größen stehen, eine Tabelle "manufacturer" in der die Hersteller drin stehen und eine Tabelle "model" in der die einzelnen Modelle stehen, brauchst du vermutlich mindestens zusätzlich zur Haupttabelle, und danach kümmerst du dich erst um die Abfragen. Bringt ja nichts, wenn es dann gehen würde, aber du doch wieder neu anfangen kannst. Zudem umgehst du so auch diverse Probleme (z.B. dein Klammerproblem) und kannst die SQL-Syntax (Joins) auch noch üben. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.