2011-01-07 5 views
2

私はPHPとMySQL(他の言語でも経験が豊富です)はかなり新しいです。基本的には、URLに記載されているidを基準にして行からデータをロードしたいとします。たとえば、相続人は私がこれまでに行うために管理してきたものphpに依存してMySQLからローをロードする?id = *

第三行を読み込む:この質問は、上万回を頼まれました、私はかなり確信してhttp://pastie.org/1436865

のが、「index.phpのID = 3の?」私はこれまで検索するどのような用語を知らないと、これまでに何かを見つけることができませんでした:S

おかげでみんな

+0

+1明確な質問のためにコードへのリンクがあります。私は今すぐすべてに答える時間はありませんが、あなたは '$ id =(int)$ _GET ['id'];'を使ってあなたのクエリー文字列からIDを得ることができます。がんばろう! –

+0

紳士と学者あなたは先生です:)それはそれをしました! – DexCurl

答えて

0

は、最も簡単な方法は、

$id = (int) $_GET['id'];; 
$result = mysql_query("SELECT * FROM tablename WHERE id=".$id); 
while($res = mysql_fetch_object($result)){ 
    echo $res->columnname; 
} 

ですもちろん、入力パラメータなどをチェックする必要があります。これはアプローチに過ぎません。

+0

php.netのmysql関数のドキュメントも読むことができます。たとえば、mysql_fetch_objectページはここにあります。http://php.net/manual/en/function.mysql-fetch-object.php – Igor

+0

または、SELECT * FROM likes OFFSETを使用することもできます。$ _GET ['id'] 'LIMIT 1?彼は3列目を賞賛しているので、私は彼が彼のテーブルにIDを保管しているかどうかわからない。 –

+0

ここでは不必要だと思われます –

1

一部id=3...クエリ文字列と呼ばれ、あなたは$_GET配列(PHP: Predefined Variablesを参照)を使用してアクセスすることができます。

目次:データベーステーブルの行には順序がないため、データベーステーブルから3行目を読み込むのは意味がありません(行のリストではなく、レコードのセットが適切ですこの場合の類推)。レコードは通常、いわゆるプライマリキーで識別され、データベーステーブルにプライマリキーがあることを確認する必要があります。

1

それとも、配列の代わりにオブジェクトを好むならば、このような何かしてみてください:

$query="SELECT * FROM table WHERE id=".(int)$_GET['id']." LIMIT 1"; 
$result=mysql_query($query); 

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    echo $row['column']; 
} 

か、インデックス付きの列

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
    echo $row[0]; 
} 

または両方(カラム名とインデックスを)好きなら:

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) { 
    echo $row[0].'-'.$row['column']; 
} 

行が1つだけ必要な場合は、これを使用することもできます。

$result = mysql_query("SELECT * FROM table WHERE id=".(int)$_GET['id']); 
$row = mysql_fetch_row($result); 
echo $row[0]; 
+0

なぜそれをすべて謝った? –

1

これらすべてのそれほど明確ではないが、作業の例をもとに、あなたは機能加えることができます。

function getRow($query){ 
    $res = mysql_query($query); 
    if (!$res) { 
    trigger_error(mysql_error." in ".$query); 
    return array(); 
    } 
    $row = mysql_fetch_assoc($res)); 
    if ($row) return $row; 
    return array(); 
} 

を、あなたのスクリプトにこのファイルを含め、その後、いくつかのライブラリファイルにそれを保存し、単一行で電話する

$data = getRow("SELECT * FROM tablename WHERE id=".intval($_GET['id'])); 

また、オズワルドのメモ、それは非常に重要です。ポジションがないので、行の相対的な位置に頼るべきではありません。 DB表はヒープであり、順序付きリストではありません。 特定の行に対応するために、特定の一意のフィールド値を使用します。それは行く方法です

関連する問題