2015-03-06 3 views
1

У меня есть приложение iOS, которое должно получать данные JSON из базы данных MySQL, используя строку с параметрами и скриптом PHP. Строка выглядит так: NSString * getDataURL1 = [NSString stringWithFormat: @ "http://myhost.com/jsoncar.php?carOne=%@", _carOneToServer]; где _carOneToServer - строка содержит определенную модель автомобиля, которую пользователь выбрал в моем приложении, например «AUDI A3 1.8TFSI». В базе данных MySQL у меня точно такая же модель автомобиля.Как получить данные из mySQL с помощью строки с параметрами?

PHP-скрипт должен проверять соответствие моделей между запросами ULR и базой данных MySQL и возвращает параметры для этой модели автомобиля.

До сих пор я написал код, но он возвращает []. Я понимаю, что мне нужны переменные для работы, но я не знаю PHP, поэтому вам нужна ваша помощь. Спасибо.

PHP скрипт:

$host = "localhost"; //Your database host server 
$db = "MyDataBase"; //Your database name 
$user = "user"; //Your database user 
$pass = "password"; //Your password 


$connection = mysql_connect($host, $user, $pass); 
//Check to see if we can connect to the server 
if(!$connection) { 
die("Database server connection failed."); 
} else { 
    //Attempt to select the database 
    $dbconnect = mysql_select_db($db, $connection); 

    //Check to see if we could select the database 
if(!$dbconnect) { 
    die("Unable to connect to the specified database!"); 
    } else { 


     if (isset($_GET['carOne'])) { 

    $carModel = $_GET[carOne]; 

     $query = "SELECT carFuelEconomy, carPurchasePrice FROM cars 
    WHERE carModel = $carModel"; 
     $resultset = mysql_query($query, $connection); 
     $records = array(); 

//Loop through all our records and add them to our array 
    while($r = mysql_fetch_assoc($resultset)) { 
     $records[] = $r; 
     } 
//Output the data as JSON 
echo json_encode($records); 
} 
} 
} 

MySQL базы данных:

CREATE TABLE cars 
(

id INT PRIMARY KEY NOT NULL auto_increment, 
carModel VARCHAR(255), 
carFuelEconomy int, 
carPurchasePrice int, 
distanceTraveledDaily int, 
lenghtOfOwnership int 

); 

-- Insert data into our table 

INSERT INTO cars(carModel, carFuelEconomy, carPurchasePrice, distanceTraveledDaily, lenghtOfOwnership) 
VALUE ('AUDI A3 1.8TFSI', 27, 30795, 30, 76); 

INSERT INTO cars(carModel, carFuelEconomy, carPurchasePrice, distanceTraveledDaily, lenghtOfOwnership) 
VALUE ('AUDI A3 2.0TDI', 36, 33495, 30, 76); 

INSERT INTO cars(carModel, carFuelEconomy, carPurchasePrice, distanceTraveledDaily, lenghtOfOwnership) 
VALUE ('AUDI A3 2.0TFSI', 33, 34095, 30, 76); 
+0

изменение $ carModel = $ _GET [Carone]; до $ carModel = $ _GET ['carOne']; –

+0

Не забудьте проверить мой ответ как правильный ;-) –

ответ

0

У вас есть 2 ошибки, изменить это:

$carModel = $_GET[carOne]; 
$query = "SELECT carFuelEconomy, carPurchasePrice FROM cars 
WHERE carModel = $carModel"; 

для этого:

$carModel = $_GET['carOne']; 
$query = "SELECT carFuelEconomy, carPurchasePrice FROM cars 
WHERE carModel = '$carModel'"; 

EDIT. Код завершения (1.php):

<?php 

$host = "localhost"; //Your database host server 
$db = "YourDataBase"; //Your database name 
$user = "YourUser"; //Your database user 
$pass = "YourPass"; //Your password 


$connection = mysql_connect($host, $user, $pass); 
//Check to see if we can connect to the server 
if(!$connection) { 
die("Database server connection failed."); 
} else { 
    //Attempt to select the database 
    $dbconnect = mysql_select_db($db, $connection); 

    //Check to see if we could select the database 
if(!$dbconnect) { 
    die("Unable to connect to the specified database!"); 
    } else { 


     if (isset($_GET['carOne'])) { 

$carModel = $_GET['carOne']; 
$query = "SELECT carFuelEconomy, carPurchasePrice FROM cars 
WHERE carModel = '$carModel'"; 

     $resultset = mysql_query($query, $connection); 
     $records = array(); 

//Loop through all our records and add them to our array 
    while($r = mysql_fetch_assoc($resultset)) { 
     $records[] = $r; 
     } 
//Output the data as JSON 
echo json_encode($records); 
} 
} 
} 

?> 

В вашем браузере:

http://localhost/1.php?carOne=AUDI%20A3%201.8TFSI

Выход:

[{"carFuelEconomy":"27","carPurchasePrice":"30795"}] 
+0

Спасибо, попробуй! –

+0

@SergeyZ Я тестирую его, и он работает, не забудьте проверить правильность. –

+0

Обновление: получена ошибка «Предупреждение: mysql_fetch_assoc() ожидает, что параметр 1 будет ресурсом, boolean задан в /home/xsdadmin/public_html/jsoncar.php в строке 32 []« –

0

Попробуйте удалить соединение с при вызове запроса. Например,

$resultset = mysql_query($query); 

вместо:

$resultset = mysql_query($query, $connection); 
+0

Спасибо, попробуй! –