@Jdwind
Niech Ci tam będzie, ale z góry zapowiadam, że programista ze mnie żaden i pewnie są tu rzeczy, które należałoby zrobić inaczej(czytaj lepiej)
Kod PHP:
<?php
$link=mysql_connect('localhost', 'root', 'root');
$select=mysql_select_db('Perfumeria') or die ("Nie udało się wybrać bazy");
$nazwapliku = 'produkty.csv';
$separator=";";
if (is_writable($nazwapliku)) {
if (!$uchwyt = fopen($nazwapliku, 'a')) {
echo "Nie mogę otworzyć pliku ($nazwapliku)";
exit;
}
}
else {
echo "Plik $nazwapliku nie jest zapisywalny";
}
if(!$xml=simplexml_load_file('produkty.xml')){
trigger_error('Error reading XML file',E_USER_ERROR);
}
foreach($xml as $product){
$sku = (string) $product->model;
if(!empty($sku)){
$brand= (string) $product->brand;
$q="Select category_id from jos_vm_category where category_name like '$brand'";
$zapytanie=mysql_query($q);
$result = mysql_fetch_row($zapytanie);
$category= $result[0];
if(!empty($category)) {
$wiersz=$brand.$separator.$sku.$separator.$category."\n";
if (fwrite($uchwyt, $wiersz) === FALSE) {
echo "Nie mogę zapisać do pliku ($nazwapliku)";
exit;
}
}
}
}
fclose($uchwyt);
?>
fragment pliku xml
Kod:
<produkty>
<produkt>
<model>3412241210112</model>
<nazwa>Blue Challenge woda toaletowa spray 100ml</nazwa>
<brand>Adidas</brand>
<category>Zapachy > Perfumy</category>
<dscr></dscr>
<feature>
<feature_name>Pojemność</feature_name>
<feature_value>100 ml</feature_value>
</feature>
<feature>
<feature_name>Płeć</feature_name>
<feature_value>męski</feature_value>
</feature>
</produkt>
....
</produkty>
Skrypt wybiera z pliku xml i zapisuje do pliku csv tylko te produkty które:
1.posiadają wartość dla tagu <model> (traktowane jako sku dla VM)
2. Istnieje w bazie kategoria odpowiadające marce produktu <brand>
//edit
$separator na końcu $wiersz jest niepotrzebny
//edit2
usunięcie fragmentu niewykorzystanego kodu