Datenbanken - neue und gute Antworten

  • 0
    SQL-Syntax ist falsch, aber wo ist der Fehler?
    Antwort von OttoLorenz OttoLorenz

    from & to sind reservierte Wörter von mySQL. Du kannst sie aber trotzdem verwenden, indem du Backticks in deinen Querys verwendest.

    INSERT INTO messages(`from`,`to`,`message`) VALUES (...)
    

    Backticks sind keine ' sondern ` - zwei Tasten höher auf deiner Tastatur inkl Umschalt-Taste.

  • 0
    SQL Server Logfiles
    Antwort von DerTom DerTom

    Hm, es muss nicht mit Triggern gelöst sein... Jede relationale Datenbank loggt was Sie tut. Man kann das abschalten, aber per Default wird ein Physical und ein Logical Log geführt. Mithilfe der Logs kannst Du sicher Fehler finden, aber da wird eine Menge geschrieben, wenn die Änderungsrate hoch ist.

    Ich hatte früher mal eine Informix Datenbank, da wurde ein redundanter Server über die Logs nachgeführt... das heißt, die SQL im Logfile wurden auf dem zweiten Server auch ausgeführt, somit waren die beiden Server immer Datenmäßig gleich.

  • 0
    SQL-Syntax ist falsch, aber wo ist der Fehler?
    Antwort von Scandle Scandle

    Sind die Felder from to nicht vom Typ Int? Wenn doch Versuchs mit VALUES(1, 2, 'test')

    Kommentar von dermetfan dermetfandermetfan

    Doch, es sind int-Felder. Diese Möglichkeit hab ich aber schon probiert (macht keinen Unterschied)... Und falls du es nicht gesehen hast, 14 Stunden vor dir kam schon die Lösung, aber danke trotzdem ^^

    Kommentar von Scandle ScandleScandle

    Hab von meinem Smartphone aus gepostet und nicht gesehen, dass es schon ne Lösung gibt ^^

    Aber FYI: Wenn du INT Values hast, dann gewöhn dir an die Anführungszeichen wegzulassen. Ist sauberer ;)

    Lg

  • 3
    SQL-Syntax ist falsch, aber wo ist der Fehler?
    Antwort von gkyFFM gkyFFM

    Schau nach, ob die Spaltennamen reservierte Wörter sind. "from" könnte so ein Kandidat sein.

    Kommentar von dermetfan dermetfandermetfan

    Tatsache! "from" und "id" sind beide reserviert. Einfach in "id _from" und "id _to" umbenannt und es klappt! Danke ^^

    Kommentar von dermetfan dermetfandermetfan

    sorry ich meinte "from" und "to" sind beide reserviert.

    Kommentar von ShitzOvran ShitzOvranShitzOvran

    was für einBblödsinn xD da mus man erst einmal drauf kommen :/

    haben wir wieder was gelernt :)

  • 0
    SQL-Syntax ist falsch, aber wo ist der Fehler?
    Antwort von ShitzOvran ShitzOvran

    hast es mal mit anführungszeichen oder ner leerstelle oder beidem versucht...

    INSERT INTO 'messages' ('from', 'to', 'message') VALUES ('2', '1', 'test2')

    Alternativ auch doppelte Anführungszeichen

    Kommentar von dermetfan dermetfandermetfan

    naja, ich hab schon tausende Möglichkeiten versucht... Aber danke. Dein Vorschlag liefert folgendes:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''messages' ('from', 'to', 'message') VALUES ('2', '1', 'test2')' at line 1

    Kommentar von ShitzOvran ShitzOvranShitzOvran

    vllt fehlt ja auch das Semikolon am ende

    Kommentar von dermetfan dermetfandermetfan

    Nein, das ist ja SQL, da braucht man kein Semikolon am Ende. Hat jedenfalls bei anderen Befehlen schon ohne geklappt... Ich habs trotzdem mal ausprobiert... wie gesagt das wars nich ^^ aber danke

    Kommentar von Scandle ScandleScandle

    Das ist so auch nicht richtig. Wenn du den Query über PHP absetzt, dann brauchst du kein Semikolon. Anders siehts aus wenn du mit der mysql console arbeitest ;)

  • 1
    SQL-Syntax ist falsch, aber wo ist der Fehler?
    Antwort von auto350910 auto350910

    Fehlermeldungen werden sowieso überbewertet.

    Kommentar von dermetfan dermetfandermetfan

    Tut mir leid, hab ich vergessen..

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from, to, message) VALUES('2', '1', 'test2')' at line 1

  • 0
    SQL Server Logfiles
    Antwort von WillLoman WillLoman

    Hallo "kretschmann123",

    Wenn Du neu im Bereich SQL Server bist, so schau Dir bitte mal das Prinzip der Trigger auf Datenbanktabellen an. Diese kann man als "Insert-Trigger", "Update-Trigger" oder auch "Delete-Trigger" implementieren.

    Im Code kannst Du dann den entsprechenden Datensatz, den Du eingefügt, geändert oder gelöscht hast, ansprechen und in eine andere Datenbanktabelle wegschreiben.

    Somit hast Du auch Einfluss auf das Format der Daten und in welche Spalten welcher Wert weggeschrieben werden soll.

    Adaptiere mal den Insert-Trigger an Deine Tabellensruktur aus diesem Link: http://www.4guysfromrolla.com/webtech/091901-1.shtml

    Falls Du weitere Hilfe benötigst, melde Dich bitte.

  • 0
    Wie funktioniert WordPress?
    Antwort von Lio70 Lio70

    Ganz grob ist WordPress eine Sammlung von PHP-Scripten, die aus Texten Webseiten generieren und die Verwaltung der Texte in Beiträgen ermöglicht. Die Texte und die Templates für die Webseiten werden dabei in einer Datenbank gespeichert.

  • 0
    Datenbank erstellen (mit klassen und beziehungen)
    Antwort von maxbreak maxbreak

    Wenn Du die bisherigen Antworten hernimmst erhältst Du eine dritte Tabelle:

    SmartphonesTarife

    • SmartphonesTarife_ID (PK)
    • Phone_ID (FK)
    • Tarif_ID (FK)
    • ...

    In dieser Tabelle ist hinterlegt welche Tarife für das jeweilige Handy möglich sind: Für ein Handy kann es kein/ein oder mehrere Tarife geben. Wenn du noch spezielle Infos für diese Beziehungen brauchst, kannst Du das noch in dieser Tabelle in weiteren Feldern ablegen.

    Damit ist Euer Datenmodell schön in der Normalform und Ihr habt nur 1 : n - Beziehungen und keine n : m - Beziehungen.

    Kommentar von maxbreak maxbreakmaxbreak

    In der Tabelle Smartphones darf es dann natürlich kein Feld Tarif_ID mehr geben!

    Smartphones

    • Phone_ID (PK)
    • Name
    • ...

    PK : Primary Key FK : Foreign Key

    Kommentar von maxbreak maxbreakmaxbreak

    Bei der Lösung von Termi93 wäre für ein Smartphone nur ein Tarif möglich und das wollt Ihr vermutlich nicht?

    Kommentar von Termi93 Termi93Termi93

    Du hast recht, hab das falsch geschrieben, es müsste bei der Tarif tabelle die Phone_ID, brainfail.. Zu viel gerabeitet^^

  • 1
    Datenbank erstellen (mit klassen und beziehungen)
    Antwort von Lio70 Lio70

    Du "darfst" das nicht direkt verbinden, weil Du stattdessen eine Kreuztabelle verwenden sollst, also eine Tabelle, welche die Verbindungen zwischen Handy und Tarifen enthält (also je einen Eintrag mit der ID für das Handy und der ID für einen Tarif).

  • 2
    Datenbank erstellen (mit klassen und beziehungen)
    Hilfreichste Antwort von Termi93 Termi93

    Anders wirst du das nicht wirklich hinkriegen... Wie lautet denn die genaue Aufgabenstellung und wieso dürft ihr diese Verbindung nicht machen?

    Ich würde es, nach dem was ich aus deiner Frage rauslesen konnte, ungefähr wie folgt aufbauen:

    • Smartphones

      • Phone_ID (PK)
      • Name
      • Tarif_ID (FK)
    • Tarife

      • Tarif_ID (PK)
      • Name
      • Kosten
      • ...

    Zu der Beziehung:

    Smartphones 1 zu n Tarife. Ein Tarif kann bei mehreren Smartphones vorkommen.

    Zum SQL mit welchem ihr dann die Abfrage machst: Achte hier drauf das du ein LEFT JOIN verwendest um auch Smartphones zu kriegen, welche keinen Tarif haben (Wenn du erst Smartphones und dann Tarife im Statement verwendest, ansonsten RIGHT JOIN).

    Kommentar von Termi93 Termi93Termi93

    Sry, Tarif__ID muss natürlich beim Smartphone raus und bei Tarife die Phone_ID dazu!! Sonst gibt's nur ein Tarif pro Smartphone und das wär ja fail.. :D

    Kommentar von Termi93 Termi93Termi93

    Und das obige ist auch Mist... Man braucht eine Dritte tabelle, welche Tarife und Handys verbindet, sonst kann ein Tarif nur ein Handy haben und das wär ja auch Quatsch... :>

  • 0
    Datenbank erstellen (mit klassen und beziehungen)
    Antwort von chf000 chf000

    Und wieso dürft ihr das nicht?

  • 0
    Modelle Relationale Datenbanken
    Antwort von HeinzS04 HeinzS04

    Im ER-Modell werden gleichartige Beziehungen zwischen Entities als Beziehungstyp definiert. Für jeden Beziehungstyp ist seine Komplexität ein wichtiges Merkmal. Man spricht von einem 1:1-Beziehungstyp zwischen Entity-Typ E1 und Entity-Typ E2, wenn zu jeder Entity vom Typ E1 genau eine Entity vom Typ E2 gehört und umgekehrt. Bei einem n:1-Beziehungstyp steht jeder Entity vom Typ E2 zu beliebig vielen Entities vom Typ E1. Bei einem n:m-Beziehungstyp können einer Entity vom Typ E1 beliebig viele Entities vom Typ E2 zugeordnet sein und einer Entity vom Typ E2 können ebenso beliebig viele Entities vom Typ E1 zugeordnet sein. Graphische Darstellung: Beziehungstypen werden durch Rauten dargestellt, die durch ungerichtete Kanten mit den zugehörigen Entitytypen verbunden werden. Habe ich helfen können????? :))

    Kommentar von goethemara goethemara

    ja, danke leider wusste ich das schon. Ich meine eher so ein Beispiel, dass es zum Beispiel in einer Firma oder im Krankenhaus genutzt wird. Aber das ist alles so alltäglich also suche ich was anderes, nicht zu schwerdes, weil ich bald meine eigene Datenbank zu einem Thema erstellen muss.

  • 0
    MySQL mehrere Abfrageergebnisse miteinander vergleichen
    Antwort von chewbacca55 chewbacca55

    hi

    also auf anhieb würd ich sagen du könntest in einer schleife jeden wert durchgehn und wenn er höher ist als der letzte schreibst du ihn in eine variable.

    also $a = Wert1 ... if Wert2 > Wert1 $a=wert2 if wert 3 > wert 2 $a=wert 3

    hoffe ich konnte dir helfen

  • 0
    MySQL mehrere Abfrageergebnisse miteinander vergleichen
    Hilfreichste Antwort von daCypher daCypher

    Also du willst von jeder der drei Tabellen jeweils den letzten Datensatz haben und die dann noch nach time sortiert. Ich würd dafür eine temporäre Tabelle erstellen, wo du den jeweils letzten Datensatz der drei Tabellen reinschreibst und dann von der Tabelle aus eine Abfrage machst, die die Datensätze nach Zeit sortiert ausgibt.

    SELECT TOP 1 * INTO tempTabelle FROM Tabelle1 ORDER BY Time DESC;
    INSERT INTO tempTabelle SELECT TOP 1 * FROM Tabelle2 ORDER BY Time DESC;
    INSERT INTO tempTabelle SELECT TOP 1 * FROM Tabelle3 ORDER BY Time DESC;
    SELECT * FROM tempTabelle ORDER BY Time DESC;
    

    Evtl. musst du die Abfragen noch etwas umbauen. Ich weiß die genaue Syntax von MySQL nicht. Das Beispiel wäre jetzt z.B. für Microsoft SQL-Server.

    Kommentar von daCypher daCypherdaCypher

    Alternativ kannst du mal gucken, ob MySQL den Befehl "UNION SELECT" versteht und dir mal die Hilfe dazu angucken.

    Kommentar von akanter94 akanter94

    Das hört sich schonmal sehr gut an, ich werd es gleich mal probieren. Aber klingt mir nach einem plausiblen Lösungssansatz, danke dir!

    Hatte das Ganze erst mit UNION versucht, aber bin dann dran gescheitert, dass man damit ja nicht die Datensätze aus Abfragen zusammenfügen kann (wie bei dir zu einer temporären Tabelle) sondern nur gleich 2 Tabellen zusammenfügen kann, an die man dann eine Abfrage richtet.

  • 0
    MySQL mehrere Abfrageergebnisse miteinander vergleichen
    Antwort von valindur valindur

    Du liest die Resultate in einen Array ein.

    $timearray = array();
    $timearray[] = mysql_fetch_array($sql1);
    $timearray[] = mysql_fetch_array($sql2);
    $timearray[] = mysql_fetch_array($sql3);
    

    und danach einfach sortieren:

    arsort($timearray);
    

    Und dann ist $timearray[0] dein höchster wert..

    Kommentar von akanter94 akanter94

    Und wie erhalte ich dazu jetzt die zugehörigen Werte der Spalte "name"?

  • 1
    MySQL mehrere Abfrageergebnisse miteinander vergleichen
    Antwort von fabsen1005 fabsen1005

    Du kannst die Abfrage in eine Abfrage zusammenfassen.

    Select * from tabelle1, tabelle2, tabelle3

    Dann kannst du deinen order by ja dahinter hängen. Musst nur dran denken, dass du dann einen Alias mitgibst also order by tabelle1.time zB

    Kommentar von daCypher daCypherdaCypher

    Dann hat man die Spalten der drei Tabellen aber nebeneinander stehen und dürfte auch Probleme damit haben, jeweils den letzten Datensatz der drei Tabellen zu finden.

    Kommentar von akanter94 akanter94

    Ja, wie daCypher schon gesagt hat, da hab ich dann auch nicht das erzielte Ergebnis. Aber Danke für die Bemühung!

    Kommentar von fabsen1005 fabsen1005fabsen1005

    Oh, ihr habt Recht..

  • 0
    MySQL mehrere Abfrageergebnisse miteinander vergleichen
    Antwort von Asmodaios Asmodaios

    Du solltest dir einmal Subselects und JOINs anschauen, das sollte ein Lösungsansatz sein.

    Kommentar von fabsen1005 fabsen1005fabsen1005

    Joins bringen hier nichts.

    Kommentar von akanter94 akanter94

    Joins denk ich auch nicht, dass die hier viel bringen. Aber ich werd mir mal das Thema Subselects angucken, danke!

  • 0
    Wie funktioniert WordPress?
    Antwort von JotDowner JotDowner

    Wordpress wird vor allen für Blogs verwendet. Du brauchst keine große Erfahrungen dafür, aber wenn dir das alles zu kompliziert ist kannst du auch die deutsche Webseite benutzen: http://de.wordpress.com/

    Da kannst du ohne Webspace etc. einen Blog erstellen. Und ohne MySQL Kenntnisse und das alles, dafür leider eingeschränkt...

  • 0
    Kennt sich jemand gut in SQL-DBs aus?
    Antwort von DerAuswanderer DerAuswanderer

    GuteFrage ist ein Portal, in dem man Fragen stellen kann und die einem (hoffentlich) von Fachkundigen beantwortet werden. Von daher: Warum willst Du Deine Fragen nicht offen stellen? Vielleicht haben andere ebenfalls diese Fragen und dann sind sie froh, wenn sie über die Suche auf die Antworten stoßen.

    Falls Du Hemmungen haben solltest, weil manchmal dumme Antworten ("Google ist Dein Freund" etc.) gegeben werden: Ignorier sie einfach! Erstens muss man auch für die Google-Suche genau wissen, WIE man fragt und zweitens bräuchten wir GuteFrage nicht mehr, wenn nur noch auf Google oder Wikipedia verwiesen wird. Selbstformulierte Antworten - vielleicht sogar mit eigenen Beispielen - können oft hilfreicher sein.

    Mag zwar sein, dass es hier die einen oder anderen Kids gibt, die zu faul sind, ihre Hausaufgaben selbst zu machen. Aber wenn mich das nervt, antworte ich einfach nicht. Ansonsten sage ich mir: Antworte ich den "Faulpelzen" trotzdem, dann hilft diese Antwort später vielleicht auch anderen.

    Um Deine Frage zu beantworten: Ja, da kennen sich viele Leute mit aus. :-)

    Also: Konkrete Fragen stellen, vielleicht kann ich Dir dann auch weiterhelfen. Aber bitte nicht per PN.

Die unter gutefrage.net angebotenen Dienste und Ratgeber Inhalte werden nicht geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Rechtliche Hinweise finden Sie hier.