Я новичок в этом деле, а также программирование. Я пытаюсь создать веб-сервис, основанный на nusoap и php, чтобы он передавал несколько значений из базы данных mysql.
Я просмотрел много веб-сайтов (включая ответы о переполнении стека) и нашел несколько решений, которые попробовал, но пока безуспешно. По какой-то причине, когда я делаю клиент для доступа к сервису, он всегда оказывается пустым. После целого дня, глядя на это, я вижу только буквы …
Если бы кто-то мог предоставить путь к решению, я был бы очень признателен. Спасибо!
Сторона сервера
<?php
include 'nusoap.php';
$server=new nusoap_server();
$server->configureWSDL("demo"."urn:demo");$server->register(
'gamedata',
array(),
array("estadio"=>'xsd:string',
"nome"=>'xsd:string',
)
);
function gamedata(){
$con=mysql_connect('127.0.0.1:3306', 'root', '') or die ("Erro ao conectar...");
mysql_select_db("testar",$con) or die ("Erro ao seleccionar DB...");
$queryforestadio="SELECT nome,cidade FROM estadio";
//$queryforjogos = "SELECT data, id_selecao1, id_selecao2 FROM jogo";
while($resultestadio = mysql_fetch_array($queryforestadio)){
$estadios[] = array('nome'=>$resultestadio['nome'],
'cidade'=>$resultestadio['cidade'],
);
echo "Message from function: ".$estadios['nome']['cidade'];
}
return $estadios;
}
if ( !isset( $HTTP_RAW_POST_DATA ) ) $HTTP_RAW_POST_DATA =file_get_contents( 'php://input' );
$server->service($HTTP_RAW_POST_DATA);
?>
Сторона клиента
<?php
require('nusoap.php');
$client = new nusoap_client('http://localhost:8048/webservice/index.php');
$response= $client->call('gamedata');$r = $response;
$count = count($r);
for($i=0; $i<=$count-1;$i++){
echo "This is name: ".$r[$i]['nome'];
echo "This is city: ".$r[$i]['cidade'];
}
Этот код является бессмысленным / избыточным:
$estadios[] = array('nome'=>$resultestadio['nome'],
'cidade'=>$resultestadio['cidade'],
);
Вы только получаете nome
а также cidade
поля в вашем запросе, так $resultstadio
это уже массив только этих двух полей и их значений.
И тогда это НЕ соответствует структуре, которую вы строите выше:
echo "Message from function: ".$estadios['nome']['cidade'];
Вы, вероятно, должны иметь что-то вроде этого:
while($resultestadio = mysql_fetch_array($queryforestadio)){
$estadios[] = $resultestadio;
echo "Message from function: ".$resultestadio['nome'] ',' . $resultestadio['cidade'];
Других решений пока нет …