بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

سوال در مورد تفریق یک فیلد

مدیریت گفتگو
علی 10 سال پیش
آخرین تغییر: 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

MOJTABA 10 سال پیش

من برای گرفتن اطلاعات از دیتابیس کد زیر رو نوشتم: 

  $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 میشه همه ی خونه های آرایه رو پیمایش کرد

نظرات

علی 10 سال پیش

درست بود کد بالا . حالا اگه بخوام این دو تا 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");

نظرات

MOJTABA 10 سال پیش
میخواین لایه یوزر رو بفهمین بعد قیمت اون لایه رو از جدول دیگه ای بدست بیارین؟
علی 10 سال پیش
آره مجتبی جان . در اولی یه لایه دارم و یه یوزر که باید یوزر چک بشه و در دومی یه لایه دیگه دارم که می خوام لایه اولی با دومی هم مقایسه بشه و اگر با هم یکی بود اون کد بالا که زحمت کشیدین اجرا شه.
MOJTABA 10 سال پیش
آقا علی ! از کدوم فیلد جدول دوم توی جدول اول استفاده کردین؟
علی 10 سال پیش
type_layer مجتبی جان . منظورمو بد رسوندم ؟
MOJTABA 10 سال پیش
User_login فیلد جدول services هست؟
علی 10 سال پیش
بله مجتبی جان . یوزر از سمت اندروید میاد و چک میشه
MOJTABA 10 سال پیش

علی آقا با توجه به اطلاعاتی که بهم دادین این کد به احتمال زیاد کارتون رو راه میندازه:

 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'

نظرات

علی 10 سال پیش

طبق جدول های من که اینجوری میشه ولی پیغام میزنه 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"; }

نظرات

MOJTABA 10 سال پیش
User_login رو دستی امتحان کردید؟ --- جای 2 جدول قبل و بعد LEFT رو عوض کنید ببینید درست میشه.
MOJTABA 10 سال پیش
فیلد مشترک بین 2 جدول layer و type_layer هست؟
علی 10 سال پیش
نه درست نشد متاسفانه .
علی 10 سال پیش
آره فیلد مشترکه . باید مشترک اوکی باشه تا بتونم قیمت رو که price هست در جدول Price_layers بکشم بیرون و منفی 300 کنم.
MOJTABA 10 سال پیش
syntax این جوریه که بعد ON فیلد های مشترک قرار می گیرن و WHERE هم که کارش معلومه و جای LEFT می تونید RIGHT و جای INNER هم میتونید OUTER بذارید و این جابجایی ها مربوط به قوانین مجموعه هاست : لینک

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .