ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
543
543
EMPFEHLEN
-
Hi,
ich habe seit gestern mit dem Webservice, den ich über PHP anstatt über ASP.NET laufenlassen kann, angefangen.
Meine ersten gehversuche haben geklappt, doch nun kommt ich zu den MySQL Datenbankabfragen, die ich in ein C# Programm einlesen möchte.
Was geklappt hat, war:
Nun wollte ich das mit Select ausprobieren, aber da hakts. Irgendwie wird die Array nicht richtig gelesen, oder gefüllt. Wieso?PHP-Code:require('mysql.php');
require_once ("lib/nusoap.php");
$namespace = "http://www.event4net.de/....";
$server = new soap_server();
$server->configureWSDL("WebService_ConnectPHP2MySQL");
$server->wsdl->schemaTargetNamespace = $namespace;
$server->register(
'insert',
array('name'=>'xsd:int'),
array('return'=>'xsd:string'),
$namespace,
false,
'rpc',
'encoded',
'A simple insert into'
);
....
function insert($id) {
require('mysql.php');
mysql_query("INSERT INTO test VALUES('".$id."')") or die(mysql_error());
return "Data executed";
}
....
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server->service($POST_DATA);
exit();
Die SQL Tabelle ist...PHP-Code:require('mysql.php');
require_once ("lib/nusoap.php");
$namespace = "http://www.event4net.de/....";
$server = new soap_server();
$server->configureWSDL("WebService_ConnectPHP2MySQL");
$server->wsdl->schemaTargetNamespace = $namespace;
$server->wsdl->addComplexType('ListArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:string[]')
),
'xsd:string'
);
$server->register(
'select',
array( ),
array('return' => 'tns:ListArray'),
$namespace,
false,
'rpc',
'encoded',
'A simple select'
);
function select() {
require('mysql.php');
$game=array();
$select_ort = "SELECT id FROM test";
if(!$res_id_ort = mysql_query($select_ort)){
die(mysql_error());
}
while($ort=mysql_fetch_array($res_id_ort)){
$game[] = $ort;
}
return array("ListArray" => $game);
}
$POST_DATA = isset($GLOBALS['HTTP_RAW_POST_DATA'])
? $GLOBALS['HTTP_RAW_POST_DATA'] : '';
$server->service($POST_DATA);
exit();
Code :1
CREATE TABLE test(id varchar(10) PRIMARY KEY);
Danke für Antworten
Geändert von Erks (16.07.11 um 15:06 Uhr)
PHP-Code:<?php
echo 'http://acs-it-worx.de/'; // mit Android App
echo 'http://www.youtube.com/user/ACSITWorx/'; // mein YouTube Kanal
echo '-----------------------------------------------------------------';
echo 'http://www.autoservice-asberg.de/';
?>
-
16.07.11 20:46 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Ein die() in einem Webservice ist pfui. Bau das doch mal so um, das du ein Logging hast, ob überhaupt die Funktion select() aufgerufen wird. trigger_error() hilft dir dabei.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Das SELECT Statement wird augerufen. Das hab ich in der DB selbst eingegeben und es hat mir das Erfragte geliefert.
Wie kann ich das mit trigger_error() realisieren, damit ich weiß, ob select() aufgerufen wird?
anstatt die() dann ...
Code :1
sqlerrorhandler("(".mysql_errno().") ".mysql_error(), $query, $_SERVER['PHP_SELF'], __LINE__);
?Geändert von Erks (23.07.11 um 23:37 Uhr)
PHP-Code:<?php
echo 'http://acs-it-worx.de/'; // mit Android App
echo 'http://www.youtube.com/user/ACSITWorx/'; // mein YouTube Kanal
echo '-----------------------------------------------------------------';
echo 'http://www.autoservice-asberg.de/';
?>
-
24.07.11 10:11 #4
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Wird zum Beispiel in diesem Tutorial erklärt: http://www.tutorials.de/content/1126...p-scripts.html
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Ok, aber bleiben wir kurznoch bei diesem die()
Als ich hab mal extern ausprobiert, ob mein SQL Statement überhaupt das Richtige ausgibt. Ja tut es, auch als 2 Dimensionale Array.
Hier nochmal der relevante PHP Code:
Wenn ich nun bei der function select() "return $output_1[0];" angebe, dann kann ich via C# auf das jeweilige Element zugreifen. Aber wieso kann ich nicht auf alle zugreifen wenn ich nur "return $output_1;" angebe?PHP-Code:require('mysql.php');
require_once ("lib/nusoap.php");
$namespace = "http://www.....";
$server = new soap_server();
$server->configureWSDL("WebService_ConnectPHP2MySQL");
$server->wsdl->schemaTargetNamespace = $namespace;
$server->wsdl->addComplexType(
'MyComplexType',
'complexType',
'struct',
'all',
'',
array(
'ID' => array('name' => 'ID','type' => 'xsd:int'),
'YourName' => array('name' => 'YourName','type' => 'xsd:string')
)
);
$server->register(
'select',
array( ),
array('return' => 'tns:MyComplexType'),
$namespace,
false,
'rpc',
'encoded',
'A simple select'
);
function select() {
require('mysql.php');
$output_1=array();
$output_2=array();
$select_test = "SELECT * FROM student_detail";
if(!$res_id_test = mysql_query($select_test)){
die(mysql_error());
}
while($test=mysql_fetch_array($res_id_test)){
$output_2['ID'] = $test['id'];
$output_2['YourName'] = $test['vorname'];
array_push($output_1,$output_2);
}
return $output_1[0];
}
?>
Liegt mein Fehler in "$server->wsdl->addComplexType" oder "$server->register"?
Hier mal mein C# Code, mit dem ich auslesen konnte:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
using WindowsFormsApplication1.Services; ... private void button1_Click(object sender, EventArgs e) { WebService_ConnectPHP2MySQL s = new WebService_ConnectPHP2MySQL(); try { MyComplexType mct = new MyComplexType(); mct = s.select(); MessageBox.Show(mct.ID.ToString() + "\nType: " + mct.ID.GetType().ToString()); MessageBox.Show(mct.YourName + "\nType: " + mct.YourName.GetType().ToString()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }PHP-Code:<?php
echo 'http://acs-it-worx.de/'; // mit Android App
echo 'http://www.youtube.com/user/ACSITWorx/'; // mein YouTube Kanal
echo '-----------------------------------------------------------------';
echo 'http://www.autoservice-asberg.de/';
?>
-
17.08.11 16:46 #6
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.520
Sowohl, als auch. Du registriesrt die Methode mit dem Return-Value eines Single-Objekts und kannst damit auch kein Array zurück geben.
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
Ähnliche Themen
-
MySQL Webservice
Von Operator_Jon im Forum .NET Web und KommunikationAntworten: 9Letzter Beitrag: 13.09.09, 22:32 -
webservice mit nusoap - funktionsrückgabe - array
Von jogisarge im Forum PHPAntworten: 3Letzter Beitrag: 16.09.08, 14:08 -
Dringend: WebService Select Statement aus xml Datei
Von fenerli23 im Forum JavaAntworten: 3Letzter Beitrag: 27.11.07, 09:32 -
Nach select neues select per mysql eingrenzen
Von CrushLog im Forum PHPAntworten: 8Letzter Beitrag: 18.05.05, 15:43 -
neues Select nach select aus mysql
Von mrbong im Forum PHPAntworten: 15Letzter Beitrag: 14.10.04, 00:05





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren