2012-01-27 10 views
-1

私が抱える問題は、次の変数をエコーまたは印刷すると、受け取るデータは自分のテーブルにリストされている最後のビジネスのデータだけです。クエリで1つのデータセットのみが返されるのはなぜですか?

現在のところ、私がクリックしたリストに関係なく、返された最後のビジネスの同じデータセットが得られます。

以下のコードでわかるように、関連するビジネスプロファイル情報を検索するために、クリックしたリストのbusiness_nameをクエリに渡しています。

$business_name = mysql_real_escape_string($_GET['business_name']); 

$query = "SELECT 
business_id, 
category, 
years_recommended, 
profile_size, 
business_name, 
established, 
employees, 
service, 
strengths, 
ideal_for, 
reassurance 

FROM 
business_data 

WHERE 
business_name = '$business_name' 

AND 
profile_size = 'A' 

OR 
profile_size = 'B' 

OR 
profile_size = 'C' 

OR 
profile_size = 'D' 

OR 
profile_size = 'E'"; 

$result = mysql_query($query, $dbc) 
or die (mysql_error($dbc)); 

while($row = mysql_fetch_array($result)) { 

$business_id = $row["business_id"]; 
$profile_size = $row["profile_size"]; 
$category = $row["category"]; 
$years = $row["years_recommended"]; 
$established = $row["established"]; 
$employees = $row["employees"]; 
$service = $row["service"]; 
$strengths = $row["strengths"]; 
$ideal_for = $row["ideal_for"]; 
$reassurance = $row["reassurance"]; 
} 

echo... 

詳細情報が必要な場合はお知らせください。

私のコードに問題はありますか?

事前に感謝します。

+0

下の表は少しひどいです。私は努力していないのではない。 –

答えて

7

あなたのecho呼び出しはフェッチループの外にあるので、他のものが返されても最後の結果しか表示されません。

while($row = mysql_fetch_array($result)) { 

    $business_id = $row["business_id"]; 
    $profile_size = $row["profile_size"]; 
    $category = $row["category"]; 
    $years = $row["years_recommended"]; 
    $established = $row["established"]; 
    $employees = $row["employees"]; 
    $service = $row["service"]; 
    $strengths = $row["strengths"]; 
    $ideal_for = $row["ideal_for"]; 
    $reassurance = $row["reassurance"]; 

    // Echo **inside** the loop 
    echo... 
} 

ご希望の場合は、必要に応じて、あなたが、その後、スクリプト内のどこにでも、その後に使用することができます大規模な配列、のように何回もすべての結果を保存することができます

// Array for all results 
$results = array(); 
while($row = mysql_fetch_array($result)) { 
    // Append each row fetched onto the big array 
    $results[] = $row; 
} 
// Now use it as needed: 
foreach ($results as $r) { 
    echo $r['profile_size']; 
    print_r($r); 
} 
+0

ありがとうございます。 komodoで構文エラーが発生する理由がありますか?エコー後に中括弧を動かすと赤い下線が引かれます。 –

+0

@RichardBellあなたの 'echo'呼び出しの後に何もない場合、上記の' echo..'のみです。これは構文エラーです。実際の文 'echo $ row ['profile_size'];を使用するとエラーは発生しません。 –

+0

'echo $ row ['profile_size'];を実装すると、変数にはターゲットのプロファイルサイズだけでなく、すべてのプロファイルサイズが含まれます。私はさらにこれを見なければならないと思います。 'business_name'が' profile_size'にマッチする結果が1つだけあります。あなたのご意見ありがとうございます。 –

1

あなたの反響がどうあるべきループの内側

関連する問題