SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.11.2005, 16:11:58
Knisterkarl Knisterkarl ist offline
Anfänger
 
Registriert seit: Jul 2005
Ort: Hannover
Alter: 44
Beiträge: 55
HILFE!!! Hab da nen Denkfehler!

hallo zusammen,

ich hänge mal wieder an einem kleinen skript und seh die lösung grade nicht und hoffe, dass mir da jemand von euch auf die sprünge helfen kann:

und zwar habe ich eine csv datei in eine db importiert und ich möchte nun das feld bdate in jedem datensatz in ein format bringen, mit welchem ich auch etwas anfangen kann.

bis hierhin gibt es kein problem, allerdings wenn ich das skript ausführe, erhält jeder datensatz den selben wert....

hier mal der code für das meiner meinung nach recht einfach zu lösende problem:

PHP-Code:
<?php
include("config_db.php");

function 
datum_wie_ich_will($t) {
    return 
sprintf("%02d%02d%02d",
                
substr($t67),
                
substr($t34),
                
substr($t02));
}

$abfr=mysql_query("SELECT * FROM $table_po");

while(
$dsatz=mysql_fetch_array($abfr)){
    
    
$t=$dsatz[bdate];
    
$datum datum_wie_ich_will($t);
    
$update=mysql_query("UPDATE $table_po SET bdate = '$datum'");

    }


?>
wahrscheinlich steh ich da grad aufm schlauch!!

vielen dank schonmal im voraus für eure mühe!!

gruß knisterkarl
Mit Zitat antworten
  #2  
Alt 02.11.2005, 17:27:02
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: HILFE!!! Hab da nen Denkfehler!

In deiner UPDATE-Query fehlt eine WHERE-Klausel. Deswegen werden einfach alle Datensätze aktualisiert.
Mit Zitat antworten
  #3  
Alt 02.11.2005, 18:07:29
Knisterkarl Knisterkarl ist offline
Anfänger
 
Registriert seit: Jul 2005
Ort: Hannover
Alter: 44
Beiträge: 55
AW: HILFE!!! Hab da nen Denkfehler!

hallo xabbuh,

ich habe die where bedingung/klausel bewusst weg gelassen, da ja jeder datensatz verändert werden soll. allerding soll nicht jeder datensatz den wert des ersten bekommen, sondern jedes datum soll dahingehend verändert werden, dass es zu dem entsprechenden datensatz passt....ich hoffe das ist einigermaßen verständlich!!

gruß knisterkarl
Mit Zitat antworten
  #4  
Alt 02.11.2005, 19:14:05
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: HILFE!!! Hab da nen Denkfehler!

Eben deswegen brauchst du eine WHERE-Klausel in der du angibst, welcher Datensatz genau dieses Datum bekommen soll. Außerdem: Was hast du da überhaupt vor?

Geändert von xabbuh (02.11.2005 um 19:32:04 Uhr)
Mit Zitat antworten
  #5  
Alt 02.11.2005, 19:43:05
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: HILFE!!! Hab da nen Denkfehler!

Zitat:
Zitat von Knisterkarl
jedes datum soll dahingehend verändert werden, dass es zu dem entsprechenden datensatz passt....ich hoffe das ist einigermaßen verständlich!!

gruß knisterkarl
eben genau deswegen brauchts ja ne where bedingung. wie sonst sollte das gehen?

zweitens: sag uns doch bitte was du genau machen willst, denn es gibt sicher eine lösung, bei der du nicht x mal ein update ausführen musst.
Mit Zitat antworten
  #6  
Alt 03.11.2005, 02:54:00
Knisterkarl Knisterkarl ist offline
Anfänger
 
Registriert seit: Jul 2005
Ort: Hannover
Alter: 44
Beiträge: 55
AW: HILFE!!! Hab da nen Denkfehler!

also, ich habe wie gesagt eine datei in die db geladen, in der das datum wie folgt aussieht tt.mm.jjjj.....
ich benötige das datum allerdings in diesem format ---> jjjjmmtt

