-4

我有一个 mysql 表,category在这个表里面可以说我有几行 0 到 7,在表里面我有cat_idcat_name。我如何能够cat_name根据我想要的任何行打印出来。例如,我想打印第 6 行或第 4 行,我会把它写成 $row[6] 还是 $row[4]

基本上我想用. $_GET['rownumber']它来获取行号,然后用它来打印出行。那么它会像这样工作$row[$_GET['rownumber']]吗?我只是想在这里学习 mysql 有点困惑。

我基本上想打印cat_name我在php中选择的那一行

4

3 回答 3

2

这是如何根据行号获取行:

SET @rownum = 0; 
Select sub.*, sub.rank as Rank
FROM
(
   Select *,  (@rownum:=@rownum+1) as rowNum
   FROM   Categories
) sub
WHERE rowNum IN (4, 6) 

但是,Mysql 有一个内置函数ORDER BY LIMIT来执行此操作。

于 2012-10-27T07:45:18.100 回答
0
$my_categories = mysql_real_escape_string($_GET['categories']); // where categories can take values as 1 or 1,2,3

$query = "SELECT cat_id, cat_name 
          FROM categories 
          WHERE cat_id 
            IN (" . $my_categories . ")";

$sql = mysql_query($query);
if(mysql_num_rows($sql) != 0) {
   while($row = mysql_fetch_array($sql)) {
      echo $row['cat_name'];
   }
}
于 2012-10-27T07:45:49.503 回答
0

这里有几件事在起作用。

1)你说你正在尝试学习mysql。如果你知道你想要的数据,那么你需要运行一个 sql 查询来获取你需要的所有数据,并且只获取你需要的数据。您可以使用 WHERE 子句过滤所需的数据。谷歌“mysql where”以获得更多帮助。

2)您需要了解数据库是如何工作的以及 php 如何处理它们。你可以把它们想象成行,每一行都有特定的列(很像电子表格)。现在使用 php,最常见的事情是一次遍历所有行,因为 1 行被认为是一条记录。php(通常)将每一行作为关联数组(由关键字索引)处理。这些行通常使用迭代器对象(不可索引)进行迭代。为此(使用已弃用的 mysql 库——我对当前的 mysqli 库不够满意)请执行以下操作:

$query = "SELECT * FROM table";
$result = mysql_query($query);
//iterate over all rows one at a time.
while ($row=mysql_fetch_array($result)){
    if($row["isDesiredRecord"]==true){
        echo $row["fieldName"]; //print whatever data you need from that row.
    }
}
于 2012-10-27T07:48:18.420 回答