0

<div>3 つの隣接するコンテナーにある 3 つの個別のクエリの結果を表示しようとしています。3 つのクエリは次のとおりです。

$query="SELECT * FROM students WHERE WeekOne='employer'";
$query="SELECT * FROM students WHERE WeekTwo='employer'";
$query="SELECT * FROM students WHERE WeekThree='employer'";

望ましい出力:

1週目 ----- 2週目 ----- 3週目

結果 1 ---------- 結果 1 ----------- 結果 1

結果 2 ---------- 結果 2 ----------- 結果 2 (など...)

誰でもこれで私を助けることができますか? PHP マニュアルで multi_query を見たことがありますが、これを実装する方法がわかりません。どうもありがとう。

@エマニュエルG

<?

$user = "xx";
$user_password = "xx";
$db_name = "xx";
$db = new mysqli ("xx", $user, $user_password, $db_name);

$queries = array(
    "SELECT * FROM students WHERE WeekOne='$Name'",
    "SELECT * FROM students WHERE WeekTwo='$Name'",
    "SELECT * FROM students WHERE WeekThree='$Name'"
);

// iterate through the queries and their results
foreach($queries as $query){
    $result = $mysqli->query($query);
    echo '<div>'; // open that div up
    while($row    = $result->fetch_assoc()){       // gives u an array hoorah!
        echo '<pre>'.print_r($row, true).'</pre>'; // just to look at it
        echo "<p>{$row['FirstName']}</p>";              // just an example
    }
    echo '</div>'; // close it up
}

?>
4

4 に答える 4

0

表示するには、個々の結果を繰り返し処理し、それを div に配置します。それらを隣接させるには、div に css を追加してフロートさせます。これは、div は本質的にブロック要素であり、助けがなければ水平方向に整列しないためです。

すでにデータベース接続が設定されており、mysqli などを使用する必要があると仮定すると、次のようにマークアップを生成できます。

// u should try to make this one query but that's irrelevant to the question 
// so I'll leave that to you to do later
$queries = array(
    "SELECT * FROM students WHERE WeekOne='employer'",
    "SELECT * FROM students WHERE WeekTwo='employer'",
    "SELECT * FROM students WHERE WeekThree='employer'"
);

// iterate through the queries and their results
foreach($queries as $query){
    if($result = $mysqli->query($query)){// only do stuff if you get a result
        echo '<div>';                                  // open that div up
        while($row = $result->fetch_assoc()){          // gives u an array hoorah!
            echo '<pre>'.print_r($row, true).'</pre>'; // just to look at it
            echo "<p>{$row['data']}</p>";              // just an example
        }
        echo '</div>';                                 // close it up

        // mysqli free the result to prep for the next one
        $result->free();
    } else {
        echo "Query failed to return results:\n$query\n";
    }
}
于 2012-06-20T13:06:19.047 に答える
0

はい、クエリを変更して 1 回のクエリ リクエストですべての結果を取得してから、データ結果から操作します。クエリは非常に単純であるため、サーバーへの単純な回答のために複数回ヒットすることはベスト プラクティスではありません。

しかし、あなたの質問のために

multi_query($query)  //you can use this

ここを見てください http://suite101.com/article/how-tor-run-multiple-mysql-queries-with-php-a105672

于 2012-06-20T12:58:11.043 に答える
0

最も簡単な方法は、クエリを次のように変更することです。

$query="SELECT * FROM students WHERE WeekOne='employer' OR WeekTwo='employer' OR WeekThree='employer'";

そして、それに応じて出力をフォーマットします。

于 2012-06-20T12:55:04.453 に答える
-1

雇用主を URL パラメーターとして渡していると推測しているので、どちらの方法でもweek、比較したいものを渡すこともできます。

$week = $_GET['weekOne'];
$employer = $_GET['employer'];

$query="SELECT * FROM students WHERE $week= $employer";

escapeSQLインジェクションを避けるために、クエリを実行する前にデータを確認してください

それがあなたを助けることを願っています。ありがとう

于 2012-06-20T13:00:32.367 に答える