第二次在php中调用错误

时间:2016-02-25 07:55:28

标签: php mysql stored-procedures

我需要帮助。

我有一个存储过程(没有参数)在我的MySQL(phpMyAdmin)数据中运行,这个过程返回很多行。我将此过程称为PHP mysql_query并且第一次工作,但是如果您重新访问该页面或重新加载该页面,则会出现错误消息:"命令不同步您现在无法运行此命令"

然后,我复制了代码,以便您可以帮助我:

存储过程是:

stored procedure on PhpMyAdmin

我的PHP文件是:



<?php require_once('../Connections/PARTEGEST.php'); ?>
<?php
//---------------ADRIAN!!!!!!!!!!!!!!
mysql_select_db($database_PARTEGEST, $PARTEGEST);
$query_partesPorObra = "CALL seguimientoHorasTotalesObra()";
//SI SE QUIERE MOSTRAR TODOS LOS OPERARIOS QUE HAN HECHO PARTES DE UNA OBRA EN CONCRETO Y CUANTO LLEVA CADA UNO DEDICADO A ESA OBRA, AGRUPAR POR PARTES.OPERARIO Y HABILITAR
//EL CAMPO OPERARIO EN LA TABLA, CON EL NOMBRE (OPERARIOS.NOMBRE)
$partesPorObra = mysql_query($query_partesPorObra, $PARTEGEST) or die(mysql_error());
$row_partesPorObra = mysql_fetch_assoc($partesPorObra);
$totalRows_partesPorObra = mysql_num_rows($partesPorObra);
?>

<!-- DataTables JavaScript -->
<script src="../bower_components/datatables/media/js/jquery.dataTables.min.js"></script>
<script src="../bower_components/datatables-plugins/integration/bootstrap/3/dataTables.bootstrap.min.js"></script>

<div class="row">
  <div class="col-lg-12">
  <h1 class="page-header">Seguimiento Horas Totales de Obras</h1>
  </div>
</div>
  
<div class="row">
<div class="col-lg-12">
	<div class="panel panel-success">
		<div class="panel-heading">Horas Totales por Obra</div>
		<!-- /.panel-heading -->
		<div class="panel-body">
			<div class="dataTable_wrapper">
				<div class="table-responsive">
					<table class="table table-striped table-bordered table-hover" id="dataTables-example">
						<thead>
							<tr>
								<th>OBRA</th>
								<th>ESTADO</th>
								<th>HORAS</th>
								<th>H.ASIGNADAS</th>
							</tr>
						</thead>
						<tbody>
						<?php do {						
							echo "<tr class='gradeA'>";						
							echo "<td>".$row_partesPorObra['descripcion']."</td>";
							if($row_partesPorObra['finalizado']=="Y"){
								echo "<td class='center'>".$row_partesPorObra['finalizado']="Cerrado"."</td>";
							}
							else{
								echo "<td class='center'>".$row_partesPorObra['finalizado']="Abierto"."</td>";
							}
							echo "<td class='center'><center><b>".$row_partesPorObra['hours']."h</b></center></td>";
							echo "<td class='center'><center><b>".$row_partesPorObra['horas']."h</b></center></td>";
							echo "</tr>";
						} while ($row_partesPorObra = mysql_fetch_assoc($partesPorObra));?>
					
						</tbody>
					</table>
				</div>
			</div>
		</div>
	</div>
   </div>
</div>			   

<?php
mysql_free_result($partesPorObra);
?>
&#13;
&#13;
&#13;

请帮助,这是我的工作。

谢谢!

1 个答案:

答案 0 :(得分:0)

当您调用存储过程时,它将返回一个或多个结果集,每个结果集可能有自己的一组行。

在您的情况下,您必须在mysql_next_result($connection)语句后使用mysql_free_result,然后您可以使用相同的连接再次调用存储过程。