Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在table1.id=table2.id WHERE子句上从table1内部联接table2中选择*_Php_Mysql_Join_Inner Join - Fatal编程技术网

Php 在table1.id=table2.id WHERE子句上从table1内部联接table2中选择*

Php 在table1.id=table2.id WHERE子句上从table1内部联接table2中选择*,php,mysql,join,inner-join,Php,Mysql,Join,Inner Join,我在连接两个表时遇到了一个问题,其中有一个WHERE子句,涉及monthname(date)=“$month” **tbl_dv** dv_id, number, net, respo, date_added **tbl_payroll** pr_id, dv_id, number, pr_date, roll1, roll2, roll3, roll4, roll5, roll6 date_added. 我想添加列ROLLS并在view.php上查看它。比如:$total=(roll1+

我在连接两个表时遇到了一个问题,其中有一个WHERE子句,涉及monthname(date)=“$month”

**tbl_dv**
dv_id, number, net, respo, date_added 

**tbl_payroll**
pr_id, dv_id, number, pr_date, roll1, roll2, roll3, roll4, roll5, roll6 date_added.
我想添加列ROLLS并在view.php上查看它。比如:$total=(roll1+roll2+roll3+roll4+roll5+roll6);如何以独特的方式进行操作和插入

$viewrecord = "SELECT * FROM tbl_dv WHERE respo='".mysql_real_escape_string($data[0])."' && year(date_added)='$year' && month(date_added)='$month'";

您可以通过编程将PHP中每个记录行的返回值相加来实现这一点

你也可以这样做

 $viewrecord = "SELECT *, (pr.roll1 + pr.roll2 + 
                pr.roll3 + pr.roll4 + pr.roll5 + pr.roll6) as rolls 
 FROM tbl_dv dv LEFT OUTER JOIN tbl_payroll pr on dv.dv_id = pr.dv_id 
 RIGHT OUTER JOIN tbl_payroll pr on dv.dv_id = pr.dv_id 
 WHERE dv.respo='".mysql_real_escape_string($data[0])."' 
 && year(dv.date_added)='$year' && month(dv.date_added)='$month'";
你可以做一个-

$viewrecord = "SELECT *, (roll1 + roll2 + roll3 + roll4 + roll5 + roll6) as total FROM tbl_dv join tbl_payroll on tbl_dv.dv_id = tbl_payroll.dv_id WHERE respo='".mysql_real_escape_string($data[0])."' && year(date_added)='$year' && month(date_added)='$month'";


通过查看roll1列。。。roll6,在我看来,你并没有为此道歉。我在赶时间。当这个系统已经运行时。但我已经给了我时间,我将修补这些东西,并规范这个数据库设计。目前我正在寻求帮助。。非常感谢您的评论。如果你愿意,我会寄给你设计的虚拟系统,这样你就可以手拉手了。颠倒你的逻辑会更有效。而且,每当我看到名为x1、x2等的列时,都会对规范化(或缺乏规范化)敲响警钟!我尝试过这段代码,但where子句中的错误列“respo”不明确。请将其更改为tbl_dv。respoth rolls来自不同的表。我试过这个。。我犯了这个错误。where子句中的“respo”列含糊不清,更新了我的答案。您也不应该使用select*,而应该唯一地标识要重新翻转的列。但是,我不知道您想要什么列。因为我更新了它。没有记录。我会寄给你一个虚拟系统和数据库。如果您同意?没有记录意味着dv.dv_id和pr.dv_id之间没有匹配项,或者没有匹配where子句的项。您的权利。发生的情况是,在tbl_dv中有一个记录,而在tbl_工资单中没有。但现在这是一个大问题。该记录只有在两个表上都有匹配记录dv_id时才会显示。现在,当没有记录匹配时,它不会显示任何内容:(我只想添加ROLLS列来显示总的ROLLS。而不是消失没有匹配的记录.)。。
<?php require_once('../includes/connection.php');?>
<?php require_once('../includes/header.php');?>

<?php
$color="1";
$respo = $_GET['respo'];
$data = explode("+", $respo);
$month = date("m", strtotime($data[1])) . "<br />";
$year = date("Y", strtotime($data[1])) . "<br />";

**$viewrecord = "SELECT *, (pr.roll1 + pr.roll2 + pr.roll3 + pr.roll4 + pr.roll5 + pr.roll6) AS rolls FROM tbl_payroll dv join tbl_payroll pr on pr.dv_id = dv.dv_id WHERE dv.respo='".mysql_real_escape_string($data[0])."' && year(dv.date_added)='$year' && month(dv.date_added)='$month'";**
$run_viewrecord = mysql_query($viewrecord) or die(mysql_error());

{
echo "<table border='1' width='100%' style='border:1px solid silver' cellpadding='5px' cellspacing='0px'>
<tr bgcolor='#666666' style='color:#FFFFFF'>
<th>Date Encoded</th>
------------HEADER--------- etc....

-------THERE SHOULD BE A IF STATEMATE HERE-----------------
(where if no records match "dv.dv_id=pr.pr.dv_id". It would still display records from tbl_dv..)

while ($row = mysql_fetch_row($run_viewrecord)) {

if($color==1){
echo "<tr bgcolor='#ffffff'>";
echo "<td align='center'>" .date_format(date_create($row[17]), "m/d/y")."</td>
**--------- I WANT TO DISPLAY THE ROLLS HERE --------------------**
echo "</td></tr>";

$color="2";
}   else {
echo "<tr bgcolor='#ebeaea'>";
echo "<td align='center'>" .date_format(date_create($row[17]), "m/d/y")."</td>
**--------- I WANT TO DISPLAY THE ROLLS HERE --------------------**
echo "</td></tr>";

$color="1";
}
}
echo '</table>';
echo '<td><tr><table><br /><br />';
}
?>