graphicno 77 ارسال شده در شهریور 95 گزارش بازنشر ارسال شده در شهریور 95 با سلام من میخوام نام کاربری رو از طریق $_get به صفحه دیگه انتقال بدم بعد یه متغیر تعریف کنم که مقادیر ثبت شده تو دیتابیس رو بگیره و با مقدار ارسالی مقایسه کنه که اگه مقدار ارسالی تو دیتابیس بود کار انجام بشه اگه نبود خطا بگیره اما مشکل اینجاست که هنگام مقایسه فقط یک ردیف رو مقایسه میکنه به عنوان مثال فقط نام کاربری Admin رو میگیره و برای بقیه نام های کاربری خطا نشون میده این برای select کردن public function select($sql){ $stmt=$this->_Connect->prepare($sql); $stmt->execute(); $result=$stmt->fetch(PDO::FETCH_ASSOC); return $result; }/*select*/ و اینم برای صفحه ای که اطلاعات رو میگیره if(isset($_GET['username']) && !empty($_GET['username'])){ $sql= "SELECT * FROM `at_user`"; $stmt = $gen->select($sql); $user = $stmt['username']; if($_get['username'] == $user){ echo "Ok!"; }else{ echo "Error!!!"; } }else{ echo "user list"; } ممنون میشم راهنمایی کنید. با تشکر نقل قول لینک به ارسال
Mobin 1669 ارسال شده در شهریور 95 گزارش بازنشر ارسال شده در شهریور 95 اینجا شما باید 2 مورد رو مد نظر داشته باشین اول اگه میخواهید یک مقدار رو در دیتابیس جستجو کنید که برای کار شما گزینه درستی هست میتونین کوئری خودتونو به صورت زیر بنویسین $sql= "SELECT * FROM `at_user` where username='{$_GET['username']}'"; البته توجه داشته باشین استفاده متغییرهای ورودی مثل $_GET در کوئری مستقیم استفاده نکنین بلکه به صورت پارامتر ارسال کنید یا مقدار رو sanitize و filter کنید که sql inject جلوگیری بشه دوم وقتی شما میخواهید یک تعداد رکورد رو با استفاده از pdo دریافت کنید باید از دستور fetchall استفاده کنید که یک ارایه از تمام رکوردهای دیتابیس برمیگردونه که شما با یک حلقه میتونین اونو چک کنین $result= $stmt->fetchAll(PDO::FETCH_ASSOC); توضیحات بیشتر http://php.net/manual/en/pdostatement.fetchall.php نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .