۱۰ zynb moallemi
مشکل فولدر بندی task
جامعه پی اچ پی ایجاد شده در ۱۲ بهمن ۱۴۰۱

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

این ارور

Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 in C:\\xampp\\htdocs\\todolist\\libs\\lib-tasks.php:36 Stack trace: #0 C:\\xampp\\htdocs\\todolist\\libs\\lib-tasks.php(36): PDOStatement->execute() #1 C:\\xampp\\htdocs\\todolist\\main\\aaa.php(15): getTask() #2 {main} thrown in C:\\xampp\\htdocs\\todolist\\libs\\lib-tasks.php on line 36

کد pdo ای رو که نوشتید برای دریافت رو هم ارسال کنید.

احمدرضا فاطمی کیا ۱۲ بهمن ۱۴۰۱، ۱۹:۱۹

try{

$db=new PDO("mysql:dbname=$database_config->db;host=$database_config->host", $database_config->user,$database_config->pass);

}

catch (PDOException $e) {

echo $e->getMessage();

}


pdo که درسته چون فولدرها و تسک هارو نشون میده موقع فولدر بندی فقط این ارور و میده

کد gettask با کدی که در فیلم هست یکیه البته فقط ایدی یوزر و نمیگیره که فکر نکنم مشکل از اون باشه این و $addcondition نمیشناسه

function getTask(){

global $db;

$folder=$_GET['folder_id'] ?? null;

$addcondition='';

if(isset($solder) and is_numeric($folder)){

  $addcondition="folder_id = $folder";

}

$sql ="SELECT * from task where $addcondition";

$tmp= $db->prepare($sql);

$tmp->execute();

$record= $tmp->fetchAll(PDO::FETCH_OBJ);  

return $record;

}

zynb moallemi ۱۲ بهمن ۱۴۰۱، ۱۹:۳۱

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

zynb moallemi ۱۲ بهمن ۱۴۰۱، ۱۹:۳۲

کد فانکشن رو بصورت زیر قرار بدید:

34d1-۲۰۲۳۰۲۰۱_۲۳۴۰۰۰.jpg

احمدرضا فاطمی کیا ۱۲ بهمن ۱۴۰۱، ۲۰:۱۰

ممنون ارورش رفع شد

ولی میزنم رو فولدرها کل تسک هارو نمایش میده

zynb moallemi ۱۲ بهمن ۱۴۰۱، ۲۱:۵۰

شرط addcondition رو به شکل زیر تغییر بدید:

و از گرفته شدن folder مطمئن بشید.

if(!is_null($folder)){
//code
}
احمدرضا فاطمی کیا ۱۳ بهمن ۱۴۰۱، ۰۳:۲۹

اره فولدر و دریافت نمی‌کنه خب باید چیکار کنم

کدم مشکلی نداره

zynb moallemi ۱۳ بهمن ۱۴۰۱، ۱۶:۳۲

یک دامپ از سوپرگلوبال get بگیرید و فولدر رو توی url قراربدید ببینید گرفته میشه و طبق دامپ جایگذاری و ولیدیت کردن رو چک کنید.

احمدرضا فاطمی کیا ۱۳ بهمن ۱۴۰۱، ۱۷:۰۴

فولدر و میگیره نمایش هم میده فقط موقع تسک‌ها مشکل داره

zynb moallemi ۱۳ بهمن ۱۴۰۱، ۱۷:۱۲

مقدار folder رو به int تبدیل کنید.

$folder=(int)$folder;
$addcondition=isset($folder)?" where folder_id=$folder":'';


بعد یه دامپ بگیرید و شرط رو هم بردارید.

بهترین پاسخ
احمدرضا فاطمی کیا ۱۳ بهمن ۱۴۰۱، ۲۰:۳۹