Daten aus mysql abfrage über webclient und php in Datatable o.ä. übergeben

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Daten aus mysql abfrage über webclient und php in Datatable o.ä. übergeben

    Servus, ich habe bereits die geforderten daten über einen Webclient und ein PHP script aus meiner Datenbank abgefragt. Nun bin ich an dem Punkt, an dem ich die Sachen, die mir mein PHP Script liefert in eine Tabelle in meinem Programm schreiben möchte. Habe aber hierzu nichts brauchbares gefunden, vielleicht weiß ja jemand wie man das machen könnte.

    VB.NET-Quellcode

    1. Dim query As String = "SELECT * FROM users"
    2. nv.Clear()
    3. nv.Add("query", query)
    4. Dim result() As Byte = wc.UploadValues("http://xxx/software_queries/query.php", "POST", nv)
    5. Dim resultString = ASCII.GetString(result)


    nv ist hier eine NameValueCollection.

    PHP-Quellcode

    1. include("../inc/db.php");
    2. $query = $_POST['query'];
    3. $erg = $db->query($query)
    4. or die($db->error);
    5. $datensatz = $erg->fetch_all(MYSQLI_ASSOC);
    6. print_r($datensatz);
    7. $erg->free();
    8. $db->close();




    Das wird ausgegeben:
    Array ( [0] => Array ( [id] => 1 [username] => xxx [password] => xxx ) [1] => Array ( [id] => 2 [username] => test [password] => test ) )


    Beziehungsweise:
    Array
    (
    [0] => Array
    (
    [id] => 1
    [username] => xxx
    [password] => xxx
    )

    [1] => Array
    (
    [id] => 2
    [username] => test
    [password] => test
    )

    )
    Rosen sind rot, Döner ist lecker, Koaxialkabelverbindungsstecker!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Jr112“ ()

    Welchen Datentyp


    Was genau meinst du mit Datentyp im Programm? Ich würde das ganze gern entweder in eine DataTable oder ein Datagridview ablegen, die erste option wäre mir natürlich lieber. jedoch komme ich da wie gesagt nicht wirklich weiter
    Rosen sind rot, Döner ist lecker, Koaxialkabelverbindungsstecker!
    ich meinte, und sagte auch nicht "Datentyp im Programm" (was keinen Sinn ergäbe), sondern "Datentyp deiner Tabelle".
    Den Begriff "Datentyp" sollte man schon verstehen - der ist ganz eindeutig, sowohl in PHP, als auch Sql, und natürlich auch in VB.net.
    Kurz gesagt: Jedes Objekt hat einen Datentyp - der Datentyp definiert die Art des Objekts.

    Egal - genug gestänkert - du gibst an, deine Tabelle solle den Datentyp DataTable oder DatagridView - das ist ja eine handhabbare Information.

    Nun verstehe ich nix von php, aber ich vermute, deine abgerufenen Daten landen als String (ein Datentyp!) in der Variable resultString - also der enthält dann:
    "Array ( [0] => Array ( [id] => 1 [username] => xxx [password] => xxx ) [1] => Array ( [id] => 2 [username] => test [password] => test ) )"
    Tja, sieht mir so aus, dass du einen Parser schreiben musst, der diesen php-result-String auslesen kann, und daraus zwei Datensätze bilden, mit jeweils den Properties username As String und password As String.

    Ich vermute, es gibt bereits fertige Parser für sowas, ansonsten wirds glaub ziemlich schwierig (ausser für @mrMo - der schüttelt solch aussm Ärmel).
    Wenn ich das lösen müsste, ich würde versuchen, diese php-Result-Syntax umzumodeln in einen Json-String.
    Für einen Json-String würde man Json-Serialisierung verwenden, um das Problem einigermassen elegant lösen können.

    Aber vorrangig lieber nach etwas suchen, was entweder das Ergebnis gleich als Json liefert, oder wenn das nicht geht nach einem (De-)Serializer für dieses php-Textformat.
    Müsste es ja eiglich geben.