Zurück   klamm-Forum > klamm-Lose > Lose4Scripts > Lose4Scripts (erledigt)

 
 
LinkBack Themen-Optionen Ansicht
Alt 09.05.2009, 18:14:02   #1 (permalink)
CasinoFreak

ID: 171905
Lose-Remote

Tommyboy2008 eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 1.790
Standard [S] Mysql hilfe

worum handelt es sich :

es sind 4 tabellen

1 2 3 4


in der 4ten tabelle sind verschiedene werte z.B.

6
6
8
8
7
7
1
1

jetzt sollen diese werte in veschiedenen 4 externen php tabelen ausgelesen werden, was 1a funtzt aber die tabelle in php soll bei mir nur 50 einträge auslesen, die einträge die in die mysql tabelle eingetragen werden werden ja immer nur in der mysql tabelle hinten eingefügt.

gibt es eine möglichkeit das die mysql tabellen einträge immer am anfrang eingetragen werden

oder das die php tabellen die werte aus der mysql tabelle rückwärts( also von hinten) ausliest?

und perfekt wäre noch das immer die ältesten einträge die über die 50 eintrage pro 6 oder 8 oder 7 oder 1 laufen gelöscht werden damit kein datenmüll entsteht

kann mir wer weiterhelfen? für den jenigen der mir den entscheitenen hilfreichen tip gibt der mir hilft das es funtzt bekommt 5mio lose
Tommyboy2008 ist offline  
Alt 09.05.2009, 18:19:55   #2 (permalink)
Romy lieb haben
Benutzerbild von chrisi01

ID: 101113
Lose-Remote

Reg: 26.11.2008
Beiträge: 2.862
Standard

hi

in einer db gibt es kein "vorne" oder "hinten" es stehen die Datensätze einfach ohne Reihenfolge drinnen.

Du solltest eine Spalte ID anlegen und da einen Autoincrement drauf so das jeder Datensatz einen eigenen Wert hat.

Auslesen kannst du dann mit ORDER BY SPALTE DESC/ASC (sortieren vorwärts oder rückwärts) und LIMIT 0,50 (50 Datensätze ab den 0. Datensatz)

http://schattenbaum.net/php/abfrage2.php

idDeine_zahl
12
27
33
45
51

SELECT Deine_Zahl FROM tabelle ORDER BY id DESC LIMIT 3

gibt z.b. folgendes aus (sofern du eben noch eine Ausgabe darum baust):
1
5
3



mfg

Chris
 

Geändert von chrisi01 (09.05.2009 um 18:24:55 Uhr)
chrisi01 ist offline  
Alt 09.05.2009, 18:36:06   #3 (permalink)
CasinoFreak

ID: 171905
Lose-Remote

Tommyboy2008 eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 1.790
Standard

wenn ich noch eine ID tabelle erstelle kommt:

Fehler

SQL-Befehl:

ALTER TABLE `tubon` ADD `id` INT( 15 ) NOT NULL AUTO_INCREMENT FIRST

MySQL meldet: Dokumentation
#1075 - Falsche Tabellendefinition. Es darf nur eine AUTO_INCREMENT-Spalte geben, und diese muss als Schlüssel definiert werden

in der tabelle ist aber keine funktion mehr mit AUTO_INCREMENT und als schlüssel habe ich ihm Primärschlüssel gegeben
Tommyboy2008 ist offline Threadstarter  
Alt 09.05.2009, 18:39:28   #4 (permalink)
Vms2 Neuling
Benutzerbild von larsclever

ID: 346446
Lose-Remote

Reg: 29.03.2009
Beiträge: 95
Standard

Hallo,

du musst id auch noch als Index verknüpfen
 
larsclever ist offline  
Alt 09.05.2009, 18:42:55   #5 (permalink)
Romy lieb haben
Benutzerbild von chrisi01

ID: 101113
Lose-Remote

Reg: 26.11.2008
Beiträge: 2.862
Standard

ALTER TABLE `tubon` ADD `id` INT( 15 ) NULL AUTO_INCREMENT PRIMARY KEY

so müsste es gehen

muss aber ehrlich sagen hab das noch nie auf eine gefüllte db angewendet immer nur auf eine gerade erstellte kann dir daher nicht sagen was passiert wenn schon Datensätze vorhanden sind (sicherheitshalber Backup machen!)

mfg

chris
 

Geändert von chrisi01 (09.05.2009 um 18:43:50 Uhr)
chrisi01 ist offline  
Alt 09.05.2009, 19:59:52   #6 (permalink)
CasinoFreak

ID: 171905
Lose-Remote

Tommyboy2008 eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 1.790
Standard

Zitat:
Zitat von chrisi01 Beitrag anzeigen
ALTER TABLE `tubon` ADD `id` INT( 15 ) NULL AUTO_INCREMENT PRIMARY KEY

so müsste es gehen

muss aber ehrlich sagen hab das noch nie auf eine gefüllte db angewendet immer nur auf eine gerade erstellte kann dir daher nicht sagen was passiert wenn schon Datensätze vorhanden sind (sicherheitshalber Backup machen!)

mfg

chris

super hat einwahnfrei gefuntzt !!! geht das vieleicht auch noch mit dem löschen?

also das die die am anfang wahren immer automatisch gelöscht werden , das je von den zahlen 8,6,7,1 immer nur 50 der neusten einträge da ist
also wenn jetzt schon z.B. mit max 10 :

1 2 3 4 5 6 7 8 9 10
8 8 8 8 8 8 8 8 8 8

und jetzt kommt eines dazu:

1 2 3 4 5 6 7 8 9 10 11
8 8 8 8 8 8 8 8 8 8 - 8

wird das erste gelöscht weil es der älteste ist

2 3 4 5 6 7 8 9 10 11
8 8 8 8 8 8 8 8 8 - 8
Tommyboy2008 ist offline Threadstarter  
Alt 09.05.2009, 20:05:22   #7 (permalink)
Vms2 Neuling
Benutzerbild von larsclever

ID: 346446
Lose-Remote

Reg: 29.03.2009
Beiträge: 95
Standard

Versuch das mal mit Cronjobs zu machen
 
larsclever ist offline  
Alt 10.05.2009, 11:13:06   #8 (permalink)
CasinoFreak

ID: 171905
Lose-Remote

Tommyboy2008 eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 1.790
Standard

Zitat:
Zitat von larsclever Beitrag anzeigen
Versuch das mal mit Cronjobs zu machen
ja aber was für befehle brauche ich daführ das es so funtzt wie ich es hier erläutert hatte:

Zitat:
super hat einwahnfrei gefuntzt !!! geht das vieleicht auch noch mit dem löschen?

also das die die am anfang wahren immer automatisch gelöscht werden , das je von den zahlen 8,6,7,1 immer nur 50 der neusten einträge da ist
also wenn jetzt schon z.B. mit max 10 :

1 2 3 4 5 6 7 8 9 10
8 8 8 8 8 8 8 8 8 8

und jetzt kommt eines dazu:

1 2 3 4 5 6 7 8 9 10 11
8 8 8 8 8 8 8 8 8 8 - 8

wird das erste gelöscht weil es der älteste ist

2 3 4 5 6 7 8 9 10 11
8 8 8 8 8 8 8 8 8 - 8
Tommyboy2008 ist offline Threadstarter  
Alt 10.05.2009, 17:08:16   #9 (permalink)
Bannervernichter
Benutzerbild von formelx

ID: 63548
Lose-Remote

Reg: 25.06.2006
Beiträge: 902
Standard

Code:
1:
DELETE FROM table WHERE id NOT IN (SELECT id FROM table ORDER BY id DESC LIMIT 50)
Ist ungetestet, sollte aber funktionieren...

Mfg
 
formelx ist offline  
Alt 10.05.2009, 17:48:08   #10 (permalink)
CasinoFreak

ID: 171905
Lose-Remote

Tommyboy2008 eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 1.790
Standard

Zitat:
Zitat von formelx Beitrag anzeigen
Code:
1:
DELETE FROM table WHERE id NOT IN (SELECT id FROM table ORDER BY id DESC LIMIT 50)
Ist ungetestet, sollte aber funktionieren...

Mfg

aber das ist doch nicht so wie ich das wollte / i think ...

em das ist doch das am ende nurnoch 50 einträge vorhanden sind, aber ich brauche das jeweils noch 50 einträge da sind also jeweils von 6 8 7 1
Tommyboy2008 ist offline Threadstarter  
Alt 10.05.2009, 17:59:16   #11 (permalink)
Bannervernichter
Benutzerbild von formelx

ID: 63548
Lose-Remote

Reg: 25.06.2006
Beiträge: 902
Standard

Code:
1:
2:
3:
4:
$array= array("6", "8", "7", "1"); foreach($array as $value) mysql_query("DELETE FROM table WHERE id NOT IN (SELECT id FROM table WHERE zahl= ".$value." ORDER BY id DESC LIMIT 50) AND zahl= ".$value);
Vielleicht nicht unbedingt die eleganteste Lösung, aber vielleicht solltest du auch mal deine Datenbankstruktur überdenken, mir kommt das ganze etwas komisch vor... erklär mir doch mal bitte etwas genauer, was du eigentlich bezwecken willst (gerne auch per PN).

Mfg
 
formelx ist offline  
Alt 10.05.2009, 18:21:33   #12 (permalink)
CasinoFreak

ID: 171905
Lose-Remote

Tommyboy2008 eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 1.790
Standard

