php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 02-09-2003, 13:48
JogiWebster
 Registrierter Benutzer
Links : Onlinestatus : JogiWebster ist offline
Registriert seit: Jul 2002
Ort: Hamburg, DE
Beiträge: 115
JogiWebster ist zur Zeit noch ein unbeschriebenes Blatt
Standard Wildcard bei UPDATE bzw. REPLACE? Syntax?

Hallo!

Ich habe eine Tabelle mit der Spalte "datum", darin ist das Datum immer wie folgt formattiert:

TT.MM.JJ also z.B. 03.08.03

Nun möchte ich in dieser Tabelle eine weitere Spalte "jahr" erstellen und den Inhalt von der Spalte "datum" übernehmen und dabei z.B "*.03" durch "2003" oder "*.19" durch "1999" ersetzen.

Dazu habe ich folgenden query:

PHP-Code:
mysql_query("ALTER TABLE $tabelle ADD jahr int(4) NOT NULL");
mysql_query("UPDATE $tabelle SET jahr = REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(datum, '%.99', '1999'), '%.00', '2000'), '%.01', '2001'),
                            '%.02', '2002'), '%.03', '2003')"
); 

Das funktioniert aber nicht!
Ich habe in der Spalte Jahr dann etwas falsches stehen.

Meine Frage ist nun, wie die Platzhalter bei einem Replace anzugeben sind?

Danke Euch!

Jogi
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 02-09-2003, 13:52
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

warum nimmst du nicht einfach ne spalte vom typ date oder datetime?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #3 (permalink)  
Alt 02-09-2003, 13:55
JogiWebster
 Registrierter Benutzer
Links : Onlinestatus : JogiWebster ist offline
Registriert seit: Jul 2002
Ort: Hamburg, DE
Beiträge: 115
JogiWebster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

weil das ganze in diesem fomat händisch eingepflegt wurde und es sich um viele tausend einträge handelt, als neue spalte könnte ich mir auch gut den TYP DATE vorstellen, nur wie bekomme ich die daten aus der alten spalte in die neue???
Mit Zitat antworten
  #4 (permalink)  
Alt 02-09-2003, 14:08
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Code:
ALTER TABLE tabelle
  ADD datum2 date

UPDATE tabelle
  SET
    datum2=CONCAT ( RIGHT(datum,2), '-', MID(datum,4,2), '-', LEFT(datum,2) )

ALTER TABLE tabelle
  DROP COLUMN datum

ALTER TABLE tabelle
  CHANGE datum2 datum DATE
EDIT:
wichtig: nach schritt 2 nachschauen ob die daten in der neuen spalte so sind wie gewünscht
__________________
Ich denke, also bin ich. - Einige sind trotzdem...

