2017-01-15 2 views
1

J'ai ce code:PHP: valeur SQL comme nom de fichier

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

maintenant: Comment puis-je prendre par exemple la valeur SQL de la table o.order_id et utiliser cette valeur pour mon nom? Le nom de fichier doit être example (o.order_id) .csv. Est-ce possible?

Répondre

1

Vous pouvez vous rendre la vie plus facile en nommant la valeur comme ceci:

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

puis lorsque vous manipulez les lignes que vous pouvez utiliser

$rows['filename'] 
+0

Merci. Je l'ai déjà fait mais la prochaine étape semble être plus difficile. Pour insérer la date actuelle est comme ceci: '$ file = fopen ('../ files/in/be'. Date ('Ymd'). '.csv', 'w');' Mais le même format ne fonctionne pas travailler pour le nom de fichier "dynamique": '$ file = fopen ('../ files/in/be'. $ rows ['nom de fichier']. '.csv', 'w');'. Toute suggestion? – 27eleven

+0

Il n'y a aucune mention de 'date' dans votre question. Tout dépend de la valeur réelle de '$ rows ['filename']'. Avez-vous vérifié cela? Si vous devez utiliser cette valeur, telle quelle, pour devenir une date, vous devriez essayer quelque chose comme 'date ($ rows ['filename'])'. Vous devez fournir plus d'informations. – RST