Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hallo ich bin dabei ein newsscript mit php und mysql aufzubauen. nun will ich auf der startseite die news aus der mysql- tabelle lesen. ich hab es so gemacht das die news in der mysql- tabelle alle eine id haben. mein newssystem soll immer die neuste news zuerst ausgeben sprich nach ganz oben schreiben. dazu müsste ich die mysql tabelle ja sozusagen rückwärts auslesen. ist das möglich oder gibt es eine andere möglichkeit um das zu realisieren?

danke schon mal.

MfG

Original geschrieben von #!/usr/bin

dazu müsste ich die mysql tabelle ja sozusagen rückwärts auslesen. ist das möglich oder gibt es eine andere möglichkeit um das zu realisieren?

Einfach DESC dahinter:

SELECT * FROM Tabelle ORDER BY id DESC

Das Gegenstück dazu wäre ASC

danke das hat ja schon mal super geklappt. inzwischen stehe ich aber vor einem anderen problem. hab ein problem wofür ich noch keine 100% lösung gefunden habe.

also ich habe zb. die mysql tabelle

ID CONTENT

1 1

2 2

3 3

wenn ich jetzt Datensatz 2 lösche sollen die ids neu vergeben werden. also es soll dann so aussehen

ID CONTENT

1 1

2 3

könnt ihr mir da mal auf die sprünge helfen? ich hoffe das klappt so gut wie beim letzen mal

MfG

Hi!

Das ist nicht der Sinn und Zweck einer id.

Eine id wird einmal vergeben und sollte dann bestehen bleiben, da in anderen Tabellen über die id auf die Spalte verwiesen wird.

Wenn du nun die ids neu vergibst und nicht sicher stellst, das alle Referenzen auf andere Tabellen upgedatet werden, kann aus "Babymilch WC Reiniger" werden und das will doch keiner. ;)

Du kannst ja eine Spalte laufende Nummer hinzufügen und die beim löschen updaten. Obwohl ich das eher im Programm lösen würde und nicht in der Datenbank.

Grus Jaraz

Original geschrieben von #!/usr/bin

wenn ich jetzt Datensatz 2 lösche sollen die ids neu vergeben werden.

Ich vermute mal, das id dein Primärschlüssel ist. Damit bezeichnest du ja einen Datensatz eindeutig. Wenn du auf einmal den Primärschlüssel änderst bringst du die ganze Datenbank damit durcheinander.

Wenn du weitere Tabellen hast, die diese id als Fremdschlüssel benutzen finden diese Tabellen den Datensatz aus der ersten Tabelle nicht mehr.

Du weisst schon um den Sinn der ID?

Sprich : Du müsstest die komplette Datenbank durchforsten um sämtliche, auf die betreffende und alle folgende ID-Verweise entsprechend anzupassen.

Und dieses ist sicherlich ein Aufwand, den man dir nicht zumuten sollte.

Was stört dich an den Lücken?

Auf alle Fälle vermeidet eine Nichtanpassung Fehlerquellen in deiner Datenbank.

PS: Bind nicht gerade ein MySQL - Entwickler, sondern programmiere datenbanken auf anderen Plattformen. Also der generelle Sinn der automatisch (nichtanpassbaren) ID ist IMHO schon gerechtfertigt.

Edit : Zu spät!

das mit der tabellenspalte war nur ein beispiel. ich könnte auch eine weitere spalte nehmen die den inhalt der id hat und danach sortieren.

warum ich keine lücken zwischen den id werten haben wollte ist ganz einfach. wenn ich einen neuen datensatz hinzufüge braucht der ja auch eine id. bis jetzt hab ich es so gemacht, dass ein neuer datensatz die id (anzahl aller datensaetze + 1) bekommt wenn ich wie in meinem beispiel oben jetzt nr 3 gelöscht habe, gibt es 2 datensaetze und + 1 wäre die neue id 3, die gibt es aber schon. also müsste ich jetzt noch mal um 1 erhöhen. und das solange bis eine freie zahl kommt. das wollte ich vermeiden. außerdem würde die zahl ja immer höher je mehr datensaetze geloescht und wieder hinzugefügt werden. oder habt ihr bessere vorschläge?

Stichwort auto_increment oder SELECT MAX(id) FROM ... in einer Transaktion.

integer geht bei mysql bis 2147483647

bigint bis 9223372036854775807

Das sollte ne Weile reichen. :D

Gruß Jaraz

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.