Foros del Web » Programando para Internet » PHP »

¿Ruptura de control?

Estas en el tema de ¿Ruptura de control? en el foro de PHP en Foros del Web. Sé que soy nuevo en el foro, y aún no me he presentado (no he encontrado la sección apropiada para ello) así que, empezaré por ...
  #1 (permalink)  
Antiguo 28/01/2016, 16:34
Avatar de i7ach1  
Fecha de Ingreso: enero-2016
Ubicación: En mi casa O.O
Mensajes: 6
Antigüedad: 8 años, 2 meses
Puntos: 0
Pregunta ¿Ruptura de control?

Sé que soy nuevo en el foro, y aún no me he presentado (no he encontrado la sección apropiada para ello) así que, empezaré por comentar mi problema...

El caso... tengo que hacer un trabajo de clase (soy de sistemas, y me mandan a desarrollar una aplicación web en php... MANDA COJONES!), donde he de tener un formulario que recoja datos y los guarde en una base de datos. El formulario contiene inputs simples, un select simple, una caja de texto (textarea) y un SELECT MULTIPLE.

La base de datos tiene que estar en FN3. Hasta ahí todo está correcto. El caso es, que no sé como guardar el contenido de la array del select múltiple en la base de datos, ni a la hora de hacer el "listado" de los items de la base de datos, que dicho select múltiple lo guarde en una cadena.

Mi profesora me comentó que tengo que hacer una ruptura de control o corte de control... o como se llame, lo explicó por encima pero aún así, no tengo ni pajolera idea.

No sé si me habré explicado bien... espero vuestra ayuda.

Saludos! :)

Pd. Si necesitais que aporte parte del código fuente, o algo, decídmelo.
  #2 (permalink)  
Antiguo 28/01/2016, 16:43
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: ¿Ruptura de control?

Hola i7ach1,

Bienvenido al foro. Para que se te pueda ayudar, lo mejor es que publiques el código que tienes y comentes sobre él los problemas que necesitas resolver.
  #3 (permalink)  
Antiguo 28/01/2016, 16:49
Avatar de i7ach1  
Fecha de Ingreso: enero-2016
Ubicación: En mi casa O.O
Mensajes: 6
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: ¿Ruptura de control?

Gracias por tu respuesta, rbczgz, no sabía si tenía que añadir el código.

Añado el código del index.php que es donde estoy tratando todo esto.

Código PHP:
<?php
    
require_once 'conexion.php';

    
// Listar
    
if(isset($_GET['opt']) and $_GET['opt'] == 'listar'){
        
$sql "SELECT datos.id_datos,datos.nombre,datos.apellido,datos.deporte,datos.comentario,generos.id_generos,generos.generos,nexo.id_datos,nexo.id_generos
                FROM datos,generos,nexo
                WHERE datos.id_datos LIKE nexo.id_datos 
                AND nexo.id_generos LIKE generos.id_generos
                ORDER BY datos.id_datos ASC"
;

        
$resul mysqli_query($conexion,$sql);

        if(!
$resul){
            
$error "Error en la consulta - ".mysqli_error($conexion);
            include 
'error.php';
            exit();
        }

        
$listar = array();
        while (
$fila mysqli_fetch_array($resul)) {
            
$listar[] = $fila;
        }

        
/* FALTA LA RUPTURA DE CONTROL */

        
include 'vista_listar.php';
        exit();
    }

    
// Buscar
    
if(isset($_POST['buscar']) and $_POST['buscar'] == 'Buscar'){
        
$texto trim($_POST['texto']);
        if(empty(
$texto)){
            
$error 'Introduzca un texto a buscar';
            include 
'form_buscar.php';
            exit();
        }

        
$texto mysqli_real_escape_string($conexion$texto);
        
$sql "SELECT nombre, apellido FROM datos
            WHERE nombre LIKE '%$texto%' OR apellido LIKE '%$texto%'"
;

        
$resul mysqli_query($conexion$sql);
        if (!
$resul){
            
$error "Error en consulta - ".mysqli_error($conexion);
            include 
"error.php";
            exit();
        }

        
$personas = array();

        while (
$fila mysqli_fetch_array($resul)){
            
$personas[] = $fila;
        }

        if (
count($personas) == 0){
            
$error "No hubo resultados en la búsqueda";
        }
        include 
"form_buscar.php";
        exit();
    }

    if(isset(
$_GET['opt']) and $_GET['opt'] == 'buscar'){
        include 
'form_buscar.php';
        exit();
    }

    
