Foros del Web » Programando para Internet » PHP »

Consultas

Estas en el tema de Consultas en el foro de PHP en Foros del Web. Hola mi problema es el siguiente tengo una tabla id,nombre,vista y estan declaradas de lo siguiente int,varchar(20),tnyint esta ultima la utilizo como boolean la verdad ...
  #1 (permalink)  
Antiguo 17/01/2009, 08:41
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Consultas

Hola mi problema es el siguiente tengo una tabla id,nombre,vista y estan declaradas de lo siguiente int,varchar(20),tnyint esta ultima la utilizo como boolean
la verdad como puedo hacer una consultas para que al momento de insertar cambia a 1 necesito por favor ejemplo para poder darme cuenta o alguna pagina que conozan
  #2 (permalink)  
Antiguo 17/01/2009, 08:55
Avatar de ToLeR  
Fecha de Ingreso: noviembre-2008
Ubicación: Laboratorio La Ratonera
Mensajes: 48
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: Consultas

No se si e entendido bien lo que necesitas.

Pero yo para tener un campo que me identifique cada linea utilizo la siguiente sentencia en el create table:

numero integer not null auto_increment,

De esta forma el campo numero se incrementa solo con cada linea que insertes.
  #3 (permalink)  
Antiguo 17/01/2009, 09:07
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Lo que busco es como puedo hacer una consulta con boolean que cuando haga algo al terminar que cambia a valor 1
  #4 (permalink)  
Antiguo 17/01/2009, 09:09
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Tu campo es tinyint (entero), no boolean. La consulta que debes realizar es como cualquier otra:

Código sql:
Ver original
  1. UPDATE tabla SET vista = 1 WHERE id = 543786

  #5 (permalink)  
Antiguo 17/01/2009, 09:50
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

tengo este problema.

$vista=mysql_query("select * from login INNER JOIN jugadores ON login.id = jugadores.id_jugador where nick = '$usuario' and veo = 0 ");
$r = @mysql_fetch_array($vista);
$resultado = $r['veo'];
if ($resultado == 0){

$result=mysql_query("insert into jugadores(nombre,paterno,materno,club,veo) values ('$nombre','$paterno','$materno','$club','1')",$li nk);
header("location: aplicacion.php");
}
else {


echo "ya lleno su registro";
}
tengo un campo en mi tabla jugadores de tipo tnyint que esta en 0 cuando por primera vez se registran y cuando de registra cambia a 1 la cosa es quiero q cuando sea 1 ya no vuelva a poder registrarse y controlo con su nombre de usuario de la tabla login pero no me resulta donde puede estar la falla manejo sesiones
  #6 (permalink)  
Antiguo 17/01/2009, 09:56
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Rearma esa lógica. Cuando tu usuario se loguea sacas todos sus datos de la base de datos no? Entonces, cuando el usuario quiera entrar al formulario verificas el valor de la columna que te indica si ya lleno el formulario, sacándolo obviamente de esos datos(No es necesario hacer una consulta adicional). Si el valor de esa columna ya es 1, entonces no le muestras el formulario ni el link, pero si es 0, entonces si se los muestras, y haces un simple UPDATE como el que te puse arriba para cambiar su valor a 1.

No es difícil eh? Busca un buen manual de mysql e infórmate sobre como trabajar con mysql y php

  #7 (permalink)  
Antiguo 17/01/2009, 10:27
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Muchas gracias por ayudarme espero no roperte mucho la cabeza pero hice esto
$_SESSION[nombre] = $usuario;
$vista=mysql_query("select * from login where nick = $usuario and veo = 0 ");
$r = @mysql_fetch_array($vista);
$resultado = $r['veo'];
if ($resultado >=0){
?>
<li> <a href= "ficha_registro.php">Ficha Individual</a> </li><br>
<?php
mysql_query("update login Set veo = '1' ");
}
else {
echo "Ya lleno su registro";

}

Ya anda regular pero creo q estoy fallando en la consulta mas generalmenre en la condicion lo demas anda bien
  #8 (permalink)  
Antiguo 17/01/2009, 10:37
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Al realizar una consulta tipo update debes incluir siempre 3 cosas: la tabla, los campos junto a sus nuevos valores, y las condiciones para filtrar los campos que van a ser modificados:

Código sql:
Ver original
  1. UPDATE tabla SET columna1 = 'valor1', columna2 = 'valor2' WHERE id = N
Donde N es el valor del id de la fila que deseas actualizar. Puedes usar tantos filtros como desees, o no usar ninguno, y en ese caso se actualizan todas las filas de la tabla.

  #9 (permalink)  
Antiguo 17/01/2009, 13:57
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Definitivamente creo que se me esta complicando cada vez mas
Gracias a todos por su ayuda en especial a okram muchas gracias por la ayuda te hice caso y lei lo que me dijiste , me quede trancado en la parte de update no puedo sacar el id que elijo para poder realizar esa operacion , no tendras algun ejemplo sencillo de mas o menos que quiero hacer para poderme basar o alguna pagina donde exista este tipo de ejercicios
  #10 (permalink)  
Antiguo 17/01/2009, 14:16
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Usa el nombre de usuario (nick). Dale, es una consulta simple y ya te puse 2 ejemplos.

  #11 (permalink)  
Antiguo 17/01/2009, 14:41
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Mira hice esto :::

include("../conectar.php");
$link = Conectarse();
$id = $_POST['id'];
// $nick = $_POST['nick'];
// $contrasena = $_POST['contrasena'];
// $nombre = $_POST['nombre'];
$result = mysql_query("select * from login3 ",$link);

if ($result == 0){
?>
<li><a href=registro.html> tu formualrio </a></li>

<?php
mysql_query("Update login3 Set veo = '1' Where nick= '$nick'");
}

else
{
echo "ya esta su registro " ;
}

Me sale para todos que ya han llenado pero no entiendo pq no hace el update no cambia de 0 a 1
  #12 (permalink)  
Antiguo 17/01/2009, 14:45
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Como dice la logica si es igual a 0 entonces q llene este formualrio verdad pero no lo hace
  #13 (permalink)  
Antiguo 17/01/2009, 14:53
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Tu consulta es SELECT * FROM login3? Y donde defines los parámetros de inclusión y exclusión? Con esa consulta lo que haces es extraer todos los registros de tu tabla. Y así esté bien hecha esa consulta, igual estás comparando mal, pues antes tienes que sacar los resultados de tu consulta usando mysql_fetch_assoc() o mysql_result().

Insisto, busca un buen manual, que te estás confundiendo en cosas muy básicas.

  #14 (permalink)  
Antiguo 17/01/2009, 15:33
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

lo hice asi
$result=mysql_fetch_array(mysql_query("select veo from login3 where nick='$nick'",$link));
  #15 (permalink)  
Antiguo 17/01/2009, 15:57
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

pero esta mal cambie ahora un poco el codigo
$contrasena = $_POST['contrasena'];
$nombre = $_POST['nombre'];
$result = mysql_query("select veo from login3 where nick='$nick'",$link);
$vista = mysql_result($result ,0);
// echo $vista;
if ($vista == 0){
?>
<li><a href=carlos2.html> tu formualrio </a></li>

<?php
mysql_query("Update login3 Set veo = '1' Where nick = '$nick'");
}

else
{
echo "ya esta";
}
  #16 (permalink)  
Antiguo 17/01/2009, 16:51
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Deja vù... Es curioso no?

Cita:
$nombre = $_POST['nombre'];
$result = mysql_query("select veo from login3 where nick='$nick'",$link);
  #17 (permalink)  
Antiguo 17/01/2009, 17:00
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Te agradecerio si tuvieras algun ejemplo similar
  #18 (permalink)  
Antiguo 17/01/2009, 17:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Hombre, está bien como lo armaste, sólo que usa $nombre en vez de $nick. Además, si esos datos los recoges por $_POST, quiere decir que vienen del formulario. Por lo tanto, no los uses exclusivamente para sacar el valor de tu campo veo, sino para extraer toda la información que vayas a necesitar del usuario que se acaba e loguear a lo largo de toda su sesión.

  #19 (permalink)  
