Foros del Web » Programando para Internet » PHP »

Paginacion php mysql

Estas en el tema de Paginacion php mysql en el foro de PHP en Foros del Web. Hola foro, sabia que este dia llegaria, necesito mostrar en pantalla una consulta, pero que tenga paginacion, aunque no siempre, les explico: Este sistema que ...
  #1 (permalink)  
Antiguo 01/04/2011, 10:35
Avatar de omar_gutierrez  
Fecha de Ingreso: febrero-2011
Mensajes: 144
Antigüedad: 13 años, 9 meses
Puntos: 2
Pregunta Paginacion php mysql

Hola foro, sabia que este dia llegaria, necesito mostrar en pantalla una consulta, pero que tenga paginacion, aunque no siempre, les explico:

Este sistema que he estado diseñando es para capturar pedimentos de importaciones temporales, para hacer las busquedas de los mismos se hace de la siguente manera:

El usuario puede buscar por numero de pedimento (este es unico), descripcion de partida (aqui se necesita la paginacion), fechas de entrada (paginacion), clave de proveedor (paginacion), entre otros.

Cuando mencione que no siempre se requiere la paginacion es devido a que si el usuario busca por numero de pedimento, solo aparecera un pedimento, el numero es unico, aqui no requiero de paginacion; pero si el usuario busca por descripcion de partida (que viene siendo el nombre del material adquirido, ejemplo: "CATALIZADOR DE ESTAÑO", necesito que busque y pagine unicamente los que coinsidan con lo que se busca, ejemplo:

Se capturan 380 pedimentos, 15 de ellos se utilizaron para importar "TOLUENO DIISOCIANATO", El usuario hace la busqueda del pedimento respecto a este material, y la consulta arroja solo los 15 pedimentos.

He buscado en la web, pero la verdad no encuentro un manual que pueda comprender, ademas, no se si tendria que hacer modificaciones en el archivo php donde se realiza la consulta. Aqui les dejo el html donde se inserta el tipo de busqueda:

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BUSCAR PEDIMENTO</title>
<style type="text/css">
.titulo {font-family: Arial Narrow; font-size:46px
}
</style>
<style type="text/css">
.TITULOTABLA {font-family: Arial Narrow; font-size:16px
}
</style>
</head>

<body bgcolor="#CCCCCC">
<hr size="5" color="#848484"/>
<table width="880">
  <tr>
    <td width="39"><a href="catalogo_agentes_apoderados.html"><img src="IMAGENES/case.png" alt="CASE" width="35" height="35" title="Catalogo Agentes y/o Apoderados" /></a></td>
    <td width="38"><a href="catalogo_mandatario.html"><img src="IMAGENES/people-icon.png" alt="MANDATARIO" width="34" height="34" title="Catalogo Mandatario / Persona Autorizada" /></a></td>
    <td width="57" height="57"><div align="center"><a href="pedimentos_proveedores.html" target="_self"><img src="IMAGENES/proveedor.png" alt="123" width="53" height="31" title="Catalogo Proveedores" /></a></div></td>
    <td width="40"><div align="center"><a href="pedimento_clientes.html" target="_self"><img src="IMAGENES/employer_icon.png" alt="werg" width="36" height="32" title="Catalogo Clientes" /></a></div></td>
    <td width="41"><div align="center"><a href="pedimentos_captura.html" target="_self"><img src="IMAGENES/capturar.png" alt="Capturar Pedimento" title="Capturar Pedimento" width="37" height="39" /></a></div></td>
    <td width="32"><div align="center"><a href="pedimentos_busqueda.html" target="_self"><img src="IMAGENES/buscar.jpg" alt="654" width="28" height="37" title="Buscar Pedimento" /></a></div></td>
    <td width="42"><a href="regulaciones_restricciones.html" target="_self"><img src="IMAGENES/ruler_pencil.png" alt="7825" width="38" height="38" title="Regulaciones, restricciones no arancelarias y nom" /></a></td>
    <td width="47"><a href="anexos/APENDICES del Anexo 22 de las Reglas de Carácter General en Materia de Comercio Exterior para 2010.htm" target="_new"><img src="IMAGENES/book_icon.png" alt="wqe" width="43" height="43" title="Apendices del anexo 22" /></a></td>
    <td width="39"><a href="anexos/ANEXO 22 de las Reglas de Carácter General en Materia de Comercio Exterior para 2010.htm" target="_new"><img src="IMAGENES/script.png" alt="54" width="35" height="35" title="Reglas del anexo 22" /></a></td>
    <td width="461"><div align="right"><span class="titulo">SISTEMA PEDIMENTOS </span></div></td>
  </tr>
</table>
<hr size="5" color="#848484" />
<p>&nbsp;</p>
<form id="form1" name="form1" method="post" action="search_pedimento.php">
<div align="center">
  <table width="481" border="1" cellspacing="1" cellpadding="1">
    <tr>
      <td width="473" class="TITULOTABLA" scope="col"><p>BUSCAR POR:
        <label for="select"></label>
        <label for="select"></label>
        <select name="SELECCIONAR" id="SELECCIONAR">
          <option selected="selected">NUMERO DE PEDIMENTO</option>
          <option>DESCRIPION DE PARTIDA</option>
          <option>CLAVE PROVEEDOR</option>
        </select>
        <label for="textfield4"></label>
        <input name="BUSCAR" type="text" id="textfield4" size="21" maxlength="21" />
      </p>
        <p align="center">
          <input type="submit" name="submit" id="button" value="BUSCAR" />
        </p></td>
    </tr>
  </table>
</div>
</form>
</body>
</html> 
El php lo pongo en un comentario
  #2 (permalink)  
Antiguo 01/04/2011, 10:41
Avatar de omar_gutierrez  
Fecha de Ingreso: febrero-2011
Mensajes: 144
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Paginacion php mysql

mmm, el php no cabe, lo que hago en el php es usar un switch case, para que haga la busqueda segun la decision del usuario, despues tomo los valores de las tablas con un mysql_fetch_array y los pongo en unas tablas, tambien uso un array para mostrar las partidas, algunos pedimentos pueden tener solo una, o mas.
  #3 (permalink)  
Antiguo 01/04/2011, 15:40
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: Paginacion php mysql

Paginador con PHP y Mysql

Te dejo un paginador, saludos y cualquier duda a las ordenes....
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #4 (permalink)  
Antiguo 04/04/2011, 12:03
Avatar de omar_gutierrez  
Fecha de Ingreso: febrero-2011
Mensajes: 144
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Paginacion php mysql

El problema que tengo aparte de no saber mucho, es que todos los ejemplos de paginacion que he visto funcionoan de esta manera:

Una tabla mostrando nombres o cosas con mas detalles, por decir 10 por pagina.

Aqui requieren algo distinto, literalmente muestro un "objeto" por pagina (suena ilogico poner un registro por pagina, comparado con todos los ejemplos que exponen en la web), pero a su vez le deriva mucha informacion.

De todos los ejemplos que he visto, el que muestras es el mas extenso y complejo.

Gracias por tu atencion, le hechare un vistazo haber que tal me va.
  #5 (permalink)  
Antiguo 04/04/2011, 12:14
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 9 meses
Puntos: 155
Respuesta: Paginacion php mysql

te dejo una liga interesante

http://www.desarrolloweb.com/articulos/1035.php
  #6 (permalink)  
Antiguo 04/04/2011, 12:53
Avatar de omar_gutierrez  
Fecha de Ingreso: febrero-2011
Mensajes: 144
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Paginacion php mysql

Una pregunta, si uso esto: mysql_num_rows, ya no podre usar este: mysql_fetch_array?

Me marco un error en esas lineas.
  #7 (permalink)  
Antiguo 04/04/2011, 13:03
Avatar de omar_gutierrez  
Fecha de Ingreso: febrero-2011
Mensajes: 144
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Paginacion php mysql

Creo comprender los manuales que he leido, pero pienso que mi principal problema es la manera en la que hago las busquedas a las tablas:

Código PHP:
 case "NUMERO DE PEDIMENTO":
    
        
//Consulta a la tabla de pedimento_info, para tomar toda la informacion y poder mostrarla en pantalla; para cuando se busque por numero de pedimento.
        
$consultapedimento_info mysql_query("SELECT * FROM pedimento_info WHERE NUM_PEDIMENTO = '$BUSQUEDA'");
        
$pedimento_info mysql_fetch_array($consultapedimento_info);
        
        
//busca el cliente:
        
$clavecliente $pedimento_info ['CVE_CLIENTE'];
        
$consultacliente mysql_query("SELECT * FROM clientes WHERE CVE_CLIENTE = '$clavecliente'");
        
$clientearray mysql_fetch_array($consultacliente);

        
//tasas a nivel pedimento
        
$numpedimento $pedimento_info ['NUM_PEDIMENTO'];
        
$consultatnp mysql_query("SELECT * FROM tasas_nivel_pedimento WHERE NUM_PEDIMENTO = '$numpedimento'");
        
//$tnparray = mysql_fetch_array ($consultatnp);
        
        //cuadro de liquidacion
        
$consultacuadroliquidacion mysql_query("SELECT * FROM cuadro_liquidacion WHERE NUM_PEDIMENTO = '$numpedimento'");
        
//$qadroliq_array = mysql_fetch_array ($consultacuadroliquidacion);

        //identificadores a nivel pedimento
        
$consultainp mysql_query("SELECT * FROM id_nivel_pedimento WHERE NUM_PEDIMENTO = '$numpedimento'");
        
        
//$inparray = mysql_fetch_array($consultainp);
        
        //proveedor del pedimento
        
$clave_proveedor $pedimento_info ['CVE_PROVEEDOR'];
        
$consulta_proveedor mysql_query("SELECT * FROM proveedores WHERE CVE_PROVEEDOR = '$clave_proveedor'");
        
$proveedorarray mysql_fetch_array($consulta_proveedor);
        
        
//facturas del proveedor
        
$consultafactura mysql_query("SELECT * FROM facturas WHERE NUM_PEDIMENTO = '$numpedimento'");
        
        
//partidas del pedimento
        
$consulta_partidas mysql_query("SELECT * FROM partidas WHERE NUM_PEDIMENTO = '$numpedimento'");
        
        
//Busca el agente segun el pedimento que pertenece
        
$claveagente $pedimento_info ['CVE_AGENTE'];
        
$consultacveagente mysql_query("SELECT * FROM agentes_apoderados WHERE CVE = '$claveagente'");
        
$cvagente mysql_fetch_array($consultacveagente);

        
//mandatario segun el pedimento que pertenece
        
$clavemandatario $pedimento_info ['CVE_MANDATARIO'];
        
$consultacvemandatario mysql_query("SELECT * FROM mandatario_persona_autorizada WHERE CVE = '$clavemandatario'");
        
$cvmandatario mysql_fetch_array($consultacvemandatario);
        
        
//id pedimento nivel partida
        
$consulta_idnivelpartida mysql_query("SELECT * FROM id_nivel_partida WHERE NUM_PEDIMENTO = '$numpedimento'");
        
$idnpartida mysql_fetch_array($consulta_idnivelpartida);

    break; 
Este es una parte del php en la que busca por numero de pedimento (el numero de pedimento es unico) aunque prodria hacer pruebas capturando pedimentos parecidos y utilizar LIKE.

Como creen que se hacen las consultas, bien, masomenos, pesimo?
  #8 (permalink)  
Antiguo 05/04/2011, 10:22
Avatar de omar_gutierrez  
Fecha de Ingreso: febrero-2011
Mensajes: 144
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Paginacion php mysql

Estoy intentando hacer la paginacion con menos informacion, me informa cuantas paginas se van a paginar, pero si le doy al siguiente me marca puros errores:

En esta captura, la aplicacion me muestra todos los campos que coinsidan con "tolueno", tengo capturado 3, y efectivamente me muestra 3.



pero si le doy al siguiente me aparece esto:



No se que es lo que estoy haciendo mal, aqui esta el codigo html donde se establece la busqueda:

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BUSCAR PERMISO</title>
<style type="text/css">
.TITULOTABLA {
	font-family: Arial Narrow; font-size:16px
}
.relleno_tabla {font-family: Arial Narrow; font-size:16px
}
#form1 table th {
	font-family: Arial Narrow; font-size:16px
}
</style>
<script type="text/javascript">
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
</script>
<script>
function valida_envia(){
	
	if (document.form1.BUSCAR.value.length==0){
		alert("DEBE INDICAR UN VALOR")
		document.form1.BUSCAR.focus()
		return 0;
	}
		//el formulario se envia
	alert("CONSULTA ENVIADA");
	document.form1.submit();
}
function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}
</script>

