Php 如何获取行索引?
我有一个数据库表:Php 如何获取行索引?,php,sql,Php,Sql,我有一个数据库表: ID name 15 name1 27 name2 39 name3 我需要为这些行分配索引,比如:name1应该有索引0,name2-索引1,name3-索引2: ID name index 15 name1 0 27 name2 1 39 name3 2 我试着用cycle来做: $sub = $wpdb->get_results("SELECT t.* FROM $wpdb->terms AS t, $wpdb->term_tax
ID name
15 name1
27 name2
39 name3
我需要为这些行分配索引,比如:name1应该有索引0,name2-索引1,name3-索引2:
ID name index
15 name1 0
27 name2 1
39 name3 2
我试着用cycle来做:
$sub = $wpdb->get_results("SELECT t.* FROM $wpdb->terms AS t, $wpdb->term_taxonomy AS tt WHERE tt.parent = $termID AND tt.term_id = t.term_id ");
$i=-1;
foreach ($sub as $key) {
$i++;
$number[$i]=$i;
}
这个循环的结果是:
$number[0]=0;
$number[1]=1;
$number[2]=2;
现在,我有一行,例如,
ID
是27。如何获取此行的索引?(应为1)您可以将foreach用作:
foreach ($sub as $key => $value) {
}
其中$key是您想要的索引。我自己不使用wordpress,但我建议您尝试以下操作,看看发生了什么:
$sub = $wpdb->get_results("SELECT t.* FROM $wpdb->terms AS t, $wpdb->term_taxonomy AS tt WHERE tt.parent = $termID AND tt.term_id = t.term_id ");
$i=-1;
foreach ($sub as $key) {
print_r($key);
}
这将打印出您从查询返回的数据,以便您可以决定如何处理它。如果您仍然无法将结果发布到此处。您不需要行索引,请将其存储在数据库中。在设置MySQL db结构以进行自动递增时,有一个特殊的标志。并没有办法在数据库中获取行索引,因为并没有行索引,所以在数据库查看器中看到的所有数据都只是不带参数的搜索结果。若您真的需要它,那个么只需获取表中的所有数据并手动获取它的行id,如ign所说。(使用foreach键和值)您的问题似乎与SQL无关。与SQL一样,如果您已经拥有
id
(27),那么您将使用该id,而不是索引值
因此,我假设,当用户提供id
值时,您希望在PHP中找到合适的行。因此,您的问题是如何在无序数组中查找记录
- 您可以循环浏览所有记录,直到找到匹配项
- 您可以创建与索引id匹配的有序集(如二叉树)
- 您可以创建一个将id与索引匹配的哈希表
SET @rowId :=0;
SELECT @rowId := @rowId + 1 as rowid , fieldName from tableName
为什么需要行索引,为什么应该在数据库中?在RDBMS中,表是一组行,而不是一个有序的集合。因此,想要一个不变的行顺序可能会导致事后的意外。如果需要自然顺序,请使用自动递增主键。