Antiguo 17/01/2009, 17:13
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Gracias Okram pero la verdad me rindo parace ser muy facil pero hice esto ya tambien mira:
$nick = $_GET['nick'];
$contrasena = $_GET['contrasena'];
$nombre = $_GET['nombre'];
$result = mysql_query("select veo from login3 where veo = '0'",$link);
$vista = mysql_result($result ,0);
// echo $vista;
if ($vista == 0){
?>
<li><a href=carlos2.html> tu formualrio </a></li>

<?php
mysql_query("Update login3 Set veo = 1 where nick = '$nick'");
}

else
{
echo "ya esta";
}

Queria usar nick pq esta ya validodo para q sea unico en mi sistema y asi me evite de problemas con nombre hice la prueba pero la verdad como se dice ya perdi la esperenza
espero no haberte molestado tanto pero me gustaria q me dieras una ayuda de tu propia logica aver si puede ver en donde he fallado muchas gracias
  #20 (permalink)  
Antiguo 17/01/2009, 17:41
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Puedes poner el código con el que validas y generas la sesión del usuario? Y como es que lo reconoces en cada página?

Vamos, no es tan difícil como para rendirse

  #21 (permalink)  
Antiguo 18/01/2009, 15:35
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Bueno para poder enterder mejor pase a lo mismo pero a un version mas reducida como un prototipo de lo que puede hacer en mi sistema me cre lo siguiente:

1::: Este es el de presentacion::

<html>
<!-- true.html-->
<head>

</head>
<body>
<form action="control.php" method="post">
nombre:<input type="text" name="usuario" size="20" maxlength="256">
contraseña <input type="text" name="contrasena" size="20" maxlength="256">
<input type="submit" value="listo">


</form>

<a href="ojo.html"> Registrate</a>


</body>
</html>

2:::: ESTE ES EL CONTROL DE USUARIOS:: control.php

<?php
include ("../conectar.php");
$link = Conectarse();
$ssql = "SELECT * FROM login3 WHERE nick='$usuario' and contrasena='$contrasena'";
$rs = mysql_query($ssql,$link);
if (mysql_num_rows($rs)!=0){

session_start();
session_register("autentificado");
$autentificado = "SI";

$_SESSION[nombre] = $usuario;
header("Location: carlos.php");

}else {

echo "Datos incorrectos por favor intentelo de nuevo";

}
mysql_free_result($rs);
mysql_close($link);
?>

3::: SI NO ESTAN SE REGISTRAN AUI::

<html>
<!-- ojo.html -->
<head>

</head>
<body>
<form action="mira.php" method="get">
nick<br>
<input type="text" name="nick" size="20" maxlength="256"><br>
contraseña: <br>
<input type="password" name="contrasena" size="20" maxlength="256"><br>
nombre<br>
<input type="text" name="nombre" size="20" maxlength="256">
<input type="submit" value="listo">

</form>
</body>
</html>


4:: Mira.php este es el q insertar login y contrasena nueva para poder entrar:::
<html>
<body>
<?php
include("../conectar.php");
$link = Conectarse();
$id = $_GET['id'];
$nick = $_GET['nick'];
$contrasena = $_GET['contrasena'];
$nombre = $_GET['nombre'];

// $result_ultimo=mysql_query("SELECT * FROM vista where veo = 0",$link);
//echo $result;
// if ($result == 0 ){
$resultt = mysql_query("insert into login3(nick,contrasena,nombre) values ('$nick','$contrasena','$nombre')",$link);

echo "inserto correctamente";

//}
//else
//{
//echo "ya lo hizo";
//}
?>
<a href=true.html> vuelve a</a>
</body>
</html>

5:::: ESTE ES EL MENU PERSONAL DE CADA PERSONA AL INICIAR SU SESION:: carlos.php

<html>
<!-- Created on: 17/01/2009 -->
<head>

</head>
<body>
Hola mundo
<center> llena tu menu </center>
<?php
include("../conectar.php");
$link = Conectarse();
$id = $_GET['id'];
$nick = $_GET['nick'];
$contrasena = $_GET['contrasena'];
$nombre = $_GET['nombre'];
$result = mysql_query("select veo from login3 where nombre = '$nombre'",$link);
$vista = mysql_result($result ,0);
// echo $vista;
if ($vista == 0){
?>
<li><a href=carlos2.html> tu formualrio </a></li>

<?php
mysql_query("Update login3 Set veo = '1' where nick = '$nick'");
}

