Foros del Web » Programando para Internet » PHP »

No entiendo porque no sale nada

Estas en el tema de No entiendo porque no sale nada en el foro de PHP en Foros del Web. Hola tengo este codigo: Código PHP: <?php $conexion = mysql_connect ( localhost , medievil , PASS ); mysql_select_db ( marrugino ,  $conexion ); $resultado = ...
  #1 (permalink)  
Antiguo 18/02/2004, 11:11
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
No entiendo porque no sale nada

Hola tengo este codigo:

Código PHP:
<?php
$conexion
=mysql_connect(localhost,medievil,PASS);
mysql_select_db(marrugino$conexion);
$resultado=mysql_query("SELECT id FROM usuarios ORDER BY id ASC LIMIT 1",$conexion);
while(
$row=mysql_fetch_row($resultado));
{
echo 
"$row[0]";
}
print_r(mysql_error());
?>
Resulta que me gustaria imprimir con echo el ultimo valor del campo ID como por ejemplo http://tombraider.iefactory.com/pantalla.jpg

Pero no me sale nada, todo en blanco no entiendo porque

  #2 (permalink)  
Antiguo 18/02/2004, 11:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El "print_r" para msyql_error? .. con un echo sobraría .. Y más si lo usas como condicional en extrucuturas tipo "or die(msyql_error())" :

Código PHP:
<?php
$conexion
=mysql_connect(localhost,medievil,PASS) or die (mysql_error());
mysql_select_db(marrugino$conexion) or die (mysql_error());
$resultado=mysql_query("SELECT id FROM usuarios ORDER BY id ASC LIMIT 1",$conexion) or die (mysql_error());
while(
$row=mysql_fetch_row($resultado)){
echo 
$row['id'];
}
?>
Tenías también un ; en la línea del while() .. ahí no corresponde.

SI no ves errores puede ser por qué los tengas desactivados .. puedes usar:

error_reporting(E_ALL);

al principio de tu script para ver que errores hay "ocultos" si corresponde.

A su vez .. accedo por el indice asociativo al array que obtienes con mysql_fetch_array() .. así queda algo más claro de donde salen los campos que usas como indices de tu "$row".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 18/02/2004, 11:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Otro detalle .. al usar LIMIT 1 .. vas a obtener un sólo registro (record-set) de esa consulta .. así que incluso puedes omitir el bucle while() y usar sólo mysql_fetch_array() .. y hasta incluso usar la función:

