-4

私は mysql テーブルを持っていcategoryます。必要な行に基づいてどのように印刷できますか。たとえば、6 行目または 4 行目を印刷したい場合、$row[6] または $row[4] のように配置します。cat_idcat_namecat_name

基本的. $_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) 

ただし、MysqlORDER 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 行が 1 レコードと見なされるため、すべての行を一度に 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 に答える