Anuncio

Anuncio Módulo
Colapsar
No hay anuncio todavía.

Ayuda sobre PHP

Título de Página Módulo
Transferir Eliminar Colapsar
X
Detalle Conversación Módulo
Colapsar
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Ayuda sobre PHP

    Hola gente. Necesito una ayudita.

    Necesito que me ayuden con una tarea.

    Tengo el siguiente ejercicio.

    Hacer un formulario que tenga que ingresar los datos DESDE y HASTA (ahi van los numeros desde y hasta el que se va a contar de 1 en 1) y despues poner 2 botones de opcion que diga SI y NO respecto a guardarlo.

    Creo que voy bien pero a la hora de guardar el archivo solo me guarda en el documento.txt el numero mas grande, no me guarda el conteo.

    Asi voy haciendolo yo.

    <?php

    $desde=$_POST['desde'];
    $hasta=$_POST['hasta'];
    $seleccion=$_POST['seleccion'];


    for($cont=$desde;$cont<=$hasta;$cont++){
    if($seleccion=="si"){

    file_put_contents("conteo.txt" ,$cont);
    }else{

    echo "$cont
    ";
    }
    }



    ?>
    Tengo que decir que solo vi lo mostre ahi, no vi otras cosas todavia asi que con eso me tengo que manejar.

  • #2
    Prueba quitando <= y deja solo <

    Comentario


    • #3
      Hace lo mismo, solo me muesta el ultimo numero y quiero que me guarde el conteo entero.

      Comentario


      • #4
        Bueno se me ocurre que en el archivo de texto se esté reemplazando el carácter cada vez que el bucle ejecuta la instrucción "file_put_contents". Podrías almacenar el conteo en una variable y luego guardarlo completo en el .txt

        Algo como:

        Código:
        <?php
        $desde = $_POST['desde'];
        $hasta = $_POST['hasta'];
        $seleccion = $_POST['seleccion'];
        
        for($cont = $desde; $cont <= $hasta; $cont++){
          if($seleccion == "si"){
            $conteo = $conteo . $cont;
          }
          else{
            echo "$cont
        ";
          }
        }
        file_put_contents("conteo.txt", $conteo);
        ?>

        Comentario


        • #5
          EDITO POR ESTUPIDEZ QUE DIJE

          Me da error en esa linea que asignas valor a $conteo

          Comentario


          • #6
            Porque no es * es un punto, para asignar a $conteo lo que ya contiene junto el nuevo valor de $cont

            Comentario


            • #7
              Originalmente publicado por andres_1033
              Porque no es * es un punto, para asignar a $conteo lo que ya contiene junto el nuevo valor de $cont
              Si, dije una estupidez pero me da error en la linea donde asignas valor a $conteo. Ademas necesito que solo se guarde si $seleccion="si" y vos pusiste que guarde de una u otra forma.

              Comentario


              • #8
                Copia y pega el error por favor.

                Comentario


                • #9
                  Notice: Undefined variable: conteo in C:\xampp\htdocs\Clase7\Tarea\Ej3\resultado1.php on line 16


                  Una forma que me lo guarde en el TXT es asi:



                  for($cont = $desde;$cont<=$hasta; $cont++){
                  if($seleccion == "si"){
                  $conteo=$conteo . $cont;
                  file_put_contents("conteo.txt", $conteo);
                  $conteo=file_get_contents("conteo.txt");



                  }
                  else{
                  echo "$cont
                  ";
                  }
                  }
                  Pero me deja todos los valores juntos sin espacios ni saltos de lineas y me sigue dando el error que te pase arriba (aunque si me lo guarda)

                  Comentario


                  • #10
                    Agrega

                    Código:
                    $conteo = "";
                    Bajo la linea

                    Código:
                    $seleccion = $_POST['seleccion'];
                    E intenta de nuevo.

                    Comentario


                    • #11
                      Originalmente publicado por andres_1033
                      Agrega

                      Código:
                      $conteo = "";
                      Bajo la linea

                      Código:
                      $seleccion = $_POST['seleccion'];
                      E intenta de nuevo.
                      Ahi va mejor, haciendo eso no me tira el error pero me guarda todos los valores juntos haciendo esto:

                      <?php
                      $desde = $_POST['desde'];
                      $hasta = $_POST['hasta'];
                      $seleccion = $_POST['seleccion'];
                      $conteo="";

                      for($cont = $desde;$cont<=$hasta; $cont++){
                      if($seleccion == "si"){
                      $conteo=$conteo . $cont;
                      file_put_contents("conteo.txt", $conteo);
                      $conteo=file_get_contents("conteo.txt");


                      }
                      else{
                      echo "$cont
                      ";
                      }
                      }

                      ?>
                      EDITO:

                      Tambien como me dijiste vos va bien pero con el mismo problema de que el conteo en el txt esta todo pegado sin espacios ni saltos de linea.

                      <?php
                      $desde = $_POST['desde'];
                      $hasta = $_POST['hasta'];
                      $seleccion = $_POST['seleccion'];
                      $conteo="";

                      for($cont = $desde; $cont <= $hasta; $cont++){
                      if($seleccion == "si"){
                      $conteo = $conteo . $cont;
                      }
                      else{
                      echo "$cont
                      ";
                      }
                      }
                      file_put_contents("conteo.txt", $conteo);
                      ?>

                      Comentario


                      • #12
                        Ya, ¿quiere decir que has solucionado tu problema?

                        Comentario


                        • #13
                          Mmm no. Me falta lo que te dije arriba, que en el txt no se muestre: 12345678

                          si no

                          1
                          2
                          3
                          4
                          5
                          6
                          7
                          8
                          Etc

                          Comentario


                          • #14
                            El salto de linea se agrega usando "\n"

                            de modo que quedaría algo como:

                            Código:
                            $conteo=$conteo.$cont."\n";

                            Comentario


                            • #15
                              Sabes que me lo sigue haciendo junto?

                              EDITO: Disculpa ahi esta, se ve que el Bloc de notas tiene un problema al leer los saltos de linea, con el wordpad funciona de maravilla.

                              1000 Gracias. Solucionado.

                              Ahora necesito ayuda con otro.

                              Tengo que hacer que muestre

                              SI
                              NO
                              SI
                              NO
                              SI
                              NO
                              1000 veces (500 si y 500 no). Pero solo puedo usar un SI o un NO por bucle (usando for)

                              Yo lo hice asi pero no se si esta bien.

                              <?php


                              for($cont=1;$cont<=1000;$cont++){
                              $cont;
                              echo "SI
                              ";
                              $cont;
                              echo "NO
                              ";
                              }


                              ?>

                              Comentario

                              Trabajando...
                              X