Ayuda con Página PHP

Hola Experto ditman,
Mi duda no se si sea algo facil o dificil de entender pero te explico, tengo una pagina llamada articulos.php y a esta se le envia de una pagina antes un usuario por el metodo get ejemplo: ?usuario=1002 pero lo que quiero es que si alguien intenta abrir la pagina de nuevo no se lo permita y para esto uso otra tabla llamada status donde 1=Libre y 2=Terminado, el status 1 se lo agrego a la tabla cuando se registran y el 2 cuando terminan de comprar lo que pasa es que si lo escribo directo en el explorer si entran y pues no quiero que esten modificando las compras ni que agreguen compras fantasmas, aca esta el codigo que uso ates de iniciar la pagina:
(Revísalo por favor pues no se en que estoy fallando.)
<?php
 if($_GET)
 {/*NO pasa nada si recibe datos*/}
 else
 {
  if($_POST)
  {/*NO pasa nada si recibe datos*/}
  else
  /*Si no recibe nada entonces Sale*/
  {exit;}
 }
  /*Ahora si escribo por ejemplo "http://localhost/Tienda/articulos.php?usuario=1001" directamente
  en el explorador lo "busca" en la BD*/
  $conexion = mysql_connect("localhost","root","");
  mysql_select_db("ventasml",$conexion);
  /*Aqui va a seleccionar todos los de la tabla seguimientos*/
  $valida_query = "SELECT * FROM seguimientos";
  if (mysql_query($valida_query))
  {
   $tabla = mysql_query($valida_query);
   while ($col = mysql_fetch_array($tabla))
   {
    /*Si lo encuentra, verifica que en la columna IdStatus sea igual a 1
      1 = Libre
      2 = Terminado
    */
    if ($col["Status_IdStatus"] = 1)
    {}
    else
    {
     echo "
<script>alert('NO es un folio Aceptable.');</script>
";
     /*Esto lo puse para que saliera y no cargue nada*/
     exit;
     break;
    }    
   }
  }
  else
  {
   /*Si no tiene el ?usuario=1001 o cualquier otro usuario manda este mensaje.*/
   echo "
<script>alert('Tu folio no existe.');</script>
";
   exit;
  }
?>
<html>
<head>
<title>Pagina Web</title>
</head>
<body>
 Mi codigo HTML..!!
</body>
Espero tu respuesta y por favor no quiero presionarte ni nada pues estas en todo tu derecho de descartarla pero es importante este trabajo para mi.
Un Saludo y feliz año nuevo..!
L.I. Juan Carmona.

1 respuesta

Respuesta
1
Esa $valida_query es un poco rara... ¿No le pasas el id de usuario o algo así con una cláusula WHERE para buscar más rápido?
La manera más rápida sería haciendo algo parecido a:
$valida_query = "SELECT * FROM seguimientos WHERE userId = " . $usuario . " AND Status_IdStatus = 1";
Si al hacer la query retorna 0 filas, sabes que para ese $usuario no hay un seguimiento con idStatus = 1. Si retorna 1 fila, sabes que sí.
Hola,
Suponiendo que este es mi código, ¿cómo hago para saber el numero de filas que tiene?
$valida_query = "SELECT * FROM seguimientos WHERE userId = " . $usuario . " AND Status_IdStatus = 1";
Usando alomejor lo del while ($col = mysql_fetch_array($tabla)) pero como seria?, haciendo un intento para ver si estoy bien kedaria:
$col = mysql_fetch_array($tabla)
if($col = 1)
{lo que sigue}
else
{que salga}
?
Je je espero tu respuesta amigo. Muchas gracias.
No, eso no funciona porque mysql_fetch_array($tabla) va a devolver POR cosas diferentes cada vez que lo llames (para poder hacer cosas del tipo:
while($row = mysql_fetch_array($tabla)) { ... }
Lo que necesitas es algo así:
$result = mysql_query($tabla); // En $result tenemos el resultado de la query...
$numRows = mysql_num_rows($result); // Nº de celdas devueltas...
y luego puedes hacer lo que hacías antes...
while($row = mysql_fetch_array($result)) { /* cosas */ }
Échale un ojo a la documentación sobre MySQL en php.net para ver todo lo que puedes hacer con cada función. Los nombres son bastante descriptivos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas