Foros del Web » Programando para Internet » PHP »

Publicar varios registros

Estas en el tema de Publicar varios registros en el foro de PHP en Foros del Web. Hola a todos/todas: Deseo publicar en mi proyecto varios registros de una tabla (...lo se, no es novedad) el problema que tengo es que la ...
  #1 (permalink)  
Antiguo 30/03/2011, 02:31
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 13 años, 7 meses
Puntos: 4
Publicar varios registros

Hola a todos/todas:

Deseo publicar en mi proyecto varios registros de una tabla (...lo se, no es novedad) el problema que tengo es que la documentación que he encontrado por ahí solo sirve para publicar en forma de tabla y, claro como es natural, yo deseo ir un poco más allá.
Lo que deseo es publicar los registros en base a ciertas condiciones, de momento he conseguido mostrar el primer registro de la tabla, el problema surje cuando hay más de un registro.
Pongo lo que tengo para que veáis (asumo que el login a la BBDD y la conexión están hechos)

Código PHP:
<?php

//Recupero la formacion
            
            
$SelectFOR=mysql_query("SELECT universidad,titulo,FP,diplomatura,licenciatura,grado,master,doctor FROM formacion WHERE idPER=$PKPER");
                
                while (
$row mysql_fetch_array($SelectFORMYSQL_NUM)) {
                        
$SelectUniversidad$row [0];
                        
$SelectTitulo$row [1];
                        
$SelectFP$row [2];
                        
$SelecteDiplomatura$row [3];
                        
$SelecteLicenciatura$row [4];
                        
$SelecteGrado$row [5];
                        
$SelecteMaster$row [6];
                        
$SelecteDoctor$row [7];
                    }    
                    
                
$Universidad=$SelectUniversidad;
                
$Titulo=$SelectTitulo;
                
$FP=$SelectFP;
                
$Diplomado=$SelecteDiplomatura;
                
$Licenciado=$SelecteLicenciatura;
                
$Grado=$SelecteGrado;
                
$Master=$SelecteMaster;

//publico la formación

                
if ($Doctor=="si"){echo "Doctor por la $Universidad";}
                if (
$Master=="si") {echo "Master por la $Universidad";}
                if (
$Grado=="si") {echo "Grado en $Titulo por la $Universidad";}
                if (
$Licenciado=="si") {echo "Licenciado en $Titulo por la $Universidad";}
                if (
$Diplomado=="si") {echo "Diplomado en $Titulo por la $Universidad";}
                if (
$FP=="si") {echo "Técnico en $Titulo por la $Universidad";}                
?>
Lógicamente debería añadirt tnatos campos adiconles como registros hubiera en la base de datos ¿Alguien me puede indicar el camino y llevarme de la mano?

Muchas gracias de antemano
__________________
J.
¿Dónde está la tecla ‘ANY’?
(H. Simpson)
  #2 (permalink)  
Antiguo 30/03/2011, 02:49
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Publicar varios registros

Dos cosas...

1.- Si te fijas, el while se cierra despues de cargar las variables, esto implica que si cargas 10 valores a $SelectUniversidad, siempre tendra el ultimo.
2.- Puedes evitar cargar variables si vas a hacer todo con $row dentro del while.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 30/03/2011, 02:50
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Publicar varios registros

Lo que a primera vista veo es que las variables $Universidad, $Titulo, etc. siempre van a coger los valores del último registro del query, ya que primero recorre toto los registros y luego recoges los campos. Tambien te has dejado declarar la variable $Doctor.
No he ententido mucho lo que quieres hacer, pero no seria mejo hacerlo así?:

Código PHP:
<?php 

//Recupero la formacion 
             
            
$SelectFOR=mysql_query("SELECT universidad,titulo,FP,diplomatura,licenciatura,grado,master,doctor FROM formacion WHERE idPER=$PKPER"); 
                 
                while (
$row mysql_fetch_array($SelectFORMYSQL_NUM)) { 
                     
                        
$Universidad$row [0]; 
                        
$Titulo=$row [1]; 
                        
$FP=$row [2]; 
                        
$Diplomado=$row [3]; 
                        
$Licenciado=$row [4]; 
                        
$Grado=$row [5];  
                        
$Master=$row [6]; 
                        
$Doctor=$row [7]; 

//publico la formación 

                        
if ($Doctor=="si"){echo "Doctor por la $Universidad";} 
                        if (
$Master=="si") {echo "Master por la $Universidad";} 
                        if (
$Grado=="si") {echo "Grado en $Titulo por la $Universidad";} 
                        if (
$Licenciado=="si") {echo "Licenciado en $Titulo por la $Universidad";} 
                        if (
$Diplomado=="si") {echo "Diplomado en $Titulo por la $Universidad";} 
                        if (
$FP=="si") {echo "Técnico en $Titulo por la $Universidad";}       

                }         
