2017-01-15 9 views
1

У меня есть этот код:PHP: значение SQL в качестве файла

<?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); 
    ?> 

Сейчас: Как я могу взять, например, значение SQL табличного o.order_id и использовать это значение для моего файла? Имя файла должно быть примером (o.order_id) .csv. Это возможно?

ответ

1

Вы можете сделать вашу жизнь проще, называя значение, как это:

$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"; 

тогда, когда вы регулируете строки, которые вы можете использовать

$rows['filename'] 
+0

Спасибо. Я сделал это уже, но следующий шаг кажется более сложным. Чтобы вставить фактическую дату, выполните следующие действия: '$ file = fopen ('../ files/in/be'. Date ('Ymd'). '.csv', 'w');' Но тот же формат не работайте для «динамического» имени файла: '$ file = fopen ('../ files/in/be'. $ rows ['filename']. '.csv', 'w');'. Любое предложение? – 27eleven

+0

В вашем вопросе не упоминается «дата». Все зависит от того, что такое фактическое значение '$ rows ['filename']'. Вы это проверили? Если вам нужно использовать это значение, как есть, чтобы стать датой, вы должны попробовать что-то вроде 'date ($ rows ['filename']). Вам нужно предоставить дополнительную информацию. – RST

 Смежные вопросы

  • Нет связанных вопросов^_^