Foros del Web » Programando para Internet » PHP »

Problema reemplazar registros tabla

Estas en el tema de Problema reemplazar registros tabla en el foro de PHP en Foros del Web. Buenas tardes, Después de mucho leer vuestros mensajes de forma habitual, me ha surgido un pequeño problema el cual no se como resolver. Tengo una ...
  #1 (permalink)  
Antiguo 15/06/2010, 09:08
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema reemplazar registros tabla

Buenas tardes,

Después de mucho leer vuestros mensajes de forma habitual, me ha surgido un pequeño problema el cual no se como resolver.

Tengo una tabla llamada 'contenido' la cual tiene las siguientes columnas: title, body, numEdicion, paginaActual, Totalpaginas.

Código:
Tabla: contenido

id : title : numEdicion : body : paginaActual : Totalpaginas

10 : La casa azul : 1 : texto : 1 : 2      
11 : Una casa hermosa : 1 : texto : 2 : 2
12 : La historia feliz: 2 : texto : 1 : 3
13 : Esa historia grande : 2 : texto : 2 : 3
14 : Conocerse mejor : 2 : texto : 3 : 3
15 : Saber un poco más: 3 : texto : 1 : 1
16 : Todo es facil si : 4 : texto : 1 : 1
...
Extraigo los datos de una consulta de forma habitual, es decir, hago la consulta, y la muestro mediante mysql_fetch_array. El problema que se presenta es el siguiente: he de conseguir y no se como, que las filas que tengan el mismo número de edicion (numEdicion) sean mostrados con el mismo título. Ejemplo:

10 La casa azul_1 - texto - numEdicion 1
11 La casa azul_2 - texto - numEdicion 1
12 La historia feliz_1 - texto - numEdicion 2
13 La historia feliz_2 - texto - numEdicion 2
14 La historia deliz_3 - texto - numEdicion 2
15 Saber un poco mas_1 - texto - numEdicion 3
16 Todo es facil_1 - texto - numEdicion 4

Resumiendo, si el item tiene el mismo número de Edicion y está compuesto de más de una página, los campos del título siguientes han de ser reemplazados por el primero, así sucesivamente. Es decir, solo se ha de mostrar el primer título y reemplazarlo en los sucesivos que compartan el mismo numEdicion.

He probado muchas opciones, contando el número de columnas, haciendo varias consultas, agrupandolas por numEdicion, experimentando con Join, etc pero no soy capaz de conseguirlo. Incluso, como último recurso he intentado realizar el reemplazo mediante jquery, una vez listados todos los resultados en pantalla, pero sin éxito. Sé mostrar sin problemas el array de forma consecutiva, pero no se si es posible ir comparando valores y reemplazando el contenido entre diferentes filas, con diferente id.

¿Es posible realizarlo? ¿Como podría conseguirlo? Por mis conocimientos, ésto se me escapa de las manos. Necesitaría algo de luz en el camino.

Muchas gracias por compartir vuestro conocimiento con los que no sabemos.
  #2 (permalink)  
Antiguo 03/07/2010, 01:06
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema reemplazar registros tabla

Buenas,

He seguido investigando y, puesto que nadie ha respondido, voy explicar los avances realizados en cuanto al problema.

He conseguido reemplazar el campo h1 según una condición. Además, el puntero retrocede correctamente. Sin embargo, luego me genera un bucle infinito y no consigo recuperar el índice normal del array una vez realiza el retroceso con data_seek.

¿Alguien sabe como resolver el problema?

Muchas gracias..

El código usado es el siguiente:

Código:
$conexion = mysql_connect($dbhost, $dbusuario, $dbpassword); //conexion
mysql_select_db($db, $conexion); // bd articulos
// fin conexiones

// mostrar resultados

$result = mysql_query("SELECT * FROM actualidad ORDER BY id", $conexion);

while ($row = mysql_fetch_array($result)){     // nos saca cada uno de los resultados de la consulta en array

	
	$pagActual = $row[paginaActual];  //pagina actual
	$pagTotal = $row[Totalpaginas];  // número de paginas total 
	$pagPosiciones =  $Totalpaginas - $paginaActual ;  // posiciones que tendría que retroceder el puntero
	$retroceso = $pagPosiciones;
	
	//$posicionAtras = key($row) - 1;
	//$posicionNormal = key($row) + 1 
	
	$titleFinal = $row[title];  // el título que queremos que se modifique
		
	
	if ($pagActual == 1 && $pagPosiciones == 0){   // condición para las páginas que solo incluye una OK
		$h1Final = $row[title];
	
	};
	
	
	if ($pagActual > 1 && $pagActual <= $pagTotal	){  // condicion si es la segunda página o más, tendría que retroceder posiciones...
		
		
		$row = mysql_data_seek($result,$posicionAtras); // muevo el puntero 
				
		$h1Final = $row[title]; // reemplaza de la columna anterior...
		
		$row = mysql_data_seek($result,$posicionNormal); // muevo el puntero a posicion actual
		
	
	};
	
	
	// mostrar los campos que nos interesan en pantalla...
	print "<h2>"."id :".$row[id]."</h2>";
	print "<h2>"."titulo :".$h1Final."</h2>";
	print "<div>"."pagina ".$pagActual." de ".$row[Totalpaginas
]."</div>";
	print "<span>"."posiciones :".$pagPosiciones."</span>";
	print "<hr />";
	
};
  #3 (permalink)  
Antiguo 03/07/2010, 05:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema reemplazar registros tabla

Esa es una pregunta para la gente del Foro de PHP, porque no tiene nada que ver con SQL.
No es un capricho: Son las reglas de este foro, por la misma razón que cuando el el de PHP se trata de SQL lo terminan moviendo a este foro.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 03/07/2010, 10:27
 
Fecha de Ingreso: junio-2010
Mensajes: 3
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema reemplazar registros tabla

Ok, lo que no se si puedo mover yo mismo el tema al foro php, o bien, ha de hacerlo el moderador.

Gracias
  #5 (permalink)  
Antiguo 03/07/2010, 13:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Tema movido desde Mysql a PHP

Etiquetas: reemplazar, registros, tablas
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 21:56.