حمزه
4 سال پیش توسط حمزه مطرح شد
37 پاسخ

متغیر ها در php

سلام بچه ها ب ی مشکل خوردم اساسی.....
اول بگم ک دارم ی پروژه میسازم با معماری mvc در php.متغیرو وقتی داخل دستور if میزارم کلا ارور میده ک متغیر ناشناختس ولی تا ک از دستور if بیرونش میارم متغیره کار میکنه خواستم ببینم مشکل از کجاس.دمتون گرم


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@hamzehhemmati0
سلام.
وقتی که نه کد و نه اررور رو قرار ندادید ما از کجا بدونیم مشکل از چیه. لطفا اطلاعات رو کامل بدید.


حمزه
@hamzehhemmati0 4 سال پیش آپدیت شد
0

@mohsenbostan
سلام دوست عزیز اینم کد ها

     case "edit" :
        if (isset($_GET['id']) && !empty($_GET['id'])){
        $id = intval($_GET['id']);
            $showUser = $user->selectUserById($id);
        }

        break;
  <?php foreach  ($showUser as $row): ?>
                            <form method="post" action="index.php?c=user&a=edit">
                                <div class="form-group">
                                    <label>نام*</label>
                                    <input type="text" value="<?php echo $row['firstname']; ?>" name="frm[name]"
                                           class="form-control"
                                           placeholder="نام...">
                                </div>
                                <div class="form-group">
                                    <label>نام خانوادگی*</label>
                                    <input type="text" value="<?php echo $row['lastname']; ?>" name="frm[lastname]"
                                           class="form-control"
                                           placeholder="نام خانوادگی...">
                                </div>
                                <div class="form-group">
                                    <label>شماره تلفن*</label>
                                    <input type="text" value="<?php echo $row['mobile']; ?>" name="frm[mobile]"
                                           class="form-control" placeholder="شماره همراه...">
                                </div>
                                <div class="form-group">
                                    <label>نام کاربری*</label>
                                    <input type="text" value="<?php echo $row['username']; ?>" name="frm[username]"
                                           class="form-control"
                                           placeholder="نام کاربری...">
                                </div>
                                <div class="form-group">
                                    <label>ایمیل*</label>
                                    <input type="email" value="<?php echo $row['email']; ?>" name="frm[email]"
                                           class="form-control" placeholder="ایمیل...">
                                </div>
                                <div class="form-group">
                                    <label>تکرار ایمیل*</label>
                                    <input type="email" value="<?php echo $row['email']; ?>" name="frm[remail]"
                                           class="form-control"
                                           placeholder="تکرار ایمیل...">
                                </div>
                                <div class="form-group">
                                    <label>نقش کاربری</label>
                                    <select name="frm[role]" class="form-control">
                                        <option value="1"<?php if ($row['role']==1) echo "selected"; ?>>مشارک کننده</option>
                                        <option value="2"<?php if ($row['role']==2) echo "selected"; ?>>نویسنده</option>
                                        <option value="3"<?php if ($row['role']==3) echo "selected"; ?>>نویسنده ارشد</option>
                                        <option value="4"<?php if ($row['role']==4) echo "selected"; ?>>مدیر</option>
                                    </select>
                                    <?php
                                    switch ($row['role']) {
                                        case '1':
                                            echo '<span class="label label-default">مشارکت کننده</span>';
                                            break;
                                        case '2':
                                            echo '<span class="label label-warning"> نویسنده</span>';
                                            break;
                                        case '3':
                                            echo '<span class="label label-info">نویسنده ارشد</span>';
                                            break;
                                        case '4':
                                            echo '<span class="label label-primary">مدیر</span>';
                                            break;
                                    }
                                    ?>
                                </div>
                                <input type="submit" name="btn" class="btn btn-success center-block" value="ثبت">
                            </form>
                        <?php endforeach; ?>

من در کیس edite از متغیر $showUser استفاده کردم و اون رو تو شرط قرار دادم وقتی میام اونو در دستور foreach قرار بدم ارور میده و زیر متغیرم خط قرمز میکشه و میگه نتونسته متغیرو پیدا کنه


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@mohsenbostan
ممنون میشم کمکم کنید


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@mohsenbostan
اینم بگم ک وقتی اونو از شرط if بیرون میارم دیگ متغیره تو صفحه edite قابل دسترسی هست و خطی قرمزی زیرش کشیده نمیشه


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@hamzehhemmati0
قبل از switch متغیر به اسم showUser دارید؟


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@mohsenbostan
ن نیس متغیر رو فقط در دستور ایف قرار دادم


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@mohsenbostan
متغیر هر جا میزارم کار میکنه ولی تا دداخل شرط میزارمش دیگ در دسترس نیس


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@hamzehhemmati0
خب دیگه مشکل همینه!
شما باید قبل از شرط متغیر رو تعریف کنید.


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@mohsenbostan
خب من میخام بگم اگه ایدی از طریق url ست شدهع بود و خالی نبود حالا بیا ایدی رو intval کن و بزارش تو متغیر


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@hamzehhemmati0
ببینید باید مرحله ای بررسی کنید. شما اول یک متغیر عادی رو قبل از هر کاری تعریف کن و فقط مقدارش رو تغییر بده


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@mohsenbostan
l مشکل متغیر درست شد الان ی ارور میاد ک نمیدونم منظورش چیع
( ! )19 Warning: Invalid argument supplied for foreach() in E:\wamp۶۴\www\۷l-script\admin\view\user\edit.php on line


احسان قربانی
تخصص : PHP ، در حال یادگیری لاراول ،...
@TimeRunner2359 4 سال پیش مطرح شد
0

@hamzehhemmati0
سلام و وقت بخیر
مطمئن هستید که ارایه دریافت میکنید و توی for each می‌گذارید ؟


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@TimeRunner2359
سلام
تو foreach کار میکنه ولی وقتی دکمه submit رو میزنم ک داده های فرم رو بگیرم این ارور رو میبده


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@TimeRunner2359
خیلی ذهنمو درگیر کرده الان دو روزه مشکلم همینه


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@hamzehhemmati0
$showUser دقیقا از چه نوع دیتا تایپی هستش ؟


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

@TimeRunner2359
اگه توی فورایچ نریزم کار نمکنه....


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد
0

میشه دوباره کدا رو بفرستم ببنیید؟؟؟


حمزه
@hamzehhemmati0 4 سال پیش آپدیت شد
0

@mohsenbostan
@TimeRunner2359
کد پی اپ پی:

  case "edit" :
        if (isset($_GET['id'])) {
            $id = $_GET['id'];
            // var_dump($id);die(1);
            $showUser = $user->selectUserById($id);

        }

        break;

کد دیتابیس:

  public function selectUserById($id)
    {
        $result = $this->db->prepare("select * from sl_user where id=:id");
        $result->bindParam("id", $id);
       $result->execute();
        if ($result->rowCount() >= 1) {
            return $result;
        }
        return false;
    }

کد اچ تی ام ال:

          <?php foreach ($showUser as $row):
                                       // var_dump($row);
                                        ?>
                                <form method="post" action="index.php?c=user&a=edit">
                                    <div class="form-group">
                                        <label>نام*</label>
                                        <input type="text" value="<?php echo $row['firstname'] ; ?>" name="frm[name]"
                                               class="form-control"
                                               placeholder="نام...">
                                    </div>
                                    <div class="form-group">
                                        <label>نام خانوادگی*</label>
                                        <input type="text" value="<?php echo $row['lastname'] ; ?>" name="frm[lastname]"
                                           class="form-control"
                                           placeholder="نام خانوادگی...">
                                </div>
                                <div class="form-group">
                                    <label>شماره تلفن*</label>
                                    <input type="text" value="<?php echo $row['mobile'] ; ?>" name="frm[mobile]"
                                           class="form-control" placeholder="شماره همراه...">
                                </div>
                                <div class="form-group">
                                    <label>نام کاربری*</label>
                                    <input type="text" value="<?php echo $row['username'] ; ?>" name="frm[username]"
                                           class="form-control"
                                           placeholder="نام کاربری...">
                                </div>
                                <div class="form-group">
                                    <label>ایمیل*</label>
                                    <input type="email" value="<?php echo $row['email'] ; ?>" name="frm[email]"
                                           class="form-control" placeholder="ایمیل...">
                                </div>
                                <div class="form-group">
                                    <label>تکرار ایمیل*</label>
                                    <input type="email" value="<?php echo $row['email'] ; ?>" name="frm[remail]"
                                           class="form-control"
                                           placeholder="تکرار ایمیل...">
                                </div>
                                <div class="form-group">
                                    <label>نقش کاربری</label>
                                    <select name="frm[role]" class="form-control">
                                        <option value="1">مشارک کننده</option>
                                        <option value="2">نویسنده</option>
                                        <option value="3">نویسنده ارشد</option>
                                        <option value="4">مدیر</option>
                                    </select>
                                 <?php
                                   switch ($row['role']) {
                                        case '1':
                                            echo '<span class="label label-default">مشارکت کننده</span>';
                                            break;
                                        case '2':
                                            echo '<span class="label label-warning"> نویسنده</span>';
                                            break;
                                        case '3':
                                            echo '<span class="label label-info">نویسنده ارشد</span>';
                                            break;
                                        case '4':
                                            echo '<span class="label label-primary">مدیر</span>';
                                            break;
                                    }
                                    ?>
                                </div>
                                <input type="submit" name="btn" class="btn btn-success center-block" value="ثبت">
                            </form>
<?php endforeach; ?>

محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@hamzehhemmati0
خب ببینید شما اول باید بدونید که نوع داده تون چیه!
foreach یک حلقه برای پیمایش آرایه هستش.
خروج متغیرتون چیه؟


حمزه
@hamzehhemmati0 4 سال پیش مطرح شد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام