Foros del Web » Programando para Internet » PHP »

Como puedo asignar a una variable el primer registro ordenado asc

Estas en el tema de Como puedo asignar a una variable el primer registro ordenado asc en el foro de PHP en Foros del Web. Tengo una pagina en php para presentar una tabla-db en una tabla-html ordenada ascendentemente. Como puedo asignar a la variable $registro que es la que ...
  #1 (permalink)  
Antiguo 19/03/2010, 14:25
 
Fecha de Ingreso: agosto-2009
Mensajes: 193
Antigüedad: 15 años, 3 meses
Puntos: 0
Como puedo asignar a una variable el primer registro ordenado asc

Tengo una pagina en php para presentar una tabla-db en una tabla-html ordenada ascendentemente.
Como puedo asignar a la variable $registro que es la que controla el id_ de los registros, que en el codigo que he puesto debajo toma el valor del ultimo registro ordenado.
Para que tome el valor del primer registro ordenado que me resenta en la tabla-html .
Código PHP:
<?php 

//---------------------Titulos de la tabla--- 
print ("<div class='scrolled'>\n"); 
print (
"<table wjth=100%>\n"); 
print (
"<tr>\n");  
print (
"<th scope='col'>NOMBRE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>\n"); 
print (
"<th scope='col'>DIRECCION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>\n"
); 
print (
"<th scope='col'>CIUDAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>\n"); 
print (
"<th scope='col'>C.P.</th>\n"); 
print (
"<th scope='col'>PROVINCIA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>\n"); 
print (
"<th scope='col'>T-MOVIL</th>\n");    
print (
"</tr>\n"); 
//---------------------- 
$tabla=0
$conexion mysql_connect("localhost""root"""); // conecta con el servidor 
mysql_select_db("amistades"$conexion) or  die ("No se puede seleccionar la base de daros"); // conecta con la base de datos 
$instruccion "SELECT * FROM amigos ORDER BY NOMBRE ASC"//ordena la tabla 
$consulta mysql_query ($instruccion$conexion) or die ("Fallo en la consulta");  
while (
$row mysql_fetch_array($consulta)) 

$registro $row['id_amigo']; 
If (
$tabla==0

//-------------------------Fila de un color------------------------- 
print ("<tr width=100%>\n"); 
print (
"<th scope='row' class='spec'>" "</th>\n"); 
print  (
"<td>" $row['nombre'] . "</td>\n"); 
print  (
"<td>" $row['direccion'] . "</td>\n"); 
print  (
"<td>" $row['ciudad'] . "</td>\n"); 
print  (
"<td>" $row['codigo'] . "</td>\n"); 
print  (
"<td>" $row['provincia'] . "</td>\n"); 
print  (
"<td>" $row['movil'] . "</td>\n"); 
print (
"</tr>\n"); 
$tabla 1

else 

//-----------------------------Fila de otro color------------------- 
print ("<tr width=100%>\n"); 
print (
"<th scope='row' class='specalt'>" "</th>\n"); 
print  (
"<td>" $row['nombre'] . "</td>\n"); 
print  (
"<td>" $row['direccion'] . "</td>\n"); 
print  (
"<td>" $row['ciudad'] . "</td>\n"); 
print  (
"<td'>" $row['codigo'] . "</td>\n"); 
print  (
"<td>" $row['provincia'] . "</td>\n"); 
print  (
"<td>" $row['movil'] . "</td>\n"); 
print (
"</tr>\n"); 
print (
"</table>\n"); 
print (
"</div>\n"); 
$tabla=0;  


//--------------------------Asigno campos para el formulario---------------- 
//-------------Me presenta simpre el ultimo registro ordenado ascendentemente--
//--------- Como puedo hacer para que presente el primer registro ordenado asc

$_POST['nombre'] = $resultado['nombre']; 
$_POST['direccion'] = $resultado['direccion']; 
$_POST['ciudad'] = $resultado['ciudad']; 
$_POST['codigo'] = $resultado['codigo']; 
$_POST['provincia'] = $resultado['provincia']; 
$_POST['movil'] = $resultado['movil']; 
//-------------------------------------------------- 
mysql_free_result($consulta); 
mysql_close($conexion); // cierra la conexion con la base de datos 
?>
Muchas Gracias
  #2 (permalink)  
Antiguo 19/03/2010, 15:54
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: Como puedo asignar a una variable el primer registro ordenado asc

El problema que tenes ahi es que lo hace cada vez que entras al while.. podes probar con dos cosas, la primera, podrias hacer una unica consulta anticipada a tu fetch_array y de ahi tomas el valor, o la segunda, podes hacer el rulo con

Código PHP:
for (0$cant_registrosi++) {
   if (
== 0){
      
$resultado $row['id_amigo']
   }
..

Avisame como te fue con eso :)

Suerte!
  #3 (permalink)  
Antiguo 20/03/2010, 01:32
 
Fecha de Ingreso: agosto-2009
Mensajes: 193
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Como puedo asignar a una variable el primer registro ordenado asc

Dado que estoy aprendiendo php no controlo aun ciertas cosas que me explicais asi que lo he hecho con una unica consulta ' limit 1'.
Como me has recomendado.
El segundo ejemplo que me has puesto no comprendo todavia donde lo he de incluir en el codigo que he puesto en mi hilo anterior.
Si que me gustaria saberlo logicamente para aprender dado que me ayudais mucho en mi aprendizaje.

Muchas gracias.
  #4 (permalink)  
Antiguo 20/03/2010, 12:55
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años, 7 meses
Puntos: 2
Respuesta: Como puedo asignar a una variable el primer registro ordenado asc

Osea.. vos lo que tenes es un for que hace un rulo n cantidad de veces, no? En este caso, a vos te interesa rescatar especificamente en una variable el valor 1 de tu rulo de n.. no se si me explico..

RULO CON n CANTIDAD DE REPETICIONES
n={1, 2, 3, 4, 5, 6, 7, 8, 9, .... } Cualquier numero natural

Cada vez que entra al rulo tu n cambia, en tu caso el n esta dado por la variable $i

Cuano entras por primera vez en el for te quedaria $i == 0. Esa es la condicion que vamos a poner para quedarnos con el primer valor de tu consulta..

Entonces, donde vos tenes
Código PHP:
while ($row mysql_fetch_array($consulta))  
{  
$registro $row['id_amigo'];  
If (
$tabla==0)  

Hacemos

Código PHP:
// Vemos la cantidad de registros que salieron del query
$cant_registros mysql_num_rows($consulta);
// Por cada valor de $i que aumenta cada vez que se cumple una vuelta del codigo entre llaves
for (0$cant_registrosi++) {
// Tomamos en una variable array el contenido del query
   
$row mysql_fetch_array($consulta);
// Si es la primera vez que entramos nos quedamos con la variable para usarla luego (He aqui lo que buscabas)
   
if (== 0){
      
$registro$row['id_amigo']
   }
// Seguis con el codigo como lo tenias con el if ($table == 0)
..

Espero nos hayamos entendido ahora xD Cualquier cosa volve a preguntar, por ahi tardo porque no tengo mucho tiempo pero no hay drama en ayudar :D

Saludos!
  #5 (permalink)  
Antiguo 20/03/2010, 15:27
 
Fecha de Ingreso: agosto-2009
Mensajes: 193
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Como puedo asignar a una variable el primer registro ordenado asc

Muchas gracias por tu ayuda me ha venido muy bien, me funciona de las dos formas que me has comentado.
con la consulta unica y con el rulo.
Saludos

Etiquetas: asignar, ordenado, primer, registro, variables
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 20:17.