Código PHP:
$id=msyql_result($resultado,0,'id'); 
(el 3er parámetro hace referencia al campo que quieres de ese registro .. si usas sólo uno hasta puedes omitir ese parámetro.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 18/02/2004, 16:10
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Pues acabo de hacer mas o menos lo que me has dicho:

Código PHP:
<?php
$conexion
=mysql_connect(localhost,medievil,nech) or die (mysql_error());
mysql_select_db(marrugino$conexion) or die (mysql_error());
$resultado=mysql_query("SELECT id FROM usuarios ORDER BY id ASC LIMIT 1",$conexion) or die (mysql_error());
{
echo 
$row['id'];
}
?>
Y me sigue sin salir nada, todo en blando, el codigo no tiene error todo se ejecuta bien pero no hace lo que yo quiero, lo se porque si hago cualquier cosa mal me salta error, no se donde estara el fallo, respecto a $id=msyql_result($resultado,0,'id'); no se a que linea te referias para sustituir ¿que reflejaria el resultado asi: echo $id ?

gracias, un saludo
  #5 (permalink)  
Antiguo 18/02/2004, 16:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Código PHP:
$resultado=mysql_query("SELECT id FROM usuarios ORDER BY id ASC LIMIT 1",$conexion) or die (mysql_error());
while(
$row=mysql_fetch_row($resultado)){
echo 
"ID: ".$row['id'];

te dejastes la mitad del código ...

Y asegurate de que esa tabla contenga datos .. Podrías probar la sentencia SQL a parte en phpMyadmin o el GUI para Msyql que uses ...

Un saludo,

PD: .. lo del myslq_result .. si, se usaría así: echo $id;
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 18/02/2004, 16:40
 
Fecha de Ingreso: diciembre-2003
Mensajes: 53
Antigüedad: 20 años, 4 meses
Puntos: 0
Hmmm

ASC (acendente) te va a posicionar en el ID menor
1
2
3
4
5

Así que cuando des el primer echo será el menor.

Creo que debe ser DESC para que te posicione en el mayor(porque de ahí va a descender)

Si es nomas un resgistro, no necesitas ciclo, solo haz la consulta y luego muestra el valor.

<?php
$conexion=mysql_connect(localhost,medievil,PASS) or die (mysql_error());

mysql_select_db(marrugino, $conexion) or die (mysql_error());

$resultado=mysql_query("SELECT id FROM usuarios ORDER BY id DESC LIMIT 1",$conexion) or die (mysql_error());

$row=mysql_fetch_row($resultado))

echo $row['id'];

?>



Saludos

Giorgio
__________________
EmpresasEnRed.com
Diseño Web
  #7 (permalink)  
Antiguo 18/02/2004, 17:39
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Pues acabo de probar y solo sale ID: sin nada, es muy raro porque el campo esta lleno con varias filas como veis en el dibujo, repecto al codigo de Giorgio me sale un error en la linea 5 crei que era poque no tenia ; pero saguia el error.

Un Saludo
  #8 (permalink)  
Antiguo 18/02/2004, 18:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
OJO con la sintax .. y los nombres de los campos .. ¿ese ID es MAYUSCULAS?

$row['ID'] (en mayusculas o exactamente igual como se definió en la tabla de tu BD).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 18/02/2004, 18:53
 
Fecha de Ingreso: diciembre-2003
Mensajes: 53
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola escan

Bueno, el código solo lo copié de los anteriores he hice los cambios para dar la idea.

lo de DESC en mi opinion es obligatorio para estar posicionado e el ID mayor.
¿Ya intentaste correr el query en la venta de SQL de phpMyAdmin? digo, para ir por partes, primero ver si la consulta te está enviando lo que quieres, y de ahí partir después con PHP.

Y como dice Cluster, checa bien las variables, no sea que estas mostrando una que no existe y por lo tanto vacía.

$x=3
echo $X

Te dará nada.
(Depende de la configuración del Server también)


Saludos


Giorgio
__________________
EmpresasEnRed.com
Diseño Web
  #10 (permalink)  
Antiguo 19/02/2004, 05:17
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Si teniais razon el campo ID de la tabla usuarios esaba en mayuscula, pero si funcionar, no sale error pero no sale nada, solo ID:

Aqui esta el codigo:

Código PHP:
<?php
$conexion
=mysql_connect(localhost,medievil,PASS) or die (mysql_error());
mysql_select_db(marrugino$conexion) or die (mysql_error());
$resultado=mysql_query("SELECT ID FROM usuarios ORDER BY ID ASC LIMIT 1",$conexion) or die (mysql_error());
while(
$row=mysql_fetch_row($resultado)){
echo 
"ID: ".$row['ID'];
}
?>

Cita:
¿Ya intentaste correr el query en la venta de SQL de phpMyAdmin? digo, para ir por partes, primero ver si la consulta te está enviando lo que quieres, y de ahí partir después con PHP.
¿como podria hacer eso? no se como empezar para hacerlo?


Bueno a ver si me podeis ayudar

salu2
  #11 (permalink)  
Antiguo 19/02/2004, 07:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues .. si no usas phpMyadmin (tampoco dices si usas tu PC como servido o un servicio de hosting) . bajatelo:

www.phpMyadmin.net y lo instalas

Eso es uno de tantos GUI (administradores) de Msyql que te facilitaran la taréa para crear y gestionar tus Base de datos .. y .. por ejemplo como es el caso probar tu sentencia SQL a ver si funciona o no y/o obtienes los resultados esperados para empezar a plantearse si el error es de SQL o bien de la implementación en PHP ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 19/02/2004, 10:41
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Si que tengo phpmyadmin instalado, sin el no podia a ver controlado la base de datos, como vereis en la captura de pantalla del primer mensaje que hice en este hilo.
http://tombraider.iefactory.com/pantalla.jpg
Si el servidor, es una maquina linux, debian.

Lo que no entiendo son esas pruebas que deciis, creo que el problema esta en el codigo pero no se porque no sale nada.

un saludo
  #13 (permalink)  
Antiguo 19/02/2004, 11:20
 
Fecha de Ingreso: diciembre-2003
Mensajes: 53
Antigüedad: 20 años, 4 meses
Puntos: 0
Ok...
entras a phpMyAdmin
click en la Base de datos(no en la tabla)
En la parte de arriba.. click en SQL
Pegas ahí el código y lo envías...
(lo hago mentalmente, si me equivoco me dices)


Saludos

Giorgio
__________________
EmpresasEnRed.com
Diseño Web
  #14 (permalink)  
Antiguo 19/02/2004, 12:56
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Cuando hago click en la base de datos no veo el apartado SQL pero si un cuadro de texto con un examinar un siga, pero que parte del codigo pego, si lo pego entero me sale error en la primera linea, ¿no es en ese lugar?

salu2
  #15 (permalink)  
Antiguo 19/02/2004, 14:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Es ese lugar .. pero lo que tienes que pegar es SÓLO la sentencia SQL .. incluso si usas variables (de PHP $variable) en tu sentencia SQL usa valores de prueba.

SELECT id FROM usuarios ORDER BY id ASC LIMIT 1

Eso es tu sentencia SQL ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 19/02/2004, 14:32
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Pues si funciona perfectamente:

SELECT id FROM usuarios ORDER BY id DESC LIMIT 1

phpmyadmin dice: 14 y eso es exactamente lo que quiero, quiero pasar el ultimo valor de ID a una variable pero en php parece que no hay manera...

salu2
  #17 (permalink)  
Antiguo 19/02/2004, 15:44
 
Fecha de Ingreso: febrero-2003
Mensajes: 763
Antigüedad: 21 años, 2 meses
Puntos: 2
Ya encontre el fallo!
el while tiene q ser mysql_fetch_array($resultado)
con fetch_row le indicas un nº y con fetch_array le indicas el nombre del campo, no habia caido.

gracias,
  #18 (permalink)  
Antiguo 19/02/2004, 16:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Yo tampoco había caido .. la constumbre de ver siempre en el "while" un mysql_fetch_array() .. y usar indices asociativos en las llamadas a esos elementos del array que genera ...

Por cierto .. con mysql_fetch_array() puedes llamar a tus campos por su nombre o por su nº correlativo ... Y .. mysql_fetch_assoc() "dicen" que consume algo menos de recursos si accedes a tus variables por sus indices asociativos (nombre) ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 05:04.