0

「顧客」と「ユーザー」の2つのテーブルがあります。

顧客テーブルには、「名前」というタイトルの列があります。これにはすべての顧客名があります。

私のユーザー テーブルには、「管理」というタイトルの列があります。これには特定の顧客名があります。

「管理」に「名前」の顧客が含ま ている場合、コンテンツを表示しようとしています。

ここに例があります...

「name」には、顧客「applebees」、「johnny carinos」、および「pizza hut」が含まれています。

ユーザーrickさんは「applebees」と「pizza hut」を「運営」しています。彼の行/列では、"applebees,pizza hut" のように見えます (私は implode 関数を使用しているため、"," があります)。

それで、私の顧客ページで、リックにアップルビーとピザハットを見てもらいたいのです。彼はそれを管理していないので、私は彼にジョニー・カリノスに会わせたくありません.

これどうやってするの?preg match と strpos を試しましたが、惨めに失敗しました。(私はまだphpに慣れていません)。値が 1 つの場合ははるかに簡単なので、値 = 値を設定するだけです。残念ながら、「管理」に複数の値を設定すると、本当に混乱してしまいます。

これが理にかなっていることを願っています。助けてくれてありがとう!

これが私が今持っているものです(はい、知っています、おそらくひどく間違っています。)

<?php


$sql = "SELECT * FROM customers";
$result = mysql_query($sql);
        $thecust = $_SESSION['user']['managing'];
    $thecustomers = htmlentities($row['name']);


    $check = strprk(wing, $thecust);
    if ($check) {

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

    <tr> 
        <td><?php echo "<a href='customer.php?id=" . $row['id'] . "'>" . $row['name'] . "</a>"?></td> 
        <td><?php echo htmlentities($row['contact_name'], ENT_QUOTES, 'UTF-8'); ?></td> 
        <td><?php echo htmlentities($row['contact_number'], ENT_QUOTES, 'UTF-8'); ?></td> 
        <td><?php echo htmlentities($row['contact_email'], ENT_QUOTES, 'UTF-8'); ?></td> 
    </tr> 

<? } ?>
4

1 に答える 1

0

答えは、データベース スキーマとクエリの方法にあります。あなたは実際にDBテーブルの構造を理解していませんでしたが、このようなものを使用することをお勧めします

users
-------
user_id INT, autoincrement, PRIMARY KEY
user_name VARCHAR
[other user-specific fields]

users_to_customers
-------
user_id INT
customer_id INT
[compound primary key across both fields]

customers
-------
customer_id INT, autoincrement, PRIMARY KEY
customer_name VARCHAR
[other customer specific fields]

ここには 3 つのテーブルがあることに注意してください。これにより、任意の数のユーザーを任意の数の顧客に関連付けることができます。探している情報を取得するためにuser_id、顧客ページを表示しているユーザーを知っていると仮定しましょう。クエリは次のようになります

SELECT c.customer_id, c.customer_name, [whatever other fields you need]
FROM users AS u
INNER JOIN users_to_customers AS uc
INNER JOIN customers AS c
WHERE u.user_id = ? [the user_id of the user viewing the page]

これにより、ユーザーに関連する顧客の顧客情報が得られます。


また、関数は非推奨であるため、使用しないでmysql_*ください (PHP.net ドキュメントの大きな赤い警告に注意してください)。おそらく mysqli_* 関数を使用します。

于 2012-12-08T00:48:51.060 に答える