Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Datum + 1 Tag in while schleife

  1. #1
    Azubi(ne)
    Registriert seit
    18.08.2005
    Beiträge
    86
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Datum + 1 Tag in while schleife

    Hi!

    folgendes Problem:

    Das script sollte jedes Datum, das in der Datenbank gefunden wird (mit dem Select im script) soll + 1 Tag gerechnet werden. So wie ich es jetzt habe werden aber alle Datum auf das gleiche gesetzt. z.B.: 24-8-05 und 23-08-05 wurden beim Select ausgegeben aber beide standen dann auf 25-8-05.

    Hier das Script:
    [php:1:9433aff35f]<?php
    <?php

    require('connect.php'); // Db connect
    require('auth.php'); // überprüfung ob session vorhanden

    $sql1 = ociparse($c,"SELECT * from bestellungen where KURZZ = '" .$_SESSION['kuerzel'] . "'"); // Select der vorhandenen Sätze (inklusive Datum) für den Benutzer)
    ociexecute($sql1);

    while($sql2 = oci_fetch_array($sql1))
    {
    $sql3 = ociparse($c,"update bestellungen set datum = to_date('".date('d-m-Y',mktime($sql2['DATUM']) + 86400)."', 'dd-MM-yyyy') where kurzz = '".$_SESSION['kuerzel']."'"); //eigentliche whileschleife welche nicht funktioniert
    ociexecute($sql3);
    ocicommit($c);
    }
    header("location:bestellungen.php");

    ?>?>[/php:1:9433aff35f]

    Danke schonmal für eure Hilfe!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    $sql2['DATUM'] - ist das ein UNIX Timestamp?
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    18.08.2005
    Beiträge
    86
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ne, datumsformat DD-MM-YYYY

  4. #4
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also es soll $sql2['DATUM'] genommen werden, um einen Tag erhöht werden und dann in die bestellungen Tabelle geschrieben werden?

    Sonst noch einen Wunsch? z.B. wenn $sql2['DATUM'] + 1 ein Sonntag wär, dann $sql2['DATUM'] + 2?
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  5. #5
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    [php:1:3db719f47b]<?php

    require('connect.php'); // Db connect
    require('auth.php'); // überprüfung ob session vorhanden

    $sql1 = ociparse($c,"SELECT * from bestellungen where KURZZ = '" .$_SESSION['kuerzel'] . "'"); // Select der vorhandenen Sätze (inklusive Datum) für den Benutzer)
    ociexecute($sql1);

    while($sql2 = oci_fetch_array($sql1))
    {
    /*
    Datum in einen Unix Timestamp umwandeln
    */
    $dt_array = implode("-", $sql2['DATUM']);
    $timestamp = mktime(0,0,0,$dt_array[1],$dt_array[0],$dt_array[2]);

    /*
    Nächster Tag im DD-MM-YYYY Format
    */
    $one_day = 1 * 60 * 60 * 24; // 1 Tag in Sekunden
    $next_day = date("d-m-Y", $timestamp + $one_day);

    $sql3 = ociparse($c,"update bestellungen set datum = '{$next_day}' where kurzz = '".$_SESSION['kuerzel']."' AND datum = '{$sql2['DATUM']}'");
    ociexecute($sql3);
    ocicommit($c);
    }
    header("location:bestellungen.php");

    ?>[/php:1:3db719f47b]

    Ungetestet, müsste aber gehen.

    Wichtig ist die Ergänzung in der where Bedingung...
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  6. #6
    Azubi(ne)
    Themenstarter

    Registriert seit
    18.08.2005
    Beiträge
    86
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Warning: implode() [function.implode]: Bad arguments. in /var/www/intranet/menues/f_verschbest.php on line 15

    Warning: ociexecute() [function.ociexecute]: OCIStmtExecute: ORA-01843: not a valid month in /var/www/intranet/menues/f_verschbest.php on line 24

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/intranet/menues/f_verschbest.php:15) in /var/www/intranet/menues/f_verschbest.php on line 27

    Sorry is aber mein Fehler, weil $sql2['DATUM'] enthaelt doch nicht DD-MM-YYYY sondern z.b.: 28-AUG-05

  7. #7
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Nein mein fehler - ich verwechsel gerne im- und explode *fg*

    [php:1:86b3539ecd]<?php

    require('connect.php'); // Db connect
    require('auth.php'); // überprüfung ob session vorhanden

    $sql1 = ociparse($c,"SELECT * from bestellungen where KURZZ = '" .$_SESSION['kuerzel'] . "'"); // Select der vorhandenen Sätze (inklusive Datum) für den Benutzer)
    ociexecute($sql1);

    while($sql2 = oci_fetch_array($sql1))
    {
    /*
    Datum in einen Unix Timestamp umwandeln
    */
    $dt_array = explode("-", $sql2['DATUM']);
    $monate = array (
    "JAN" => 1,
    "FEB" => 2,
    "MRZ" => 3,
    "APR" => 4,
    "MAI" => 5,
    "JUN" => 6,
    "JUL" => 7,
    "AUG" => 8,
    "SEP" => 9,
    "OKT" => 10,
    "NOV" => 11,
    "DEZ" => 12,
    );
    $timestamp = mktime(0,0,0,$monate[$dt_array[1]],$dt_array[0],$dt_array[2]);

    /*
    Nächster Tag im DD-MM-YYYY Format
    */
    $one_day = 1 * 60 * 60 * 24; // 1 Tag in Sekunden
    $next_day = date("d-m-Y", $timestamp + $one_day);

    $sql3 = ociparse($c,"update bestellungen set datum = '{$next_day}' where kurzz = '".$_SESSION['kuerzel']."' AND datum = '{$sql2['DATUM']}'");
    ociexecute($sql3);
    ocicommit($c);
    }
    header("location:bestellungen.php");

    ?>[/php:1:86b3539ecd]
    Bitte den $monate array an die Monatskürzel anpassen wie sie möglich wären - ich verwende in meinen Tabellen immer nur nen Unix Timestamp, da ists einfacher mit zu rechnen
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  8. #8
    Azubi(ne)
    Themenstarter

    Registriert seit
    18.08.2005
    Beiträge
    86
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hmm genial ;-D

    ich hatte das Datum 23-AUG-05 und nun wurde daraus --> 01-12-2004

    xD

  9. #9
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ach mist :P

    wie magst du das datum denn haben? mit dem STRING oder mit der ZAHL?

    Damit würdest du die Einträge jetzt in der Form String (zurück-)bekommen:

    [php:1:8a8ee39779]<?php

    require('connect.php'); // Db connect
    require('auth.php'); // überprüfung ob session vorhanden

    $sql1 = ociparse($c,"SELECT * from bestellungen where KURZZ = '" .$_SESSION['kuerzel'] . "'"); // Select der vorhandenen Sätze (inklusive Datum) für den Benutzer)
    ociexecute($sql1);

    while($sql2 = oci_fetch_array($sql1))
    {
    /*
    Datum in einen Unix Timestamp umwandeln
    */
    $dt_array = explode("-", $sql2['DATUM']);
    $monate = array (
    "JAN" => 1,
    "FEB" => 2,
    "MRZ" => 3,
    "APR" => 4,
    "MAI" => 5,
    "JUN" => 6,
    "JUL" => 7,
    "AUG" => 8,
    "SEP" => 9,
    "OKT" => 10,
    "NOV" => 11,
    "DEZ" => 12,
    "01" => 1,
    "02" => 2,
    "03" => 3,
    "04" => 4,
    "05" => 5,
    "06" => 6,
    "07" => 7,
    "08" => 8,
    "09" => 9,
    "10" => 10,
    "11" => 11,
    "12" => 12,
    );
    $rev_monate = array (
    "01" => "JAN",
    "02" => "FEB",
    "03" => "MRZ",
    "04" => "APR",
    "05" => "MAI",
    "06" => "JUN",
    "07" => "JUL",
    "08" => "AUG",
    "09" => "SEP",
    "10" => "OKT",
    "11" => "NOV",
    "12" => "DEZ",
    );
    $timestamp = mktime(0,0,0,$monate[$dt_array[1]],$dt_array[0],$dt_array[2]);

    /*
    Nächster Tag im DD-MM-YYYY Format
    */
    $one_day = 1 * 60 * 60 * 24; // 1 Tag in Sekunden
    $next_day = date("d", $timestamp + $one_day) ."-". $rev_monate[date("m", $timestamp + $one_day)] ."-". date("Y", $timestamp + $one_day);

    $sql3 = ociparse($c,"update bestellungen set datum = '{$next_day}' where kurzz = '".$_SESSION['kuerzel']."' AND datum = '{$sql2['DATUM']}'");
    ociexecute($sql3);
    ocicommit($c);
    }
    header("location:bestellungen.php");

    ?>[/php:1:8a8ee39779]

    btw: was gibts denn heut zu essen? Hab hunger...
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  10. #10
    Azubi(ne)
    Themenstarter

    Registriert seit
    18.08.2005
    Beiträge
    86
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    perfekt (: es funktioniert :> thx

    hm weil du mir geholfen hast darfst dir was aussuchen xD

Ähnliche Themen

  1. while schleife
    Von Walerik im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 18.01.2008, 17:25
  2. [Suche] Countdownscript von datum bis datum
    Von Biberlein im Forum Script-Archiv
    Antworten: 0
    Letzter Beitrag: 18.05.2007, 06:27
  3. AS: Movieclipeigenschaften in Schleife
    Von Feiv im Forum Flash Forum
    Antworten: 0
    Letzter Beitrag: 14.10.2006, 01:19
  4. Wochentag in FOR Schleife
    Von torsten81 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 13
    Letzter Beitrag: 09.11.2005, 18:05
  5. Probleme mit While-Schleife
    Von Slash_16 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 11
    Letzter Beitrag: 18.08.2005, 09:47

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •