如何在php中检索表的布尔值?

时间:2015-03-24 07:22:21

标签: php mysqli

<?php
include 'config.php';

$sql1="SELECT Project_id FROM assigned_project_tester  where Tester_name IN (SELECT Username FROM user_master where Username='meet.patel')";
$result=$conn->query($sql1);


while($row=$result->fetch_assoc())
{  echo $proid[]=$row['Project_id'];            //this is getting printed from table project_master table   
    echo '<br>';

} 
$i='';
for ($i=0; $i<sizeOf($proid); $i++)
{
    echo 'here are agian project names';
    echo $proid[$i];                          //this checkpoint to check array  and for loop is working or not
    echo '<br>';
   $sql2="select Test_creation,Test_execution from assigned_project_tester where Project_id =' " . $proid[$i] . "'   ";
  $result1=$conn->query($sql2);
 while($row1=$result1->fetch_assoc())      //I think it is not getting inside while loop
  { echo 'inside if ';                     //this is not getting printed .............
     echo $row1['Test_creation'];          //test_creation is boolean value and data type is tinyint in table assigned_project_tester
     echo $row1['Test_execution'];         //test_execution is boolean value and data type is tiny integer in table assigned_project_master
                                           //what i want to do is print yes if user has test_creation permission else no
  }                                        //same for test_execution I knew that value stored in database is 1 and 0 but
                                           //why it is not getting printed        
}

Here two sql file code for two tables which I am using in my code is written
-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 24, 2015 at 06:07 AM
-- Server version: 5.1.53
-- PHP Version: 5.3.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `tmtool`
--

-- --------------------------------------------------------

--
-- Table structure for table `assigned_project_tester`
--

CREATE TABLE IF NOT EXISTS `assigned_project_tester` (
  `Assigned_id` int(11) NOT NULL AUTO_INCREMENT,
  `Project_manager` varchar(45) DEFAULT NULL,
  `Project_id` varchar(45) DEFAULT NULL,
  `Tester_name` varchar(45) DEFAULT NULL,
  `Test_creation` tinyint(1) NOT NULL,
  `Test_execution` tinyint(1) NOT NULL,
  PRIMARY KEY (`Assigned_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=61 ;

--
-- Dumping data for table `assigned_project_tester`
--

INSERT INTO `assigned_project_tester` (`Assigned_id`, `Project_manager`, `Project_id`, `Tester_name`, `Test_creation`, `Test_execution`) VALUES
(45, 'Pritesh Usadadiya', 'PRJ005', 'meet.patel', 0, 0),
(46, 'Pritesh Usadadiya', 'PRJ005', 'Pritesh', 1, 1),
(47, 'Pritesh Usadadiya', 'PRJ005', 'trilok.patel', 1, 1),
(49, 'Pritesh Usadadiya', 'PRJ009', 'Pritesh', 0, 1),
(50, 'Pritesh Usadadiya', 'PRJ009', 'trilok.patel', 0, 1),
(52, 'Pritesh Usadadiya', 'PRJ011', 'trilok.patel', 1, 0),
(54, 'Pritesh Usadadiya', 'PRJ008', 'Pritesh', 1, 1),
(55, 'Pritesh Usadadiya', 'PRJ008', 'trilok.patel', 1, 1),
(56, 'Pritesh Usadadiya', 'PRJ10', 'meet.patel', 0, 1),
(57, 'Pritesh Usadadiya', 'PRJ10', 'trilok.patel', 0, 1),
(58, 'Pritesh Usadadiya', 'PRJ009', 'meet.patel', 1, 1),
(59, 'Pritesh Usadadiya', 'PRJ011', 'meet.patel', 0, 1),
(60, 'Pritesh Usadadiya', 'PRO10', 'meet.patel', 1, 1);



-- phpMyAdmin SQL Dump
-- version 3.3.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Mar 24, 2015 at 06:08 AM
-- Server version: 5.1.53
-- PHP Version: 5.3.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `tmtool`
--

-- --------------------------------------------------------

--

我想从名为assigned_project_tester的表中检索Test_creation和Test_execution的值,如果值为1则打印是,否则打印否。我已经在代码中做了注释,请您仔细检查。我试图解决这个问题,因为29小时。所有其他的东西,如project_id正在打印,而这只是不起作用,请帮助我。提前致谢

1 个答案:

答案 0 :(得分:1)

我对你的一些疑问感到困惑。您似乎不需要两个单独的查询。这只会有用吗?

SELECT Project_id, 
       Test_creation, 
       Test_execution 
FROM   assigned_project_tester 
WHERE  Tester_name = 'meet.patel'

这应该得到所有项目的列表,这些项目符合#34; meet.patel&#34;被分配及其状态。

然后你可以用while语句循环遍历结果。

$result = $mysqli->query($query);

while ($row = $result->fetch_assoc()) {
    echo $row["Project_id"];
    echo $row["Test_creation"];
    echo $row["Test_execution "];
}

$result->free();