Wątek przeniesiony 2015-06-19 11:37 z PHP przez dzek69.

Błędna ilość danych pobranych z bazy

0

Witam mam problem ponieważ w serverze pobieram sobie pola z bazy sa 3 id miasto i rzeka a w wyniku dostaje tylko 1 wiersz a w bazie wypelnionych jest az 8. Jakiś pomysł? Probowałem petle while itd i nie da sie nie akceptuje mi tego blad soap.

SOAP SERVER

<?php 


function baza () {
	


$username = "root";
$password = "";
$hostname = "localhost"; 



//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password) 
 or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

//select a database to work with 
$selected = mysql_select_db("test3",$dbhandle) 

  or die("Could not select examples");

  
//fetch tha data from the database 
$result = mysql_query("SELECT * FROM panstwo");

 

 
 mysql_close($dbhandle); 
 

return   mysql_fetch_assoc($result);


}


//Utworzenie serwera SOAP i wyeksportowanie funkcji remoteToUpper() 
$soap = new SoapServer(null, array('uri' => '')); 
$soap->addFunction('remoteToUpper'); 
$soap->addFunction('baza');   
//Użycie żądania POST dla wywołania usługi 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
$soap->handle(); 
} 
else {
	
/*	 
//Bez podanych parametrów - wypisana zostanie lista dostępnych funkcji serwera SOAP 
echo "Funkcje udostępnione:\n"; 
foreach ($soap->getFunctions() as $func) { 
echo $func . "\n"; 
 * 
 * 
 *
} */
} 


?> 
 

SOAP CLIENT

 <?php 
//Ustalenie adresu serwera: 
$location = sprintf('http://localhost/new2/soap_server.php', 
$_SERVER['HTTP_HOST'], 
dirname($_SERVER['SCRIPT_NAME']));  
  
//Utworzenie obiektu klienta SOAP 
$soap = new SoapClient(null, array('location' => $location, 'uri'      => '')); 
  
//wykorzystanie funkcji udostępnionej przez serwer 
$ret = $soap->baza(); 
  


echo $ret['rzeka'];

 

?> 







0

Funkcja mysql_fetch_assoc() zwraca jeden wiersz. Spróbuj podmienić sobie funkcję baza na coś takiego

function baza()
{


    $username = "root";
    $password = "";
    $hostname = "localhost";


//connection to the database
    $dbhandle = mysql_connect($hostname, $username, $password)
    or die("Unable to connect to MySQL");
    echo "Connected to MySQL<br>";

//select a database to work with
    $selected = mysql_select_db("test3", $dbhandle)

    or die("Could not select examples");


//fetch tha data from the database
    $result = mysql_query("SELECT * FROM panstwo");

    $results = array();

    while ($row  = mysql_fetch_assoc($result)) {
        $results[] = $row;
    }

    mysql_close($dbhandle);


    return $results;
}

[Adrian]

0

Wszystkie funkcje mysql_ są zdeprecjonowane, użyj PDO.
Nie mówiąc już o tym, że ten kod jest słabo napisany tak czy siak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1