CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
04.02.2010, 15:09:11
|
Anfänger
|
|
Registriert seit: Feb 2010
Alter: 43
Beiträge: 5
|
|
Werte aller Einträge der Tabelle ändern
Hallo zusammen,
ich hoffe ihr könnt mir helfen.
Ich habe 2 Tabellen die hier relvant sind.
Tabelle "users" und Tabelle "pms"
Der Vorgänger der die Tabelle pms angelegt hatte, war so schlau und hat 2 Spalten gehabt "Empfaeger" und "Sender" wo er die Namen der User gespeichert hat statt die ID des Users zu nehmen. Denn in der Tabelle Users stehen alle User drin, mit ID und Name.
In der neuen Version von dem PM-System werden nur noch die IDs der User in den Spalten gespeichert. Jetzt sollen die alten Einträge auch in der neuen Version vorhanden sein. Da ist jetzt die Frage ist es möglich eine SQL-Anweisung zu schreiben, die jeden Namen in der Tabelle "pms" hernimmt, miit dem Namen der Tabelle "users" vergleicht und bei erfolgreichen suchen die ID des Users in die Tabelle "pms" statt des Names schreibt.
Hoffe jemand von euch kann mir da helfen.
MfG
Wiesel82
|
04.02.2010, 15:25:50
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Werte aller Einträge der Tabelle ändern
Hi
Zitat:
Da ist jetzt die Frage ist es möglich eine SQL-Anweisung zu schreiben, die jeden Namen in der Tabelle "pms" hernimmt, miit dem Namen der Tabelle "users" vergleicht und bei erfolgreichen suchen die ID des Users in die Tabelle "pms" statt des Names schreibt.
|
Erstelle dazu ne neue Spalte z.B. "id" in der "pms" dann kannst du weiterverarbeiten
wer keine hat ohne die namen zu überschreiben.
Bsp.
Code:
update pms set id=(select id from user where name=pms.name)
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
04.02.2010, 16:24:18
|
Anfänger
|
|
Registriert seit: Feb 2010
Alter: 43
Beiträge: 5
|
|
AW: Werte aller Einträge der Tabelle ändern
Vielen Dank Ckaos für die blitzschnelle Antwort.
Habe die Anweisung ausgeführt, jetzt erhalte ich leider als Fehlermeldung
" MySQL said: Documentation
#1242 - Subquery returns more than 1 row "
Von daher scheint die Query selbst zu stimmen nur kann ich darüber nicht die Spalte ID von pms nicht mit den passenden ID des Users füllen.
Geht das überhaupt mit PHPmyadmin oder gibt es Skripte mit denen ich diese Anweisung für jeden Eintrag durchführen kann, sodass am Ende in der Spalte ID in pms von dem jeweiligen Benutzer die ID drin steht?
Geändert von Wiesel82 (04.02.2010 um 16:44:15 Uhr)
|
05.02.2010, 01:12:25
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Werte aller Einträge der Tabelle ändern
Hi
Die Fehlermeldung sagt ja das Abfrage nach dem Namen mehr als ein Ergebnis
liefert, was da wohl heisst das es den Namen mehrmals gibt. Natürlich könntest
du den Query um ein LIMIT erweitern, nur würde dann der erste gefundene Eintrag
gezählt was ja nicht immer die richtige ID wäre oder?
Um das zu verdeutlichen führe mal folgenden Query aus
Code:
SELECT name,count(*) as z FROM `user` group by name having z>0
Das sollte dir zeigen wie oft welcher Name vorkommt.
Ich denke die doppelt musst du ausklammern und nachher per hand anpassen.
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
05.02.2010, 01:25:45
|
Anfänger
|
|
Registriert seit: Feb 2010
Alter: 43
Beiträge: 5
|
|
AW: Werte aller Einträge der Tabelle ändern
Ok die Tabelle PMS speichert sozudagen PM's der User, sodass unter umständen umzählige Einträge mit dem Namen existieren. Gibt es keine Möglichkeit das ohne nachtragen per Hand zu machen, da bei 10000 Einträgen etwas Zeit und Nerven fehlen würde mindestens die Hälfte der Einträge manuell anzupassen.
|
05.02.2010, 01:35:20
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Werte aller Einträge der Tabelle ändern
Hi
Zitat:
Zitat von Ckaos
Ich denke die doppelt musst du ausklammern und nachher per hand anpassen.
|
Je nachdem wieviele Namen doppelt sind und wieviel PM's denen zugewiesen
werden müssen, musst du wohl per hand arbeiten den rest (Namen eindeutig zuordbar)
kannst du ja mit der Zeile ändern (angepasst darauf das doppelte Namen ausgeschlossen sind)
Wie soll das anders möglich sein. Geh in einen Raum wo 10 Leute drin sind alle haben den
Namen Wiesel82 wem gibst du den an Wiesel82 geschriebenen Brief?
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
05.02.2010, 01:50:48
|
Anfänger
|
|
Registriert seit: Feb 2010
Alter: 43
Beiträge: 5
|
|
AW: Werte aller Einträge der Tabelle ändern
Ok habs mal gemacht.
Da haben welche bis zu 150 Nachrichcten geschrieben.
Es gibt nur einen Username Wiesel82 aber der kann 150 Nachrichten gesendet habenund da muss ich da für den einen Benutzer Wiesel82 dann 149x die Einträge manuell per Hand ändern?!?! Da häng ich ja bei 1000 Usern und mehr das ganze Jahr dran. Das ist definitv keine Lösung. ;)
Ne andere Lösung gibts da nicht?
|
05.02.2010, 02:15:19
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Werte aller Einträge der Tabelle ändern
Hi
Ich rede die ganze Zeit von deiner user tabelle wo anscheinend
Namen doppelt vergeben sind. Also müssen da z.B. 2x wiesel82 drin sein vielleicht auch mit
unterschiedlichen ID's welches ein automatisches richtiges zuweisen unmöglich macht.
Wäre es anders würde dir bei meiner angebotenen Query keinen solchen fehler ausgeben.
Du denkst es geht um die PM's
Zitat:
Zitat von Wiesel82
Ok habs mal gemacht.
Da haben welche bis zu 150 Nachrichcten geschrieben.
|
Ich denke du verstehst meine Antworten nicht was weitere Ausführungen meinerseits
unnötig macht.
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
05.02.2010, 12:24:05
|
Anfänger
|
|
Registriert seit: Feb 2010
Alter: 43
Beiträge: 5
|
|
AW: Werte aller Einträge der Tabelle ändern
Ahh sorry mein Fehler war wohl gestern schon zu spät dafür. ;)
Klasse habe die doppelten Einträge gelöscht, was wohl ein Bug im alten System war, da im neuen auch der Username geprüft wird. Jetzt hats dann auch funktioniert, vielen Dank für deine Hilfe.
|
05.02.2010, 13:36:38
|
Member
|
|
Registriert seit: Nov 2007
Beiträge: 843
|
|
AW: Werte aller Einträge der Tabelle ändern
Hi
kein problem und immer wieder gerne ;)
mfg
Ckaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39:15 Uhr.
|