2016-03-22 30 views
3

我需要幫助,問題是我有一個輸入頁面(修改後的用戶配置文件) 其中我有一個地址部分,我需要做一個循環,其中每組輸入我把每個方向的信息。 因爲現在例如,如果我有3個方向,在3組輸入中,我得到相同的重複信息...輸入與數據庫信息for循環PHP

這裏是代碼的一部分,我不把它全部因爲太大,我只把這個問題的重要代碼。

感謝所有:)

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

回答

0

您應該從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後的最後一個斷開連接。

+0

它不起作用,正如你可以看到我有一個for循環之前的輸入,用於做方向數量的組輸入。 <形式行動= 「?action.php的ACCION = updateCenterDir」 方法= 「POST」> \t \t \t \t \t \t \t \t

\t \t \t \t \t \t \t

Dirección

\t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t
.... – Anna

+0

當然,for循環必須被刪除,通過循環的循環是由while循環處理的。在這裏,我修改它並粘貼到這裏http://pastebin.com/SDTxz6aN哦,你必須將** $ resultado **重命名爲** resultadoDireccion **和** $ resultadoPoblacion **,否則這些變量可能會被覆蓋。 –

+1

非常感謝您的幫助,我已經嘗試過,並沒有按照我想去的那樣去做......任何幫助都很好,看看我是否有辦法!哈哈擁抱 – Anna