Geändert von mrhappiness (02-09-2003 um 14:17 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 02-09-2003, 14:38
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

SQL-Problem

*VERSCHIEB*
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #6 (permalink)  
Alt 02-09-2003, 15:33
JogiWebster
 Registrierter Benutzer
Links : Onlinestatus : JogiWebster ist offline
Registriert seit: Jul 2002
Ort: Hamburg, DE
Beiträge: 115
JogiWebster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

danke mrhappiness!!
das funktioniert soweit, wenn ich die Teilbereiche nacheinander in phpmyadmin ausführe.
Nur alles in einer php-Datein geht nicht, vermutlich, weil die erste Aktion noch läuft, wenn die zeite schon aufgerufen wird.
Gibt`s da eine Möglichkeit, wie z.B. TIMEOUT?

Danke!

Jogi
Mit Zitat antworten
  #7 (permalink)  
Alt 02-09-2003, 15:40
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

sollte auch mit php gehen, einfach jedes statement als seperates mysql_query absetzen

kann dein problem nich so ganz nachvollziehen

vor allem: du hast es doch schon in phpmyadmin gemacht oder?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #8 (permalink)  
Alt 02-09-2003, 15:48
JogiWebster
 Registrierter Benutzer
Links : Onlinestatus : JogiWebster ist offline
Registriert seit: Jul 2002
Ort: Hamburg, DE
Beiträge: 115
JogiWebster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mein Problem besteht darin, dass ich diese Tabelle oft updaten muss und dann eben jedesmal diese queries ausführen muss.
Ich möchte das in eine PHP-Datein integrieren, die diese Aktionen bei Aufruf ausführt und eine Erfolgsmeldung ausgiebt.

Mein Script:

PHP-Code:
mysql_query("ALTER TABLE $tabelleADD datum2 DATE");
mysql_query("UPDATE $tabelle SET datum2 = CONCAT ( RIGHT(datum,2),'-', MID(datum,4,2), '-', LEFT(datum,2) )");
mysql_query("ALTER TABLE $tabelle DROP COLUMN datum");
mysql_query("ALTER TABLE $tabelle CHANGE datum2 datum DATE");
echo 
"...<br>"
echo 
"Aktuallisierung der Spalte Datum war erfolgreich!"
Wie gesagt, einzeln in phpmyadmin funktioniert es, nur über die Datei habe ich dann in allen Felder "NULL".

Wo dran kann das liegen?

Danke!
Mit Zitat antworten
  #9 (permalink)  
Alt 02-09-2003, 15:51
JogiWebster
 Registrierter Benutzer
Links : Onlinestatus : JogiWebster ist offline
Registriert seit: Jul 2002
Ort: Hamburg, DE
Beiträge: 115
JogiWebster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

so sollte es heißen:

PHP-Code:
mysql_query("ALTER TABLE $tabelle ADD datum2 DATE");
mysql_query("UPDATE $tabelle SET datum2 = CONCAT ( RIGHT(datum,2),'-', MID(datum,4,2), '-', LEFT(datum,2) )");
mysql_query("ALTER TABLE $tabelle DROP COLUMN datum");
mysql_query("ALTER TABLE $tabelle CHANGE datum2 datum DATE");
echo 
"...<br>"
echo 
"Aktuallisierung der Spalte Datum war erfolgreich!"
Mit Zitat antworten
  #10 (permalink)  
Alt 02-09-2003, 15:51
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

Zitat:
Original geschrieben von JogiWebster
mein Problem besteht darin, dass ich diese Tabelle oft updaten muss und dann eben jedesmal diese queries ausführen muss.
falsch

du hast jetzt einmalig die daten in ein vernünftiges format gebracht

neue daten sollten gleich im richtigen format reingeschrieben werden
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #11 (permalink)  
Alt 02-09-2003, 15:59
JogiWebster
 Registrierter Benutzer
Links : Onlinestatus : JogiWebster ist offline
Registriert seit: Jul 2002
Ort: Hamburg, DE
Beiträge: 115
JogiWebster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

klar, das würde ich auch gerne, nur bekomme ich immer wieder eine csv Tabelle, die im ursprünglichen Sinn formatiert ist, deshalb komme ich nicht drumherum dann ein Backup der ursprünglichen Tabelle vorzuhalten, dann die neuen Daten einzuspielen und dann die Spalten zu aktualisieren...

Gibt es in PHP denn keine Funktion wie "set timeout()" in Javascript?

Danke!
Mit Zitat antworten
  #12 (permalink)  
Alt 02-09-2003, 16:03
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

würde dir nix bringen

inhalt der spalte datum: 11.08.03

wird umgewandelt zu: 2003-08-11

nächstes update:
2003-08-11 wird umgewandelt zu 1911-3--20
kein güliges datum => 0

du musst dafür sorgen, dass de rinhalt der csv datei richtig is, oder du musst dir ne routine zum import schreiben, die die daten so formatiert
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #13 (permalink)  
Alt 02-09-2003, 16:09
JogiWebster
 Registrierter Benutzer
Links : Onlinestatus : JogiWebster ist offline
Registriert seit: Jul 2002
Ort: Hamburg, DE
Beiträge: 115
JogiWebster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich dachte mir das so:

ich behalte die Tabellenstruktur wie gehabt, dass heißt "datum" ist kein DATE, sonder VARCHAR.
Diese Struktur behalte ich im Backup und spiele dort die neuen Daten ein und dann mache ich die Prozedur, die DU mir gezeigt hast, eben mit UPDATE...

Nur läuft warum funktioniert der gleiche BEfehl bei phpmyadmin und in einer PHP-Datei nicht?
Vorm Test habe ich natürlich wieder den alten Zustand der TAbelle wiederhergestellt.

Gibt`s den einen Timeout Befehl für PHP4?

Danke Dir!!
Mit Zitat antworten
  #14 (permalink)  
Alt 02-09-2003, 16:16
JogiWebster
 Registrierter Benutzer
Links : Onlinestatus : JogiWebster ist offline
Registriert seit: Jul 2002
Ort: Hamburg, DE
Beiträge: 115
JogiWebster ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, hat sich erledigt!
ich dummerchen kann ja einfach slebst die CSV bzw die XLS entsprechend den DATE Format formatieren und dann erst einlesen...
hast schon recht, das andere wären keine sauberen Lösungen gewesen!

danke Dir!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:13 Uhr.