آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در قسمت آپدیت پروژه Note (حل شد)

هادی بی غم  11 سال پیش  11 سال پیش
+1 0

با سلام خدمت دوستان و استاد گرامی

پروژه Note که من نوشتم تا قسمت ReadData و SendData داشت درست اجرا میشد اما به قسمت updateData که رسیدم روی دیتابیس اطلاعاتی که می فرستم آپدیت نمیشه برنامه بدون خطا میاد بالا حتی خطاهای نارنجی رنگ هم نمیده به نظرم مشکل از سمت php باشه من ورژن جدید wamp  دارم کدهای php استاد روش جواب نمیده از مثالهای داخل سایت w3school استفاده کردم تا اینجا ، خواهشا منو راهنمایی کنید مشکل کارم چی هست .

این کد قسمت  ActivityEdit  و پایینش کد قسمت service.php

 package hadi.rock.apps.notes;

import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;


public class ActivityEdit extends ActivityEnhanced {

    @Override
    protected void onResume() {
        G.currentActivity = this;
        super.onResume();
    }


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit);
        final EditText edtTitle = (EditText) findViewById(R.id.edtTitle);
        final EditText edtDescription = (EditText) findViewById(R.id.edtDescription);
        final CheckBox chkDone = (CheckBox) findViewById(R.id.chkDone);
        Button btnOk = (Button) findViewById(R.id.btnOk);

        Bundle extras = getIntent().getExtras();
        int position = 0;
        if (extras != null) {
            position = extras.getInt("POSITION");
        }
        final StructTask note = G.tasks.get(position);
        edtTitle.setText(note.title);
        edtDescription.setText(note.desc);
        chkDone.setChecked(note.done);

        btnOk.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                note.title = edtTitle.getText().toString();
                note.desc = edtDescription.getText().toString();
                note.done = chkDone.isChecked();

                ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("id", "" + note.id));
                params.add(new BasicNameValuePair("title", note.title));
                params.add(new BasicNameValuePair("desc", note.desc));
                params.add(new BasicNameValuePair("done", "" + (note.done ? 1 : 0)));

                Commands.updateData(params);
                finish();
            }
        });
    }
}

 

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

if ($action=="read"){
    readData();
} elseif ($action=="insert"){
    sendData();
}elseif($action=="update"){
    updateData();
}

function conectToDatabase(){
    $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "note_db";

    $conn = new mysqli($servername, $username, $password, $dbname);
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }



    return $conn;
}
function readData(){
    $conn = conectToDatabase();
    $sql = "SELECT * FROM tasks";
    $result = $conn->query($sql);
    $output = array();
    while($row= $result->fetch_assoc())
    {
        $record=array();
        $record['Task_id']=$row['Task_id'];
        $record['Task_title']=$row['Task_title'];
        $record['Task_desc']=$row['Task_desc'];
        $record['Task_done']=$row['Task_done'];
        $output[]=$record;
    }
    echo json_encode($output);
//print_r($output);
}
function sendData(){
    $conn = conectToDatabase();

    $title = $_REQUEST["title"];
    $desc = $_REQUEST["desc"];
    $sql = "INSERT INTO tasks VALUES ( 0 ,'$title','$desc',0)";
    $result = $conn->query($sql);

    $conn->close();
}
function updateData(){
    $conn = conectToDatabase();

    $id = $_REQUEST["id"];
    $title = $_REQUEST["title"];
    $desc = $_REQUEST["desc"];
    $done = $_REQUEST["done"];
    $sql = "UPDATE tasks SET Task_done=' . $done . ' . Task_title='" . $title . "' . Task_desc='" . $desc . "' WHERE Task_id=" . $id ;
    $result = $conn->query($sql);

    $conn->close();

}
+1 0
خوب عزیز من شما با همون ومپ استاد فعلا تست کن ... شما که میدونی چقدر اینم برنامه ها حساسه یک کد جواب نده بالا نمیاد به نظر من اول کد استاد رو بزن تستش کن به این میگن مدلینک یعنی اول تست کن ببین دسنورات درست کار میکنه بعد و..الان اینجا صد نفر دیکه هم بیان نمیتونن نظر بدن در مورد این همه کد ! (11 سال پیش)
0 0
فعلا دارم همین کارو می کنم ولی جالبشین اینجاست که همون کدهایی که روی اون مینوشتم داره واسه ورژن wamp استاد هم نتیجه میده اما هنوز آپدیت نمی کنه (11 سال پیش)
+1 0
مشکل از نامگذاری table بود (11 سال پیش)
0 0
آقا منم مشکلم همینه ولی از نرم افزار های استاد استفاده میکنم هیچ خطایی ندارم ولی اطلاعات آپدیت نمیشه منظورتون از نامگذاری table چیه؟؟؟؟؟؟؟؟ الان چیکار کنم؟ (11 سال پیش)
0 0
از من مشکلی توی اسم گذاری table نیست کاملا درسته درسته = task (11 سال پیش)
 برای این سوال 7 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
