2

PHP multi_queryとして以下を実現しようと考えていました。しかし、列の値を選択クエリから挿入および更新クエリに渡す方法を理解しようとしています。

$query = "SELECT tbl_links.link, link_id
                    FROM tbl_links
                    INNER JOIN tbl_items ON tbl_links.item_id = tbl_items.item_id
                    WHERE tbl_items.item_name like '".$items_name[$counter]."'
                                    AND NOT EXISTS (
                                            select link_id 
                                            from tbl_clickedlinks 
                                            where tbl_clickedlinks.link_id = tbl_links.link_id
                                            AND tbl_clickedlinks.cust_id = '$items_custID[$counter]'
                                            )
                    limit 0, 1;" ;
            $query .= "INSERT INTO tbl_claimedlinks (cust_id, link_id, claim_time) VALUES ('$items_custID', $row['link_id'], NOW()) ;";
            $query .= "UPDATE tbl_links SET click_count = click_count+1 where link_id = '$linkID' ;";*/

問題は、link_id 値を他のクエリに渡す方法がわからないことです。そのため、クエリを 1 つに再配置する必要があるかもしれないと考えていますが、それを実行する方法がわかりません。

誰にも何か提案がありますか?

4

1 に答える 1

1

最初に選択クエリを実行し、その出力を使用して2番目と3番目のクエリを実行する必要があります。

$query = "SELECT tbl_links.link, link_id
                    FROM tbl_links
                    INNER JOIN tbl_items ON tbl_links.item_id = tbl_items.item_id
                    WHERE tbl_items.item_name like '".$items_name[$counter]."'
                                    AND NOT EXISTS (
                                            select link_id 
                                            from tbl_clickedlinks 
                                            where tbl_clickedlinks.link_id = tbl_links.link_id
                                            AND tbl_clickedlinks.cust_id = '$items_custID[$counter]'
                                            )
                    limit 0, 1;" ;

$result = mysql_query($query);

while($row = mysql_fetch_array($result)) {
  $query2 = "INSERT INTO tbl_claimedlinks (cust_id, link_id, claim_time) VALUES ('$items_custID', $row['link_id'], NOW()) ;";
  $query3 = "UPDATE tbl_links SET click_count = click_count+1 where link_id = '$linkID' ;";*/

  mysql_query($query2);
  mysql_query($query3);
}
于 2013-05-24T21:30:30.583 に答える