رفتن به مطلب
  • 0

سوال از اساتید PHP


mnik

سوال

سلام. دوستان بنده با php آشنایی ندارم نیاز به یه کد دارم شبیه اینی که نوشتم ولی چون با اصولش آشنایی ندارم کدنویسیم اشتباهه. میخوام دوستان راهنماییم کنن شکل صحیح نوشتن کد زیر تو php چیه:


 
<?php
include 'db.php';
$id= $_POST['id'];

$match2 = mysql_query("SELECT * FROM match2 where end=1 order by id desc limit 1");
$result1['id'];

$match3 = mysql_query("SELECT * FROM match2 where id>$result1 order by id desc limit 3");
$rows = $match3->num_rows;

if ($rows=3)
{
$sql = "UPDATE match2 SET end='1' WHERE id='$id'" ;
}

if ($rows<3)
{
echo $rows;
}

?>   





 

 

میدونم خیلی غلط غلوطه. اینو فقط واسه روشن شدن حدود چیزی که میخوام نوشنتم.

توضیحش اینه که:

ببینید من یه فایل db.php ساختم که به درستی به دیتابیس متصل میشه. از این نظر مشکلی نیست. تو اون دیتابیس یه تیبلی دارم به اسم match2 که یه ستونی داره به اسم id و یه ستون به نام end که مقدارش یا صفره یا یک. میخوام از طریق اپلیکیشن، یه آیدی مشخصی رو به این php پست کنم که فعلا کاری باهاش نداریم. این php باید بیاد id بزرگترین رکوردی که end=1 هست رو پیدا کنه. بعد از اون آیدی به بعد بشماره ببینه چند تا رکورد داریم. مثلا فرض کنید 20 تا رکورد داریم و id بزرگترین رکوردی که end=1 هجدهمیه. پس اگه از اونجا بشماریم 2 تا رکورد بعدش هست. حالا میخوام اگه این عدد شمارش شده 3 بود، تو دیتابیس، ستون end مربوط به id ای که از طریق اپلیکیشن پست شده رو از حالت صفر به 1 تغییر بده و no رو به عنوان خروجی چاپ کنه و اگه کمتر از 3 بود چیزیو تو دیتابیس تغییر نده و فقط اختلاف اون عدد از 3 رو به عنوان خروجی چاپ کنه. مثلا اگه 2 تا شمرده بود، 1 رو چاپ کنه.

کسی میدونه شکل صحیح نوشتن کد بالا چیه؟

در مورد خود b4a مشکلی ندارم و تقریبا حرفه ای بلدم. فقط اینو اگه دوستان کمکم کنن مشکلم حل میشه.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

8 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

کمی بد توضیح دادین ، شما میخواین مثلا یه عدد به این فایل میفرستین بیاد ببینه که آخرین رکوردی که end=1 بودو بگیره و به بعدشم همینطور بگیره

بعد اگه اون رکوردی که end=1 بود به بعد سه تا رکورد بیشتر نبود بیاد عمل آپدیتو انجام بده و ...

منظورتون همینه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز فک کنم این روش درس نیس  من 1 سال هست php  رو ول کردم  تاجایی که یادم میاد  بنظرم  برای ویرایش  دیتابیس از pdo  استفاده میکردی بهتر بود  

اولا ننونشتی اون db   حاوی چه دستوراتی هست که اینکلود کردی   اگه مال صفحه ویرایش اطلاعات  هست این برنامه رو ببین

 

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

 

https://cafebazaar.ir/app/com.mba.phplearn/?l=fa

post-2802-0-48517800-1439030137_thumb.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

احتمال داره اینم غلط باشه ولی ضرری نداره --شرمنده من توضیحات زیرین مطلبتو ندیده بودم پست بالایی منو ندیده بگیر  

 

 

<?php

  $sql_select = 'SELECT * FROM `match2`';

  $sql_query = mysql_query($sql_select);

  if(!$sql_query){

    echo 'خطا در ارتباط';

  }

  else{

    if(mysql_num_rows($sql_query) > 0){

      while($row = mysql_fetch_assoc($sql_query)){

        $sql_update = "UPDATE `end` SET'

                      WHERE `id`={$row['id']=3}";

        $sql_query2 = mysql_query($sql_update);

        echo (!$sql_query2) ? "خطا در ویرایش جدول {$row['id']}<br />" : "Row {$row['id']} انجام شد.";

      }

    }

    else{

      echo 'ویرایشی باقی نمانده';

    }

  }

?>

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

احتمال داره اینم غلط باشه ولی ضرری نداره --شرمنده من توضیحات زیرین مطلبتو ندیده بودم پست بالیی منو ندیده بگیر  

اینو بجای if اول بزار ببین حل میشه

 
while ($row=mysql_fetch_array($result)){
$sql = "UPDATE match2 SET end='1' WHERE id='$id'" ;  }

 

 

ممنون دوست عزیز. ولی اگه ممکنه کل کد رو تصحیح کنید. چون ارور داره. فکر میکنم تو پرانتزها یا سمی کولون ها اشتباه دارم. اگه ممکنه کل کد رو برام بفرستید که جایگزین کنم.

ممنون از وقتی که میذارید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

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

شما در اولین حرکت بیایید تمامی اطلاعات که end اونا 1 هست رو بگیرید :

    $result = mysqli_query($con,"SELECT * FROM task WHERE end = 1 ");

خب اومدیم اینارو گرفتیم.حالا این اطلاعات رو توی برنامه بگیرید ( سمت Android ).

شما توی برنامه اندرویدتون باید آخرین id  رو بگیرید و آخرین آیدی رو که کرفتید شما باید عددشو به وسیله PostString بفرستید سمت سرور :

    $id = $_REQUEST['id'];

خب شما باید بیایید باز یک کوئری دیگه اینجا بنویسید که بیا تمامی رکورد هایی که بزرگتر از این عدد هستن رو بگیر واسه ما.

$result = mysqli_query($con,"SELECT * FROM id > " . $id);

خب حالا بیایید حساب کنید که این داده ها چنتا هستن :

$rowcount=mysqli_num_rows($result);
if($rowcount >= 3){
 #Your Codes
}else{
 echo "Your Record :" . $rowcount;
}

یک همچین حالتی میشع.بنده php  نویسی در حد خیلی خیلی مبتدی یاد دارم اختمال اشتباه توی کد زیاده.

شما جای Your Code  دیگه باید بیایید به وسیله While اطلاعات رو UPDATE  کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام شما به دیتابیس وصل نشدید که دارید کوئری اجرا میکنید :)

تا به دیتابیس کانکت نشید و دیتابیستون را انتخاب نکنید و در آخر هم نبندید تمام برنامه های بالاتون غلط خواهد بود :)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...