| Autor | Zpráva | ||
|---|---|---|---|
| mafos Profil |
#1 · Zasláno: 19. 8. 2013, 23:17:02
Dobrý večer,
prosím o pomoc při tvorbě domácího úkolu :-) Jde o webovou službu pomocí PHP. Služba má vypisovat počet záznamů v databázi dle zvoleného kritéria. Dělám to poprvé a buď tam mám nějakou hloupost nebo jsem se do toho totálně zamotal. Pokud byste mi byli schopni nějak pomoci byl bych velice rád. Při otevření client.php píše toto: Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Missing name for <input> of 'getCount' in /var/www-stud/e11427/client.php:20 Stack trace: #0 /var/www-stud/e11427/client.php(20): SoapClient->SoapClient('http://cipisek....') #1 {main} thrown in /var/www-stud/e11427/client.php on line 20obsah client.php: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>VYHLÍDKOVÉ LETY LETADLEM - Roman Lipka</TITLE>
<meta http-equiv="Content-type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-Style-Type" content="text/css">
</HEAD>
<BODY style="background: url(pozadi.gif) #2979dc; background-position: right top; background-repeat: no-repeat; font-family: arial">
<div style="margin: 0 auto; width: 800px; top: 10px; border: 5px solid #000000; padding: 5px; background-color: #FFFFFF">
<div style="border: 1px solid #000000; background: url(logo.gif) #FFFFFF; background-position: center top; background-repeat: no-repeat; padding: 19px">
<p style="margin: 106px 0 20px 16px; font-weight: bold"><a href="index.php" style="color: #000000">OBJEDNÁVKA</a> | <a href="administrace.php" style="color: #000000">ADMINISTRACE</a> | <a href="sluzba.php" style="color: #000000">WEBOVÁ SLUŽBA</a></p>
<H1>WEBOVÁ SLUŽBA</h1>
<H2>zjištění počtu záznamů dle zadaných kritérií</H2>
<?
$pocet = $_POST["pocet"];
$soap = new SoapClient("http://cipisek.upce.cz/e11427/WS/e11427.wsdl");
$response = $soap->getCount($pocet);
?>
<form action="client.php" method="post" name="formularWS">
<table border="0">
<tr>
<td style="width: 200px">Počet osob v letadle: </td>
<td>
<select name="pocet" class="form_prvek">
<option value="1" <? if ($pocet == 1) {echo " selected=\"selected\"";} ?>>1</option>
<option value="2" <? if ($pocet == 2) {echo " selected=\"selected\"";} ?>>2</option>
<option value="3" <? if ($pocet == 3) {echo " selected=\"selected\"";} ?>>3</option>
</td>
</tr>
</table>
<p style="text-align: center"><input type="submit" value="ZJISTI POČET" class="form_prvek"></p>
<p>Počet záznamů, které odpovídají vybranému počtu osob je: <? echo $response; ?>
</form>
</div>
</div>
</body>
</html>obsah wsdl: <?xml version ='1.0' encoding ='windows-1250' ?> <definitions targetNamespace="http://cipisek.upce.cz/e11427/WS/" xmlns:pocet="http://cipisek.upce.cz/e11427/WS/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <message name="getCountRequest"> <part name="symbol" type="xsd:string"/> </message> <message name="getCountResponse"> <part name="result" type="xsd:integer"/> </message> <portType name="typType"> <operation name="getCount"> <input mesage="pocet:getCountRequest"/> <output message="pocet:getCountResponse"/> </operation> </portType> <binding name="pocetBinding" type="pocet:typType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getCount"> <soap:operation soapAction="urn:xmethods-delayed-quotes#getCount"/> <input><soap:body use="encoded" namespace="urn:xmethods-delayed-quotes" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></input> <output><soap:body use="encoded" namespace="urn:xmethods-delayed-quotes" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></output> </operation> </binding> <service name="pocetService"> <port name="pocetPort" binding="pocetBinding"> <soap:address location="http://cipisek.upce.cz/e11427/WS/server.php"/> </port> </service> </definitions> obsah server.php: <?
function getCount($pocet)
{
$query = "SELECT * FROM letadlo where pocet=".$pocet;
$result = mysql_query($query, $link) or die("SQL dotaz nešlo provést");
$row = mysql_fetch_array($result);
return $row[0];
}
ini_set("soap.wsdl_cache_enabled", "0");
$server = new SoapServer("e11427.wsdl");
$server->addFunction("getCount");
$server->handle();
?>Vidíte tam někde nějakou chybu? Určitě tam je něco špatně, ale fakt nevím co :-( Děkuji |
||
| novacek90 Profil |
mafos:
„$query = "SELECT * FROM letadlo where pocet=".$pocet;“ 5. řádek server.php nemělo by to být $query = "SELECT * FROM letadlo where pocet='".$pocet."'"; ?
Taky jsem začátečník ale myslím že by to mělo být takhle |
||
| Tori Profil |
#3 · Zasláno: 20. 8. 2013, 06:38:32
„Počet záznamů, které odpovídají vybranému počtu osob je:“
Podle téhle věty by měl dotaz vypadat takhle: $query = "SELECT COUNT(*) FROM letadlo where pocet=".(int)$pocet;
novacek90: Pokud je sloupec pocet číselného typu (INT, FLOAT), tak bez apostrofů. Pokud to je řetězcový typ nebo datum, tak s nimi. Podobně jako v PHP. |
||
| mafos Profil |
#4 · Zasláno: 20. 8. 2013, 08:00:27 · Upravil/a: mafos
Ještě nějaký jiný nápad prosím? Děkuji
Tak tedy vyřešeno :-) Ve wsdl mi na řádku 20 chybělo písmenko :-) Stejně to ale nefunguje. Nyní to píše chybu: Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in /var/www-stud/e11427/client.php:21 Stack trace: #0 [internal function]: SoapClient->__call('getCount', Array) #1 /var/www-stud/e11427/client.php(21): SoapClient->getCount('1') #2 {main} thrown in /var/www-stud/e11427/client.php on line 21Nějaký nápad? Děkuji Tak už jsem přišel i na to :-) V server.php mi chybělo přihlášení do db. To byly ale fakt blbý chyby co? :-) Pěkný den všem |
||
|
Časová prodleva: 13 let
|
|||
0