Foros del Web » Programando para Internet » PHP »

Ordenar filas php y mysql

Estas en el tema de Ordenar filas php y mysql en el foro de PHP en Foros del Web. Hola tengo este codigo funcionando pero me gustaria saber como hacerlo con una tabla ya que necesito mostrar mas que solo el nombre Código PHP: ...
  #1 (permalink)  
Antiguo 12/01/2015, 17:32
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 14 años
Puntos: 1
Pregunta Ordenar filas php y mysql

Hola tengo este codigo funcionando pero me gustaria saber como hacerlo con una tabla ya que necesito mostrar mas que solo el nombre

Código PHP:
<ul id="lista">
            <?php 
                
while ($datos mysqli_fetch_assoc($resultado)){
        
$elementos[$datos['IDProducto_Catalogo']] = $datos['Nombre'];
        echo 
'<li id="elemento-'.$datos['IDProducto_Catalogo'].'" contenteditable="true">'.$datos['Nombre'].'</li>';
    }
            
?>
        </ul>
Código HTML:
<script>
		$(function(){
			var formulario = $('#formulario'), ordenando = false, lista = $('#lista'),
                    elementos = lista.find('li');
			lista.sortable({
                update: function(event,ui){
                    var ordenPuntos = $(this).sortable('toArray').toString();
                    $.ajax({
                        type: 'POST',
                        url: 'ordenar/controlador.php',
                        dataType: 'json',
                        data: {
                            accion: 'ordenar',
                            puntos: ordenPuntos
                        }
                    });
                }
            });
            lista.sortable('disable');
            $('input[name="editar-ordenar"]').on('change', function(){
                if ($(this).val() == 'ordenar'){
                    lista.sortable('enable');
                    elementos.attr('contenteditable',false);
                    ordenando = true;
                }
                else{
                    lista.sortable('disable');
                    elementos.attr('contenteditable',true);
                    ordenando = false;
                }
            });


			formulario.on('submit',function(evento){ //Cuando el formulario se envía, vamos a insertar
				evento.preventDefault();
				var nombre = $('#campo-nombre').val();
				$('#campo-nombre').val('');
				
				$.ajax({
                    type: 'POST',
                    url: 'ordenar/controlador.php',
                    dataType: 'json',
                    data: {
                        accion: 'insertar',
                        nombre: nombre,
                        orden: elementos.length + 1 // El orden es el número de elementos + 1
                    },
                    success: function (devolver){
                    	if (devolver.valor){
                    		$('<li>',{
                    			id : 'elemento-' + devolver.valor,
                    			'class': ordenando ? 'ordenable' : '',
                    			text: nombre,
                    			'contenteditable' : !ordenando
                    		}).hide().appendTo($('#lista')).fadeIn('slow');
                    	}
                    }
                });
            });
            lista.on('keydown', 'li', function(evento){
                var punto = $(this);
                var idPunto = punto.attr('id').split('-');
                idPunto = idPunto[1];

                switch(evento.keyCode){
                    case 27:{ //Escape
                        document.execCommand('undo');
                        punto.blur();
                        break;
                    }
                    case 46:{ //Suprimir
                        if (confirm('¿Seguro que quiere eliminar este elemento?')){
                            $.ajax({
                                type: 'POST',
                                data: {
                                    accion: 'eliminar',
                                    orden: punto.index(),
                                    id: idPunto
                                },
                                url: 'ordenar/controlador.php',
                                success: function(e){
                                    punto.fadeOut('slow').remove();
                                }
                            });
                        }
                        break;
                    }
                    case 13:{ //Enter
                        evento.preventDefault();
                        var texto = punto.text();
                        punto.blur();
                        $.ajax({
                            type: 'POST',
                            data: {
                                accion: 'editar',
                                id: idPunto,
                                nombre: texto
                            },
                            url: 'ordenar/controlador.php'
                        });
                        break;
                    }
                }
            });
		});
	</script> 
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos
  #2 (permalink)  
Antiguo 13/01/2015, 13:40
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 14 años
Puntos: 1
Respuesta: Ordenar filas php y mysql

Alguien me ayuda??
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos
  #3 (permalink)  
Antiguo 13/01/2015, 13:48
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 5 años, 3 meses
Puntos: 12
Respuesta: Ordenar filas php y mysql

Hola LoUiMaNiAkO, una vez que ya tengas la variable con datos extraídos de la consulta haces algo como lo siguiente.

Código PHP:
Ver original
  1. <table class="bordered" style="padding:3px; color:#000000;">
  2.             <tr style="color:#000000;">
  3.                 <th>Foto</th>
  4.                 <th>Apellido</th>
  5.                 <th>Nombre</th>
  6.             </tr>
  7.             <?php for($i=0; $i<sizeof($reg); $i++) { ?>
  8.             <tr>
  9.                 <td>
  10.                     <a href="javascript:popup('DatosEmpleados.php?leg=<?php echo $reg[$i]["Legajo"]; ?>',550,340)">
  11.                         <img title="<?php echo $reg[$i]["Apellido"] ;?> <?php echo $reg[$i]["Nombre"] ;?>" src="images/Fotos/thumbl/<?php echo $reg[$i]["Foto"] ;?>" width="35" height="35" />
  12.                     </a>
  13.                 </td>
  14.                 <td>
  15.                     <?php echo $reg[$i]["Apellido"] ;?>
  16.                 </td>
  17.                 <td>
  18.                     <?php echo $reg[$i]["Nombre"] ;?>
  19.                 </td>          
  20.             </tr>
  21.             <?php } ?>
  22.             </table>

