0

$links に値を投稿する複数の選択リスト (リンク) があります。次に、$links の値と一致するレコードを返すテーブル 'link' でクエリを実行したいと考えています。次のコードを使用していますが、結果が得られません。

<select name="links[]" size="9" multiple="multiple" id="links">
            <?php 
$query = mysql_query("SELECT * from link ORDER BY link_title ASC");
for($i=0;$i<mysql_num_rows($query);$i++) {
$row=mysql_fetch_assoc($query);
?>
            <option value="<?php echo $row['link_pk']; ?>"><?php echo $row['link_title']; ?></option>
            <?php 
}
?>
          </select> 

そして提出コード:

$author_pk = $_GET['author_pk'];
$title = $_POST['title'];
$topic_introduction = $_POST['topic_introduction'];
$selected_topic = $_POST['selected_topic'];
$links = $_POST['links'];
$majors = $_POST['majors'];
$majors_string = implode(",", $majors);
$sub_discipline = $_POST['sub_discipline'];




 if(isset($_POST['submit'])){

$query_links = "SELECT * FROM link WHERE link_pk IN ('.implode(',',$links).')";
 $result_links = mysql_query($query_links, $connection) or die(mysql_error());
 while ($row_links = mysql_fetch_assoc($query_links)){
     $topic_links = array();
     $topic_links[$row_links['url']] = $row_links;

     } if($result_links){

$topic = $topic_introduction . '<p>' . $topic_links;

        $query = "INSERT INTO topic (topic_pk,title,topic,majors,sub_discipline_fk,author_fk,created)
          VALUES ('','$title','$topic','$majors_string','$sub_discipline','$author_pk',NOW())";
        $result = mysql_query($query, $connection) or die(mysql_error());
        if($result){
            $message = "- The topic '" . $title . "' has been created";
        }
     }
}
4

1 に答える 1

-1

この行は間違っています:

while ($row_links = mysql_fetch_assoc($query_links)){

... $query_links は実際には文字列 (SQL クエリ) であるためです。代わりに $result_links を使用してください。

また、$query_links 文字列が正しく定義されていません。最初に使用する文字列リテラルの最後には、同じ区切り文字を使用する必要があります。それ以外の:

$query_links = "SELECT * FROM link WHERE link_pk IN ('.implode(',',$links).')";

試す:

$query_links = 'SELECT * FROM link WHERE link_pk IN (' . implode(',', $links) . ')';
于 2013-02-01T02:15:06.003 に答える