</head>

<body bgcolor="#CCCCCC" onload = "document.forms[0].elements[0].focus()">
<form id="form1" name="form1" method="post" action="search_permiso_toxicos.php">
  <table width="481" border="1" cellspacing="1" cellpadding="1">
    <tr>
      <td width="473" class="TITULOTABLA" scope="col"><p>BUSCAR POR: 
          <label for="select"></label>
          <label for="select"></label>
          <select name="SELECCIONAR" id="SELECCIONAR">
            <option selected="selected">NUMERO DE AUTORIZACION</option>
            <option>NOMBRE DEL MATERIAL</option>
            <option>FECHA DE INICIO</option>
            <option>FECHA DE TERMINACION</option>
          </select>
          <label for="textfield4"></label>
          <input name="BUSCAR" type="text" id="textfield4" size="20" maxlength="14" />
      </p>
      <p align="center">
        <input onclick="valida_envia()" type="button" name="button" id="button" value="BUSCAR" />
      </p></td>
    </tr>
  </table>
</form>
<p>&nbsp;</p>
</body>
</html> 
Y aqui el php donde se imprime el resultado:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
/* 
    Blue Dream
    Written by Teylor Feliz  http://www.admixweb.com
*/


table { background:#D3E4E5;
 border:1px solid gray;
 border-collapse:collapse;
 color:#fff;
 font:normal 12px verdana, arial, helvetica, sans-serif;
}
caption { border:1px solid #5C443A;
 color:#5C443A;
 font-weight:bold;
 letter-spacing:20px;
 padding:6px 4px 8px 0px;
 text-align:center;
 text-transform:uppercase;
}
td, th { color:#363636;
 padding:.4em;
}
tr { border:1px dotted gray;
}
thead th, tfoot th { background:#5C443A;
 color:#FFFFFF;
 padding:3px 10px 3px 10px;
 text-align:left;
 text-transform:uppercase;
}
tbody td a { color:#363636;
 text-decoration:none;
}
tbody td a:visited { color:gray;
 text-decoration:line-through;
}
tbody td a:hover { text-decoration:underline;
}
tbody th a { color:#363636;
 font-weight:normal;
 text-decoration:none;
}
tbody th a:hover { color:#363636;
}
tbody td+td+td+td a { background-image:url('bullet_blue.png');
 background-position:left center;
 background-repeat:no-repeat;
 color:#03476F;
 padding-left:15px;
}
tbody td+td+td+td a:visited { background-image:url('bullet_white.png');
 background-position:left center;
 background-repeat:no-repeat;
}
tbody th, tbody td { text-align:left;
 vertical-align:top;
}
tfoot td { background:#5C443A;
 color:#FFFFFF;
 padding-top:3px;
}
.odd { background:#fff;
}
tbody tr:hover { background:#99BCBF;
 border:1px solid #03476F;
 color:#000000;
}

</style>
</head>

<body bgcolor="#CCCCCC">
<p>
  <?php
$conexion 
mysql_connect("localhost","root","");
if (!
$conexion) {
die(
"Fallo la conexión a la Base de Datos: " mysql_error());
}

$seleccionar_bd mysql_select_db("pruebas"$conexion);
if (!
$seleccionar_bd) {
die(
"Fallo la selección de la Base de Datos: " mysql_error());
}

$BUSQUEDA $_POST['BUSCAR'];
$seleccion $_POST['SELECCIONAR'];

switch (
$seleccion) {
    
//TOXICOS
    
case "NUMERO DE AUTORIZACION":
       
$consulta mysql_query("SELECT * FROM toxicos_sustancias_peligrosas WHERE NUM_AUTORIZACION = '$BUSQUEDA'");
if (!
$consulta) {
die(
"ERROR AL BUSCAR LA INFORMACION: " mysql_error());
}
        
$row mysql_fetch_array($consulta);
        break;
        
    case 
"NOMBRE DEL MATERIAL":
    
    
$registros 1;
    
    if (!
$pagina) { $inicio 0$pagina 1; } else { $inicio = ($pagina 1) * $registros; }
    
       
$consulta mysql_query("SELECT * FROM toxicos_sustancias_peligrosas WHERE NOMBRE_COMERCIAL LIKE '%$BUSQUEDA%'");
if (!
$consulta) {
die(
"ERROR AL BUSCAR LA INFORMACION: " mysql_error());
}

        
$row mysql_fetch_array($consulta);
        
            
$total_registros mysql_num_rows($consulta); 
            
$consulta mysql_query("SELECT * FROM partidas WHERE DESCRIPCION LIKE '%$BUSQUEDA%' LIMIT $inicio, $registros"); 
            
$total_paginas ceil($total_registros $registros);
            
        break;
        
    case 
"FECHA DE INICIO":
       
$insert mysql_query("SELECT * FROM toxicos_sustancias_peligrosas WHERE DESDE = '$BUSQUEDA'");
if (!
$insert) {
die(
"ERROR AL BUSCAR LA INFORMACION: " mysql_error());
}
        
$row mysql_fetch_array($insert);
        break;
        
    case 
"FECHA DE TERMINACION":
       
$insert mysql_query("SELECT * FROM toxicos_sustancias_peligrosas WHERE HASTA = '$BUSQUEDA'");
if (!
$insert) {
die(
"ERROR AL BUSCAR LA INFORMACION: " mysql_error());
}
        
$row mysql_fetch_array($insert);
        break;
        
}


