MySQL好奇怪喔= =

先貼原始碼

變數說明在底下

<?

$sql_singer="select * from singer where singer = '$singer'";

$RS_singer=mysql_query($sql_singer); //執行

$add_singer=mysql_num_rows($RS_singer);//總計函數

if ($add_singer==1) //如果沒資料就新增

  {

    $sql_singer="select * from singer where singer = '$singer'";

    $RS_singer=mysql_query($sql_singer); //執行

    $record_singer=mysql_fetch_row($RS_singer); //取出ㄧ筆資料

    $singer_index=$record_singer[0]; //陣列轉成變數

  }

  else

  {

    $add_singer="insert into singer values (null, '$singer')"; //新增歌手

    $RS_add_singer=mysql_query($add_singer); //執行

    $record_add_singer=mysql_fetch_row($RS_add_singer); //取出ㄧ筆資料

    $singer_index=$record_add_singer[0]; //陣列轉成變數

  };

echo "$singer_index";

?>

資料庫連結有了,所以不說明了

singer 為資料表,儲存歌手名子,裡面欄位有 singer_index, singer

singer_index 儲存歌手的索引值

singer 存儲歌手

$singer 為歌手名子,由上頁傳過來的

我的流程是這樣

由上頁將歌手名子傳過來,如果資料庫裡面有同樣歌手,直接取該歌手的索引值,將陣列轉成變數

如果沒有歌手名子,則新增歌手名子,新增完後,取該歌手的索引值,將陣列轉成變數

可是,我在新增完後卻出現

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in h:\appserv\www\music_list\add_music\run_add.php on line 17

要按一下"重新整理",才會出現該歌手的索引值

為什麼?

已更新項目:

改成這樣就可以了- -

真的好奇怪...

$sql_singer="select * from singer where singer = '$singer'";

$RS_singer=mysql_query($sql_singer); //執行

$run_singer=mysql_num_rows($RS_singer);//總計函數

if ($run_singer!=1) //如果沒資料就新增

  {

    $add_singer="insert into singer values (null, '$singer')"; //新增歌手

2 個已更新項目:

    $RS_singer=mysql_query($add_singer); //執行

  }

$sql_singer="select singer_index from singer where singer = '$singer'";

$RS_singer=mysql_query($sql_singer); //執行

$record_singer=mysql_fetch_row($RS_singer); //取出ㄧ筆資料

$singer_index=$record_singer[0]; //陣列轉成變數

1 個解答

評分
  • 1 0 年前
    最佳解答

    呈現Warning: mysql_fetch_row()

    可能是SQL語法有問題

    你看看SQL語法是否正確

還有問題?馬上發問,尋求解答。