Foros del Web » Programando para Internet » PHP »

algo extraño en una consulta en Mysql+Php

Estas en el tema de algo extraño en una consulta en Mysql+Php en el foro de PHP en Foros del Web. amigos, tengo un problema y no entiendo que puede ser les comento tengo un formulario para agregar una permisologia cuya restriccion es si el id ...
  #1 (permalink)  
Antiguo 01/10/2006, 14:25
Avatar de devildriver  
Fecha de Ingreso: julio-2006
Mensajes: 118
Antigüedad: 17 años, 9 meses
Puntos: 0
algo extraño en una consulta en Mysql+Php

amigos, tengo un problema y no entiendo que puede ser les comento tengo un formulario para agregar una permisologia cuya restriccion es si el id del usuario existe o el login del usuario existen no inserten. Mi clave primaria es el id_usuario que es numerico y tengo login como varchar y password como varchar, ahi no tengo problema por que cuando hago la restriccion si el id_usuario esta agregado el no agrega pero cuando ademas reviso que el login no sea igual no me lo valida e inserta, lo extraño es que cuado hago el query en mysql funciona bien como yo quiero, pero en php no, la unica forma que me funcione en php es poniendo que el login sea numerico asi si sirve pero eso no es lo que quiero.

este es el error q me dice Unknown column 'usuario' in 'where clause' donde usuario es lo que escribi en el login


asi esta el insert
Código PHP:
$cedula=mysql_query('select *from  permisologia where id_personal = '.$id_personal.'') or die (mysql_error());
$num_resultado=mysql_num_rows($cedula);
$login_comprobacion=mysql_query('select * from permisologia where login = '.$login.'');
$num_resultado_login=mysql_num_rows($login_comprobacion);


if (
$num_resultado_login 0)

{
echo 
"Lo Siento Ya existe un Usuario Registrado con ese login";
echo 
"</br>";

echo 
"<a href='agregar_permisologia.php'>Atras</a>";

else if (
$num_resultado == 1)
{
echo 
"Lo Siento Ya existe un Usuario Registrado con esa cedula";
echo 
"</br>";

echo 
"<a href='agregar_permisologia.php'>Atras</a>";
} else
{

$sql "INSERT INTO permisologia ( id, id_personal, nombre, login, password, nivel_acceso) ";

$sql .= "VALUES ( '', '$id_personal', '$nombre', '$login', '$pass', '$select')";
  
 
$resultado mysql_query($sql);
 echo 
"Permisologia Asignada";

y este es el formulario

<form name="form1" method="post" action="permisologia_agregada.php">
<table width="640" border="1" align="center">
<tr>
<td width="90"><div align="center">Cedula</div></td>
<td width="150"><div align="center">Nombre</div></td>
<td width="150"><div align="center">Login</div></td>
<td width="150"><div align="center">Password</div></td>
<td width="125"><div align="center">Nivel De Acceso </div></td>
</tr>
<tr>
<td>

<input name="id_personal" type="text" id="id_personal" size="15" maxlength="8">
</td>
<td> <input name="nombre" type="text" id="nombre" size="25" maxlength="25"> </td>
<td> <input name="login" type="text" size="25" maxlength="25"> </td>
<td> <input name="pass" type="password" id="pass" size="25" maxlength="25"> </td>
<td><select name="select">
<option value="3">Tecnico</option>
<option value="2">Administrativo</option>
<option value="1">Administrador</option>
</select></td>
</tr>
</table>


<div align="center">
<input name="agregar" type="button" id="agregar" value=" Agregar " >
<input name="borrar" type="reset" id="reset" value=" Borrar ">
</div>
</form>

Última edición por devildriver; 01/10/2006 a las 14:29 Razón: me falto poner el error.
  #2 (permalink)  
Antiguo 01/10/2006, 14:55
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Por las cosas que he leido de este foro y las que me han ocurrido ami yo diria que el fallo esta en la primera consulta:
Código PHP:
$cedula=mysql_query('select *from  permisologia where id_personal = '.$id_personal.'') or die (mysql_error()); 
Lo que probaria seria ponerlo asi:
Código PHP:
$cedula=mysql_query("select *from  permisologia where id_personal = '.$id_personal.'") or die (mysql_error()); 
Y en la segunda:
Código PHP:
$login_comprobacion=mysql_query('select * from permisologia where login = '.$login.''); 
Probaria ponerlo asi:
Código PHP:
$login_comprobacion=mysql_query("select * from permisologia where login = '.$login.'"); 
Un Saludo y espero haverte ayudado!
  #3 (permalink)  
Antiguo 01/10/2006, 16:59
Avatar de seyacat  
Fecha de Ingreso: agosto-2006
Mensajes: 382
Antigüedad: 17 años, 7 meses
Puntos: 0
Si el error esta claro
si tu escribes

'select *from permisologia where id_personal = '.$id_personal.''

tendras un queri como

'select *from permisologia where id_personal = 1'
ó
'select *from permisologia where id_personal = hola'

si te fijas en el caso de no ser numerico no tendras la candena entre ""

por tanto usalo asi

"select *from permisologia where id_personal = '$id_personal'"

La ventaja de usar la doble comilla "", es que PHP reemplaza las variables sin necesidad de hacer la concatenacion seria exactamente igual que hacerlo asi

"select *from permisologia where id_personal = '".$id_personal."'";
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 22:04.