Mysql
 sql >> Datenbank >  >> RDS >> Mysql

So aktualisieren Sie MySQL mit PHP und AJAX, ohne die SEITE ZU AKTUALISIEREN

Ajax in jQuery funktioniert so:

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.
   }
});

Dadurch wird Ihre Seite nicht aktualisiert, sondern ein „POST“ an die angegebene URL gesendet. Auf Ihrer angegebenen Seite möchten Sie tun, was Sie möchten, und sagen, dass Sie ein Ergebnis zurückgeben. In meinem Beispiel mache ich etwas Einfaches:

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

Das sind die Grundlagen einer AJAX-Anfrage mit jQuery.

BEARBEITEN!

Initiieren eines AJAX-Skripts:Ich vermute nur, da ich weder Ihre Elemente in Ihrem HTML noch Ihre Skripte kenne! Sie müssen also Anpassungen vornehmen!

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

PHP:Verwenden Sie mysql nicht, es wurde jetzt abgeschrieben und gilt als schlechte Übung. Ich weiß auch nicht, warum Sie sprintf für die Abfrage verwenden? :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++;

Dies funktioniert nur, wenn es in Ihrem HTML eine Reihe von Schaltflächen gibt, deren IDs mit denen in Ihrer Datenbank übereinstimmen. Also

$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>";
}

Ich hoffe, Sie haben eine ungefähre Vorstellung davon, wie ich Ihr Dislike-Button-System verwalte. XD lol