Foros del Web » Programando para Internet » PHP »

repetir region me es complicado por 1 situacion.

Estas en el tema de repetir region me es complicado por 1 situacion. en el foro de PHP en Foros del Web. Ok tengo el siguiente codigo y todo funciona bien pero el problema es que if (banner==1) { ......} no puedo hacerlo una region de repeticion ...
  #1 (permalink)  
Antiguo 04/09/2008, 08:20
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
repetir region me es complicado por 1 situacion.

Ok tengo el siguiente codigo y todo funciona bien pero el problema es que if (banner==1) { ......} no puedo hacerlo una region de repeticion por que el numero ==1 despues cambia a ==2 y luego a ==3 ya que es un banner aleatorio y lo tengo que numerar asi,
no se si tengan po ahi alguna sugerencia?? quiero mostrar con ORDER BY id DESC

pero como le puedo hacer?

Código PHP:
<?php require_once('http://www.elcapitolio.net/Connections/noticias.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? "'" doubleval($theValue) . "'" "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$maxRows_inserciones 3;
$pageNum_inserciones 0;
if (isset(
$_GET['pageNum_inserciones'])) {
  
$pageNum_inserciones $_GET['pageNum_inserciones'];
}
$startRow_inserciones $pageNum_inserciones $maxRows_inserciones;

mysql_select_db($database_noticias$noticias);
$query_inserciones "SELECT * FROM inser_gob ORDER BY id DESC";
$query_limit_inserciones sprintf("%s LIMIT %d, %d"$query_inserciones$startRow_inserciones$maxRows_inserciones);
$inserciones mysql_query($query_limit_inserciones$noticias) or die(mysql_error());
$row_inserciones mysql_fetch_assoc($inserciones);

if (isset(
$_GET['totalRows_inserciones'])) {
  
$totalRows_inserciones $_GET['totalRows_inserciones'];
} else {
  
$all_inserciones mysql_query($query_inserciones);
  
$totalRows_inserciones mysql_num_rows($all_inserciones);
}
$totalPages_inserciones ceil($totalRows_inserciones/$maxRows_inserciones)-1;
?><!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" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<script language="JavaScript"> 
<!-- 

var cuantosbanners = 3 ; 
var ahora = new Date() 
var segundos = ahora.getSeconds() 
var banner = segundos % cuantosbanners; 
banner +=1; 

if (banner==1) { 
texto=" <?php echo $row_inserciones['titulo']; ?> "; 
url=" <?php echo $row_inserciones['imagen']; ?> "; 
alt=" H. Ayuntamiento "; 
imagen=" <?php echo $row_inserciones['ruta']; ?> "; 
width=" <?php echo $row_inserciones['ancho']; ?> "; 
height=" <?php echo $row_inserciones['alto']; ?> "; 

if (banner==2) { 
texto=" <?php echo $row_inserciones['titulo']; ?> "; 
url=" <?php echo $row_inserciones['imagen']; ?> "; 
alt=" H. Ayuntamiento "; 
imagen=" <?php echo $row_inserciones['ruta']; ?> "; 
width=" <?php echo $row_inserciones['ancho']; ?> "; 
height=" <?php echo $row_inserciones['alto']; ?> "; 

if (banner==3) { 
texto=" <?php echo $row_inserciones['titulo']; ?> "; 
url=" <?php echo $row_inserciones['imagen']; ?> "; 
alt=" H. Ayuntamiento "; 
imagen=" <?php echo $row_inserciones['ruta']; ?> "; 
width=" <?php echo $row_inserciones['ancho']; ?> "; 
height=" <?php echo $row_inserciones['alto']; ?> "; 


document.write('<center>'); 
document.write('<a href="' + url + '" target="_blank">'); 
document.write('<img src="' + imagen + '" width=') 
document.write( width + ' height=' + height + ' '); 
document.write('alt="' + alt + '" border=0><br>'); 
document.write('<small>' + texto + '</small></a>'); 
document.write('</center>'); 

//--> 
              </script>
</body>
</html>
<?php
mysql_free_result
($inserciones);
?>
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #2 (permalink)  
Antiguo 04/09/2008, 09:15
Avatar de vidalsoft  
Fecha de Ingreso: julio-2008
Ubicación: /www/...
Mensajes: 339
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: repetir region me es complicado por 1 situacion.

hola..
si estas usando las herramientas que te otorga Dreamweaver...
para repetir una region(empiricamente es una fila de una tabla) tienes que hacer tu juego de registros(que oviamente pueden ser tus campos de una tabla). y simplemente arrastrarlos a tu pagina , y para repetir region tienes que seleccionar todos los elementos que se van a visualizar, y de seguro no estas seleccionando tu banner.(que creoq que debe ser un campo de tu tabla).

si no entendi, da mas detalles..
  #3 (permalink)  
Antiguo 04/09/2008, 14:25
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: repetir region me es complicado por 1 situacion.

Mira este es la parte que quiero que repita...

Código PHP:
if (banner==1) {  
texto=" <?php echo $row_inserciones['titulo']; ?> ";  
url=" <?php echo $row_inserciones['imagen']; ?> ";  
alt=" H. Ayuntamiento ";  
imagen=" <?php echo $row_inserciones['ruta']; ?> ";  
width=" <?php echo $row_inserciones['ancho']; ?> ";  
height=" <?php echo $row_inserciones['alto']; ?> ";  
}
eso hace que me muestre la ultima fila que ingrese en mi base de datos...
eso lo hago con esto

Código PHP:
mysql_select_db($database_noticias$noticias); 
$query_inserciones "SELECT * FROM inser_gob ORDER BY id DESC"
$query_limit_inserciones sprintf("%s LIMIT %d, %d"$query_inserciones$startRow_inserciones$maxRows_inserciones); 
$inserciones mysql_query($query_limit_inserciones$noticias) or die(mysql_error()); 
$row_inserciones mysql_fetch_assoc($inserciones); 
el problema es que banner==1) tiene que cambiar tambien a 1 luego 2 y 3...

yo estaba pensando clonar esa parte del codigo o sea repetirlo 3 veces con sus respectivos numeros de banner pero me encontre que al ponerle a los mismo 3 espacios esta linea..

imagen=" <?php echo $row_inserciones['ruta']; ?> ";

lo que me hace es ponerme en las 3 ocasiones el mismo valor que corresponde a la ultima linea agregada en mi base de datos..

Ojala se me entienda mi pregunta.. gracias anticipadas
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #4 (permalink)  
Antiguo 04/09/2008, 14:42
 
Fecha de Ingreso: noviembre-2007
Mensajes: 38
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: repetir region me es complicado por 1 situacion.

Creo que deberias probar con una de las siguientes opciones;

Código PHP:
if (banner>0) { 
texto=" <?php echo $row_inserciones['titulo']; ?> "; 
url=" <?php echo $row_inserciones['imagen']; ?> "; 
alt=" H. Ayuntamiento "; 
imagen=" <?php echo $row_inserciones['ruta']; ?> "; 
width=" <?php echo $row_inserciones['ancho']; ?> "; 
height=" <?php echo $row_inserciones['alto']; ?> "; 
}

Código PHP:
if (banner!='') { 
texto=" <?php echo $row_inserciones['titulo']; ?> "; 
url=" <?php echo $row_inserciones['imagen']; ?> "; 
alt=" H. Ayuntamiento "; 
imagen=" <?php echo $row_inserciones['ruta']; ?> "; 
width=" <?php echo $row_inserciones['ancho']; ?> "; 
height=" <?php echo $row_inserciones['alto']; ?> "; 
}
  #5 (permalink)  
Antiguo 04/09/2008, 17:09
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: repetir region me es complicado por 1 situacion.

Tengo una mejor idea.. por ke no desarrollar un script en php alterne con 3 banners al azar...
alguna sugerencia?
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #6 (permalink)  
Antiguo 04/09/2008, 17:29
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 8 meses
Puntos: 103
Respuesta: repetir region me es complicado por 1 situacion.

mira, si quieres una sugerencia , te recomiendo que hagas una imagen en php, que tenga un numero al azar que elija, bueno si quieres me mandas un msj. privado con todo lo que quieres y te lo hago
  #7 (permalink)  
Antiguo 04/09/2008, 19:35
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: repetir region me es complicado por 1 situacion.

Cita:
Iniciado por chwc Ver Mensaje
mira, si quieres una sugerencia , te recomiendo que hagas una imagen en php, que tenga un numero al azar que elija, bueno si quieres me mandas un msj. privado con todo lo que quieres y te lo hago
Como lo podria hacer.. suena interesante
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #8 (permalink)  
Antiguo 04/09/2008, 20:50
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: repetir region me es complicado por 1 situacion.

Cita:
Iniciado por Capimaster Ver Mensaje
Tengo una mejor idea.. por ke no desarrollar un script en php alterne con 3 banners al azar...
alguna sugerencia?
Tan facil como usar arrays y la funcion rand(); de PHP.
Código PHP:
<?php
$links 
= array(1=>"http://ellinkhacia.tu/imagen"2=>"http://ellinkhacia.tu/imagennumero2");

$N count($links);
$azar rand(1$N); //Donde N es el numero de elementos en tu Array.

echo '<img src="'.links[$azar].'"></img>';

//TAH DAH!!!!!!!! :D
//That was easy, was it not?

?>

Última edición por Ronruby; 05/09/2008 a las 14:40
  #9 (permalink)  
Antiguo 05/09/2008, 00:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: repetir region me es complicado por 1 situacion.

Ronruby se nos esta poniendo guapo, Capi.... ya ponte a estudiar!!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 05/09/2008, 13:47
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: repetir region me es complicado por 1 situacion.

Cita:
Iniciado por pateketrueke Ver Mensaje
Ronruby se nos esta poniendo guapo, Capi.... ya ponte a estudiar!!!
Me parece bien. Lo malo es que he buscado mucha informacion para cultivar mi conocimiento en PHP y los 2 libros que he leido no me hablan de conceptos basicos del lenguaje... y por eso no he logrado entender muy bien todo...

si tu me puedes recomendar algun material bueno para leer te lo agradeceria..

ademas les quiero recordar.. lo dificil que es trabajar con dreamweaver por casi 7 años y depues querer entrar al mundo del codigo php comprendi conceptos pero no me quedaron claras muchas cosas...

continuando con el tema

Código PHP:
<?php
$links 
= array(1=>"http://ellinkhacia.tu/imagen"2=>"http://ellinkhacia.tu/imagennumero2");

$N count($links);
$azar rand(1$N); //Donde N es el numero de elementos en tu Array.

echo '<img src="'.$azar.'"></img>';

?>
esto no lo sabia pero ya me queda un poco mas claros como funcionan los array..
ahora... yo en vez de escribir el link de cada imagen los quiero agarrar de una base de datos que tengo donde estan guardados todos los links...

pero... quiero hacer random nada mas con los ultimos 3 id de base de datos.. osea que la tabla podra tener 100 registros y cada vez mas y mas pero solo quiero que me muestre al azar los ultimos 3 registro ingresados...

se que ya esta un poquito mas avanzado... pero les agradezco la ayuda...
PD. ya lo intente hacer con la funcion de repetir region del dreamweaver.. pero no me deja y limita mucho... creo ke solo se pueden hacer loop de filas o tablas..
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México

Última edición por Capimaster; 05/09/2008 a las 13:53 Razón: continuando con el tema
  #11 (permalink)  
Antiguo 05/09/2008, 14:41
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Se me habia olvidado escribir algo en el codigo. Ya esta corregido.

Cita:
pero... quiero hacer random nada mas con los ultimos 3 id de base de datos.. osea que la tabla podra tener 100 registros y cada vez mas y mas pero solo quiero que me muestre al azar los ultimos 3 registro ingresados...

se que ya esta un poquito mas avanzado... pero les agradezco la ayuda...
Sigue siendo igual de facil:

Código PHP:
<?php

$sql 
"SELECT algo FROM tabla LIMIT 3";
$query mysql_query($sql) or die(mysql_error());
$i=1;
while(
$row mysql_fetch_assoc($query))
{
    
$matriz[$i]=$row['algo'];
    
$i++;
}
$N count($matriz);
$azar rand(1$N);
echo 
$matriz[$azar];
?>
El mismo concepto de antes.

Última edición por GatorV; 06/09/2008 a las 11:00
  #12 (permalink)  
Antiguo 05/09/2008, 21:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: repetir region me es complicado por 1 situacion.

joder! (que genial se pone el foro)

Capi, lo básico... ronda en Internet.... lo básico, esta en la pagina oficial de PHP.....

lo básico, en si es concepto de programación general, lo básico.... es que te pongas las pilas, suerte!

PDTA: mucho de lo básico, también esta aquí en los foros.... en las FAQ's (básico)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 06/09/2008, 15:05
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: repetir region me es complicado por 1 situacion.

Antes que nada pateketrueke, no se si agradecerte el que seas tan duro conmigo jeje.. pero bueno me puse a leer la pagina de PHP.NET y comprendi muchas cosas.. entre las que mejor y mas me gusto fue acerca de los array...

Ok y ahora siguiendo con mi tema... Ronruby Muchas gracias por tu ayuda si pude usar tu recomendacion...

Código PHP:
<?php

mysql_connect
(....); 

$sql "SELECT * FROM inser_gob ORDER BY id DESC LIMIT 3"
$query mysql_query($sql) or die(mysql_error()); 
$i=1
while(
$row mysql_fetch_assoc($query)) 

    
$matriz[$i]=$row['ruta'];
    
$matrix[$i]=$row['ancho'];
    
$matrizx[$i]=$row['alto']; 
    
$i++; 

$N count($matriz); 
$azar rand(1$N); 
echo 
'<img src="'.$matriz[$azar].'"></img>';
echo 
$matriz[$azar]; 
echo 
$matrix[$azar]; 
echo 
$matrizx[$azar]; 
?>
no estoy muy seguro si me muestra los ultimos 3 registros de la base de datos...
hize esto $sql = "SELECT * FROM inser_gob ORDER BY id DESC LIMIT 3";
con eso ya estoy mostrando unicamente los ultimos 3 ingresos en mi base de datos??
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #14 (permalink)  
Antiguo 06/09/2008, 15:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: repetir region me es complicado por 1 situacion.

Si tu ID es autonumerico, sí, con ese Query estarás viendo los últimos 3 registros.

Saludos.
  #15 (permalink)  
Antiguo 06/09/2008, 15:15
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: repetir region me es complicado por 1 situacion.

Cita:
hize esto $sql = "SELECT * FROM inser_gob ORDER BY id DESC LIMIT 3";
con eso ya estoy mostrando unicamente los ultimos 3 ingresos en mi base de datos??
Si.

EDIT: xD Me gano GatorV.
  #16 (permalink)  
Antiguo 06/09/2008, 15:19
Avatar de Capimaster  
Fecha de Ingreso: agosto-2004
Mensajes: 494
Antigüedad: 19 años, 8 meses
Puntos: 2
Respuesta: repetir region me es complicado por 1 situacion.

Excelente, logre algo que tenia tiempo queriendo hacer....
muchas gracias a todos los que colaboraron en este post

un detalle... la funcion rand no es muy exacta y me refiero a que no hace mucho random repite muchas veces una entrada... pero buen al fin y al cabo funciona
__________________
http://www.elcapitolio.com.mx - Ocotlán, Jalisco, México
  #17 (permalink)  
Antiguo 06/09/2008, 15:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: repetir region me es complicado por 1 situacion.

El problema es que un random de 3 dígitos es muy poco probable que cambie mucho, si fuera de un número más grande es probable que te de más números aleatorios.

Saludos.
  #18 (permalink)  
Antiguo 06/09/2008, 15:32
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: repetir region me es complicado por 1 situacion.

Es muy probable que al usar RAND para 3 numeros solamente repita mucho un solo. Es una probabilidad de un 33.33% de que salga 1 numero.

Pero si quieres un mejor valor random usa: mt_rand()

http://www.php.net/manual/en/function.mt-rand.php

EDIT: Otra vez me gano GatorV...
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 01:54.