![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: bossy, 29. 03. 2008, 22:01
Hallo,
habe ein Problem. Hab das halbe Web deswegen durchsucht. Ich möchte ein Feld 'Nummer' haben, dass vom ersten Datensatz bis zum letzten Datensatz ganzzahlig durchnummeriert ist und bei jedem weiteren Hinzufügen eines Datensatzes in der Zelle der Spalte 'Nummer' eine weitere nächsthöhere Nummer automatisch vom System gesetzt wird?
Ich habe eine Tabelle, wo die Datensätze in der horizontalen Ebene keine Beziehung haben. Jede Spalte muss einzeln gefüllt werden und es dürfen keine Lücken zwischen entstehen. Deswegen will ich erst auslesen, wieviel Datensätze in der Spalte vorhanden (in Variable $zeile speichern) sind und dann anhand
"UPDATE `ttt`.`www` SET `spalte` = 'hallo' WHERE `words`.`no` =$zeile++;"
(weiß jetzt nicht, ob er $zeile++ so annimmt)
in die Spalte "spalte" an der Stelle $zeile++ speichern.
Aber da brauche ich eine eindeutige Nummerierung in der Spalte 'nummer', die ich abfragen und die sich selber erstellt und wie gesagt beim einfügen neuer Werte um eins automatisch erhöht.
Weiß jemand einen Ansatz, wie man sowas in MySQL automatisiert?
Wenn das nicht geht, gibt es eine Möglichkeit, einen Wert in die Spalte 'spalte' in eine Zeile zu speichern, indem man eine Ganzzahl als Spaltennummer zu speichern ("UPDATE...")?
Vielen Dank,
Bossy :)
Die folgende Nachricht zum Thema stammt von: ChrisB, 29. 03. 2008, 23:05
Hi,
»» Ich möchte ein Feld 'Nummer' haben, dass vom ersten Datensatz bis zum letzten Datensatz ganzzahlig durchnummeriert ist und bei jedem weiteren Hinzufügen eines Datensatzes in der Zelle der Spalte 'Nummer' eine weitere nächsthöhere Nummer automatisch vom System gesetzt wird?
Warum moechtest du das?
Warum nummerierst du die Datensaetze nicht ggf. bei der Ausgabe?
»» Ich habe eine Tabelle, wo die Datensätze in der horizontalen Ebene keine Beziehung haben. Jede Spalte muss einzeln gefüllt werden und es dürfen keine Lücken zwischen entstehen. Deswegen will ich erst auslesen, wieviel Datensätze in der Spalte vorhanden
Das ergibt alle recht wenig Sinn ... in einer Spalte sind keine Datensaetze vorhanden.
»» "UPDATE `ttt`.`www` SET `spalte` = 'hallo' WHERE `words`.`no` =$zeile++;"
Was genau willst du mit diesem Statement erreichen?
»» Aber da brauche ich eine eindeutige Nummerierung in der Spalte 'nummer', die ich abfragen und die sich selber erstellt und wie gesagt beim einfügen neuer Werte um eins automatisch erhöht.
Mir ist immer noch nicht klar, was genau du willst - und vor allem, wozu es gut sein soll.
»» Wenn das nicht geht, gibt es eine Möglichkeit, einen Wert in die Spalte 'spalte' in eine Zeile zu speichern, indem man eine Ganzzahl als Spaltennummer zu speichern ("UPDATE...")?
Beseitige bitte erst mal das Chaos zwischen den Begriffen Spalte, Zeile und Datensatz in deinem Kopf, welches sich auch hier im Posting niedergeschlagen hat.
Und dann versuch bitte noch mal, dein Problem - und zwar auch dein *eigentliches* Problem/Aufgabenstellung - so exakt wie moeglich zu definieren.
MfG ChrisB
Die folgende Nachricht zum Thema stammt von: bossy, 29. 03. 2008, 23:10
In der Tabelle
table{
Spalte_1
Spalte_2
Spalte_3
}
sind die Spalten unabhängig von einander. Die Spalten sind jeweils mit einer url verbunden. Die htmlseite wird dort durchsucht und alle Wörter jeweils einmal in die entsprechende Spalte gespeichert. Damit hat Spalte_1, Spalte_2 und Spalte_3 keine Beziehung zwischeneinander. Sie sind Listen von Wörtern, die aus der der Spalte zugewiesenen URL stammen.
Bossy
Die folgende Nachricht zum Thema stammt von: Cheatah, 29. 03. 2008, 23:22
Hi,
»» In der Tabelle
nur um sicher zu gehen: Redest Du von einer Datenbank-Tabelle? Ich gehe in diesem Posting davon aus.
»» table{
»» Spalte_1
»» Spalte_2
»» Spalte_3
»» }
Eine _sehr_ unübliche Art, eine solche darzustellen.
»» sind die Spalten unabhängig von einander.
Nein, sind sie nicht.
»» Die Spalten sind jeweils mit einer url verbunden.
Äh? Wie soll denn _das_ gehen? Eine Datenbankstruktur weiß nichts von URLs.
»» Die htmlseite wird dort durchsucht und alle Wörter jeweils einmal in die entsprechende Spalte gespeichert. Damit hat Spalte_1, Spalte_2 und Spalte_3 keine Beziehung zwischeneinander. Sie sind Listen von Wörtern, die aus der der Spalte zugewiesenen URL stammen.
Ich kann mir nicht vorstellen, dass Du von einem Datenbank-Modell sprichst. Falls doch, hast Du entweder eine _extrem_ unverständliche Art, diese zu beschreiben, oder Du solltest es unbedingt über den Haufen werfen, Dich mit den Grundlagen von Datenbanken beschäftigen und es neu machen. Die Bruchstücke, die ich von Deinen Beschreibungen verstehe, funktionieren nicht.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Die folgende Nachricht zum Thema stammt von: Bossy, 29. 03. 2008, 23:34
Unter "Spalte_1" kann es sich auch keine URL vorstellen. Aber ein einer anderen Tabelle ist genau Definiert, welche URL Addresse der "Spalte_1" zugewiesen ist. Deswegen besteht kein Zusammenhang zwischen den Werten der Spalte_1 und der Spalte_2! Es sind nur nebeneinander gespeicherte !!LISTEN!!....keine Datensätze!Da ich es nicht in eine Textdate speichern wollte, habe ich MySQL genommen...
Ja, die Darstellungsweise ist komisch. Ist aber einfach...
Bossy
Die folgende Nachricht zum Thema stammt von: Cheatah, 29. 03. 2008, 23:45
Hi,
»» Unter "Spalte_1" kann es sich auch keine URL vorstellen. Aber ein einer anderen Tabelle ist genau Definiert, welche URL Addresse der "Spalte_1" zugewiesen ist.
bei dieser Sätze scheint die Grammatik stimmt so ganz nicht, aber versteht man sie trotzdem. Inhaltlich jedoch ... Wie um alles in der Welt sollte eine Spalte einer _URL_ zugeordnet sein?
»» Deswegen besteht kein Zusammenhang zwischen den Werten der Spalte_1 und der Spalte_2!
Dochdochdochdochdochdochdoch, der Zusammenhang ist unwiderruflich da. Das ist nämlich der *Zweck* von Spalten einer Tabelle. Eine relationale Datenbank ist eine Menge von Verknüpfungen von Mengen, und einige dieser Verknüpfungen finden dadurch statt, dass die Mengen in der selben Tabelle organisiert sind.
»» Es sind nur nebeneinander gespeicherte !!LISTEN!!....keine Datensätze!
Nein, es sind untereinander gespeicherte Datensätze, keine !!LISTEN!!. Was immer !!LISTEN!! sind. Ich nehme mal an, Du meinst Listen. Die sind es *nicht*, denn es sind Datensätze. Garantiert. Egal was Du willst, sagst oder tust. Sowie Du etwas mit INSERT INTO in eine Datenbank-Tabelle speicherst, *ist* es ein Datensatz. Wenn Du die Inhalte eines Datensatzes veränderst, *bleibt* es ein Datensatz. Wenn Du ihn löschst, löschst Du ihn *komplett*, nicht teilweise.
»» Da ich es nicht in eine Textdate speichern wollte, habe ich MySQL genommen...
Auch in einer Datenbank lassen sich Deine Daten in einem brauchbaren Modell speichern. Egal um was für Daten es sich handelt.
»» Ja, die Darstellungsweise ist komisch. Ist aber einfach...
Gut, immerhin ist mir jetzt klar, dass Du tatsächlich von Datenbanken redest.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Die folgende Nachricht zum Thema stammt von: Bossy, 29. 03. 2008, 23:55
Ok, wie würdest du dann vorschlagen, Listen zu speichern?
Die folgende Nachricht zum Thema stammt von: Cheatah, 30. 03. 2008, 00:02
Hi,
»» Ok, wie würdest du dann vorschlagen, Listen zu speichern?
das kommt auf die Art der Liste und ihre zu erwartende Nutzung an.
Cheatah
--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
Die folgende Nachricht zum Thema stammt von: Tom, 30. 03. 2008, 01:52
Hello,
»» Ok, wie würdest du dann vorschlagen, Listen zu speichern?
table `url` table `wort`
============ ============
id_url ------+ id_wort
------ | -------
url +---------> id_url
lfd_nr
wort
So könnte das aussehen.
Für die Reihenfolge der Worte bei der Ausgabe ist die laufende Nummer verantwortlich. Die kann dann fortlaufene mit und ohne Lücken sein. Dafür gibt es hier auch schon ein paar Threads, wie man die mit MySQL möglichst geschickt verwaltet und in einem Statement (damit es eine atomare Operation bleibt) zwei Kandidaten vertauscht.
Filtern kann man die Tabelle `wort` nun beliebig über die id_url. Bossy, Du hast dadurch nicht nur "Spalte_1","Spalte_2" und "Spalte_3", sondern beliebig viele Spalten. Den Bezug stellst Du jeweils über die id_url her.
Ich hoffe, dass Dir das weiterhilft.
Und darüberhinaus solltest Du Dir trotzdem mal ein Buch über relationale Datenbanken anschaffen. Es lohnt sich immer... :-)
Liebe Grüße
Tom vom Berg
--
Nur selber lernen macht schlau
Die folgende Nachricht zum Thema stammt von: stareagle, 30. 03. 2008, 13:09
Moin,
wie bereits in den anderen Antworten angedeutet wurde, solltest du dich mit den Grundlagen von relationalen Datenbanken beschäftigen. MySQL ist z.B. eine solche - genauer gesagt eine Datenbankmanagementsystem (DBMS) für relationale Datenbanken.
Als Einstieg:
http://de.wikipedia.org/wiki/Relationale_Datenbank
Speziell zu MySQL:
Michael Kofler (2007): MySQL 5. Einführung, Referenz, Anwendung. Addison-Wesley Verlag. ISBN 978-3-8273-2636-2.
Michael Rüttger (2006): MySQL 5 Professionell. mitp Verlag. ISBN 978-3-8266-1596-2
Zu Datenbanken allgemein:
Frank Geisler (2006): Datenbanken. Grundlagen und Design. 2. Auflage. mitp-Verlag. ISBN 978-3-8266-1689-1.
Gunther Saake, Kai-Uwe Sattler (2007): Datenbanken - Konzepte und Sprachen. 3. Auflage. mitp-Verlag. ISBN 978-3-8266-1664-8.
Das letzte Buch in der Liste ist relativ mathematisch und abstrakt. Es wird als Lehrbuch für Vorlesungen zum Thema Datenbanksysteme verwendet und hat ein recht hohes Niveau. Ohne gute mathematische Kenntnisse (Mengenlehre, Aussagenlogik, Prädikatenlogik) ist das Buch nicht zu empfehlen.
Gruß
Stareagle
© 1998-2006
Impressum, Software: Classic Forum