?>
EDIT: Se me adelanto Marvin :D
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.
  #4 (permalink)  
Antiguo 30/03/2011, 09:58
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: Publicar varios registros

Hola a los dos:

En primer lugar muchas gracias por la rápida respuesta, pero no entiendo como voy a publicar varios registros (filas) de la tabla con vuestras indicaciones.
...Quizás si me explico mejor...El proceso es el siguiente, en mi site los usuarios pueden publicar su perfil, parte de su perfil es la formación. Y esta puede verse ampliada con el tiempo, de manera que pueden incorporarse más estudios (títulos) de niveles diferentes (FP, Diplomado, Licenciado, Master o Doctor) cursados en distintas escuelas (Universidad).
Lo que pretendo es que cuando el usuario actualize esta información, esta se publique en su perfil, de manera que un mismo usuario pueda tener varios títulos en diferentes escuelas. Por ejemplo:
  • Licenciado en Ingenieria Industrial por la UPC
  • MBA en la Harvard Business School
  • Doctor por la Universidad de Salamanca
De todas maneras probaré vuestras indicaciones.

Gracias de nuevo y un saludo,
__________________
J.
¿Dónde está la tecla ‘ANY’?
(H. Simpson)
  #5 (permalink)  
Antiguo 30/03/2011, 11:01
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Publicar varios registros

Emm... pero ten en cuenta que asi como lo estas haciendo no te sirve... si quieres poner tus registros en una tabla es cosa que hagas algo como esto:
Código PHP:
Ver original
  1. $sql = "SELECT loquesea, loquesea2 FROM tabla";
  2. $result = mysql_query($sql);
  3. echo '<table>
  4.     <tr>
  5.         <td>Campo1</td>
  6.         <td>Campo2</td>
  7.     </tr>';
  8. while($data = mysql_fetch_array($result)){
  9.     $tabla = '
  10.     <tr>
  11.         <td>'.$data['loquesea'].'</td>
  12.         <td>'.$data['loquesea2'].'</td>
  13.     </tr>';
  14.     echo $tabla;
  15. }
  16. echo '</table>';

A eso nos referimos cuando mencionamos que debes hacerlo todo dentro del while.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #6 (permalink)  
Antiguo 31/03/2011, 07:45
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: Publicar varios registros

Hola MArvin:

Muchas gracias por la respuesta. Todavían o he podido ponerla en práctica. De todas maneras ¿Como resuelve tu sugenerencia la variación en la cantidad de registros?.
Me explico, cada usuario tiene su PK que vincula todos los registros que le corresponden de la tabla formación. Eso significa, logicamente que un susario tendra dos registro, otro tendrá cinco y otro sólo uno. De manera que la select devolverá un listado con más o menos registros en función del usuario.
¿Como se adapta tu script a eso?

Muchas gracias (a ver si lo entiendo de una vez)
__________________
J.
¿Dónde está la tecla ‘ANY’?
(H. Simpson)
  #7 (permalink)  
Antiguo 31/03/2011, 23:30
Avatar de Rankxerox1984  
Fecha de Ingreso: septiembre-2010
Mensajes: 253
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: Publicar varios registros

¡¡¡¡Muchas gracias a los dos!!!
Por fin he tenido tiempo para probar y me ha funcionado a la primera, para mi propósito me sirve mejor la sugerencia de Vallu
Pero voy a aprovechar ambas seguro
Doy el tema por cerrado
__________________
J.
¿Dónde está la tecla ‘ANY’?
(H. Simpson)
  #8 (permalink)  
Antiguo 01/04/2011, 00:25
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Publicar varios registros

Justamente para eso sirve el script...

Se supone que una tabla esta armada de esta manera:
Código HTML:
Ver original
  1. <tr><!--fila-->
  2.     <td><!-- columna --></td><!--fin de columna-->
  3. </tr><!-- fin de fila-->
Lo que hacemos es que primero armamos el tr que contiene las columnas con los encabezados:

Nombre Apellido Telefono

Y luego vamos agregando cuantos tr tenga tu consulta en ese mismo orden (esto es lo que pasa dentro del while)

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Etiquetas: publicar, registros
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:39.