0

2つのテーブルがあります。1つはユーザーステータスコンテンツを保持し、もう1つはユーザーを保持します。ストリームデータ内の特定のストリームアイテムのユーザーレコードを取得するために、ユーザーのクエリを作成するにはどうすればよいですか?現時点では、ユーザーテーブルの一番上にいるユーザーを取得するだけです。

$check = "SELECT streamitem_id, streamitem_timestamp, streamitem_content FROM streamdata WHERE streamitem_creator="$user1_id." AND streamitem_id=".$last." AND streamitem_type_id=1 ORDER BY streamitem_timestamp DESC";
$check1 = mysqli_query($mysqli,$check);
$resultArr = mysqli_fetch_array($check1);
$json['streamitem_id'] = $resultArr['streamitem_id'];
$json['streamitem_timestamp'] = Agotime($resultArr['streamitem_timestamp']);
$json['streamitem_content'] = $resultArr['streamitem_content'];
mysqli_free_result($check1);


$check = "SELECT * FROM users";
$check1 = mysqli_query($mysqli,$check);
$resultArr = mysqli_fetch_array($check1);
$json['username'] = $resultArr['username'];
$json['id'] = $resultArr['id'];
$json['first'] = $resultArr['first'];
$json['middle'] = $resultArr['middle'];
$json['last'] = $resultArr['last'];
mysqli_free_result($check1);


-- Table structure for table `streamdata`
--

    CREATE TABLE IF NOT EXISTS `streamdata` (
      `streamitem_id` int(11) NOT NULL auto_increment,
      `streamitem_type_id` int(11) NOT NULL,
      `streamitem_creator` int(11) NOT NULL,
      `streamitem_target` int(11) NOT NULL,
      `streamitem_timestamp` datetime NOT NULL,
      `streamitem_content` varchar(5000) NOT NULL,
      PRIMARY KEY  (`str

    eamitem_id`)
        ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1953 ;


    -- Table structure for table `users`
    --

    CREATE TABLE IF NOT EXISTS `users` (
      `id` int(11) NOT NULL auto_increment,
      `first` varchar(64) NOT NULL,
      `middle` varchar(64) NOT NULL,
      `last` varchar(64) NOT NULL,
     `username` varchar(64) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=150 ;
4

1 に答える 1

1

特定のストリームアイテムのユーザーの詳細とストリームの詳細を取得するためのクエリ:

$check = "
SELECT * FROM users u 
INNER JOIN streamdata s ON
    (s.streamitem_creator = u.id AND s.streamitem_id = {$last})";

生の変数値をクエリに挿入することは悪い習慣であることに注意してください。特にユーザー入力からのものである場合。mysqli_real_escape_stringを調べるか、プリペアドステートメントを使用してみてください。

于 2012-08-30T11:54:58.277 に答える