PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

16 usuarios Online (0)

Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / ayuda con ciclo if y for

ayuda con ciclo if y for

2 respuestas 4970 visitas Categoría PHP

ayuda con ciclo if y for

Avatar de xxjakxx

Nivel 1 (9 posts)

* * * * * * *

0 Agradecimientos

#0 Offline xxjakxx 22 sep 05
hola
Estoy haciendo una pagina la cual me permita ingresar noticias a una base de datos en DB2,los valores que envio desde un formulario los recibo a traves del metodo post.Eso funciona bien,el ingreso y modificado tambien funciona sin problemas,estas 2 operaciones las realizo con el mismo boton del formulario.pero cuando intento ingresar mas de una noticia en la misma fecha no me resulta,porque en vez de ingresar una noticia nueva,me actualiza la que ya esta ingresada en esa fecha :? .

ahora me explicare mejor :P

mi clave principal es la fecha,dia,mes y año,cuando ingreso una noticia lo hace sin problemas,y si deseo modificar algun campo tambien lo hace bien,pero yo quiero que en un dia se pueda ingresar mas de una noticia asociada a la misma fecha,para lo cual necesitare un contador,para eso estoy ocupando un ciclo for,pero no me resulta y en vez de incrementarse e ingresar mas de una noticia con la misma fecha,se actualiza :? y no entra a mi ciclo for,el cual lo utilizo con un if y todo esto va dentro de un else.

mas abajo detallo mi codigo con comentarios y tambien para que se entienda cual es mi problema.

alguien me puede ayudar a solucionar mi problema,indicandome el error,o si tengo que modificar algo de mi codigo para que me resulte lo que quiero.

muchas gracias

pd:coloco el codigo dentro de las etiquetas code,porque la etiqueta php no me funciono :?


ejemplo de lo que quiero hacer

dia:22
mes:09
año:2005

noticia1:huracanes en usa
ahora si quiero ingresar otra noticia en la misma fecha,deberia incrementarse el ciclo for

y quedar :
noticia2:elecciones presidenciales en chile

noticia3:guerra en irak

y asi sucesivamente deberia incrementarse y agregar una nueva noticia asociada a la fecha del dia que en este caso es la clave primaria.



y la modificacion en alguna noticia ,solo deberia realizarse mientras esten todos los campos en la base de datos.

esa parte la explico mas abajo como comentario en mi codigo.


