I am new to php and mysql I want to crate a query that does the update or adds a new table if it is not in database.
I get on else for echo: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home2/public_html/shop/dokumenti/up2.php on line 53 ID 1 ne postoji u drugoj tablici i trenutno: 0 –

And I cannot insert a querry

Can you help me with this code:

        <?php


    $mysql_db = "";
    $mysql_user = "";
    $mysql_pwd  = "";


        $con = mysql_connect("localhost", $mysql_user, $mysql_pwd);
        if (!$con) {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($mysql_db, $con);

          $countUpdated=0;

          //popravak kategorija
            mysql_query("UPDATE ps_product_shop prod_shop INNER JOIN ps_product prod USING(id_product) SET prod_shop.id_category_default = prod.id_category_default WHERE prod_shop.id_product BETWEEN 1 AND 62226");


                    // sve na kunu
                    mysql_query("UPDATE ps_product_supplier SET id_currency = 3 WHERE id_currency = 0");


                    //dodavanje poreza

                    mysql_query("UPDATE ps_product SET id_tax_rules_group = 1 WHERE id_tax_rules_group = 0");
                    mysql_query("UPDATE ps_product_shop SET id_tax_rules_group = 1 WHERE id_tax_rules_group = 0");



        //$kveri = "SELECT id_product_supplier, id_product, id_product_attribute, id_supplier,product_supplier_reference, product_supplier_price_te, id_currency FROM ps_product";
        $kveri = "SELECT id_product,id_supplier,supplier_reference, wholesale_price FROM ps_product";

        $ispis = mysql_query($kveri) or die(mysql_error());

                   while ($row = mysql_fetch_array($ispis)){


                   $trenutnired = $row['id_product'];
                   $trenutnired1 = 0;
                   $trenutnired2 = $row['id_supplier'];
                   $trenutnired4 = $row['supplier_reference'];
                   $trenutnired5 = $row['wholesale_price'];
                   $trenutnired6 = 3;



                                                                //echo $trenutnired;

                $drugatab = "SELECT * FROM ps_product_supplier WHERE id_product = '$trenutnired'";
            if($rezultati = mysql_query($drugatab) && mysql_num_rows($rezultati)){
                // Successful query...
                //mysql_query("INSERT INTO ps_product_supplier (id_product_supplier, id_product, id_product_attribute, id_supplier, product_supplier_reference, product_supplier_price_te, id_currency)  VALUES ('', '$trenutnired', '$trenutnired1',  '$trenutnired2', '$trenutnired4', '$trenutnired5', '$trenutnired6')");
                $countUpdated++;
            } else {
                echo "ID $trenutnired ne postoji u drugoj tablici i trenutno: $countUpdated<br />";
            }
            }


        ?>
Member Avatar
diafol

The error probably points to an invalid query. Check your table and field names. I'd leave off any primary key fields and values in Insert queries.

Hi I dont know
When I use:

$drugatab = "SELECT id_product FROM ps_product_supplier WHERE id_product = '$trenutnired'";

The I get same error but id_product is in both tables?

Member Avatar
diafol

THis is probably the issue:

if($rezultati = mysql_query($drugatab) && mysql_num_rows($rezultati)){

Change to:

$rezultati = mysql_query($drugatab);
if(mysql_num_rows($rezultati)){

   // ...
}

Hi
Now I get a blank screen

        $drugatab = "SELECT id_product FROM ps_product_supplier WHERE id_product = '$trenutnired'";
                $rezultati = mysql_query($drugatab);
                    if(mysql_num_rows($rezultati)){
                // Successful query...
                //mysql_query("INSERT INTO ps_product_supplier (id_product_supplier, id_product, id_product_attribute, id_supplier, product_supplier_reference, product_supplier_price_te, id_currency)  VALUES ('', '$trenutnired', '$trenutnired1',  '$trenutnired2', '$trenutnired4', '$trenutnired5', '$trenutnired6')");
                $countUpdated++;
            } else {
                echo "ID $trenutnired ne postoji u drugoj tablici i trenutno: $countUpdated<br />";
            }
            }
Member Avatar
diafol

The code above gives no output if the select query is successful. What were you expecting?

I get that all IDs in first tabel do not exist in second but only few not exsist in second tabel?
How can I get correct listing and insert missing values?

USPJESNO ID 1 ne postoji u drugoj tablici i trenutno: 0
USPJESNO ID 2 ne postoji u drugoj tablici i trenutno: 1
USPJESNO ID 3 ne postoji u drugoj tablici i trenutno: 2
USPJESNO ID 4 ne postoji u drugoj tablici i trenutno: 3
USPJESNO ID 5 ne postoji u drugoj tablici i trenutno: 4
USPJESNO ID 6 ne postoji u drugoj tablici i trenutno: 5
USPJESNO ID 7 ne postoji u drugoj tablici i trenutno: 6
USPJESNO ID 8 ne postoji u drugoj tablici i trenutno: 7
USPJESNO ID 9 ne postoji u drugoj tablici i trenutno: 8

        $drugatab = "SELECT id_product FROM ps_product_supplier WHERE id_product = '$trenutnired'";
                $rezultati = mysql_query($drugatab) or die(mysql_error());
                    if(mysql_num_rows($rezultati)){
                // Successful query...

                echo "USPJESNO ID $trenutnired ne postoji u drugoj tablici i trenutno: $countUpdated<br />";
                //mysql_query("INSERT INTO ps_product_supplier (id_product_supplier, id_product, id_product_attribute, id_supplier, product_supplier_reference, product_supplier_price_te, id_currency)  VALUES ('', '$trenutnired', '$trenutnired1',  '$trenutnired2', '$trenutnired4', '$trenutnired5', '$trenutnired6')");
                $countUpdated++;
            } else {
                echo "ID $trenutnired ne postoji u drugoj tablici i trenutno: $countUpdated<br />";
            }
            }
Member Avatar
diafol

I'm not really sure what you're trying to do. You seem to be using a loop further up from the code listed here. You seem to be duplicating data across tables - this is not a good.

If you need to display data from a number of tables, you should use a JOIN or subqueries. So, if I've understood the issue, you need to restructure your tables to take out this duplication.

No, in the loop I am trying to add values that are missing in second table
in table ps_psroduct supplier some values are missing and I want to add the from ps_product. So I want to list values that are missing and insert them in ps_product_supplier, there is no duplication.
Some values from ps_product are same in ps_product_supplier but not all so I want to filter thoese values and insert them correctly
How to do that?

Member Avatar
diafol

Some values from ps_product are same in ps_product_supplier but not all so I want to filter thoese values and insert them correctly

That seems to be duplicating data. Isn't it?

yes if you look it as that, but that is the way this database works, so it is not :D

Do you maybe how to make this work?

Member Avatar
diafol

Do you maybe how to make this work?

I'm afraid it's beyond me. I don't see how the data in the two tables relate to each other. Good luck though.

connection is id_product in this case