2016-02-18 202 views
0

我正在为用户定制报表。在此页面中,我给出了用于从数据库选择数据的用户复选框的选项。用户选择他想要查看的数据从table.My表有许多字段,如名称,块,联系......等等。如果用户只想查看唯一的用户名和姓名,那么他只能查看名称和电话框。 我复选框是从数据库中选择数据使用php中的复选框从mysql

 <form action="#" method="post"> 
<input type="checkbox" name="check_list[]" value="uid"><label>uid</label> 
<input type="checkbox" name="check_list[]" value="name"><label>name</label> 
<input type="checkbox" name="check_list[]" value="block"><label>block</label>....and so more 
<input type="submit" name="submit" value="Submit"/> 
</form> 

和PHP代码我想是

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

    $sql[] = "select "; 

    foreach($_POST['check_list'] as $selected){ 
     $sql[]=$selected.','; 
    } 

    $sql[]= " from emitra_basic LIMIT 5"; 

    foreach ($sql as $user) { 

     $ram="$user"; 
    } 

    if ($result=mysqli_query($conn, $ram)) 
    { 
     while ($row=mysqli_fetch_row($result)) 
     { 
      echo "id".$row['uid']."<br/>"; 
      echo "name".$row['name']."<br/>"; 
     } 
    } 
} 

但没有result.what我应该尝试一下呢?

+0

你能不能把UR创建表查询。我们将如何测试,如果你不会把它呢? – rahul

+0

请重新格式化您的代码。这是不可读的。 –

+0

尝试使用ajax或javascript,以便用户选择/取消选择复选框时,结果将自动显示,无需刷新页面或单击按钮。 – rhavendc

回答

0

请尝试

$sql[] = "select ".implode(', ', $_POST['check_list'])." from emitra_basic LIMIT 5"; 

,而不是

$sql[] = "select "; 
foreach($_POST['check_list'] as $selected){ 
$sql[]=$selected.',';} 
$sql[]= " from emitra_basic LIMIT 5"; 

得到的东西,如:

select uid, name, block from emitra_basic LIMIT 5; 

否则会有一个,在最后一个字段的末尾:

select uid, name, block, from emitra_basic LIMIT 5; -- This is not working! 
+0

请更多解释输出需要 – omnath

0

尝试这样的: - 没有大的变化在您的编码

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

$sql=array(); 

$sql[] = "select "; 

$sql[]=join(",", $_POST['check_list']); 

$sql[]= " from emitra_basic LIMIT 5"; 

//print_r($sql); 

foreach ($sql as $user) { 

    //echo $user."<br>"; 

    $ram.=$user; 
} 

//echo $ram; exit; 

//select uid, from emitra_basic LIMIT 5 

if ($result=mysqli_query($conn, $ram)) 
{ 
    while ($row=mysqli_fetch_row($result)) 
    { 
     echo "id".$row['uid']."<br/>"; 
     echo "name".$row['name']."<br/>"; 
    } 
} 

}

0

试试这个在PHP

if(isset($_POST['submit'])){ 
$sql1 = "select "; 
$sql2 = ""; 
$checklist = $_POST['check_list']; 
$count = count($checklist); 
if($count!=1){ 
    $count = $count-1; 
    for ($i=0; $i < $count ; $i++) { 
     $sql2 = $sql2.$checklist[$i].","; 
    } 
    $sql2 = $sql2.$checklist[$count]; 
} else{ 
    $sql2 = $checklist[0]; 
} 
$sql3= " from emitra_basic LIMIT 5"; 
$totalSql = $sql1.$sql2.$sql3; 

if ($result=mysqli_query($conn,$totalSql)) 
    { while ($row=mysqli_fetch_row($result)) 
    { echo "id".$row['uid']."<br/>"; 
echo "name".$row['name']."<br/>";}} 

}

+0

此代码还将导致类似'select,uid,name,block from ... '因为第一个','有语法错误? –

+0

是的,我会修改 – sudhakar

+0

用我自己的逻辑修改 – sudhakar