میخواین لایه یوزر رو بفهمین بعد قیمت اون لایه رو از جدول دیگه ای بدست بیارین؟
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
سوال در مورد تفریق یک فیلد
مدیریت گفتگو
آخرین تغییر: 10 سال پیش
سلام:
این چرا مقدار row رو نمیگیره؟
$result1 = mysqli_query($connection, "SELECT Price_layers.price FROM Price_layers"); $sqlq1=mysql_Query($result1); $row=mysql_fetch_array($sqlq1); $sum1 = 300; $sum2 = $row['price']; $sum = $sum2 - $sum1;
پاسخها 4
من برای گرفتن اطلاعات از دیتابیس کد زیر رو نوشتم:
$connection = new mysqli($host,$user,$pass,$name);
$sql = "SELECT Price_layers.price FROM Price_layers";
$result = $connection->query($sql);
$record = array();
if($result->num_rows == 0)
echo "Empty";
exit;
while($row = $result->fetch_assoc())
{
$record[]=$row;
}
اما توی record$ یک آرایه داریم که به این شکل ذخیره میشه :
Array
(
[0] => Array
(
[price] => 1000
)
[1] => Array
(
[price] => 2700
)
[2] => Array
(
[price] => 3500
)
[3] => Array
(
[price] => 400
)
و برای انجام عمل محاسباتی باید به شکل زیر عمل بشه:
$sum1 = 300;
$sum2 = $record[0]['price'];// 0 1 2 3 $sum = $sum2 - $sum1;
که با یه foreach میشه همه ی خونه های آرایه رو پیمایش کرد
نظرات
درست بود کد بالا . حالا اگه بخوام این دو تا select رو یکی کنم و جدا از هم نباشه به چه صورته؟
$result= mysqli_query($connection, "SELECT services.layer FROM services WHERE User_login='$User_login'"); $result= mysqli_query($connection, "SELECT Price_layers.type_layer FROM Price_layers");
نظرات
آره مجتبی جان . در اولی یه لایه دارم و یه یوزر که باید یوزر چک بشه و در دومی یه لایه دیگه دارم که می خوام لایه اولی با دومی هم مقایسه بشه و اگر با هم یکی بود اون کد بالا که زحمت کشیدین اجرا شه.
آقا علی ! از کدوم فیلد جدول دوم توی جدول اول استفاده کردین؟
type_layer مجتبی جان . منظورمو بد رسوندم ؟
User_login فیلد جدول services هست؟
بله مجتبی جان . یوزر از سمت اندروید میاد و چک میشه
علی آقا با توجه به اطلاعاتی که بهم دادین این کد به احتمال زیاد کارتون رو راه میندازه:
SELECT Price_layers.type_layer FROM services LEFT OUTER JOIN Price_layers ON services.layer = Price_layers.type_layer WHERE services.User_login='$User_login'
نظرات
طبق جدول های من که اینجوری میشه ولی پیغام میزنه n
جدول services شامل : layer , User_login
جدول Price_layers شامل : type_layer , price
$User_login = $_REQUEST['User_login']; $resultt = mysqli_query($connection,"SELECT services.layer FROM services LEFT OUTER JOIN Price_layers ON Price_layers.type_layer = services.layer
WHERE services.User_login='$User_login'"); if($resultt){ echo "y"; }else{ echo "n"; }
نظرات
User_login رو دستی امتحان کردید؟ --- جای 2 جدول قبل و بعد LEFT رو عوض کنید ببینید درست میشه.
فیلد مشترک بین 2 جدول layer و type_layer هست؟
نه درست نشد متاسفانه .
آره فیلد مشترکه . باید مشترک اوکی باشه تا بتونم قیمت رو که price هست در جدول Price_layers بکشم بیرون و منفی 300 کنم.
syntax این جوریه که بعد ON فیلد های مشترک قرار می گیرن و WHERE هم که کارش معلومه و جای LEFT می تونید RIGHT و جای INNER هم میتونید OUTER بذارید و این جابجایی ها مربوط به قوانین مجموعه هاست : لینک
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات