Beiträge von PhipsCH

    Hallo

    Ich habe eine Schleife, wo ich Datensätze aus meiner mySQL-Datenbank ausgebe.

    Nun möchte ich innerhalt dieser Schleife, ein Datenfeld dieses Datensatzes ändern.

    Die Value für das Feld kommt aus einer Dritten DB-Tabelle.

    dafür hab ich gedacht sei es sinnvoll, wenn ich die abgefragten Datensätze in ein Mehrdimensionales Array schreibe.

    Wenn ich das aber innerhalb der Schleife mache, habe ich aber bei diesm Feld das ich ändern möchte, nach dem Durchlaufen der Schleife, überall den selben Inhalt drin. Dieser wird nämlich immer überschreiben.

    Was muss ich machen, dass ich im entsprechenden Array auch das entsprechende Feld im Array habe?

    Gruss

    PhipsCH

    Langsam habe ich das Gefühl, zu verstehen was passieren sollte. Macht es aber noch nicht. ;-/

    Ich habe zwei Abfragen. einmal Postendienst, da frage ich den Datensatz ab, dessen ID über GET geliefert wird. Diese stehen in Tabelle 1

    Zum andern Frage ich alle Daten aus der Tabelle 2 wo bei der Spalte podizei_idpodi die ID der Tabelle 1 steht.
    Das sind in meinem Fall drei Datensätze.

    Aus diesen Drei Datensätzen, möchte ich die Datum die in der Spalte podizei_datum gespeichert sind.
    Da ich alle drei Datensätze im pdf ausgeben möchte, schreibe ich diese zuerst in Array das Ausgeben des Datums möchte ich dann im deutschen Format.

    Abfrage postendienst:

    PHP
    SELCET * 
    FROM Tabelle1 
    WHERE Tabelle1_ID = $_GET['podi_ID']

    Abfrage podidate:

    PHP
    SELECT * 
    FROM Tabelle2 
    WHERE Tabelle2_podizei_idpodi = $Postendienst['podi_ID']

    In Array schreiben:

    PHP
    do { 
    if ($row_podidate['podizei_datum'] != "" ) 
    { 
    $row_podidate['podizei_datum']=date("d.m.Y", strtotime( $row_podidate["podizei_datum"])); 
    $MeinArray[] = array( 
    'datum' => $row_podidate['podizei_datum'] 
    ); 
    }

    Als pdf schreiben:

    PHP
    for($i=0;$i<=6;$i++) 
    { 
    if($MeinArray[$i] != '') 
    { 
    $pdf->SetFont('Helvetica','',10); 
    $pdf->Cell(30,0,"" . $MeinArray[$i]['datum'],0,0,'L') . " ,"; 
    } 
    }

    Beim schreiben dieses Beitrags hat es nun Endlich doch irgendwie funktioniert. hab wohl zu viel dran rum probiert. War zwar kurz vorm verzweifeln.

    Aber dank deiner Hilfe hats nun endlich funktioniert. vielen Dank

    Gruss

    Philipp

    Das hab ich jetzt bekommen

    DATE #0 - 30.04.2016
    DATE #1 - 01.05.2016
    DATE #2 - 31.08.2016

    Ich habe versucht meinen Code mit: date("d.m.Y", strtotime( $row_postendienst["podi_ID"]["podizei_datum"])),);

    zu ergänzen.
    Die Idee war, dass Datum abzufragen und formatiert in das Array zu schreiben. "Bevor es dann zum pdf werden sollte."

    Stimmt. Datensatz 1 ist leer

    Das hab ich jetzt erhalten:
    3 Rows found!
    Rowname: 453
    -----------------
    print_r(453):
    Array ( [podizei_ID] => 536 [podizei_idpodi] => 453 [podizei_datum] => 2016-04-30 [podizei_von] => 15:00:00 [podizei_bis] => 24:00:00 [podizei_bemerkung] => ) -----------------
    var_dump(453["podizei_datum"]):
    string(10) "2016-04-30" -----------------
    echo: 453["podizei_datum"]:
    2016-04-30
    -----------------
    date(): 453["podizei_datum"]:
    2016-04-30
    -----------------
    date("d.m.Y", strtotime( 453["podizei_datum"])):
    30.04.2016
    -----------------
    time(): 453["podizei_datum"]:
    1418061465
    -----------------
    Rowname: 453
    -----------------
    print_r(453):
    Array ( [podizei_ID] => 524 [podizei_idpodi] => 453 [podizei_datum] => 2016-05-01 [podizei_von] => 10:00:00 [podizei_bis] => 15:00:00 [podizei_bemerkung] => ) -----------------
    var_dump(453["podizei_datum"]):
    string(10) "2016-05-01" -----------------
    echo: 453["podizei_datum"]:
    2016-05-01
    -----------------
    date(): 453["podizei_datum"]:
    2016-05-01
    -----------------
    date("d.m.Y", strtotime( 453["podizei_datum"])):
    01.05.2016
    -----------------
    time(): 453["podizei_datum"]:
    1418061465
    -----------------
    Rowname: 453
    -----------------
    print_r(453):
    Array ( [podizei_ID] => 548 [podizei_idpodi] => 453 [podizei_datum] => 2016-08-31 [podizei_von] => 15:00:00 [podizei_bis] => 18:00:00 [podizei_bemerkung] => ) -----------------
    var_dump(453["podizei_datum"]):
    string(10) "2016-08-31" -----------------
    echo: 453["podizei_datum"]:
    2016-08-31
    -----------------
    date(): 453["podizei_datum"]:
    2016-08-31
    -----------------
    date("d.m.Y", strtotime( 453["podizei_datum"])):
    31.08.2016
    -----------------
    time(): 453["podizei_datum"]:
    1418061465
    -----------------

    Wenn ich den Code einfüge bekomme ich einen Fehler, das in Zeile 9 etwas nicht stimmt.

    das finde ich ja auch so seltsam.

    Hier die mySQL-Abfrage:

    und hier die Ausgabe:

    PHP
    do { ?> 
    <?php echo $row_podidate['podizei_datum']; ?> <?php echo $row_podidate['podizei_idpodi'];echo "<br />" ?> 
    <?php } while ($row_podidate = mysql_fetch_assoc($podidate)) ; ?> 
    
    
    
    
    <?php var_dump($row_podidate['podizei_datum']);

    wenn ich

    PHP
    echo $row_podidate['podizei_datum'];

    ausgebe, erhalte ich das Datum, welches in der DB steht im "Ami-Format"

    Wenn ich:

    PHP
    var_dump($row_podidate['podizei_datum']);

    ausgebe, erhalte ich NULL.

    woher kommt das? Hat es möglicherweise damit zu tun, das ich das Format in der DB mal nachträglich von VARCHAR auf DATA geändert habe?

    Iah habe das ganze nun einmal so versucht umzusetzen.

    Woher kommt das Aktuelle Datum und die Aktuelle Uhrzeit?

    Gruss

    PhipsCH

    Ich habe es jetzt mal so versucht.

    PHP
    do { 
    if ($row_podidate['podizei_datum'] != "" ) 
    { 
    $MeinArray[] = array( 
    'datum' => $row_podidate['podizei_datum'], 
    ); 
    } 
    } while ($row_podidate = mysql_fetch_assoc($podidate));


    Und danach

    PHP
    $pdf->Cell(50,0,"" . $MeinArray[0]['datum'] . ", " . $MeinArray[1]['datum'] . ", " . $MeinArray[2]['datum'] . ", " . $MeinArray[3]['datum'] . ", " . $MeinArray[5]['datum'] . ", " . $MeinArray[5]['datum'],0,0,'L');

    Aber irgendwie entspricht das nicht meinem Wunsch.
    Die Komas sind etwas unschön. Macht da eine Abfrage sinn, ob etwas im Array steht? und erst dann das Koma?

    Oder gibt es eine andere Lösung?

    Hallo zusammen

    Ich möchte mit Hilfe von fpdf ein .pdf-File erstellen. Im meinem .pdf-File sind auch angaben aus meiner Datenbank.

    Damit es mir die Werte aus der DB übernimmt, habe ich die Abgefragten Ergebnisse in eine Variable geschrieben und die dem Text beigefügt. Die Abgefragten Werte direkt eintragen geht nicht.

    PHP
    $pdf->Cell (30,0,"Text mit $variablen",0,0,'L')


    das geht

    PHP
    $pdf->Cell (30,0,"Text mit $row_abfrage['datum']",0,0,'L')


    Das geht nicht

    Damit könnte ich leben, ich schreib die Werte einfach zuerst in die Variable und gut ist.

    Nun habe ich aber das Problem, dass ich aus einer Verknüpfungstabelle, mehrere Ergebnisse in mein .pdf-File schreiben möchte.

    Hat jemand eine Idee wie ich das machen könnte? Wie schreib ich mehrere Datensätze in mein PDF?

    Vielen Dank schon jetzt für Eure Unterstützung

    Gruss
    PhipsCH

    Genau, das Array erstell ich im Formular


    Das mach ich dann für jedes Array.

    wäre es schlauer zuerst eine Variable zu erstellen und wenn etwas in der Variable steht ins Array schreiben?

    Ich hab in den ersten beiden Array jeweils "test1 - test8" eingetragen. Array 3, 4, 5, 6, 7 und 8 möchte ich in diesem Fall nicht in der Datenbank


    array(6) {
    [1]=>
    array(4) {
    ["datum"]=>
    string(5) "test1"
    ["von"]=>
    string(5) "test2"
    ["bis"]=>
    string(5) "test3"
    ["bemerkung"]=>
    string(5) "test4"
    }
    [2]=>
    array(4) {
    ["datum"]=>
    string(5) "test5"
    ["von"]=>
    string(5) "test6"
    ["bis"]=>
    string(5) "test7"
    ["bemerkung"]=>
    string(5) "test8"
    }
    [3]=>
    array(4) {
    ["datum"]=>
    string(0) ""
    ["von"]=>
    string(0) ""
    ["bis"]=>
    string(0) ""
    ["bemerkung"]=>
    string(0) ""
    }
    [4]=>
    array(4) {
    ["datum"]=>
    string(0) ""
    ["von"]=>
    string(0) ""
    ["bis"]=>
    string(0) ""
    ["bemerkung"]=>
    string(0) ""
    }
    [5]=>
    array(4) {
    ["datum"]=>
    string(0) ""
    ["von"]=>
    string(0) ""
    ["bis"]=>
    string(0) ""
    ["bemerkung"]=>
    string(0) ""
    }
    [6]=>
    array(4) {
    ["datum"]=>
    string(0) ""
    ["von"]=>
    string(0) ""
    ["bis"]=>
    string(0) ""
    ["bemerkung"]=>
    string(0) ""
    }
    }

    In der ersten Ebene steht die Zahl 1 - 6 und in der zweiten Ebene jeweils [datum], [von], [bis], [bemerkung].

    in der ersten Ebene steht, meiner Meinung nach, immer 1, 2, 3, 4, 5 oder 6 drin. Das könnte auch der Grund sein, wieso es auf für "leere" Array einen Datenbankeintrag gibt.
    Wenn bei [Datum], [von], [bis] nichts drin steht, möchte ich kein Eintrag. Bemerkung kann leer bleiben.