else
{
echo "ya esta";
}

?>
<li><a href=#> Modificalo </a></li>
<li><a href=salir.php> Salir de Session </a></li>

</body>
</html>

5::: ESTE ES EL LINK QUE TIEEN Q LLEnAR Y DESPUES DESACTIVARSE::

<html> carlos2.php
<head>

<title></title>

</head>
<body>
<form action="minombre.php" method="post">
nombre
<input type="text" name="nombre" size="40" maxlength="256">
apellido <input type="text" name="apellido" size="40" maxlength="256">
<input type="submit" value="listo">

</form>
</body>
</html>

6:: este es de inserte en carlos2
minombre.php
<?php /* Created on: 17/01/2009 */ ?>
<html>
<body>
<?php
include("../conectar.php");
$link = Conectarse();
$id =$_POST['id'];
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];



// $result_ultimo=mysql_query("SELECT * FROM vista where veo = 0",$link);
//echo $result;
// if ($result == 0 ){
$resultt = mysql_query("insert into nombres(nombre,apellido) values ('$nombre','$apellido')",$link);

echo "inserto correctamente";

//}
//else
//{
//echo "ya lo hizo";
//}
?>
<a href=carlos.php> vuelve a tu menu </a>
</body>

</body>
</html>

7:: el de salir::::

salir.php

<?
session_start();
session_destroy();
?>
<html>
<head>
<title>Has salido!!</title>
</head>
<body style="background-color: #BAD4FF">
Gracias por tu acceso
<br>
<br>
<a href=true.html>Formulario de autentificación</a>
</body>
</html>
  #22 (permalink)  
Antiguo 18/01/2009, 15:44
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

En carlos.php no entiendo por qué usas $_GET. Los datos te vienen de la URL?

Código PHP:
$id $_GET['id'];
               
$nick $_GET['nick'];
               
$contrasena $_GET['contrasena'];
               
$nombre $_GET['nombre']; 
  #23 (permalink)  
Antiguo 18/01/2009, 15:59
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Bueno lo cambia cuando lei tu post q habia problemas con el $_POST['nick'] pero lo cambia ahora yo igual solo q no entiendo pq no actualiza en el update mira::


Cambiaria su formulario asi::
el ojo.html
<html>
<!-- Created on: 17/01/2009 -->
<head>

</head>
<body>
<form action="mira.php" method="post">/// aqui
nick<br>
<input type="text" name="nick" size="20" maxlength="256"><br>
contraseña: <br>
<input type="password" name="contrasena" size="20" maxlength="256"><br>
nombre<br>
<input type="text" name="nombre" size="20" maxlength="256">
<input type="submit" value="listo">

</form>
</body>
</html>

2////////////////ahora Carlos.php

<html>
<!-- Created on: 17/01/2009 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
<meta name="description" content="">
<meta name="keywords" content="">
<meta name="author" content="www.bg-warez.org">
<meta name="generator" content="AceHTML 6 Pro">
</head>
<body>
Hola mundo
<center> llena tu menu </center>
<?php
include("../conectar.php");
$link = Conectarse();
$id = $_POST['id'];
$nick = $_POST['nick'];
$contrasena = $_POST['contrasena'];
$nombre = $_POST['nombre'];
$result = mysql_query("select veo from login3 where nombre = '$nombre'",$link);
$vista = mysql_result($result ,0);
// echo $vista;
if ($vista == 0){
?>
<li><a href=carlos2.html> tu formualrio </a></li>

<?php
mysql_query("Update login3 Set veo = '1' where nick = '$nick'");
}

else
{
echo "ya esta";
}

?>
<li><a href=#> Modificalo </a></li>
<li><a href=salir.php> Salir de Session </a></li>

</body>
</html>

LISTO
  #24 (permalink)  
Antiguo 18/01/2009, 16:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Consultas

Tu formulario tiene como action mira.php... Las variables $_POST sólo estarán disponibles en esa página, y ya no en Carlos.php. Tienes que guardar esos datos de login en variables de sesión para poder mantenerlos a lo largo de toda la visita de tu usuario. Y usando esos datos de sesión es que extraes la información de la base de datos.

  #25 (permalink)  
Antiguo 19/01/2009, 09:57
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Como estas okram mira ahora lo que hice creo q ya voy entendiendo como es la cosa pero espero tu opinion::

me contrui un modulo deseguidad.php es este::

<?

session_start();


if ($_SESSION["autentificado"] != "SI") {

header("Location: carlos.php");

exit();
}
?>
//////////////////ahora en carlos.php

<?php include ("seguridad.php");?>
<html>
<head>
<title>Menu de Opciones</title>

</head>
<body>
<h4 class="title" align="center">Buenos Dias <?php echo $_SESSION[nombre];?></h4>
<h4 class="title" align="center">tu es contraseña <?php echo $_SESSION[contrasena];?></h4>


<center>
<table border="0" align="center">
<tr>
<td colspan="2" align="center"><font size="5" color="#ff0000"><u>Menu Personal</u></font></td>
</tr>
<tr>
<td align="left">
<p class="text1">
<?php
session_start();
include ("../conectar.php");
$link=Conectarse();
$_SESSION[nombre] = $usuario;
$_SESSION[contrasena] = $contrasena;

// $ssql = "select id,veo from login3 where nick =$usuario and veo = 0 ";
// $result = mysql_query($ssql,$link);
// $re= mysql_num_rows($result);
// echo $re;

//if ( $re == 0 ){
//if ($_SESSION['datos'] == 2){
// echo " <font color=#000000>ya lleno este formulario </font>";
// }
// else {
?>
<li> <a href= "minombre.php"><font size="3" color="#000000">Ficha Individual</font></a> </li><br>
<?php
// mysql_query("update login Set veo = '1' ");
// }
//else {
// echo "Ya lleno su registro";

//}

?>
<li> <a href= "#"><font color="#000000" size="3">Modificar</font> </a> </li><br>
<li> <a href="salir.php"><font color="#000000" size="3">Cerrar Sesion</font> </a> </li>
</p>
</td>

</tr>
</table>
</center>

<br>
<br>

</body>
</html>

ya tengo almacenadas las variables de session de nombre y contrasena(este solo para hacer la prueba q imprima) pero ahora la gram ????????????
la consulta que hice anteriomente la mantego en carlos.php osea esta

$result = mysql_query("select veo from login3 where nombre = '$nombre'",$link);
$vista = mysql_result($result ,0);
o debo cambiar algo gracias
  #26 (permalink)  
Antiguo 19/01/2009, 10:03
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

Deberia ser ahora la consulta asi no?
$result = mysql_query("select nick from login3 where nombre = '$usuario'",$link);
$vista = mysql_result($result ,0);
if($vista==0){
?>

hago el menu minombre.php
mysql_query("Update login3 Set veo='1' where nombre='$usuario'")
}
else
{
echo ya hizo el menu
}

asi esta bien ahora q tengo almacenados los nombres de usuario de la session
  #27 (permalink)  
Antiguo 19/01/2009, 10:10
(Desactivado)
 
Fecha de Ingreso: diciembre-2008
Mensajes: 421
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Consultas

NOticias

esto es lo q hice en carlos.php

<?php
session_start();
include ("../conectar.php");
$link=Conectarse();
$_SESSION[nombre] = $usuario;
$_SESSION[contrasena] = $contrasena;
$result = mysql_query("select nick from login3 where nombre = '$usuario'",$link);
$vista = mysql_result($result ,0);
if ($vista == 0){

?>
<li> <a href= "carlos2.html"><font size="3" color="#000000">Ficha Individual</font></a> </li><br>
<?php
mysql_query("Update login3 Set veo = '1' where nick='$usuario'");
}
else {
echo "ya lleno esto";
}
?>
Pero lo malo es q no controla y tambien no realiza la operacion de update la consulta q por favor espero tu opinion es en la consulta esta bien o mal y q debo cambiar
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 21:57.