在php中,mysql如何仅在记录存在的情况下运行循环


In php, mysql how to run a loop only if record exist

我有一个php脚本,它有一系列基于用户选择/输入的计算和FORM RELOADS,我只需要运行这些,如果对表执行了记录ADDITION,而不是在FORM RELLOADS上,那么如何在这种条件下运行循环。

my PARTIAL php脚本bill-detail.php:希望这就足够了:

<html>
<head>
<title>Cash Bill Detail</title>

<script language="javascript">
function reload(form)
{
document.location.href = 'bill-detail.php'
}

function showecr(str)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","billecr.php?q1=" + str,false);
xmlhttp.send();
 }
</script>

</head>
<body>
<?php
$con = mysql_connect("localhost","svga","a!@#");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("svga", $con);
$user = $_SESSION['user'];
//<!--------------VALIDATIONS ------------------->
echo "<form name='form1'>";
echo "ECR: <input type='text' size='10' maxlength='10' name='ecrn'     onchange='"showecr(this.value);'"><br>";
echo "Product Type";
echo "<select name='product' onchange='"reload(this.form);'">>";
echo "<option value='Gas'>Gas</option>";
echo "<option value='Others'>Others</option>";
echo "</select>";
echo "</form>";

//---As per user inputs copying value to variables---------------------
$hdr=mysql_query("SELECT * FROM BILLHDR_draft WHERE usr='$user'");
$hdr2=mysql_fetch_assoc($hdr);
$numrows=mysql_num_rows($hdr);
if ($numrows>0)
{
$cust_code=$hdr2['Ac_code'];
$product=$hdr2['prod_desc'];
//--Searching BILL DETAILS TABLE as per the user inputs from BILL HEADER Table------
$recs=mysql_query("SELECT * FROM BILLDTLS WHERE Ac_code='$cust_code' AND     Prod_desc='$product'");
while ($rec2=mysql_fetch_assoc($recs))
{
mysql_query("INSERT INTO DEMURAGE (DC_No, DC_date, Ac_code, Product_Desc) VALUES ('$rec2[dc]', '$rec2[dcdate]', '$rec2[accode]', '$rec2[product]'");
}
}
mysql_close($con);
?>

您可以在循环之前添加一个布尔变量,用于跟踪是否已经添加了记录。以下代码在很大程度上是概念性的,因为您自己没有提供太多代码示例,但希望您能理解。

// Set to false initially
$recordAdded = FALSE;
if( $num_rows > 0 && $recordAdded == FALSE )
{
   // Code to execute
   // Set value to to TRUE after initial successful execution
   $recordAdded = TRUE;
}
相关文章: