0

PHP初心者はこちら

「トピック」と呼ばれる mysql テーブルがあり、フォームからの結果に基づいてページのテーブルから情報を取得しています (GET を介した URL)。

URL が存在しない場合は、テーブルが URL からトピック名を入力して新しいエントリを作成できるようにしたいと考えています。

$topic_name は、新しい topicname フィールドに入れるものです

これまでの私のコード:

            $topic_name = strtolower(mysql_real_escape_string($_GET['t']));

//look for info
$topic_info = mysql_query("SELECT * FROM topics WHERE topicname = '$topic_name' LIMIT 1");

if (mysql_numrows($topic_info)<=0) {
//insert record
$SQL='insert into topics (topicname) values ("'.$topic_name.'")';
mysql_query($SQL);
$t_desc='NEW TOPIC : '.$topic_name;
} 
else {
//do as normal (without unnessecary loop)
$g=mysql_fetch_array($topic_info);

$t_desc = $g['desc'];               
}    

編集: 申し訳ありませんが、うまく説明できていないと思います。結果はフォームからの GET によるものなので、url.com/topic?=BLAH

何とかフィールドが存在しない場合に作成したいフィールドの名前になります。

テーブルには自動インクリメント 'ID' (主キー) があります

4

2 に答える 2

2

あなたが正しいことを理解していれば:

$topic_name = (isset($_GET['t'])) ? strtolower(mysql_real_escape_string($_GET['t'])) : '';

//look for info
$topic_info = mysql_query("SELECT * FROM topics WHERE topicname = '$topic_name' LIMIT 1");

if (mysql_num_rows($topic_info)<=0) {
    //insert record
    //UPDATE
    //$SQL='insert into topics (topicname) values ("'.$topic_name.'")';
    $SQL='insert into topics (topicname, `desc`) values '.
           '("'.$topic_name.'", "NEW TOPIC DESC")';
    mysql_query($SQL);
    $t_desc='NEW TOPIC : '.$topic_name;
} else {
    //do as normal (without unnessecary loop)
    $g=mysql_fetch_array($topic_info);
    $t_desc = $g['desc'];               
} 
于 2012-10-13T09:51:43.777 に答える
0

以下のようにしてみてください

$topic_info = mysql_query("SELECT * FROM topics WHERE topicname = '$topic_name' LIMIT 1");

$count = mysql_num_rows($topic_info);

if($count <= 0){
  // do insert query
}
else {
// loop through you result and display record
  while($g = mysql_fetch_array($topic_info)){
    $t_desc = $g['desc'];               
  } 
}

注: 新しい開発には PDO または Mysqli lib を使用し、mysql インジェクション攻撃を防ぐことをお勧めします

于 2012-10-13T09:44:56.937 に答える