【问题标题】:inputs with for-loop with database info PHP带有数据库信息 PHP 的 for 循环输入
【发布时间】:2016-07-09 02:17:32
【问题描述】:

我需要帮助,问题是我有一个输入页面(修改后的用户配置文件) 我有一段地址,我需要做一个循环,在每组输入中我放置每个方向的信息。 因为现在例如,如果我有 3 个方向,在 3 组输入中,我会得到相同的重复信息...

这里是部分代码,因为太大就不放了,只放本期重要的代码。

谢谢大家:)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" lang="es-es">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<link href="css/bootstrap.min.css" rel="stylesheet" />
		<link rel="stylesheet" type="text/css" href="font-awesome-4.5.0/css/font-awesome.min.css"/>
		<link href="css/css.css" rel="stylesheet" type="text/css" media="all" />
		<link rel="stylesheet" type="text/css" href="css/icSquared_v1.0.css"/>
		<title>Modificación de Direcciones</title>
	</head>
<body>
<div>
<?php
	include 'fn.php';
	iniciarSesion();
	
	$email = $_SESSION['user'];
	$conexion = conectar();
	
	$sql = "SELECT * FROM DIRECCION WHERE email_c='".$email."'";
	
	if($resultado = $conexion -> query($sql)){
		while($fila = mysqli_fetch_array($resultado)){
			$ide = $fila[0];
			$via = $fila[1];
			$nombre = $fila[2];
			$numero = $fila[3];
			$piso = $fila[4];
			$poblacion = $fila[6];
			$direcciones = mysqli_num_rows($resultado);
			desconectar($conexion);
			
			$sql = "SELECT * FROM POBLACION WHERE idPoblacion='".$poblacion."'";
			$conexion = conectar();
			
			if($resultado = $conexion -> query($sql)){
				if($fila = mysqli_fetch_array($resultado)){
					$codigoPostal = $fila[1];
					$nombrePob = $fila[2];
					$comunidad = $fila[3];
					$pais = $fila[5];
					
					desconectar($conexion);
				}
			}else{
				desconectar($conexion);
			}
	}else{
		deconectar($conexion);
	}
?>
		<div class="col-sm-8">
			<div id="admin_centro" style="margin-top:2%">
				<form action="action.php?accion=updateCenterDir" method="post">
			<?php for($i=0; $i<$direcciones; $i++){ ?>
					<div class="col-sm-2" style="margin:2% 6% 0 5%;">
						<div class="form-group">
							<input type="hidden" name="ide" value="<?php echo $ide; ?>" />
							<h4 class="text-success text-right">Dirección <?php echo $i+1 ?></h4>
							<label>Tipo de via:</label>
							<input type="text" name="via" class="form-control" value="<?php echo $via; ?>" required />
						</div>
						<div class="form-group">
							<label>Nombre: </label>
							<input type="text" name="nombre" class="form-control" value="<?php echo $nombre; ?>" required />
						</div>
						<div class="form-group">
							<label>Numero: <label>
							<input type="number" name="num" class="form-control" value="<?php echo $numero; ?>" required min="0"/>
						</div>
						<div class="form-group">
							<label>Piso: <label>
							<input type="text" name="piso" class="form-control" value="<?php echo $piso; ?>" />
						</div>
						<div class="form-group">
							<label>Codigo Postal:  <label>
							<input type="text" name="cp" class="form-control" value="<?php echo $codigoPostal; ?>" required />
						</div>
						<div class="form-group">
							<label>Pais: <label>
							<?php desplegable_pais(-1);?>
						</div>
						<div class="form-group">
							<label>Poblacion: <label>
							<?php echo $nombrePob." - ".$comunidad." - ".$pais; ?>
							<!-- FALTA SELECT DEPENDIENTE-->
						</div>
						<input class="btn btn-success" type="submit" id="enviar" value="Modificar"/>
					</div>
			<?php } ?>
				</form>
			</div>
		</div>
	</div>
</div>
</body>
<script src="js/jquery-1.12.1.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/scriptLogin.js"></script>
</html>
elseif($action == "updateCenterDir"){
    $ide = $_POST['ide'];
    $via = $_POST['via'];
    $nombre = $_POST['nombre'];
    $numero = $_POST['num'];
    $piso = $_POST['piso'];
    $cp = $_POST['cp'];
    $poblacion = $_POST['poblacion'];

    $conexion = conectar();
    $sql = "UPDATE DIRECCION SET via='".$via."', nombre='".$nombre."', numero=".$numero.", piso='".$piso."', codigoPostal='".$cp."', poblacion='".$poblacion."' WHERE idInstalacion=".$ide;

    if($resultado = $conexion -> query($sql)){
        header("Location:mod_infoDir.php?miss=1");
        desconectar($conexion);
    }else{
        header("Location:mod_infoDir.php?miss=2");
        desconectar($conexion);
    }
}

【问题讨论】:

    标签: php html for-loop input mysqli


    【解决方案1】:

    您应该从 while 循环中生成表单字段,并且您这样做但不是正确的方式。

    现在,您的 while 循环在表单之前关闭。

    if($resultado = $conexion -> query($sql)){
        $direcciones = mysqli_num_rows($resultado);
    
        while($fila = mysqli_fetch_array($resultado)){
    
            $ide = $fila[0];
            $via = $fila[1];
            $nombre = $fila[2];
            $numero = $fila[3];
            $piso = $fila[4];
            $poblacion = $fila[6];
    
            $sql = "SELECT * FROM POBLACION WHERE idPoblacion='" . $poblacion . "'";
    
            if($resultado = $conexion -> query($sql)){
                if($fila = mysqli_fetch_array($resultado)){
                    $codigoPostal = $fila[1];
                    $nombrePob = $fila[2];
                    $comunidad = $fila[3];
                    $pais = $fila[5];
                }
            }
    ?>
    Generate divs here...
    
    <?php
        } // close while($fila = mysqli_fetch_array($resultado))
    } // close if($resultado = $conexion -> query($sql))
    ?>
    

    将最后一个断开连接移到生成表单的 div 之后。

    【讨论】:

    • 它不起作用,如您所见,我在输入之前有一个 for 循环,用于执行方向数的组输入数。

      方向

      ....
    • 当然,那个for循环必须被删除,循环方向由while循环处理。这里,我修改了一下,贴在这里pastebin.com/SDTxz6aN哦,你得把$resultado重命名为$resultadoDireccion$resultadoPoblacion,否则变量可能会被覆盖。
    • 非常感谢您的帮助,我已经尝试过,但没有按照我的意愿去做......任何帮助都很好,看看我是否能如愿以偿!哈哈拥抱
    猜你喜欢
    • 1970-01-01
    • 2014-06-02
    • 2021-07-25
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多