<?

   
//ingresar   y  modificar

   
$accion $_POST[Ingreso];
   if(
$accion=="grabar\")
   {
   $dia = $_POST[\'dia\'];
   $mes = $_POST[\'mes\'];
   $anno = $_POST[\'anno\'];//recibo los valores del formulario
   $titulo = $_POST[\'titulo\'];
   $resumen = $_POST[\'resumen\'];
   $detalle = $_POST[\'detalle\'];



     include(\"conexion-noticia.php\");

   
//realizo una consulta para comprobar que los campos existan en la BDD
  
$query =\"SELECT f01datos.$databasename4.ntitulo as TITULO,
            f01datos.$databasename4.nresumen as RESUMEN,
            f01datos.$databasename4.ndetalle as DETALLE FROM f01datos.$databasename4
        WHERE f01datos.$databasename4.ndia=$dia and f01datos.$databasename4.nmes=$mes
            and f01datos.$databasename4.nano=$anno\";


//me conecto y ejecuto la sentencia sql en la BDD
     $result=odbc_Exec($dbconn,$query);
     
//recorro el resultado de la consulta
$row1 = odbc_fetch_array($result);

//si row1 es diferente a 0 es porque los datos existen y puedo modificar
     
if($row1!=0){

             $mod=\"UPDATE F01DATOS.$databasename4 SET
             ntitulo=\'$titulo\',
             nresumen=\'$resumen\',
             ndetalle=\'$detalle\'
             WHERE nano=$anno and
             nmes=$mes and
             ndia=$dia\";
             $query=odbc_exec($dbconn,$mod);
             include(\"grabar-noticia.php\");
                  }
                else
                {
                  
s//si row1 es igual a 0 es porque en la base de datos no se ha ingresado ninguna noticia para ese dia.

if($row1==0){

//la variable estado la utilizo como una bandera,y deberia estar en v,cada vez que se incremente el contador e ingrese un nuevo registro,aqui como no se ha ingresado nada,ingreso por defecto v. 

                $estado=\'v\';

//esta es la variable hora la cual llevara el registro ,para cada noticia del dia,con esto pretendo que cada noticia sea unica y este asociada a cierta hora,seria como una clave secundaria.tambien por defecto ingreso la hora del sistema pero sin incrementar nada aun.


//la variable hora y estado trabajan internamente ,asi que yo no las ingreso a taves del formulario.

                $hora=date(\'h-i-s\');

                  $ing=\"INSERT INTO F01DATOS.$databasename4
                  values($anno,$mes,$dia,$hora,\'$titulo\',\'$resumen\',\'$detalle\',\'$estado\')\";


//el print lo ocupo para verificar que me ingrese bien la hora

                        print \"hora:\".$hora;
                        $query=odbc_exec($dbconn,$ing);
                        include(\"grabar-noticia.php\");
                        odbc_close($dbconn);
                        }
                       
   //hasta aca funciona todo bien.                    

                   

//este else lo ocupo para utilizar mi tercera funcionalidad del boton,la cual deberia incrementar el contador e ingresar una nueva noticia asociada a una misma fecha

                      else
                       {


//esta consulta la utilizo para comprobar que el dia,mes y año esten en la base de datos.

              $query =\"SELECT f01datos.$databasename4.ndia,
              f01datos.$databasename4.nmes,
              f01datos.$databasename4.nano FROM f01datos.$databasename4
          WHERE f01datos.$databasename4.ndia=$dia and f01datos.$databasename4.nmes=$mes
              and f01datos.$databasename4.nano=$anno\";


//me conecto y ejecuto la consulta sql en la BDD

              $result=odbc_Exec($dbconn,$query);

//recorro el resultado

              $row2 = odbc_fetch_array($result);

 
//este for lo quiero ocupar para que se incremente el contador y me permita ingresar mas de una noticia en la misma fecha
 
             for($contador=0;$contador<20;$contador++)
              {

//si row2 es diferente a 0 es porque ya se encuentra esa fecha en la base de datos
                  if($row2!=0)
                  {

//y le asigno v a estado
          $estado=\'v\';
          
// y a la variable hora le paso la hora del sistema con la funcion date.
          $hora=date(\'h-i-s\');

//y como la fecha ya esta ingresada,solo deberia ingresarme,la hora,titulo,resumen,detalle y estado de la nueva noticia que se ingresa en la misma fecha.

          $ing=\"INSERT INTO F01DATOS.$databasename4
          values($hora,\'$titulo\',\'$resumen\',\'$detalle\',\'$estado\')\";

         
//nuevamente los print los utilizo para ver que las variables contengan los valores.

         print \"hora:\".$hora;
          $query=odbc_exec($dbconn,$ing);
          include(\"grabar-noticia.php\");
          odbc_close($dbconn);
          print \"contador:\".$contador;
          }}

       }
       }
       }

?>




ojala se entienda mi explicacion :(

Re: ayuda con ciclo if y for

Avatar de catongura

Nivel 3 (218 posts)

* * * * * * *

1 Agradecimientos

#1 Offline catongura 25 sep 05 0 personas consideran útil este post.
Buenas,
si te he entendido bién,
¿Puedes usar una clava distinta para cada noticia, no? Luego si quieres contar las notícias de una determinada fecha, hacer un select count...
Saludos

Re: ayuda con ciclo if y for

Avatar de Erzengel

Nivel 1 (2 posts)

* * * * * * *

0 Agradecimientos

#2 Offline Erzengel 27 sep 05 0 personas consideran útil este post.
No me queda demasiado claro, sobre todo la tabla de la base de datos que tienes.

Buenos días xxjakxx

Dices que el campo principal de la tabla es el dia,mes y año. Luego tienes hora, titulo,etc.

Si tienes una noticia en el día 1, mes 1, año 1 a la hora x, no vas a poder tener otra noticia para el día 1, mes 1, año 1 aunque la hora sea la y.

Por eso no me ha quedado demasiado claro si es así como tienes definida la tabla.

Saludos

Responder mensaje

Para poder participar debes ser un usuario registrado de PHP-Hispano. :: Deseo darme de alta en esta comunidad ::
Login / Password   

Temas relacionados

E Titulo Respuestas Última resp. Creado el Visitas Foro
Pregunta ayuda &lt;option value=x&gt;x&lt;/option&gt; 1 11 feb 04
por Tendenze
mar, 10 feb 04 (20:08)
por johnrr74
1016 PHP
Pregunta ayuda sobre checkbox 2 23 feb 05
por Boro
mié, 23 feb 05 (22:00)
por solohispan
700 PHP
Pregunta Variable y ciclos (creo..) 7 13 sep 05
por Ex-usuario
mié, 07 sep 05 (18:43)
por Ex-usuario
2091 PHP-Hispano
Pregunta Ayuda con array 1 14 sep 06
por Ex-usuario
mié, 13 sep 06 (22:57)
por mlorena
610 PHP
Pregunta Crear una empresa, ayuda 0 - - - - - - -
mié, 26 sep 07 (11:19)
por xGallox
867 Webmasters

php-hispano.net 2002 - 2013 | XHTML 1.0
Datos Legales | Webmaster