Zitat:
Zitat von formelx Beitrag anzeigen
Code:
1:
2:
3:
4:
$array= array("6", "8", "7", "1"); foreach($array as $value) mysql_query("DELETE FROM table WHERE id NOT IN (SELECT id FROM table WHERE zahl= ".$value." ORDER BY id DESC LIMIT 50) AND zahl= ".$value);
Vielleicht nicht unbedingt die eleganteste Lösung, aber vielleicht solltest du auch mal deine Datenbankstruktur überdenken, mir kommt das ganze etwas komisch vor... erklär mir doch mal bitte etwas genauer, was du eigentlich bezwecken willst (gerne auch per PN).

Mfg
hab noch die fehlenden " eingefüht ^^ und auch richtig im script eingebaut, aber es funtzt auch nicht
Tommyboy2008 ist offline Threadstarter  
Alt 10.05.2009, 19:41:47   #13 (permalink)
Bannervernichter
Benutzerbild von formelx

ID: 63548
Lose-Remote

Reg: 25.06.2006
Beiträge: 902
Standard

Zitat:
Zitat von Tommyboy2008 Beitrag anzeigen
hab noch die fehlenden " eingefüht ^^ und auch richtig im script eingebaut, aber es funtzt auch nicht
Wei schon bereits gesagt, vielleicht wäre es besser, wenn du mal den genauen Einsatzzweck erklärst bzw. irgendjemandem dein Script zukommen lässt, damit man mal eine Gesamtübersicht hat.

Den Tabellennamen hast ja angepasst, denke ich mal!?
Was für eine Meldung wird denn zurückgegeben?
 
formelx ist offline  
Alt 10.05.2009, 20:04:56   #14 (permalink)
CasinoFreak

ID: 171905
Lose-Remote

Tommyboy2008 eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 1.790
Standard

Zitat:
Zitat von formelx Beitrag anzeigen
Wei schon bereits gesagt, vielleicht wäre es besser, wenn du mal den genauen Einsatzzweck erklärst bzw. irgendjemandem dein Script zukommen lässt, damit man mal eine Gesamtübersicht hat.

Den Tabellennamen hast ja angepasst, denke ich mal!?
Was für eine Meldung wird denn zurückgegeben?
das problemm ist das es ein addon ist was ich eigentlich net veröffentlichen wollte ...

tabellennamen angepasst -> natürlich ^^
garkeine ... ^^

ist ein addon für vms, was das addon macht es zeichnet verhaltensweisen zu bestimmten addons im vms system auf die in tabellen wieder ausgeführt werden.
Tommyboy2008 ist offline Threadstarter  
Alt 11.05.2009, 17:15:50   #15 (permalink)
Bannervernichter
Benutzerbild von formelx

ID: 63548
Lose-Remote

Reg: 25.06.2006
Beiträge: 902
Standard

Zitat:
Zitat von Tommyboy2008 Beitrag anzeigen
das problemm ist das es ein addon ist was ich eigentlich net veröffentlichen wollte ...

tabellennamen angepasst -> natürlich ^^
garkeine ... ^^

ist ein addon für vms, was das addon macht es zeichnet verhaltensweisen zu bestimmten addons im vms system auf die in tabellen wieder ausgeführt werden.
Dass du aber die Abfrage so anpaasen musst, dass unter Umständen auch eine Fehlermeldung zurückgegeben wird, ist dir schon klar!?

Code:
1:
mysql_query(...) or die(mysql_error());
Wenn dir das elementare Verständnis von PHP und MySQL fehlt, dann würde ich die Sache lieber bleiben lassen (auch wenn ich mit dieser Aussge jetzt Gefahr laufe, einige rote "Popel" zu kassieren).

Anderer Ansatz:
Warum änderst du die Tabelle nicht einfach ab, sodass du mit einem doppelten Primärschlüssel arbeitest, also:

zahl|zahl1|wert

zahl= Deine bisherigen Zahlen mit 6, 8, 7, 1
zahl1= Eine Nummerierung von 1-50
wert= Der Wert der Angabe

und dann diese Werte von 1-50 einfach updatest.

Vorteile:
- Dir entstehen nicht irgendwann immens hohe ID-Werte
- Spart MySQL-Abfragen
- Werte sind immer in der richtigen Reihenfolge geordnet

Mfg
 
formelx ist offline  
 

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
10 mio für mysql-hilfe Indianer0815 Lose4Scripts 2 18.11.2008 10:59:02
Hilfe: Benötige Hilfe bei mySQL Datenbank vom Script Christian Scripts & Software 1 25.06.2008 10:12:36
[S] Hilfe bei MySQL loltown Lose4Scripts (erledigt) 8 11.06.2007 21:11:30
MySQL hilfe sulospace Programmierung 6 31.05.2007 16:40:35
Hilfe mit MySQL Pawel Programmierung 5 18.02.2007 01:32:41


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35:03 Uhr.