mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 14:10 Benutzername: Passwort: Auto-Login

Thema: [mySQL] Datenbank erstellen vom 01.10.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [mySQL] Datenbank erstellen
Seite: 1, 2  Weiter
Autor Nachricht
Xaven
Threadersteller

Dabei seit: 26.03.2002
Ort: Motorcity Rüsselsheim
Alter: 41
Geschlecht: Männlich
Verfasst Sa 01.10.2005 11:27
Titel

[mySQL] Datenbank erstellen

Antworten mit Zitat Zum Seitenanfang

Tach!

Irgendwas ist laut mySQL bei der Rezeptzeile falsch. Weiss jemand was genau? Irgendwie bekomme ich es nicht hin. Bin absolut mySQL-Noob Lächel.

CREATE TABLE `Cocktails` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`Cocktail` VARCHAR( 50 ) NOT NULL ,
`Rezept` TEXT( 1000 ) NOT NULL ,
`Eigenschaft` ENUM( "alkoholisch", "alkoholfrei" ) NOT NULL ,
`Zutat1` VARCHAR( 50 ) NOT NULL ,
`Zutat2` VARCHAR( 50 ) ,
`Zutat3` VARCHAR( 50 ) ,
`Zutat4` VARCHAR( 50 ) ,
`Zutat5` VARCHAR( 50 ) ,
`Zutat6` VARCHAR( 50 ) ,
`Zutat7` VARCHAR( 50 ) ,
`Zutat8` VARCHAR( 50 ) ,
`Zutat9` VARCHAR( 50 ) ,
`Zutat10` VARCHAR( 50 ) ,
PRIMARY KEY ( `id` )
)
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Nimroy
Community Manager

Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht: Männlich
Verfasst Sa 01.10.2005 11:34
Titel

Antworten mit Zitat Zum Seitenanfang

Was sagt denn die Fehlermeldung?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Xaven
Threadersteller

Dabei seit: 26.03.2002
Ort: Motorcity Rüsselsheim
Alter: 41
Geschlecht: Männlich
Verfasst Sa 01.10.2005 11:49
Titel

Antworten mit Zitat Zum Seitenanfang

Nimroy hat geschrieben:
Was sagt denn die Fehlermeldung?


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 '( 1000 ) NOT NULL , `Eigenschaft` ENUM( "alkoholisch", "a


Zuletzt bearbeitet von Xaven am Sa 01.10.2005 11:50, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
metty

Dabei seit: 21.03.2005
Ort: Köln
Alter: 39
Geschlecht: Männlich
Verfasst Sa 01.10.2005 11:56
Titel

Antworten mit Zitat Zum Seitenanfang

Mit enum kenn ich mich jetzt nicht so aus, aber warum normalisierst du die tabelle nicht, gibst anstatt enum einfach "art" (o.ä.) an, und machst dann noch eine tabelle für die art.

Zuletzt bearbeitet von metty am Sa 01.10.2005 11:56, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Xaven
Threadersteller

Dabei seit: 26.03.2002
Ort: Motorcity Rüsselsheim
Alter: 41
Geschlecht: Männlich
Verfasst Sa 01.10.2005 11:58
Titel

Antworten mit Zitat Zum Seitenanfang

metty hat geschrieben:
Mit enum kenn ich mich jetzt nicht so aus, aber warum normalisierst du die tabelle nicht, gibst anstatt enum einfach "art" (o.ä.) an, und machst dann noch eine tabelle für die art.


Da kommt das gleiche bei raus. Neue Tabelle? Du meinst neue Zeile Lächel.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
metty

Dabei seit: 21.03.2005
Ort: Köln
Alter: 39
Geschlecht: Männlich
Verfasst Sa 01.10.2005 12:06
Titel

Antworten mit Zitat Zum Seitenanfang

Nein, ich meine eine neue Tabelle.

Also du nimmst deine Cocktailtabelle und gibst anstatt dem enum Feld ein Feld mit dem Namen art an. Das deklarierst du mit int.
Dann machst du eine weitere Tabelle mit dem namen art. Dort fügst du die Felder id und art ein. Darin schreibst du zwei Zeilen (id: 1, art: alkoholisch und id: 2, art: alkoholfrei).
Dann kannst du in der Cocktailtabelle in der Spalte art jeweils die Nummer eintragen, was deinem Cocktail entspricht.

Das nennt man auch Normalisieren. Einfach mal nach googlen *zwinker*

Gruß, Matthias
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
taste of ink

Dabei seit: 14.06.2005
Ort: Hamburg
Alter: 39
Geschlecht: Männlich
Verfasst Sa 01.10.2005 12:34
Titel

Antworten mit Zitat Zum Seitenanfang

Alternative:
Mach doch einfach ne Textspalte draus:
Code:

`Eigenschaft` VARCHAR( 50 ) NOT NULL ,


Irgendwo auf deiner Page kann man ja die Rezepte eingeben. In dieser PHP-Datei setzt du in die Eingabe ein Drop-Down-Menü, in dem man zwischen "alkoholisch" und "unalkoholisch" wählen kann.
Code:

....
<select name="eigenschaft" size="1">
<option selected>alkoholisch</option>
<option>unalkoholisch</option>
</select>
....

Jetzt kann man in die Spalte nur die beiden Werte eintragen, und wenn du irgendwann noch ne Option hinzufügen willst, erweiterst du einfach das Drop-Down-Menü und du musst nichts an der Tabelle ändern.

PS: Es ist wichtig das immer beim Aufruf des Formulars einer der Werte aktiviert ist, sonnst könnte es passieren, dass jemand diese Feld nicht ausfüllt und ein leerer Eintrag in die Spalte kommt
Code:
<option selected>alkoholisch</option>


Zuletzt bearbeitet von taste of ink am Sa 01.10.2005 12:35, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Xaven
Threadersteller

Dabei seit: 26.03.2002
Ort: Motorcity Rüsselsheim
Alter: 41
Geschlecht: Männlich
Verfasst Sa 01.10.2005 12:47
Titel

Antworten mit Zitat Zum Seitenanfang

Eure Ideen sind ja alle nett, aber das Problem liegt nach wie vor in der "Rezept" Zeile und nicht in der Eigenschaft. Das habe ich schon durchgetestet. Wenn ich die Rezeptzeile weglasse lässt sich die Tabelle erstellen.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen MySQL-Datenbank
Datenbank exportieren (MySQL)
[PHP/MySQL] Datenbank auslesen.
[PHP/MySQL] Bilder in die Datenbank laden
Daten aus mysql Datenbank laden
[PHP, MySQL] Datenbank Abfrage sortieren
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.