Espero te sea de utilidad.

Saludos.
__________________
http://www.sp-vision.net
  #4 (permalink)  
Antiguo 13/01/2015, 15:43
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 14 años
Puntos: 1
Respuesta: Ordenar filas php y mysql

Hola, perdon lo que necesito hacer es que me permita arrastrar lsa filas y actualize el orden en la base de datos, como lo tengo funciona pero como son <li> no puedo mostrar mas de un dato, alguna otra idea?
(Si lo convierto a tabla me mueve toda la tabla completa)

y si lo hago asi: me mueve las celdas entre las de la misma fila.
<table width="200" border="1" id="lista">
<tr class="lista">
<td>d</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="lista">
<td>d</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr class="lista">
<td>d</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos

Última edición por LoUiMaNiAkO; 13/01/2015 a las 15:44 Razón: Poner ejemplos
  #5 (permalink)  
Antiguo 13/01/2015, 16:24
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 14 años
Puntos: 1
De acuerdo Respuesta: Ordenar filas php y mysql

Creo que lo he logrado;
Sigueindo el hilo:
http://www.forosdelweb.com/f18/selec...-lista-908728/

agrege una linea a mi codigo : axis:'y',items:'tr',

y modique los il dentro del codigo jquery, quedando de esta forma:

tabla:
Código PHP:
<table width="200" border="1" id="lista">
        
            <?php 
                
while ($datos mysqli_fetch_assoc($resultado)){
        
$elementos[$datos['IDElemento']] = $datos['Titulo'];
        echo 
' <tr id="elemento-'.$datos['IDElemento'].'"><td contenteditable="true">'.$datos['Titulo'].'</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td> </tr>'
;
    }

            
?>
 
</table>
y el query
Código HTML:
<script>
		$(function(){
			
			var formulario = $('#formulario'), ordenando = false, lista = $('#lista'),
                    elementos = lista.find('tr');
					
			lista.sortable({
				
				axis:'y',items:'tr',
                update: function(event,tr){
                    var ordenPuntos = $(this).sortable('toArray').toString();
                    $.ajax({
                        type: 'POST',
                        url: 'ordenar/controlador.php',
                        dataType: 'json',
                        data: {
                            accion: 'ordenar',
                            puntos: ordenPuntos
                        }
                    });
                }
            });
            lista.sortable('disable');
            $('input[name="editar-ordenar"]').on('change', function(){
                if ($(this).val() == 'ordenar'){
                    lista.sortable('enable');
                    elementos.attr('contenteditable',false);
                    ordenando = true;
                }
                else{
                    lista.sortable('disable');
                    elementos.attr('contenteditable',true);
                    ordenando = false;
                }
            });


			formulario.on('submit',function(evento){ //Cuando el formulario se envía, vamos a insertar
				evento.preventDefault();
				var nombre = $('#campo-nombre').val();
				$('#campo-nombre').val('');
				
				$.ajax({
                    type: 'POST',
                    url: 'ordenar/controlador.php',
                    dataType: 'json',
                    data: {
                        accion: 'insertar',
                        nombre: nombre,
                        orden: elementos.length + 1 // El orden es el número de elementos + 1
                    },
                    success: function (devolver){
                    	if (devolver.valor){
                    		$('tr',{
                    			id : 'elemento-' + devolver.valor,
                    			'class': ordenando ? 'ordenable' : '',
                    			text: nombre,
                    			'contenteditable' : !ordenando
                    		}).hide().appendTo($('#lista')).fadeIn('slow');
                    	}
                    }
                });
            });
            lista.on('keydown', 'tr', function(evento){
                var punto = $(this);
                var idPunto = punto.attr('id').split('-');
                idPunto = idPunto[1];

                switch(evento.keyCode){
                    case 27:{ //Escape
                        document.execCommand('undo');
                        punto.blur();
                        break;
                    }
                    case 46:{ //Suprimir
                        if (confirm('¿Seguro que quiere eliminar este elemento?')){
                            $.ajax({
                                type: 'POST',
                                data: {
                                    accion: 'eliminar',
                                    orden: punto.index(),
                                    id: idPunto
                                },
                                url: 'ordenar/controlador.php',
                                success: function(e){
                                    punto.fadeOut('slow').remove();
                                }
                            });
                        }
                        break;
                    }
                    case 13:{ //Enter
                        evento.preventDefault();
                        var texto = punto.text();
                        punto.blur();
                        $.ajax({
                            type: 'POST',
                            data: {
                                accion: 'editar',
                                id: idPunto,
                                nombre: texto
                            },
                            url: 'ordenar/controlador.php'
                        });
                        break;
                    }
                }
            });
		});
	</script> 
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos

Etiquetas: filas, mysql, tabla
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:20.