?>
</p>
<table width="741" border="1" cellpadding="1" cellspacing="1">
<thead>
  <tr>
    <th colspan="3" class="TITULOTABLA">PERMISO DE IMPORTACION DE SUSTANCIAS TOXICAS
      </td>
    </th>
    <td colspan="2" class="TITULOTABLA">FECHA DE EXPEDICION:
      <?php
    
echo $row['FECHA_EXPEDICION'];
      
?></td>
  </tr>
  </thead>
  <tr>
    <td colspan="3"><span class="TITULOTABLA">NUMERO DE AUTORIZACION:
     <?php
    
echo $row['NUM_AUTORIZACION']; 
      
?>
    </span></td>
    <td width="164"><span class="TITULOTABLA">VIGENCIA DESDE:
      <?php
    
echo $row['DESDE']; 
      
?>
    </span></td>
    <td width="172"><span class="TITULOTABLA">HASTA:
      <?php
    
echo $row['HASTA']; 
      
?>
    </span></td>
  </tr>
  <tr>
    <td colspan="5"><span class="TITULOTABLA">LIC. SAN:
      <?php
    
echo $row['LIC_SAN']; 
      
?>
    </span></td>
  </tr>
  <tr>
    <td colspan="3"><span class="TITULOTABLA">NOMBRE COMERCIAL:
      <?php
    
echo $row['NOMBRE_COMERCIAL']; 
      
?>
    </span></td>
    <td colspan="2"><span class="TITULOTABLA">NUMERO CAS:
     <?php
    
echo $row['NUM_CAS']; 
      
?>
    </span></td>
  </tr>
  <tr>
    <td colspan="3"><span class="TITULOTABLA">COMPONENTES:
      <?php
    
echo $row['COMPONENTES'];
      
?>
    </span></td>
    <td><span class="TITULOTABLA">CATEGORIA TOXICOLOGICA:
      <?php
    
echo $row['CATEGORIA_TOXICOLOGICA']; 
      
?>
    </span></td>
    <td><span class="TITULOTABLA">CONCENTRACION EN %:
      <?php
    
echo $row['CONCENTRACION']; 
      
?>
    </span></td>
  </tr>
  <tr>
    <td width="99"><span class="TITULOTABLA">CANTIDAD:
      <?php
    
echo $row['CANTIDAD']; 
      
?>
    </span></td>
    <td width="92"><span class="TITULOTABLA">UNIDAD DE MEDIDA:
      <?php
    
echo $row['UNIDAD_MEDIDA']; 
      
?>
    </span></td>
    <td><span class="TITULOTABLA">CANTIDAD UMT:
      <?php
    
echo $row['CANTIDAD_UMT']; 
      
?>
    </span></td>
    <td><span class="TITULOTABLA">ESTADO FISICO:
      <?php
    
echo $row['ESTADO_FISICO']; 
      
?>
    </span></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td colspan="3"><span class="TITULOTABLA">USO ESPECIFICO:
      <textarea  name="uso_especifico" id="textarea" cols="55" rows="3"><?php
    
echo $row['USO_ESPECIFICO']; 
      
?>
      </textarea>
    </span></td>
    <td colspan="2"><span class="TITULOTABLA">FRACCION ARANCELARIA:
      <?php
    
echo $row['FRACCION_ARANCELARIA']; 
      
?>
    </span></td>
  </tr>
  <tr>
    <td colspan="3" ><span class="TITULOTABLA">PAIS DONDE SE ELABORA O PRODUCE LA SUSTANCIA TOXICA:
      <?php
    
echo $row['PAIS_FABRICACION']; 
      
?>
    </span></td>
    <td><p><span class="TITULOTABLA">PAIS DE PROCEDENCIA:
      <?php
    
echo $row['PAIS_PROCEDENCIA']; 
      
?>
    </span></p></td>
    <td><span class="TITULOTABLA">ADUANA DE ENTRADA:
        <?php
    
echo $row['ADUANA_ENTRADA']; 
      
?>
    </span></td>
  </tr>
</table>
<?php
if(($pagina 1) > 0) { echo "<a href='search_permiso_toxicos.php?pagina=".($pagina-1)."'>< Anterior</a> "; }

for (
$i=1$i<=$total_paginas$i++)
{ if (
$pagina == $i) echo "<b>".$pagina."</b> "
 else { echo 
"<a href='search_permiso_toxicos.php?pagina=$i'>".$i."</a> "; }
}
if((
$pagina 1)<=$total_paginas) { echo " <a href='search_permiso_toxicos.php?pagina=".($pagina+1)."'>Siguiente ></a>"; }

mysql_close($conexion);
?>
<p>&nbsp;</p>
<p>Si desea realizar otra consulta precione <a href="search_permiso_toxicos.html">aqui</a>.</p>
</body>
</html>
Gracias de antemano

Etiquetas: mysql, paginacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:12.