2017-01-15 2 views
1

Ich habe diesen Code:PHP: SQL-Wert als Dateiname

<?php 
    $servername = "Jarvis"; 
    $username = "TonyStark"; 
    $password = "iLoveIronMan"; 
    $dbname = "StarkCompany"; 

    // Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    $sql = "SELECT o.order_id, o.customer_id, op.quantity, op.model FROM oc_order o INNER JOIN oc_order_product op ON o.order_id = op.order_id INNER JOIN oc_product p ON op.product_id = p.product_id WHERE o.order_status_id = 2 AND p.location = 1 ORDER BY o.order_id, op.model"; 

    $file = fopen('../files/in/filename.csv', 'w'); 

    if ($rows = mysqli_query($conn, $sql)) 
    { 

     while ($row = mysqli_fetch_assoc($rows)) 
     { 
      fputcsv($file, $row, ';'); 
     } 

     mysqli_free_result($rows); 
    } 

    mysqli_close($conn); 

    fclose($file); 
    ?> 

Jetzt: Wie kann ich den SQL-Wert der Tabelle o.order_id zum Beispiel und diesen Wert für meine Dateinamen verwenden? Der Dateiname sollte Beispiel (o.order_id) .csv sein. Ist das möglich?

Antwort

1

Sie können Ihr Leben einfacher, indem die Benennung der Wert wie folgt machen:

$sql = "SELECT o.order_id as filename, o.customer_id, op.quantity, op.model FROM oc_order o INNER JOIN oc_order_product op ON o.order_id = op.order_id INNER JOIN oc_product p ON op.product_id = p.product_id WHERE o.order_status_id = 2 AND p.location = 1 ORDER BY o.order_id, op.model"; 

dann, wenn Sie die Zeilen umgehen können Sie verwenden

$rows['filename'] 
+0

Danke. Ich habe es schon gemacht, aber der nächste Schritt scheint schwieriger zu sein. Das tatsächliche Datum einzufügen ist wie folgt: '$ file = fopen ('../ files/in/be'. Datum ('Ymd'). '.csv', 'w');' Aber das gleiche Format nicht arbeite für den "dynamischen" Dateinamen: '$ file = fopen ('../ files/in/be'. $ Zeilen ['Dateiname']. '.csv', 'w');'. Irgendein Vorschlag? – 27eleven

+0

Es gibt keine Angabe von "Datum" in Ihrer Frage. Alles hängt davon ab, was der tatsächliche Wert von $ rows ['filename'] 'ist. Hast du das überprüft? Wenn Sie diesen Wert verwenden müssen, um ein Datum zu werden, sollten Sie etwas wie "date ($ rows ['filename']]' 'versuchen. Sie müssen mehr Informationen liefern. – RST