Foros del Web » Programando para Internet » PHP »

Error, a ver si me podéis ayudar.

Estas en el tema de Error, a ver si me podéis ayudar. en el foro de PHP en Foros del Web. Es un error de novato... estoy conectando a una base de datos y quiero mostrar sólo el último registro, y hago esto. Código PHP: <? ...
  #1 (permalink)  
Antiguo 29/12/2002, 07:38
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 23 años
Puntos: 0
Error, a ver si me podéis ayudar.

Es un error de novato... estoy conectando a una base de datos y quiero mostrar sólo el último registro, y hago esto.

Código PHP:
<?
mysql_connect
("localhost","usuario","password");
$result=mysql_db_query("tabla","select top 1* from users DESC");
?>
Usuario:<?
while ($row=mysql_fetch_array($result))
{
echo 
$row["uname"];
}
mysql_free_result($result)
?><br>
E-mail:
<?
while ($row=mysql_fetch_array($result))
{
echo 
$row["email"];
}
mysql_free_result($result)
?>
Y me lanza error.

Y después una duda.

Si quiero mostrar los registros que tengan la palabra... jose.. por ejemplo, y sólo quiero que me muestre los registros que contengan la palabra josé se haría así?.

Osea, yo entro con la url, usuarios.php?usuario=jose

Código PHP:
<?
mysql_connect
("localhost","usuario","password");
$result=mysql_db_query("tabla","select top 1* from users where usuario=$usuario order by id");
?>
Muchas gracias.
  #2 (permalink)  
Antiguo 29/12/2002, 08:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En Mysql no exite TOP .. como lo estas usando:

Código PHP:
$result=mysql_db_query("tabla","select top 1* from users DESC"); 
Debes usar LIMIT que sería el equivalente a TOP de otros motores de base ded datos como SQL Server ..
Código PHP:
$result=mysql_db_query("tabla","select * from users DESC LIMIT 1"); 
Te recomiendo que visites www.mysql.com/doc y leas la sintaxis basica de SELECT y demas funciones .. Pese q es SQL .. Mysql tiene su SQL particular que no sique las normas standars ANSI ?? (no me acuerdo del numero xD)

(Por si acaso .. Mysql tampoco soporta subconsultas tipo SELECT * FROM tabla IN (SELECT id FROM tabla) .. Te aviso ya que parece q vienes de SQL server o no conoces Mysql .. Revisa el manual para esos detalles).

Tambien, para localizar errores de SQL propios de Mysql usa la estructura:

$result=mysql_db_query("tabla","select * from users DESC LIMIT 1") or die (mysql_error());

Eso (el or die ...) te mostrará los errores a nivel sintax de SQL .. Usalo por lo menos en la fase de desarrollo.

Un saludo,

Última edición por Cluster; 29/12/2002 a las 08:47
  #3 (permalink)  
Antiguo 29/12/2002, 09:19
Avatar de yampoo  
Fecha de Ingreso: noviembre-2001
Ubicación: Vilanova i la Geltrú
Mensajes: 1.942
Antigüedad: 23 años
Puntos: 0
Muchas gracias... es que antes sólo he usado Acces, y de MySQL... estoy aprendiendo ahora... muchas gracias. Me leeré la dirección a ver si me quedo con algo.
  #4 (permalink)  
Antiguo 30/12/2002, 03:25
Avatar de SpiceMan  
Fecha de Ingreso: noviembre-2002
Mensajes: 160
Antigüedad: 22 años
Puntos: 0
Cita:
Mensaje Original por Cluster
Pese q es SQL .. Mysql tiene su SQL particular que no sique las normas standars ANSI ?? (no me acuerdo del numero xD)

(Por si acaso .. Mysql tampoco soporta subconsultas tipo SELECT * FROM tabla IN (SELECT id FROM tabla) .. Te aviso ya que parece q vienes de SQL server o no conoces Mysql .. Revisa el manual para esos detalles).
1) Si, en general todos los sistemas de base de datos soportan 100% el AnsiSQL, el problema está en que el último AnsiSQL es de 1992 con lo que cada sistema siguió avanzando por donde le dio la gana.

2) Una alternativa al SELECT IN SELECT es usar JOIN, LEFT JOIN, OUTER JOIN, y loquequieras JOIN. Te invito a leer el mismo manual que linkeaste
  #5 (permalink)  
Antiguo 30/12/2002, 08:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
mm Me dices a mí ? SpiceMan

Código PHP:
2Una alternativa al SELECT IN SELECT es usar JOINLEFT JOINOUTER JOINy loquequieras JOINTe invito a leer el mismo manual que linkeaste 
Lo digo porque ya lo leí .. y por eso le aviso a yapoo q cuando llegue hacer o intentar hacer una subconsulta de ese tipo que revise:

http://www.mysql.com/doc/en/ANSI_diff_Sub-selects.html

Un saludo,

Última edición por Cluster; 30/12/2002 a las 08:47
  #6 (permalink)  
Antiguo 30/12/2002, 16:05
Avatar de SpiceMan  
Fecha de Ingreso: noviembre-2002
Mensajes: 160
Antigüedad: 22 años
Puntos: 0
le decia a todos
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:06.