Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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.

Geschrieben
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?  

 

Geschrieben
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.

Geschrieben

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.

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...