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 20 obsah 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 21 Ně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: 11 let
|
0