// Recargar tras borrar

    
if (isset($_GET['oper']) && $_GET['oper'] == 'borrar'){
            
$mensaje 'Registro borrado correctamente';
    }

    
// Borrar (boton, tiene borrado en cascada)
    
if (isset($_POST['borrar']) && $_POST['borrar'] == 'Borrar'){
        
$id mysqli_real_escape_string($conexion$_POST['id']);
        
$sql "DELETE FROM datos WHERE id_datos = '$id'";
        
$resul mysqli_query($conexion$sql);

        if (!
$resul){
            
$error "Error en consulta - ".mysqli_error($conexion);
            include 
"error.php";
            exit();
        }
        
header('Location: ?oper=borrar');
        exit();
    }    

    
// Borrar (menu)
    
if(isset($_GET['opt']) and $_GET['opt'] == 'borrar'){
        
$sql "SELECT * FROM datos";
        
$resul mysqli_query($conexion,$sql);

        if(!
$resul){
            
$error "Error en la consulta - ".mysqli_error($conexion);
            include 
'error.php';
            exit();
        }

        
$paraBorrar = array();
        while(
$fila mysqli_fetch_array($resul)){
            
$paraBorrar[] = $fila;
        }

        include 
'form_borrar.php';
        exit();  

    }

    
/* En este if, se comprueba que, si el botón "enviar" no ha sido pulsado, muestre el formulario. */
    
if(!isset($_POST['enviar'])){
        include 
'formulario.php';
        exit();
    }else{
        include 
'validaciones.php';
    }
    include 
'formulario.php';
?>
Y este el código del vista_listar.php

Código PHP:
<?php 
    
include 'cabeza.php';

    echo 
"<table class=\"table table-hover\">
            <tr>
            <th>Nombre</th>
            <th>Apellido</th>
            <th>Deporte</th>
            <th>Comentario</th>
            <th>Generos Musicales</th>
            </tr>"
;

    foreach (
$listar as $key) {
        echo 
"<tr>";
        echo 
"<td>".htmlspecialchars($key['nombre'])."</td>";
        echo 
"<td>".htmlspecialchars($key['apellido'])."</td>";
        echo 
"<td>".htmlspecialchars($key['deporte'])."</td>";
        echo 
"<td>".htmlspecialchars($key['comentario'])."</td>";
        echo 
"<td>".htmlspecialchars($key['generos'])."</td>";
        echo 
"<tr>";
    }

    echo 
"</table>";

    include 
'pie.php';
?>
Es al principio de todo donde pone "// Listar".
Si queréis verlo en "acción" podeis verlo aquí -> http://mirabalphoto.es/iaw

Última edición por i7ach1; 28/01/2016 a las 17:24
  #4 (permalink)  
Antiguo 29/01/2016, 07:46
Avatar de i7ach1  
Fecha de Ingreso: enero-2016
Ubicación: En mi casa O.O
Mensajes: 6
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: ¿Ruptura de control?

Upeo para que sea visible :)
  #5 (permalink)  
Antiguo 29/01/2016, 09:31
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: ¿Ruptura de control?

Cita:
Iniciado por i7ach1 Ver Mensaje
Upeo para que sea visible :)
Hola i7ach1,

Eso no está permitido, fíjate en el punto 2.7.

Por otra parte, si no me equivoco, lo que preguntas se puede resolver recibiendo el array como tal, luego lo puedes recorrer y concatenar cada ítem para formar un string, por ejemplo, separado por comas y ya tienes un valor para guardar en tu BD.

Espero que te sirva.
  #6 (permalink)  
Antiguo 29/01/2016, 15:15
Avatar de i7ach1  
Fecha de Ingreso: enero-2016
Ubicación: En mi casa O.O
Mensajes: 6
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: ¿Ruptura de control?

Vale, pero teniendo esta salida



¿Cómo concateno los generos musicales en una sola cadena (por registro)?

Pd.: Pido disculpas por haber upeado el post, no había leido la normativa.
  #7 (permalink)  
Antiguo 30/01/2016, 05:32
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: ¿Ruptura de control?

Hola i7ach1,

Solo es necesario buscar un poco:

De esta búsqueda, te sale este resultado el primero, precisamente en Foros del web

Luego solo te falta guardar el resultado en tu BD.

Espero que te sirva.

Etiquetas: formulario, select
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:15.