2012-05-15 66 views
0

我想創建一個分離標籤(用戶給出的,用逗號(,)分隔它們)的JavaScript,並將它們傳入我的數據庫中的不同行但具有相同的ID。 我有這樣的代碼:拆分標籤並將它們提交到數據庫

<form name="formatform" method="post" onsubmit="return validate_format_form()" action="formatsubmit.php"> 
<p> 
Συντομος Τιτλος:<input type="text" name="titlos" value=""> 
Συντομη περιγραφη:<input type="text" name="perigrafi" value=""> 
</p> 
<p> 
Τοποθεσια:<input type="text" id="loc" name="topothesia" value=""> 
Tags:<input type="text" name="tags" value=""> 
**Οι ετικέτες πρέπει να χωρίζονται με κόμμα 
</p> 
. 
. 
. 
</form> 

和formatsubmit.php是誰它們傳遞到數據庫中的這些代碼之一:

$query= " INSERT into photos(`title`,`description`,`location`,`privilages`,`ph_tags`) VALUES ('".$_POST['titlos']."','".$_POST['perigrafi']."','".$_POST['topothesia']."','".$_POST['radio_check']."','".$_POST['tags']."') "; 
$result= mysql_query($query,$con); 

如果用戶給出3個標籤(與逗號分隔)我想將它們拆分並將它們傳遞到不同行中的數據庫。 我該怎麼做?

+0

什麼是您的架構喜歡?當然,你有一個名爲'tags'的表格 –

+0

我有一張桌子照片,有一個列標籤和一個桌子標籤,與桌子上的照片 – user1385257

回答

1

如何使用逗號作爲分隔符將標記輸入拆分爲數組,然後迭代標記併爲每個標記創建一個插入語句?例如。

$tag_array = explode(",", $_POST['tags']); 
foreach ($tag_array as $tag) { 
    $query= " INSERT into photos(`title`,`description`,`location`,`privilages`,`ph_tags`) VALUES ('".$_POST['titlos']."','".$_POST['perigrafi']."','".$_POST['topothesia']."','".$_POST['radio_check']."','".$tag."') "; 
    $result= mysql_query($query,$con); 
} 
+0

哇sql注入! –

+0

它的工作原理,但我也有一個問題。這是關於一張照片,我上傳了一張照片,並給出了照片的標題,描述,標籤等。我想通過他們到我的數據庫,但使用id(數據庫中的自動增量),該代碼給了我3行(如果我有3個標籤)與不同的id ..但我想擁有相同的ID爲3行:S我怎麼能做到這一點.. ?? – user1385257

+0

@ user1385257爲引用照片表的標籤創建單獨的表格。例如。首先插入照片行,檢索新創建的ID,然後使用照片ID爲每個標籤插入一行。 – erikxiv

0

如果你想用PHP來做,請使用explode(",", $input);。要在JavaScript中執行此操作,請執行input=input.split(",")。然後,您將獲得一組可用數字引用的標籤(例如$input[0]...$input[x](PHP)或input[0]...input[x](JavaScript))。

+0

我喜歡用javascript中的一個功能來做。我會試試看。謝謝 – user1385257

0

你也應該處理用戶輸入,你會得到進入雙標籤,,製造爆炸有空值,加上使用POST用戶喜歡,你將有SQL注入:

<?php 
function get_tags($tags){ 
    $ret=array(); 
    $tags=explode(',',strtolower($tags)); 
    foreach($tags as $tag){ 
     if($tag==''){}else{ 
      $ret[]=ucfirst(trim($tag)); 
     } 
    } 
    return $ret; 
} 

function insert_photo_tags($tags){ 
    array_walk($_POST,'mysql_real_escape_string'); 
    foreach ($tags as $tag) { 
     $query = " INSERT INTO photos(`title`,`description`,`location`,`privilages`,`ph_tags`) 
        VALUES ('".$_POST['titlos']."','".$_POST['perigrafi']."','".$_POST['topothesia']."','".$_POST['radio_check']."','".$tag."') "; 
     mysql_query($query); 
    } 
} 

//Test Input (?tags=php,mySQL,http,bLa,,,,,,123) 

$tags = get_tags(mysql_real_escape_string($_POST['tags'])); 

//Do your insert with the array 
insert_photo_tags($tags); 

print_r($tags); 
/* 
Array 
(
[0] => Php 
[1] => Mysql 
[2] => Http 
[3] => Bla 
[4] => 123 
) 
*/ 
?> 
+0

感謝您的代碼.. !!! – user1385257

相關問題