2012-05-15 32 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

相关问题