首頁  >  問答  >  主體

如何從資料庫中取得所有值並返回XML欄位中的PHP程式碼?

我的應用程式需要一些幫助。我有這個程式碼:

實時.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;

我有這個函數,它只是 p assing 一個值,而不是傳遞資料庫的所有內容:

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

所有其他欄位都在即時工作,但這個欄位僅從資料庫中取得一個值...

如何從資料庫中取得所有值?

已編輯 - 2022 年 5 月 22 日

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

這是腳本 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粉563446579P粉563446579183 天前405

全部回覆(1)我來回復

  • P粉947296325

    P粉9472963252024-03-31 12:19:40

    這是有效的函數,現在有一個更漂亮的結果:

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

    我仍然想列印一些更漂亮的東西供最終用戶查看。這樣我就得到了每個值中的換行符,但我仍然想從輸出中刪除“,”...如果有人有可以更好使用的東西,那麼請發布它,謝謝。

    回覆
    0
  • 取消回覆