Wiem że chcesz mi pomóc i to bardzo dobrze wiem.
Dobry pomysł z tą kaczką tylko że nie u mnie, dlaczego? Ponieważ ja już do siebie mówię i to chyba czasami za dużo.
Mój problem opisuję teraz. Napisałem importer danych z pliku xml wstawiający dane do MySQL, na ponad 2200 lin kodu i około 30 zapytań trafiło się jedno które mnie zirytowało, zgnębiło i wdeptało w podłogę. Rozwijam się dalej
Posiadam tabele "a" z danymi o zdjęciach około 50 tyś
Drugą tabele "b" z danymi o produktach około 20 tyś
Trzecią tabele "c" w której muszę no właśnie co ja muszę.
Pobrać id z tabeli "a", pobrać id z tabeli "b" w których jedno pole mają wspólne kod,
(muszę tylko pamiętać że id tabeli "b" może być powtórzone wielokrotnie max 11 razy dla id tabeli "a" (bo tam jeden produkt ma 11 zdjęć)), i tu mi rozjaśniłeś że mam zwiększać w ordering
wartość o 1,
więc próbuję z REPLACE INTO potem z INSERT INTO ON...... ordering = ordering +1 potem z tym i tym potem z JOIN potem z innym czymś o czym nie mam pojęcia, potem incrementa, co tam jaszcze już się pogubiłem
To jest mój problem NIE UMIEM TEGO ZROBIĆ.
Mój kod analizowałem i bład mam tylko w tym co chcę zrobić
<?php
include ('conf.php');
?>
<form ction="idcat.php" method="POST" />
<input type="submit" name="wczytaj" value="Wylistuj produkty" />
<input type="submit" name="dodaj" value="Wstaw produkty" />
<input type="submit" name="zdjecia" value="Dodaj zdjecia" />
</form>
<?php
//wczytanie pliku xml
$xml = simplexml_load_file('upload/action.xml') or die ("Error 3" .mysql_error() );
foreach($xml->produkty->produkt as $pr){
$id = $pr['id'];
$nazwa = $pr['nazwa'];
$producent = $pr['producent'];
$grupa = $pr['grupa'];
$cena = $pr['cena_netto'];
$cena_sug = $pr['cena_sugerowana'];
$magazyn = $pr['dostepny'];
$public = 1;
//wyswietlenie produktow
if($_POST['wczytaj']){
echo "<table border=1 collspan=2 cellspan=2><tr>";
echo "<td>" . $id . "</td>";
echo "<td>" . $nazwa . "</td>";
echo "<td>" . $producent . "</td>";
echo "<td>" . $grupa . "</td>";
echo "<td>" . $cena . "</td>";
echo "<td>" . $cena_sug . "</td>";
echo "<td>" . $magazyn . "</td>";
echo "</tr></table>";
}//koniec wyswietlania
// 1.2 dodawanie produktow
if($_POST['dodaj']){
// 1 sprawdz czy sku juz jest
$zapytanie = ("SELECT `product_sku` FROM `".$pref."virtuemart_products` WHERE `product_sku` = '$id'");
$wyslij = mysql_query($zapytanie, $con) or die ("Error 7 ". mysql_error() );
$row = mysql_fetch_row($wyslij);
if($row){
echo " To SKU - ". $id ." znajduje już się w bazie<br />";
//update stanu magazynowego
} else {
echo " Tego SKU - ". $id ." nie ma jeszcze w bazie zostanie dodany<br />";
$query = ("INSERT INTO `".$pref."virtuemart_products` (`product_sku`, `product_in_stock`, `metaauthor`, `published`) VALUES ('$id', '$magazyn', '$grupa' ,'$public') ");
$result = mysql_query($query, $con) or die ("Error 8 ". mysql_error() );
echo " SKU - ". $id ." zostało dodane pomyślnie!<br />";
}
}
//koniec 1.2
//zdjecia 1.3
if($_POST['zdjecia']){
$left = ("SELECT `".$pref."virtuemart_products`.`virtuemart_product_id`,`".$pref."virtuemart_medias`.`virtuemart_media_id`
FROM `".$pref."virtuemart_products`,`".$pref."virtuemart_medias`
WHERE `".$pref."virtuemart_products`.`product_sku` = `".$pref."virtuemart_medias`.`sku`");
$res = mysql_query($left, $con) or die ("Error 500 -". mysql_error());
while ($row = mysql_fetch_row($res)){
echo $row['virtuemart_product_id'] ." - " . $row['virtuemart_media_id'] ."<br />";
/**while($row = mysql_fetch_array($result)){
echo $row['Position']. " - ". $row['Meal'];
echo "<br />";**/
}
/**$zdjecia = ("INSERT INTO `".$pref."virtuemart_product_medias` (`virtuemart_product_id`, `virtuemart_media_id`, `ordering`) VALUES (
(SELECT `virtuemart_product_id` FROM `".$pref."virtuemart_products` WHERE `product_sku` = '$id'),
(SELECT `virtuemart_media_id` FROM `".$pref."virtuemart_medias` WHERE `sku` = '$id'), '+1' )
ON DUPLICATE KEY UPDATE `ordering` = (ordering + 1);
");
$wynik = mysql_query($zdjecia, $con) or die ("Error 8 - ". mysql_error() );
//ON DUPLICATE KEY UPDATE `ordering` = ordering + 1;**/
}//koniec 1.3
}
?>