0

我正在尝试从 PHPMyAdmin 检索数据并尝试将数据显示到选择器更改中......这是我的代码 var currentWin = Ti.UI.currentWindow;

 var sendit = Ti.Network.createHTTPClient();
 sendit.open('GET', 'http://localhost/mobileapp/productread.php');
 sendit.send();
  sendit.onload = function(){
 var json = JSON.parse(this.responseText);

 var json = json.mobile_product;

 var picker = Ti.UI.createPicker();
  // turn on the selection indicator (off by default)
 picker.selectionIndicator = true;

 var data = [];
  var pos;
 data.push (Ti.UI.createPickerRow({title:''+ json[pos].product_name +      '',custom_item:'b'}));
 }
 picker.add(data);
 currentWin.add(picker);



//var rw = db.execute("SELECT product_name, SUM(product_quantity)FROM mobile_product   GROUP BY product_name");

picker.addEventListener('change', function(e){
 var sendit = Ti.Network.createHTTPClient();
sendit.open('GET', 'http://localhost/mobileapp/orderread.php');
sendit.send();


sendit.onload = function(){
var json = JSON.parse(this.responseText);

var json = json.mobile_product;
 var pos;
var product_name = json[e.rowIndex];
 for (pos=0; pos < json.length; pos++) {

alert(''+json[pos].orders + '');
}
}
})
 }

在这里,当我更改选择器时,警报会显示列(订单)的所有值以进行一次更改...如果我将选择器更改为下一个,则警报会再次出现在列中的所有数据中。例如,如果我在列(顺序)中有 10 个值,并且如果我更改选择器值,则警报出现 10 次,有 10 个值。我想根据选择器中的更改显示列中的值... . 我已经从 PHPMyAdmin 中为选择器检索了数据(产品名称)...当我更改选择器时,我希望显示该特定名称的值....我正在使用查询 SELECT SUM(product_quantity) As orders FROM PHP文件中的mobile_product GROUP BY product_name ..我的PHP文件是

<?php
//cust-mysql-123-04
$link = mysql_connect('localhost', 'root', '');
 if (!$link) {
die('Not connected : ' . mysql_error());
}
// make foo the current db
$db_selected = mysql_select_db('mobileapp', $link);
if (!$db_selected) {
die ('Can\'t use  : ' . mysql_error());
}
// Set the default namespace to utf8
mysql_query("SET NAMES 'utf8'");
if($result = mysql_query("SELECT SUM(product_quantity) As orders FROM mobile_product     GROUP BY product_name")) {
//echo mysql_num_rows($result);
  while ($row=mysql_fetch_array($result)) {
   // $json.= "<li>".$row['first_name']."</li>";
    $json[]=array(
    'orders'=>$row['orders']
    );
 }
}
echo json_encode(array( 'mobile_product'  =>   $json ));

mysql_close();
?>
4

1 回答 1

0

您必须在 SQL 查询中包含不同的值。目前,似乎只有一个聚合函数 SUM(),一个静态 GROUP 语句,仅此而已。这将始终返回相同的值。

您还返回了一个不同的列集,然后您可能期望使用 as orders alius。

如果您希望返回不同的集合,则需要组装不同的 SQL SELECT 语句。

考虑以下文件:

  1. 这是如何在 php 中针对 MySQL 准备和执行 SQL 语句
  2. 此函数将清除您传递给它的变量中的许多问题
  3. 最后,您在 Titanium 中使用此方法构建请求。

  4. 您可能还希望查看以下有关形成和使用 GET 请求的文档

于 2013-03-07T05:17:19.573 回答