Gå til innhold

[SOLVED]SQL spørring fra iPhone


Anbefalte innlegg

Jeg har en iPhone app som skal gjøre en spørring til en MySQL database som ligger på nettet.

 

iPhonen skal scanne en barcode for så å sjekke barcoden opp mot min egendefinerte database på nettet.

 

 

Måten jeg tenkte å gjøre dette på var noe sånt no som denne:

 

www.site.com/generate.php?str=54491229

 

 

NSString *post =[NSString stringWithFormat:@”username=%@&password=%@”,usernameField.text, passwordField.text];

 

NSString *hostStr = @”THIS IS MY URL/iphonelogin-do.php?”;

hostStr = [hostStr stringByAppendingString:post];

NSData *dataURL = [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];

NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];

 

 

 

Denne(phpsiden) skulle da identifisere strekkoden (54491229) og gjøre en spørring til databasen som skal matche strekkoden med riktig row f.eks:

 

ID / Strekkode / Type / Navn / Kategori / Produsent / Utløpsdato

1 / 54491229 / NULL / Cola / Drikke / CocaCola / NEV0R

 

 

Vil da ha dette ut igjen i XML så jeg kan parse det videre til SQLite DBn innebygget i Appen.

 

Anyone som har peiling? ^_^

Endret av TekniskFeil
Lenke til kommentar
Videoannonse
Annonse

Akkurat nå trenger jeg hjelp til en SQL-spørring.

 

iPhonen POSTer en strekkode til f.eks $str

 

Vil så ha en SQL spørring som gjør noe slikt som dette:

 

 $rs = mysql_query("SELECT * FROM varer WHERE strekkode=$str",$connection) 
or die ("invalid query");  

 

men det funker vel ikke med variabler i spørringer? Har ikke fått testet det i praksis enda iom at obj C kodingen har tatt litt prioritet

Endret av TekniskFeil
Lenke til kommentar

Bruker denne fine lille snippeten for å generere XMLen. Noen tanker? (Denne har fortsatt ingenting om hvordan jeg skal forholde meg til inputen fra iPhonen)

 

 //XML output of an existing MySql database 
header("Content-type: text/xml"); 

//to create connection to database 
$connection = mysql_connect("localhost","root", "root") 
or die ("could not connect to database"); 

//to select the database here test is the sample database come with mysql
$db = mysql_select_db("test",$connection) 
or die ("Couldn't select database."); 

$rs = mysql_query("SELECT * FROM varer WHERE strekkode=$str",$connection) 
or die ("invalid query"); 

//count the no. of  columns in the table 
$fcount = mysql_num_fields($rs); 

//you can choose any name for the starting tag 
echo ("<result>"); 
while($row = mysql_fetch_array( $rs ) ) 
{ 
echo ("<tablerow>"); 
for($i=0; $i< $fcount; $i++) 
{ 
$tag = mysql_field_name( $rs, $i ); 
echo ("<$tag>". $row[$i]. "</$tag>"); 
} 
echo ("</tablerow>"); 
} 
echo ("</result>"); 
?> 

Lenke til kommentar

du forholder deg til GET input fra iPhonen på samme måte som du forholder deg til all annen input. Om den kommer fra iphone, pc, mac, android, firefox, chrome, brevduer, morsesignaler eller Jens Stoltenberg; er GET variablen, behandlingen og logikken akkurat det samme.

 

 

$str = mysql_real_escape_string($_GET['str']);

 

(legg merke til at mysql_real_escape_string bare funker etter at mysql_connect er kjørt)

 

http://www.tizag.com/phpT/postget.php

http://www.tizag.com/mysqlTutorial/mysql-php-sql-injection.php

Endret av Terrasque
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...