sql >> データベース >  >> RDS >> Mysql

ページを更新せずにPHPとAJAXでMySQLを更新する方法

    jQueryのAjaxは次のように機能します:

    var myData=1;
    $.ajax({
        type:'POST',//type of ajax
        url:'mypage.php',//where the request is going
        data:myData,//the variable you want to send
        beforeSend:function(xhr){//as a standard, I add this to validate stuff
            if(someThingWrong===true)xhr.abort//aborts xhttpRequest
       },
       success:function(result){
           //result is your result from the xhttpRequest.
       }
    });
    

    これはページを更新しませんが、指定されたURLに「POST」を送信します。指定したページで、やりたいことを何でもして、結果を返すと言います。私の例では、簡単なことをします:

    if($_POST['myData']===1)return True;
    

    これが、jQueryを使用したAJAXリクエストの基本です。

    編集!

    AJAXスクリプトの開始:HTML内の要素やスクリプトがまったくわからないので、推測します。したがって、調整を行う必要があります。

    $('button.dislike').click(function(){
        $.ajax({
            type:'POST',
            url:'disliked.php',
            data:{dislike:$(this).attr('id')},
            success:function(result){
                $(this).prev('span').append(result);
            }
        });
     });
    

    PHP:mysqlを使用しないでください。現在は減価償却されており、不適切な方法と見なされています。クエリでsprintfを使用している理由もわかりません。 :S

    $DBH=new mysqli('location','username','password','database');
    $get=$DBH->prepare("SELECT dislike FROM random WHERE ids=?");
    $get->bind_param('i',$_POST['dislike']);
    $get->execute();
    $get->bind_result($count);
    $get->close();
    $update=$DBH->prepare('UPDATE random SET dislike=? WHERE ids=?');
    $update->bind_param('ii',++$count,$_POST['dislike']);//if you get an error here, reverse the operator to $count++.
    $update->execute();
    $update->close();
    return String $count++;
    

    これは、HTMLに、データベース内のボタンと一致するIDを持つ一連のボタンがある場合にのみ機能します。だから

    $get=$DBH->prepare('SELECT ids FROM random');
    $get->execute();
    $get->bind_result($ids);
    while($get->fetch()){
        echo"<button class='dislike' id='".$ids."'>Dislike this?</button>";
    }
    

    私があなたの嫌いなボタンシステムをどのように管理しているかについての一般的な考えを理解していただければ幸いですXDlol




    1. エスケープされたUnicode文字をPostgreSQLで実際の文字に変換します

    2. SQLで単一の行を複数の行に分割する

    3. 右結合は左結合と同じですか?

    4. クエリを実行して、子レコードを含む親レコードを取得し、続いてmysqlの次の親子レコードを取得します