Foros del Web » Programando para Internet » PHP »

Consuta Base de datos

Estas en el tema de Consuta Base de datos en el foro de PHP en Foros del Web. No puedo acceder a los datos de mi base. Tengo 2 tablas usuarios(cedula,codigo,nombre) y usuarios claves(clave, cedula) <?php // Se establece la conexión con la ...
  #1 (permalink)  
Antiguo 28/01/2004, 15:48
 
Fecha de Ingreso: enero-2004
Ubicación: cali
Mensajes: 9
Antigüedad: 20 años, 3 meses
Puntos: 0
Consuta Base de datos

No puedo acceder a los datos de mi base.
Tengo 2 tablas
usuarios(cedula,codigo,nombre) y usuarios claves(clave, cedula)

<?php
// Se establece la conexión con la fuente de datos
$conex = mysql_connect("localhost", "USER", "PASSWORD");
//Selecion de la base de datos
mysql_select_db("Mi_basedatos");

if (!empty($codigo) )
{
// consulto todos los campos de mis 2 tablas
$consultaSQL = "SELECT * FROM usuarios, usuarios_claves

WHERE codigo = '$codigo';";
$resultado = mysql_query($conex, $consultaSQL);
if (mysql_fetch_row($resultado))
{
$codigo = mysql_result($resultado, 1);
$nombre = mysql_result($resultado, 2);
$cedula = mysql_result($resultado, 3);
$clave = mysql_result($resultado, 4);
echo "<TR><TD>Código:</TD><TD>";
echo "<INPUT TYPE='Text' NAME='codigo' VALUE='$codigo'";
echo " SIZE=4></TD><TD>Nombre:</TD>\n<TD>";
echo "<INPUT TYPE='Text' NAME='nombre' VALUE='$nombre'";
echo " SIZE=30></TD></TR>\n<TR><TD>Cedula:</TD><TD>";
echo "<INPUT TYPE='Text' NAME='cedula' ";
echo "VALUE='$cedula' SIZE=11></TD><TD>Clave:</TD>";
echo "<TD><INPUT TYPE='Text' NAME='clave' VALUE=$clave ";
echo "SIZE=11></TD></TR>\n<TR>";
}
else //No encuentra el código introducido
{
echo "<TR>";
echo "<TD COLSPAN=2><B><CENTER>Código:";
echo $codigo,"</B></CENTER></TD></TR>";
echo "<TR><TD COLSPAN=2><B><CENTER>NO EXISTENTE";
echo "</CENTER></B></TD></TR>";
} // de si no existe el código introducido
} // del 1 if: si se ha introducido código
else{ // Se genera el formulario por primera vez
?>
<TR>
<TD width="89"><font face="Arial, Helvetica, sans-serif">Código:</font></TD>
<TD width="94"><font face="Arial, Helvetica, sans-serif">
<INPUT NAME='codigo' TYPE='Text' id="codigo" SIZE=11>
</font></TD>
<TD width="60"><font face="Arial, Helvetica, sans-serif">Nombre:</font></TD>
<TD width="283"><INPUT NAME='nombre' TYPE='Text' id="nombre" SIZE=30></TD>
</TR>
<TR>
<TD><font face="Arial, Helvetica, sans-serif">C&eacute;dula</font></TD>
<TD><font face="Arial, Helvetica, sans-serif">
<INPUT NAME='cedula' TYPE='Text' id="cedula" SIZE=11>
</font></TD>
<TD><font face="Arial, Helvetica, sans-serif">Contrase&ntilde;a</font></TD>
<TD><INPUT NAME='clave' TYPE='Text' id="clave" SIZE=11></TD>
</TR>
<?
}
mysql_close ($conex);
?>
y este es el error
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /cache2/clientes/fonde/Consulta_claves.php on line 23

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /cache2/clientes/fonde/Consulta_claves.php on line 24

Ademas que significa este mensaje:
Duplicate entry '127' for key 1
Ya verifiqué y no tengo claves ni registros duplicados y me aprece para varios usuarios


Gracias
  #2 (permalink)  
Antiguo 28/01/2004, 16:36
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Revisa el orden de los parametros de mysql_query() (www.php.net/mysql_query).

Y sobre el 127, revisa el tipo de dato que es tu clave. Puede que hayas elegido un tipo que solo admita 127 valores (TINYINT). Cambialo a un UNSIGNED INT.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 28/01/2004, 17:19
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Y dale una longitud más larga: INT(7), INT(10)...
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 28/01/2004, 18:09
Avatar de lubetpic  
Fecha de Ingreso: enero-2002
Ubicación: San Jose
Mensajes: 679
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Consuta Base de datos

te marco unos errores que veo por ensimita en rojo




<?php
// Se establece la conexión con la fuente de datos
$conex = mysql_connect("localhost", "USER", "PASSWORD");
//Selecion de la base de datos
mysql_select_db("Mi_basedatos");

if (!empty($codigo) )
{
// consulto todos los campos de mis 2 tablas
$consultaSQL = "SELECT * FROM usuarios, usuarios_claves

WHERE codigo = '$codigo'; ";
$resultado = mysql_query($conex, $consultaSQL );$consultaSQL debe de ir primero


if (mysql_fetch_row($resultado))
{
$codigo = mysql_result($resultado, 1);
$nombre = mysql_result($resultado, 2);
$cedula = mysql_result($resultado, 3);
$clave = mysql_result($resultado, 4);
  #5 (permalink)  
Antiguo 29/01/2004, 03:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Otra cosa: ¿entiendes para que sirve mysql_result() (www.php.net/mysql_result)? Porque me parece que lo estas usando mal. Revisa tambien los ejemplos de mysql_fetch_row() (www.php.net/mysql_fetch_row).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 29/01/2004, 08:06
 
Fecha de Ingreso: enero-2004
Ubicación: cali
Mensajes: 9
Antigüedad: 20 años, 3 meses
Puntos: 0
Gracias

Les agradezco a las personas que contestaron mi solicitus, les cuento que con el cambio que me recomendó lubetpic y las otras recomendaciones.

$resultado = mysql_query($conex, $consultaSQL );$consultaSQL debe de ir primero.

El error desapareció lo que me sucede ahora es que cuando escribo el codigo de un usuario para ver sus otros datos, me aparece en todos los campos la cedula del usuario, incluido el campo donde digité el código. Les aclaro que mi campo llave en las 2 tablas es cedula.....eso influye???

Por otro lado verifique el error 127 y efectivamente lo reemplacé con la indicaciones que me facilitaron y quedó unsigned int(10)

Gracias una vez más, cuando que listo el fichero lo publicaré para que otros novatos como Yo la aprovechen.

Julio Cesar
  #7 (permalink)  
Antiguo 29/01/2004, 08:19
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Revisa lo que te comento en mi ultimo mensaje, el mysql_result().

Y ahora que me fijo, posiblemente tu consulta tambien este mal planteada. Revisa http://www.mysql.com/doc/en/JOIN.html

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 06:37.