J'ai besoin d'aide avec mon application. J'ai ce code :
temps réel.php
$jogador = Jogador::getSaldoJogadorByEmail($email); $premio = Premio::getValorPremioByTipo($tipo); $participante = Participantes::getATotalParticipantesFromPA1(); $doc = new DOMDocument("1.0"); $action = $doc->createElement('action'); $action = $doc->appendChild($action); $jogador = $doc->createElement('jogador1', $jogador); $jogador = $action->appendChild($jogador); $premio = $doc->createElement('premio1', $premio); $premio = $action->appendChild($premio); $participante = $doc->createElement('participante1', $participante); $participante = $action->appendChild($participante); $output = $doc->saveXML(); header("Content-type: application/xml"); echo $output;
J'ai cette fonction qui donne simplement une valeur au lieu de tout transmettre de la base de données :
static function getTotalParticipantesFromPA1(){ $db = new mysqli("localhost","******","****","participantes"); $query = "SELECT * FROM premioacumulado1"; $result = $db->query($query); $row = $result->fetch_array(MYSQLI_ASSOC); if(mysqli_num_rows($result) > 0 ){ while($row = $result->fetch_array(MYSQLI_ASSOC)){ $id = $row['id']; $username = $row['username']; $m = "ID: " . $id . " " . "User: " . $username . "\n"; return $m; } }else{ $db->close(); return NULL; } }
Tous les autres champs fonctionnent en temps réel mais celui-ci n'obtient qu'une valeur de la base de données...
Comment obtenir toutes les valeurs de la base de données ?
Edité - 22 mai 2022
static function getTotalParticipantesFromPA1(){ $db = new mysqli("localhost","*****","*****","participantes"); $query = "SELECT * FROM premioacumulado1"; $result = $db->query($query); $row = $result->fetch_array(MYSQLI_ASSOC); if(mysqli_num_rows($result) > 0 ){ while($row = $result->fetch_array(MYSQLI_ASSOC)){ $id = $row['id']; $username = $row['username']; $m = "ID: " . $id . " " . "User: " . $username . "\n"; } return $m; // if i put it here it only returns the last value in the data base . }else{ $db->close(); return NULL; } } static function getTotalParticipantesFromPA1(){ $db = new mysqli("localhost","*****","*****","participantes"); $query = "SELECT * FROM premioacumulado1"; $result = $db->query($query); $row = $result->fetch_array(MYSQLI_ASSOC); if(mysqli_num_rows($result) > 0 ){ while($row = $result->fetch_array(MYSQLI_ASSOC)){ $id = $row['id']; $username = $row['username']; $m = "ID: " . $id . " " . "User: " . $username . "\n"; echo $m;// if i do a echo i get an error in the xml $participante variable(realtime.php) , maybe convert it here so it can take the result , but how ? } }else{ $db->close(); return NULL; } }
Voici le script Js :
function getRealTime(){ //retrieve the DOM objects to place content var domjogador1 = document.getElementById("saldo"); var dompremiovaloracu1 = document.getElementById("valorActualPremioAcu1"); var domparticipantes1 = document.getElementById("areaParticipantesAcu1"); //send the get request to retrieve the data var request = new XMLHttpRequest(); request.open("GET", "realtimegame.php", true); request.onreadystatechange = function(){ if(request.readyState == 4 && request.status == 200){ //parse the xml document to get each data element var xmldoc = request.responseXML; var xmljogador1 = xmldoc.getElementsByTagName("jogador1")[0]; var jogador1 = xmljogador1.childNodes[0].nodeValue; var xmlpremio1 = xmldoc.getElementsByTagName("premio1")[0]; var premio1 = xmlpremio1.childNodes[0].nodeValue; var xmlparticipante1 = xmldoc.getElementsByTagName("participante1")[0]; var participante1 = xmlparticipante1.childNodes[0].nodeValue; domjogador1.innerHTML = jogador1; dompremiovaloracu1.innerHTML = premio1; domparticipantes1.innerHTML = participante1; } }; request.send(); }
C'est la fonction qui fonctionne, maintenant avec un plus joli résultat :
Je veux toujours imprimer quelque chose de plus joli pour que l'utilisateur final puisse le voir. De cette façon, j'obtiens les nouvelles lignes dans chaque valeur, mais je souhaite toujours supprimer le "," de la sortie... Si quelqu'un a quelque chose qui peut être mieux utilisé, veuillez le poster, merci.