2012-03-29 10 views
1

Ich versuche derzeit, eine ios-Anwendung zu erstellen, die Daten in einer relationalen Remote-Datenbank abrufen und speichern muss. Ich habe die Verwendung von RestKit für das Frontend untersucht, was angemessen erscheint. Ich habe Erfahrung mit mysql und PHP, obwohl ich nicht sicher bin, wo ich anfangen soll, einen Webserver zu bekommen, um Informationen zu senden, die nicht HTML sind. (php enhanced html, das ist)Back-End für iOS-App mit relationalen Datenbanken

Ich würde mich über jede Eingabe freuen, wo ich anfangen könnte. Danke im Voraus!

Antwort

0

Ich benutze PHP, um eine mySQL-Datenbank auf meinem Server abzufragen und die Antwort als XML zu formatieren, die ich dann in der APP analysiere. Hier ist ein PHP-Beispiel von meinem Server .... Dies sendet auch eine Größenantwort, damit die App den Download-Abschluss-Prozentsatz und eine Dateinamen-Antwort verfolgen kann. Wenn die Datenbank leer ist, wird auch ein Dummy-Datensatz gesendet.

<?php 
    header("Content-type: text/text"); 

//get the values from the url query string 
$user = $_GET['user']; 
$pass = $_GET['password']; 
$db = $_GET['database']; 
$dbhost = 'localhost'; 

//create connection to mysql or tell user something has gone wrong 
$connection = mysql_connect($dbhost, $user, $pass) or die('Could not connect to MySQL'); 
//select database or tell user something has gone wrong 
mysql_select_db($db) or die('Could not select database'); 


// Construct and run query. 
    $sql = 'SELECT * FROM itemInfo WHERE itemStatus = "active" ORDER BY itemSortKey ASC'; 
    //echo $sql; 
    $result = mysql_query($sql) or die('<result>fail</result>'); 

    $xml_output = "<?xml version=\"1.0\"?>\n"; 
    $xml_output .= "<bodyimage>\n"; 


    while($record = mysql_fetch_assoc($result)) { 
     $xml_output .= "\t<storeitems>\n"; 
     $xml_output .= "\t\t<itemSortKey>" . $record['itemSortKey'] . "</itemSortKey>\n"; 
     $xml_output .= "\t\t<itemDesc>" . $record['itemDesc'] . "</itemDesc>\n"; 
     $xml_output .= "\t\t<itemPrice>" . $record['itemPrice'] . "</itemPrice>\n"; 
     $xml_output .= "\t\t<productID>" . $record['productID'] . "</productID>\n"; 
     $xml_output .= "\t\t<field1>" . $record['field1'] . "</field1>\n"; 
     $xml_output .= "\t\t<field2>" . $record['field2'] . "</field2>\n"; 
     $xml_output .= "\t\t<field3>" . $record['field3'] . "</field3>\n"; 
     $xml_output .= "\t\t<field4>" . $record['field4'] . "</field4>\n"; 
     $xml_output .= "\t\t<dateCreated>" . $record['dateCreated'] . "</dateCreated>\n"; 
     $xml_output .= "\t\t<dateModified>" . $record['dateModified'] . "</dateModified>\n"; 

    // Escaping illegal characters 
    //$row['text'] = str_replace("&", "&", $row['text']); 
    //$row['text'] = str_replace("<", "<", $row['text']); 
    //$row['text'] = str_replace(">", "&gt;", $row['text']); 
    //$row['text'] = str_replace("\"", "&quot;", $row['text']); 
    //$xml_output .= "\t\t<text>" . $row['text'] . "</text>\n"; 

     $xml_output .= "\t</storeitems>\n"; 

     //add this record to the output 
     //$output = '|facilityname|' .$record['facilityname'] . '|/facilityname||customername|' . $record['customername'] . '|/customername||imageurl|' . $record['imageurl'] . '|/imageurl|'; 
     //print $output; 
    } 
    $xml_output .= "</bodyimage>"; 

    header("HTTP/1.0 200 OK"); 
    header('Content-type: text/xml'); 
    header('Content-Disposition: attachment; filename="storeitems.xml"'); 
    header("Content-Length: ".strlen ($xml_output)); 

    // redundent.....$xml_output .= "</bmrcontrol>"; 

    //echo strlen($xml_output); 
    //the next statement relates if there are NO lines in the table - it sends a message 
    if (strlen($xml_output) == 61) { 
     $xml_output = "<?xml version=\"1.0\"?>\n"; 
     $xml_output .= "<bodyimage>\n"; 

     $xml_output .= "\t<storeitems>\n"; 
     $xml_output .= "\t\t<itemSortKey>aaaa</itemSortKey>\n"; 
     $xml_output .= "\t\t<itemDesc>Store Items Missing</itemDesc>\n"; 
     $xml_output .= "\t\t<itemPrice>0.0</itemPrice>\n"; 
     $xml_output .= "\t\t<productID>blank</productID>\n"; 
     $xml_output .= "\t\t<field1>.</field1>\n"; 
     $xml_output .= "\t\t<field2>.</field2>\n"; 
     $xml_output .= "\t\t<field3>.</field3>\n"; 
     $xml_output .= "\t\t<field4>.</field4>\n"; 
     $xml_output .= "\t\t<dateCreated>2012-02-13 09:03:49</dateCreated>\n"; 
     $xml_output .= "\t\t<dateModified>2012-02-13 09:03:49</dateModified>\n"; 

     // Escaping illegal characters 
     //$row['text'] = str_replace("&", "&", $row['text']); 
     //$row['text'] = str_replace("<", "<", $row['text']); 
     //$row['text'] = str_replace(">", "&gt;", $row['text']); 
     //$row['text'] = str_replace("\"", "&quot;", $row['text']); 
     //$xml_output .= "\t\t<text>" . $row['text'] . "</text>\n"; 

     $xml_output .= "\t</storeitems>\n"; 
     $xml_output .= "</bodyimage>"; 
    } 

    echo $xml_output; 

    if(mysql_num_rows($result)) { 
     //mysql_close($connection); 
    } 
    else 
     die('<result>fail</result>'); 
     //mysql_close($connection); 
?>