2011-12-20 2 views
2

特定のカラム内に特定の入力を持つMySQLテーブル内のすべてのローをフェッチしようとしています。ここ は私のテーブルです:テーブルカラムの1つの特定の入力に基づいて複数のMySQLローをフェッチする

ID COLOR LENGTH 
--- ------- ------ 
19 red  10 
3 green 45 
24 blue 54 
4 red  3 
5 red  11 

がどのように私は"COLOR"列内に格納された値として"red"を持つすべての行をフェッチしますか?誰か助けてもらえますか?

私はMySQL/PHPの初心者ですので、これが愚かな質問であれば私を許してください。私はすべての上に見てみましたが、私はそれカジュアルwhere条件である

答えて

2

、私は適切なSQLのコーディングをお勧めしたいと思います。テーブルに存在するすべての列が必要な場合でも、必要なすべての列の名前を付けます。 SELECT * ...アプローチを使用しないでください。早ければ今日のように優れた慣行や習慣を開発:

SELECT ID, COLOR, LENGTH FROM table WHERE COLOR = 'red'; 

あなたは物事をPHPで行わ取得したいかの非常に基本的な例:ここでは

<?php 
# variables you will need. values below are mere examples only 
$server = 'localhost'; 
$database = 'databasename'; 
$username = 'username'; 
$password = 'password'; 

# create database connection 
try { 
    $pdodb = new PDO('mysql:host='.$server.';dbname='.$database, $username, $password); 
    $pdodb->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch (PDOException $ex) { 
    printf($ex->getMessage()); 
    exit; 
} 

# use prepared statements, for starters: 
$stmt = $pdodb->prepare("SELECT ID, COLOR, LENGTH FROM table WHERE COLOR = ?"); 
$stmt->bindValue(1, 'red') 
$stmt->execute(); 

# store each row into an array 
$resultset = array(); 
do { 
    $resultset[] = $onerow; 
} while ($onerow = $stmt->fetch(PDO::FETCH_COLUMN)); 

# to test your resultset: 
print_r($resultset); # use this only to display during debugging/testing 
?> 

は、あなたが始めるのに役立つことができます記事へのリンクがあります:

net.tutsplus

phpeveryday

phpro

+0

を取得するコードを記述

$result="mysql_query($query)"; 

を使用してクエリを実行

$query="select * from <table_name> where <column_name>=<your_input>"; 

を次のようにクエリを持つことができますこの非常に包括的な対応のために非常に多くの。私はコーディングでこれらのヒントを適用することを保証します。あなたが気にしないならば、私はまた別の質問をしています...上記のプロセスを適用して何千もの行を抽出するにはどのくらいの時間がかかりますか?何十万人くらい? MySQLはそのような仕事のための正しいデータベースですか?前もって感謝します! – tehnica

+0

Wolfgang、最初に(テーブルが既に設定されている場合には)テーブルとデータベースモデルのデータ構造を再評価するのが良いでしょう。検索のパフォーマンスを助ける 'index'というものがあります( 'SELECT ...')クエリなどがあります。まず、ここでは、データモデリングの基本的な理解を得るために読むことができます。これにより、基本的ではないにせよ、データの構造化の仕方を理解できるようになります。 [データモデリング101](http://www.agiledata.org/essays/dataModeling101.html)。特定のクエリを完了するために必要な時間を決定する方法は、 – Nonym

+0

に依存するものです。あなたが持っている行の量、場所のインデックス/制約、データベースとアプリケーションがホストされているハードウェアなど..また、ここでstackoverflowで検索を実行することもできます。興味深いものがたくさん載っていて、あなたはたくさんのことを学ぶでしょう。 – Nonym

0

に答えを見つけることができませんでした:

select * from thetable where color = 'red'; 
0

あなたはあなたのクエリ(documentation)にWHERE句を使用する必要があります。

SELECT * FROM table WHERE color = 'red'; // red ones 
SELECT * FROM table WHERE color != 'red'; // all but the red ones 
SELECT * FROM table WHERE color = 'red' OR color = 'blue'; // red and blue 
2

mysql_fetch_assoc(参照:http://de.php.net/mysql_fetch_assoc)を参照してください。最初の例は、必要なすべての情報を提供します。

SQLがで交換する必要がある:あなたが初心者だので

SELECT * FROM yourtable WHERE color = 'red' 
0

あなたは今、彼らはありがとうAtlastは、すべてのデータ

while($row = mysql_fetch_array($result)){ 
    //do your operations here i'll store it in array 
    $arr[]= array("<colum-name"=>$row['<column-name'],....); 
} 
関連する問題