Comment récupérer toutes les valeurs de la base de données et revenir au code PHP dans le champ XML ?
P粉563446579
P粉563446579 2024-03-30 16:09:24
0
1
486

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

P粉563446579
P粉563446579

répondre à tous(1)
P粉947296325

C'est la fonction qui fonctionne, maintenant avec un plus joli résultat :

static function getBTotalParticipantesFromPA1(){
    $db = new mysqli("localhost","root","","participantes");
    $query = "SELECT * FROM premioacumulado1";
    $result = $db->query($query);
    $row = $result->fetch_array(MYSQLI_ASSOC);
    $s = "
"; $data1 = array(); if(mysqli_num_rows($result) > 0 ){ do{ $data1[] = $row['username'] . " " . $row['id'] . " "; }while($row = $result->fetch_array(MYSQLI_ASSOC)); return json_encode($data1); }else{ $db->close(); return NULL; } }

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal