رفتن به مطلب

راهنمایی در فراخوانی از MYSQL


پست های پیشنهاد شده

سلام به همه عزیزان

ممنون می شم دوستان در این مورد من رو راهنمایی کنید .

من از طریقه کدهای زیر یه سری اطلاعات رو از بانک اطلاعاتی در می یارم و نمایش می دهم ...


include "config.php";

$query="SELECT * FROM link WHERE status='free' AND description='1' LIMIT 1";
$select=mysql_query($query);
while($row=mysql_fetch_array($select))
{
echo $row['title'].' - '.$row['url'].' - '.'<br>';
}

برای مثلا خروجی می شود

hamid - 234567 -

اما من می خواهم وقتی که این اطلاعات نمایش داده شد یه کوئری دیگر هم ران شود ...

اما به این صورت که ... این کوئری یه فلید رو از همین رکورد که بالا نمایش داده شده بود رو آپدیت کنه ...


$update="UPDATE `link` SET status='sold' WHERE title='$user' ";
$update2=mysql_query($update);
echo $update2;

اما مشکل در بالا همین $USER هست ! من در اصل $row['title'] که در قسمت اول نمایش داده بودم رو می خوام ... یعنی همان HAMID

می خواهم وقتی اطلاعات این رکورد نمایش داده شد بعد یه قسمت از این رکورد آپدیت شه که بشه مثلا sold که دیگر ...

انگار به محصول بود فروخته شد رفت ! :ی

در کل این کدی است که من استفاده پیاده کردم البته قسمت $user=$row['title']; مشکل داره ! یعنی هیچ اطلاعات نداره و در نتیجه آپدیت انجام نمی شود .


<?php
include "config.php";

$query="SELECT * FROM link WHERE status='free' AND description='1' LIMIT 1";
$select=mysql_query($query);
while($row=mysql_fetch_array($select))
{
echo $row['title'].' - '.$row['url'].' - '.'<br>';
}

$user=$row['title'];

$update="UPDATE `link` SET status='sold' WHERE title='$user' ";
$update2=mysql_query($update);
echo $update2;

?>

ممنون می شوم راهنمایی کنید که من چطوری این کار رو انجام بدهم .

باتشکر

ویرایش شده توسط AliJen
لینک به ارسال

نمی دونم درست متوجه شدم یا نه شما می خوای


$row['title']

نام یوزری باشه که در آپدیت می خوانی؟

اگر اینطوره فکر کنم اگر در query اول user_id رو هم بخونی و در دومی آی دی ها را برابر کنی مشکلت برطرف شه

البته من اگر جات بودم منتظر جواب یکی از اعضای هیات مدیره یا رضا آنلاین گرامی می شدم

لینک به ارسال

این رو تست کنید. صرفا جهت تست چون متدش باید تغییر کنه:

<?php
include "config.php";

$query="SELECT * FROM link WHERE status='free' AND description='1' LIMIT 1";
$select=mysql_query($query);
$user = '';
while($row=mysql_fetch_array($select))
{
echo $row['title'].' - '.$row['url'].' - '.'<br>';
$user .= $row['title'];
}


$update="UPDATE `link` SET status='sold' WHERE title='$user' ";
$update2=mysql_query($update);
echo $update2;

?>

البته میتونید کوئری دوم رو در while اولی هم اجرا کنید.

لینک به ارسال

جالبه توی ایران پی اچ پی هم همینو مطرح کرده بودی

http://forum.iranphp...%8C%D9%84%D8%AF

شما در کل دارید هر دو کوئری رو روی یک جدول اجرا میکنید ، پس با یک کوئری هم حل میشه .


$sql = "update `link` set `status`='sold' where `status`='free' and `description`=1 ";
$query = @mysql_query($sql) or die('error in query');
$af_row =(int) @mysql_affected_rows($query);
if($af_row > 0)
echo $af_row.'رکورد تغییر کرد';
else
echo 'تغییری انجام نشد !';

ویرایش شده توسط rezaonline
لینک به ارسال

دوستان ببخشید اظهار نظر میکنم ولی این کاراکتر نباید عوض بشه؟

`link` به 'link'

لینک به ارسال

خیر سعید جان ، توی سینتکس sql ، اسم جداول و فیلد ها باید بین `` باشه .

البته توی بعضی درایور ها نوشتنش اجباری نیست تا اونجا که میدونم توی mysql مشکلی نیست مثلاً کوئری بالا


update link set status='sold' where status='free' and description=1

اما فکر کنم mysqli کمی گیر بده اما باز مطمئن نیستم .

واسه اوراکل و mssql هم یه سرچی بزن :rolleyes:

ویرایش شده توسط rezaonline
لینک به ارسال

نمی دونم درست متوجه شدم یا نه شما می خوای


$row['title']

نام یوزری باشه که در آپدیت می خوانی؟

اگر اینطوره فکر کنم اگر در query اول user_id رو هم بخونی و در دومی آی دی ها را برابر کنی مشکلت برطرف شه

البته من اگر جات بودم منتظر جواب یکی از اعضای هیات مدیره یا رضا آنلاین گرامی می شدم

سلام درست متوجه شدید هر دو این موارد که فرمودید هم username و id هم ینیک هستند 2 نام کابری یک سان در سیستم نداریم

زیاد تفاوتی نمی کنه کدام رو انتخاب کنیم که دوستان راهنمایی کردند .

جالبه توی ایران پی اچ پی هم همینو مطرح کرده بودی

http://forum.iranphp...%8C%D9%84%D8%AF

شما در کل دارید هر دو کوئری رو روی یک جدول اجرا میکنید ، پس با یک کوئری هم حل میشه .


$sql = "update `link` set `status`='sold' where `status`='free' and `description`=1 ";
$query = @mysql_query($sql) or die('error in query');
$af_row =(int) @mysql_affected_rows($query);
if($af_row > 0)
echo $af_row.'رکورد تغییر کرد';
else
echo 'تغییری انجام نشد !';

سلام آقا رضا اینجا یه تغییر اساسی ایجاد شد این حالتی که شما مطرح کردید اطلاعات رو نمایش نمی ده مستقیم بروز رسانی می کنه بعد یه راست می یاد همه رو به روز می کنه

من شاید 200 محصول داشته باشم می خوام وقتی کاربر خرید کرد یه دونه اش از دیتابیس بیاد بیرون تحویل کاربر داده شه سپس همون موردی که از دیتابیس بیرون آمده وضعیتش فروخته شده شود .

که فکر می کنم پروسس کد بالایی مطرح شد کامل تر باشه اگر موافق باشید ؟

لینک به ارسال

این رو تست کنید. صرفا جهت تست چون متدش باید تغییر کنه:

<?php
include "config.php";

$query="SELECT * FROM link WHERE status='free' AND description='1' LIMIT 1";
$select=mysql_query($query);
$user = '';
while($row=mysql_fetch_array($select))
{
echo $row['title'].' - '.$row['url'].' - '.'<br>';
$user .= $row['title'];
}


$update="UPDATE `link` SET status='sold' WHERE title='$user' ";
$update2=mysql_query($update);
echo $update2;

?>

البته میتونید کوئری دوم رو در while اولی هم اجرا کنید.

سلام آقا مرتضی اول تشکر می کنم ازتون این کد به این صورت که مطرج فرمودید جواب داد دقیقا رکورد که از دیتابیس در آمد بعد نمایش وضعیت فروخته شد و دیگر هم نیومد .

یه موردی هم بود داخل این کد یه عدد 1 هم چاپ می شد که ظاهرا یه کد اضافه نوشته بودم حذفش کردم کلا کد به این صورت شد .


<?php
include "config.php";

$query="SELECT * FROM link WHERE status='free' AND description='1' LIMIT 1";
$select=mysql_query($query);
$user = '';
while($row=mysql_fetch_array($select))
{
echo $row['title'].' - '.$row['url'].' - '.'<br>';
$user .= $row['title'];
}

$update="UPDATE `link` SET status='sold' WHERE title='$user' ";
$update2=mysql_query($update);

?>

لینک به ارسال

یه مقدار هم بهبود ببخشیدم وضعیت رو که اگر محصولی نبودم الکی کوئری ران نکنه :ی


<?php

include "config.php";

$query="SELECT * FROM link WHERE status='free' AND description='1' LIMIT 1";
$select=mysql_query($query) or die(mysql_error());
$num=mysql_num_rows($select);
$user = '';
if ($num!=0){
while($row=mysql_fetch_array($select))
{
echo $row['title'].' - '.$row['url'].' - '.'<br>';
$user .= $row['title'];
}

$update="UPDATE `link` SET status='sold' WHERE title='$user' ";
$update2=mysql_query($update);

} else {
echo "محصول مورد نظر موجود نمی باشد";
}

?>

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...