اجرای 2 کوئری

سلام . من یه کدی نوشتم که توش باید دو تا کوئری اجرا بشه . ولی نمی دونم چرا فقط یکیشون اجرا می شه و اون یکی عمل نمی کنه .
وقتی هم هرکدوم از کوئری ها رو تک تک اجرامی کنم کار می کنند . به نظر شما مشکل از کجاست ؟
آیا نمی شه 2 تا کوئری رو پشت سر هم اجرا کرد ؟
چه راهی پیشنهاد می کنید ؟ ممنون :rose:

PHP:
if($_GET['op'] == "block" && isset($_GET['bid']) && $_GET['prc'] == "up")
{
    $up_block2 = $db->sql_query("SELECT * FROM `blocks` WHERE bid='$bid'");
    $row_up2 = $db->sql_fetchrow($up_block2);
    $vpos2 = $row_up2["vposition"];//6
    $vpos1 = $vpos2 - 1;//5

    $vposation1 = $vpos1 + 1;//6
    $vposation2 = $vpos1;//5

    $db->sql_query("UPDATE `blocks` SET vposition='$vposation1' WHERE vposition='$vpos1'");//6
    $db->sql_query("UPDATE `blocks` SET vposition='$vposation2' WHERE vposition='$vpos2'");//5,ok
    header("Location: ?op=block");
}
 

love4php

Active Member
بیا یه لطفی کن ...
کدتا این جوریش کن ببین سرور کم میاره یا نه

PHP:
   $query = $db->sql_query("UPDATE `blocks` SET vposition='$vposation1' WHERE vposition='$vpos1'");//6
if($query)
	die("ER Q1");
    $query = $db->sql_query("UPDATE `blocks` SET vposition='$vposation2' WHERE vposition='$vpos2'");//5,ok
if($query)
	die("ER Q1");
 

I.NoBody

Active Member
کد:
UPDATE `blocks` (SET vposition='$vposation1' WHERE vposition='$vpos1'"),
(SET vposition='$vposation2' WHERE vposition='$vpos2')
 
سلام . خیلی ممنون بابت کمکهاتون .
من 2 تا کوئری رو به یه کوئری تبدیل کردم . به اینصورت :
PHP:
$db->sql_query("UPDATE `blocks` (SET vposition='$vposation1' WHERE vposition='$vpos1'),(SET vposition='$vposation2' WHERE vposition='$vpos2')");//6
ولی Sql Error می ده :
کد:
SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(SET vposition='6' WHERE vposition='5'),(SET vposition='5' WHERE vposition='6')' at line 1
 

Dark-M4N

Member
من منظورت رو از این نمیفهمم

[PHP $vpos2 = $row_up2["vposition"];//6
$vpos1 = $vpos2 - 1;//5

$vposation1 = $vpos1 + 1;//6
$vposation2 = $vpos1;//5
][/PHP]

یه بار -1 کردی یه بار +1؟

خوب چه کاریه یه دفه مساوی بزار دیگه
 
اصلا کلا کوئریت مشکل داره.
سلام . اگه منظورت کوئری ای هست که توو پست پنجم گذاشتم خوب مشکل داره که اررور می ده دیگه . می خوام بدونم چه جوری دو تا کوئری رو به یه کوئری تبدیل کنم . ممنون
من منظورت رو از این نمیفهمم

یه بار -1 کردی یه بار +1؟

خوب چه کاریه یه دفه مساوی بزار دیگه
هدفم از این کار جابجایی دو تا سطر هست . یعنی پایینی بره بالا ، بالایی بیاد پایین .
 

Domanjiri

Well-Known Member
سلام

از كوئري زير استفاده كن
PHP:
UPDATE `blocks` SET vposition='$vposation1' WHERE vposition='$vpos1' ;
   UPDATE `blocks` SET vposition='$vposation2' WHERE vposition='$vpos2'
 

I.NoBody

Active Member
سلام

از كوئري زير استفاده كن

کد PHP:
UPDATE `blocks` SET vposition='$vposation1' WHERE vposition='$vpos1' ;
UPDATE `blocks` SET vposition='$vposation2' WHERE vposition='$vpos2'
اين كوئري فقط با استفاده از فانكشن multquery كلاس mysqli ميشه. كه البته در واقع همون دو تا كوئري هست فقط با يكبار استفاده از فانكشن اجرا ميشه.
من الآن پشت سيستمم نيستم كه دستور درست رو تست كنم، هر موقع رفتم پاي كامپيوترم، اگه مشكل حل نشده بود، جواب رو ميزارم.
اون كوئري رو هم كه پيشنهاد دادم، تست نشده است ولي مي دونم كه شدنيه و خيلي هم راحته
 
اين كوئري فقط با استفاده از فانكشن multquery كلاس mysqli ميشه. كه البته در واقع همون دو تا كوئري هست فقط با يكبار استفاده از فانكشن اجرا ميشه.
من الآن پشت سيستمم نيستم كه دستور درست رو تست كنم، هر موقع رفتم پاي كامپيوترم، اگه مشكل حل نشده بود، جواب رو ميزارم.
اون كوئري رو هم كه پيشنهاد دادم، تست نشده است ولي مي دونم كه شدنيه و خيلي هم راحته

سلام . مشکل منم همینه . نمی دونم چرا دو تا کوئری پشت سر هم اجرا نمی شه فقط یکیشون اجرا می شه . می خوام دوتا کوئری رو یکبار اجرا کنم .
منتظر جوابتون هستم . :rose:
 

parsiteam

Member
سلام . امیر جان اصلا اون کوئری که میگی اجرا نمیشه با خطا مواجه میشه یا نه ؟ چون ممکنه کوئری درست اجرا بشه ولی تغییراتی اعمال نشده . یعنی چیزی که ازش خواستی در قسمت WHERE محیا نبوده . بیا یک کاری کن . بعد از هر کوئری به شکل زیر خطای mysql رو نشون بده . بعد اگر خطایی داشت اینجا بزار ببینیم چی میشه :

PHP:
$QUERY1 = $db->sql_query("UPDATE `blocks` SET vposition='$vposation1' WHERE vposition='$vpos1'");//6
if (!$QUERY1) {
	echo mysql_error() ;
} else {
	echo "QUERY1 Done";
}

$QUERY2 = $db->sql_query("UPDATE `blocks` SET vposition='$vposation2' WHERE vposition='$vpos2'");//5,ok
if (!$QUERY2) {
	echo mysql_error() ;
} else {
	echo "QUERY2 Done";
}
 
آخرین ویرایش:

Goroop.ir

Member
سلام دوست عزیز
والله من از این دستور استفاده نکردم ولی اگر مشکلت در کلاس هست برای اجرای کوئری فکر میکنم بیاید از دستور زیر استفاده کنید
PHP:
$c = new you();
$c -> sql(mysql_query("SELECT * FROM `dbname` order by id desc"));
$b = new you();
$b -> sql(mysql_query("SELECT * FROM `dbname` order by id desc"));
 

جدیدترین ارسال ها

بالا