kmelodi  11 سال پیش
+1 0

سلام:

بنظرم تعریف آپدیت کردنتون اشتباه بوده ، که خودمم دو روز توی همین گیر کرده بودم که مشکلش یه دونه ( , ) بود

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

mysqli_query($connection, "UPDATE task SET task_done=$done, task_title='$title', task_desc='$desc' WHERE task_id=$id");

پاسخ به سوال 
Criss  11 سال پیش
0 0

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

حتی params رو توی لاگ درست نشون میده

میخواستم این رو دیباگ کنم برای همین میخاستم

بپرسم چطوری باید دستی لینک رو وارد کنیم و تست کنیم ؟

من برای تست لینک زیر رو دستی میزنم باز هم جواب نمیگیرم !

 http://localhost/note-server/service.php?action=update,title=1,desc=2,done=1,id=1

 

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

function update(){
$connection = ConnectToDataBase();
$id = $_REQUEST['id'];
$title = $_REQUEST['title'];
$desc = $_REQUEST['desc'];
$done = $_REQUEST['done'];
$result = mysqli_query($connection, "UPDATE task SET task_done=" . $done . ", task_title='" . $title . "', task_desc='" . $desc . "' WHERE task_id=" . $id);
mysqli_close($connection);
}
پاسخ به سوال 
Criss  11 سال پیش
+2 0

مشکل حل شد <

رفتم از بچه های اشیانه پرسیدم < جواب رو اینجا میزارم در آینده بچه های دیگه استفاده کنند

این قسمت از کد به شکل زیر اصلاح شد

 mysqli_query($connection, "UPDATE task SET task_done='$done', task_title='$title', task_desc='$desc' WHERE task_id='$id'");

 

پاسخ به سوال 
125025  11 سال پیش
0 0

منم همین مشکل رو دارم باید چیکار کنم کد php:

 function UpdateData()
{
$connection = connectToDatabase();
if(isset($_REQUEST['title'])&&isset($_REQUEST['desc'])&&isset($_REQUEST['desc'])){
$id = $_REQUEST['id'];
$title = $_REQUEST['title'];
$desc = $_REQUEST['desc'];
$done = $_REQUEST['done'];
mysqli_query($connection, "UPDATE task SET task_done=$done, task_title='$title', task_desc='$desc' WHERE task_id='$id'");
}

mysqli_close($connection);
}
 
0 0
مثل کد کریس هم که نوشتم باز کار نکرد.. (11 سال پیش)
0 0
شما چک کنید ببینید اسم table که اینجا داخل کد دادین با اسم table که داخل wamp ساختین یکی هست یا نه واسه من مشکل همین بود چون حساس به حروف بزرگ و کوچیکه خیلی باید دقت کرد (11 سال پیش)
پاسخ به سوال 
Criss  11 سال پیش
0 0

پاسخ به سوال 
Criss  11 سال پیش
0 0

من دوباره باز همین مشکل رو با اپدیت کردن دارم !!! البته این بار خیلی عجیب تر !!

کد PHP کاملا صحیح هست < و وقتی لینک رو دستی وارد میکنم ، کاملا صحیح کار میکنه <

 http://android.ir/App/Jam/update.php?text=txtupdate&done=0&id=21

 لینک بالا برای کد زیر کاملا صحیح کار میکنه

function update(){
 
    $connection = ConnectToDataBase();
    date_default_timezone_set("Asia/Tehran"); 
 
    $text= $_REQUEST['text'];
    $id= $_REQUEST['id'];
    $date = date("Y-m-d");
    $time = date("H:i:s");
    $done= $_REQUEST['done'];
    $result = mysqli_query($connection, "UPDATE msg SET msg_done=$done, msg_text='$text' WHERE msg_id=$id");
    mysqli_close($connection);
}

پس با این حساب از سمت اندروید مشکل دارم < متد مربوط به Update :

 private void updatedata(ArrayList params) {
        Log.i("PARAMS", "" + params);
        WebService.readUrl("http://android.ir/App/Jam/update.php", params);
        //WebService.readUrl("http://android.ir/App/Jam/insert.php", params);
    }

 

با همین متد Insert میکنم < اما Update نمیتونم !!! حتی همین URL بالا رو کپی میکنم < توی مرورگر و Params رو دستی بهش میدم درست کار میکنه :| !  

 

}

پاسخ به سوال 
Criss  11 سال پیش
+1 0

 پاسخ صحیح

خب دوستانی که مثل من این چنین مشکلی رو دارند کافیه برای آپدیت دیتابیس از متد Gey استافاده کنند ! (روش کاملا اصولی نیست ولی موقتی کار رو راه میندازه)

   HttpGet method = new HttpGet(url.replace(" ", "%20"));

مشکلاتی که ممکنه همیشه بوجود بیاد و باید دقت کرد < نحوه ارسال و دریافت دیتا هست که بصورت Post داره صورت میگیره یا بصورت Get


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