-3

私はphpとmysqlを初めて使用します。データベースにない場合は、更新を実行するか、新しいテーブルを追加するクエリを作成したいと思います。

これまでのところ、これがあり、なぜ解析エラーが発生するのですか:構文エラー、予期しないT_STRING

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

このコードを機能させるのを手伝ってもらえますか?すべてのmysql_querにコメントすると、空白のページが表示され、「ID $trenutniredはテーブルに存在しません。$countUpdated
」とエコーします。

動かない?

PHP5.2.17を使用しています

ありがとう

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

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

                mysql_query(UPDATE ps_product_supplier SET id_currency = 3 WHERE id_currency = 0);                      
                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,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;


               $drugatab = mysql_query("SELECT * FROM ps_product_supplier WHERE id_product = '$trenutnired'");

               $dalipostoji = mysql_num_rows($drugatab);

               if ($dalipostoji == 0) {

               echo "ID $trenutnired does not exist in table and:: $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++;

               };
             }               
    ?>
4

3 に答える 3

2

It seems you have forgotten to put double " after mysql_query(

Have you tried this:

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

Instead of

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

Check below for the whole code (modified)


<?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 = mysql_query("SELECT * FROM ps_product_supplier WHERE id_product = '$trenutnired'");

               $dalipostoji = mysql_num_rows($drugatab);




               if ($dalipostoji == 0) {

               echo "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++;



               };


             }

    ?>
于 2012-12-26T00:01:55.007 に答える
2

That error indicates a problem in your PHP. Specifically, the mysql_query() function takes a string as its first argument. So you'll need to wrap your SQL statement in quotes:

mysql_query("UPDATE ps_product SET id_tax_rules_group = 1 WHERE id_tax_rules_group = 0");
于 2012-12-26T00:01:58.033 に答える
0

スクリプトの実行を続行する前に、クエリが成功したかどうかを常に確認する必要があります。これは、本番サーバーではエラーレポートが通常無効になっているため(実際に試みた場合のように、コードにエラーが表示されないため)です。失敗したクエリのレコード数をフェッチします。

SELECTつまり、クエリが実際にこのような結果を返すかどうかを確認する必要があります。

$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 />";
}
于 2012-12-26T00:10:55.453 に答える