deswegen dachte ich, dass ich mit der funktion datum_wie_ich_will das datum aus der db so formatiere, wie ich es benötige um es dann im nächsten schritt via update in die db zu schreiben.
Mit Zitat antworten
  #7  
Alt 03.11.2005, 09:38:06
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: HILFE!!! Hab da nen Denkfehler!

Dann wäre es einfacher, wenn du einfach mit den MySQL-Funktionen CONCAT() und SUBSTRING() die Umformung direkt in der UPDATE-Query vornimmst:

Code:
UPDATE
    tabelle
SET
    bdate = CONCAT(SUBSTRING(bdate FROM 7 FOR 4), SUBSTRING(bdate FROM 4 FOR 2), SUBSTRING(bdate FROM 1 FOR 2))
Aber: Warum nimmst du für das Datumsformat nicht DATE?
Mit Zitat antworten
  #8  
Alt 03.11.2005, 10:34:42
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: HILFE!!! Hab da nen Denkfehler!

Zitat:
Zitat von xabbuh
Dann wäre es einfacher, wenn du einfach mit den MySQL-Funktionen CONCAT() und SUBSTRING() die Umformung direkt in der UPDATE-Query vornimmst:

Code:
UPDATE
    tabelle
SET
    bdate = CONCAT(SUBSTRING(bdate FROM 7 FOR 4), SUBSTRING(bdate FROM 4 FOR 2), SUBSTRING(bdate FROM 1 FOR 2))
Aber: Warum nimmst du für das Datumsformat nicht DATE?
genau daran hatte ich gestern auch gedacht :-)
Mit Zitat antworten
  #9  
Alt 03.11.2005, 15:55:03
Knisterkarl Knisterkarl ist offline
Anfänger
 
Registriert seit: Jul 2005
Ort: Hannover
Alter: 44
Beiträge: 55
AW: HILFE!!! Hab da nen Denkfehler!

hallo ihr beiden,

das mit der formatierung in der mysql_query hat wunderbar geklappt....mir war es gar nicht so bewusst, dass man ja auch ne menge schon in der query erledigen kann und sich somit an der ein oder anderen stelle ne menge (schreib)arbeit wegfällt! vielen dank für den tipp....werde zukünftig erstmal schauen, was mysql schon erledigen kann.....

gruß knisterkarl


EDIT: ich habe auf der seite verschiedene formular, bei denen das datum eingegeben werden kann und ich habe dann aus drei optionsfeldern (jjjjmmtt) einen string zusammengefügt und diesen dann in die db geschrieben und arbeite dann damit weiter....deshalb habe ich mich gegen date entschieden... es reicht für meine zwecke völlig aus....

Geändert von Knisterkarl (03.11.2005 um 15:58:36 Uhr)
Mit Zitat antworten
  #10  
Alt 03.11.2005, 20:57:23
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: HILFE!!! Hab da nen Denkfehler!

Sinnvoller wäre es schon, DATE als Spaltentyp zu verwenden. So kannst du ohne Probleme Datumsberechnungen und -vergleiche mit den entsprechenden MySQL-Funktionen vornehmen. Beim Einfügen kannst du die Zeichenkette YYYYMMDD mit STR_TO_DATE() ganz einfach umwandeln:
PHP-Code:
<?php
    $sql 
sprintf("INSERT INTO
                            tabelle
                        SET
                            bdate = STR_TO_DATE('%s', GET_FORMAT(DATE, 'INTERNAL'))"
);
?>
Mit Zitat antworten
Antwort


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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Help!!! Hilfe!!! Presster PHP Grundlagen 1 16.12.2004 21:28:57
Benötige Hilfe für dyn. Abfrage mittles PHP Trialrider PHP für Fortgeschrittene und Experten 70 09.10.2003 11:08:56
if-schleife denkfehler EreburX PHP Grundlagen 2 08.10.2003 18:29:48
Fehler 1067 brauche dringend hilfe phRE MySQLi/PDO/(MySQL) 4 04.09.2003 15:58:32
HILFE!! Alphabetisch ordnen! php! raph PHP für Fortgeschrittene und Experten 12 20.07.2003 10:23:16


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt