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

سوال در مور پرینت کردن

مدیریت گفتگو
علی 10 سال پیش
آخرین تغییر: 10 سال پیش

من در این کد قسمت if چی بزارم که وقتی پسورد قدیمی اشتباه بود بزنه نه و اگر درست بود بزنه بله؟

 function update(){
    $connection = connectToDatabase();
    $User_login = $_REQUEST['User_login'];
    $oldPass= $_REQUEST['oldPass'];
    $newPass= $_REQUEST['newPass'];
   
    $result_update=mysqli_query($connection, "UPDATE users SET Password='$newPass' WHERE Mobile='$User_login' AND Password='$oldPass'");

    
if(اینجا){
echo "no";
}else{
echo "yes";
}


    mysqli_close($connection);
}

نظرات

raeesi 10 سال پیش
شما اول باید یه کوئری قبل اپدیت بزنی که اگر پسورد جدید مشابه پسورد قدیم نبود اون موقع متد اپدیت صدا زده بشه و مقدار جدید جایگزین مقدار قبلی بشه
علی 10 سال پیش
چرا این کارو بکنم؟ مگه تو قسمت where چک نکردم درست؟ و اینطوری که شما میگی رو نمیدوم دقیقا چطوری انجام بدم.
raeesi 10 سال پیش
بله مال شما هم درسته حالا اگه کوئری که شما زدی درست باشه داخل متغیر $result_update برابر با true میشه واگه کوئری اجرا نشه false میشه
raeesi 10 سال پیش
الان فقط کافیه result_update رو بزارین توی if
علی 10 سال پیش
دوتایش میزنه 1 و این برای من که می خوام پیغام true و false بدم جالب نیست اصلا.
raeesi 10 سال پیش
البته جای no ,yes رو هم برعکس بزارین
علی 10 سال پیش
تمام این حرکت ها رو برای if زدم نشد.
علی 10 سال پیش
چطوری میتونم row بگیرم از mysqli ؟ که بتونم با row مقایسه رو انجام بدم؟
raeesi 10 سال پیش
پشت result_update یه echo بزن ببین خروجی چند میده بیرون
علی 10 سال پیش
یک میده چه با موفقیت تغییر کنه پسورد چه نکنه . نمی دونم چرا
raeesi 10 سال پیش
یه جای کارتون مشکل داره اگنه واسه چک کردن کوئری به این شکلی بود که گفتم.پیشنهاد میکنم به روش MVC بری جلو هم دوستان بهتر می تونن راهنمایی بکنن و همچنین با کمترین خطا مواجه میشی
علی 10 سال پیش
رئیسی جان من حالا تو همین if گیر کردم هیچ راهی نیست یعنی؟ پس اگه میتونی حداقل row گرفتن رو بهم بگو از mysqli
raeesi 10 سال پیش
mysqli_num_rows($result_update) > 0 همینو بزار توی if شاید جواب بده
علی 10 سال پیش
این خطا رو میده رئیسی جان . mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in

پاسخ‌ها 5

raeesi 10 سال پیش

یه خورده بیایم کد ها رو تمیزترش کنیم چون خطایابیش مشکلتره این مدلی که شما نوشتید

 

if (!$connection) {
    die("خطا در اتصال به پایگاه داده" . mysqli_connect_error()); } $sql = "UPDATE users SET Password='$newPass' WHERE Mobile='$User_login' AND Password='$oldPass'";

if (mysqli_query($connection, $sql)) {
    echo'با موفقیت به روز شد';         }else{
   echo'خطا';
}

نظرات

علی 10 سال پیش

مال من اینطوری هستش طبق آموزش های استاد :

 <?php

if (isset($_REQUEST['action'])){
    $action = $_REQUEST['action'];
} else {
    echo "Invalid Data";
    exit;
}

if ($action=="update"){
    update();
}

/**
 *
 */
function connectToDatabase(){
    $connection = mysqli_connect("localhost", "root", "root", "root");
    mysqli_set_charset($connection,"utf8");
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    return $connection;
}

/**
 *
 */

function update(){
    $connection = connectToDatabase();
    $User_login = $_REQUEST['User_login'];
    $oldPass= $_REQUEST['oldPass'];
    $newPass= $_REQUEST['newPass'];
   
    $result_update=mysqli_query($connection, "UPDATE users SET Password='$newPass' WHERE Mobile='$User_login' AND Password='$oldPass'");

if(mysqli_num_rows($result_update) > 0){
echo "با موفقیت به روز شد"; }else{ echo "خطا"; } mysqli_close($connection); }

 

نظرات

raeesi 10 سال پیش
تغییرش دادم یه چک دیگه بکن
علی 10 سال پیش
نه بازم یه پیغام رو نشون میده . من موندم چرا مقدار همیشه 1 هستش .
علی 10 سال پیش

نظرات

raeesi 10 سال پیش

یه کلاسی به نام db بساز 

 <?php
class Db {

  private $connection;




  
  public function __construct($option = NULL){
 if ($option != NULL){
      $host = $option['host'];
      $user = $option['user'];
      $pass = $option['pass'];
      $name = $option['name'];
    } else {
      global $config;
      $host = $config['db']['host'];
      $user = $config['db']['user'];
      $pass = $config['db']['pass'];
      $name = $config['db']['name'];
    }

    $this->connection = new mysqli($host, $user, $pass, $name);
    
    if ($this->connection->connect_error) {
      echo "Connection failed: " . $this->connection->connect_error;
      exit;
    }

    $this->connection->query("SET NAMES 'utf8'");
	
  }
  public  function test(){
	echo $this->connection;
        
  }


 public function first($sql){
    $records = $this->query($sql);
    if ($records == NULL){
      return NULL;
    }

    return $records[0];
  }
 
  public function modify($sql){
    $result = $this->connection->query($sql);
	
    if (!$result) {
      echo "Query: " . $sql . " failed due to " . mysqli_error($this->connection);
      exit;
    }
    return $result;
  }

  public function insert($sql){
    $result = $this->connection->query($sql);
    if (!$result) {
      echo "Query: " . $sql . " failed due to " . mysqli_error($this->connection);
      exit;
    }
    return $result;
  }

  public  function query($sql){
    $result = $this->connection->query($sql);
    if (!$result) {
      echo "Query: " . $sql . " failed due to " . mysqli_error($this->connection);
      exit;
    }

    $records = array();

    if ($result->num_rows == 0) {
      return null;
    }

    while($row = $result->fetch_assoc()) {
      $records[] = $row;
    }

    return $records;
  }


  public function connection(){
    return $this->connection;
  }

  public function close(){
    $this->connection->close();
  }
}

نظرات

علی 10 سال پیش

رئیسی جان الان به ذهنم زد این کارو کردم. نظرت چیه؟ درست هم کار می کنه!

 function read(){
   $connection = connectToDatabase();
    $User_login = $_REQUEST['User_login'];
    $oldPass= $_REQUEST['oldPass'];
    $result = mysqli_query($connection,  "SELECT * FROM users WHERE Mobile='$User_login'");
    $row = mysqli_fetch_array($result);
    
if($oldPass!= $row['Password']){
echo "خطا";
}else{
update();
}

    mysqli_close($connection);
}

/**
 *
 */
 
function update(){
    $connection = connectToDatabase();
    $User_login = $_REQUEST['User_login'];
    $newPass= $_REQUEST['newPass'];
   
    $result_update=mysqli_query($connection, "UPDATE users SET Password='$newPass' WHERE Mobile='$User_login'");

    
if($result_update){
echo "با موفقیت به روز شد";
}


    mysqli_close($connection);
}

نظرات

raeesi 10 سال پیش
اگه کار میکنه خوبه

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