Seleccionar registros de una tabla mysql usando php

Estoy haciendo una bd en lenguiaje php usando mysql, se trata de unos pedidos osease faltantes de una tienda, necesito depurar registros anteriores al día actual para no eliminar los registros actuales, mi código es el siguiente
<?
function Conectarse2()
{
   if (!($link=mysql_connect("SERVIDOR","USUARIO","CLAVE")))
   {
      echo "Error conectando a la base de datos.";
      exit();
   }
   if (!mysql_select_db("faltantesdelahorro",$link))
   {
      echo "Error seleccionando la base de datos.";
      exit();
   }
   return $link;
}
$link=Conectarse2();
$sql = "$sql = select * from pedidomatriz WHERE fechapedidomatriz<'NOW()'";
$resu = mysql_query($sql,$link);
if (mysql_Num_Rows($resu)!=0){
mysql_query("Delete  FROM pedidomatriz",$link);
echo"
<h1>
<p align='center'>Tabla Pde Juan Rangel depurada</h1>
";}
else{echo"
<h1>
<p align='center'>Tabla Juan Rangel No hay registros</h1>
";}
mysql_free_result($res);
mysql_close($link);
?>
Aun teniendo registros me dice que no tiene. Y no se pero aveces me marca errores en la line 21 y 29 tengo que estar copiando el código de otras consulta y ajustarlo para que se me quiten, no quiero eliminar todos lo registros, no se si me explique bien, y espero que me ayuden seria lo ultimo que me falta para este trabajo...

1 respuesta

Respuesta
1
Para lo que entendí lo que necesitas hacer es eliminar los registros a una fecha deseada. Bueno en el delete lo que tienes que colocar es el mismo where del select en el delete. Osea solo eliminar los que consiguió. Otra cosa el select no lo necesitas si lo que quieres es eliminar los registros de días anteriores a NOW.
Delete from tabla where fecha < now.
Eso solo eliminara los registros menores a hoy.
Hice otro intento pero fallo este me funciona para consultar los registros de una fecha determinada y si me funciona, lo ajuste para hacer la consulta y después depurar osease borrar los registros antes de la fecha que le envíe, ahora para enviar la fecha por medio de un input text desde lapagina origen que es registro.php aquí pongo la efchaen formato aaaa/mm/dd y dy cli enel botón depurar, este envía a la página para el script donde me hace la consulta, bueno el código es el siguiente
el código de la página registro.php es:
...
<form action="inten.php"....>
<input type="text" name="fechapedido"....>
<input type="submit" name="Depurar"...>
.....
el codigo de inten.php es:
<?php
function Conectarse1()
{
   if (!($link=mysql_connect("localhost","root","mysql")))
   {
      echo "Error conectando a la base de datos.";
      exit();
   }
   if (!mysql_select_db("faltantesdelahorro",$link))
   {
      echo "Error seleccionando la base de datos.";
      exit();
   }
   return $link;
}
$link=Conectarse1();
 $res=mysql_query("SELECT * FROM pedidomatriz WHERE fechapedidomat<'$fechapedido'",$link);;
if (mysql_Num_Rows($res)!=0){
mysql_query("Delete  FROM pedidomatriz",$link);
echo"
<h1>
<p align='center'>Tabla Paseos de la Juan Rangel depurada</h1>
";}
else{echo"
<h1>
<p align='center'>Tabla Juan Rangel No hay registros</h1>
";}
mysql_free_result($res);
mysql_close($link);
?>
Me sigue borrando todos los registros sin descartar los actuales...
Mm muchas gracias pero me sigue borrando todos los registros de la tabla y ya estoy algo estresado tengo una semana con este singular problemita creo no se si desde la programación pueda cambiar el dato de date("Y/m/d") a entero y se almacene ai y pueda compara los registros según este no se si se pueda pero lo intneare ya cambie de tipod evarialbel desde la estructura de la base de datos mysql pero sigue igual,,, vaya es mi primerapagina en una empresa donde trabajo y ya siento que estoy quedando muy mal bueno gracias de todos modos por tu esfuerzo
Coloca otra vez el código porque realmente me parece loco que te este borrando todos los datos. Si me pudieras enviar la estructura de la tabla también serviría.
Aquí esta lo que me pides y la volví a checar por si me equivoque en algo y me sigue borrando lo mismo, no se si la versión del php y mysql tenga que ver en algo:
La de mysql es mysql database version 5.0.51b
php information version 5.2.6
phpmyadmin DBM version 2.10.3
apache web server v. 2.2.8
,y con respecto al scipt es el siguiente:
?php
function Conectarse2()
{
   if (!($link=mysql_connect("server","user","password")))
   {
      echo "Error conectando a la base de datos.";
      exit();
   }
   if (!mysql_select_db("faltantesdelahorro",$link))
   {
      echo "Error seleccionando la base de datos.";
      exit();
   }
   return $link;
}
$link=Conectarse2();
mysql_query("Delete  FROM pedidomatriz WHERE fechapedidomat<now()",$link);
echo"
<h1>
<p align='center'>Tabla Paseos de la Juan Rangel depurada</h1>
";
mysql_close($link);
?>
realmetnte te agradezco la desinteresada ayuda para personas novatas como yo,
Disculpa el tiempo.. no ha sido uno de mis aliados estos días... El problema esta en el delete
Delete from tabla where fecha < now. --> Eso fue lo que te coloque yo...
Esto fue lo que pense... Delete from tabla where fecha < getdate-1
Porque lo que buscas es eliminar todas las filas menos la de hoy.
Lo siento de nuevo.
Bueno como eso es Mysql coloca CURDATE
Delete from tabla where fecha < CURDATE() -1
Avisame como te fue.
yahooo, realmente te agradezco mucho tu ayuda con eso funciono jejej estuve batallando pero me di cuenta que tenia la fecha de la laptop modificada al día anterior je je, pero al cambiala ya me funciono como yo esperaba, bueno también tengo otras cosas más complicadas, pero voy a intentar lograrlo po rmi cuenta, espero no mortificarte, porque acá dedonde soy no hay gente que conosa este lenguaje, bueno m voy a esforzar para lograrlo muchas gracias...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas