Quijost

Por favor ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Búsqueda Avanzada  

Noticias:

Deja tu post en el foro para hacer algun tipo de consulta

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mensajes - espada

Páginas: 1 [2] 3
16
No, me temo que no funciona el error debe de estar en la llamada a la base de datos, por que no me muestra la entrada ni con limite ni sin limite. Se te ocurre alguna razón para que esto ocurra?

17
Tutoriales y Manuales / Sistema de paginacion de resultados
« en: Julio 11, 2010, 04:03:32 am »
Bueno, intentare explicar como hacer un sistema de paginación de salidas SQL, un ejemplo claro de la utilidad de esto es en un blog, para no alargar infinitamente la pagina cada X entradas se para el proceso y aparece un botón para ir a las siguientes entradas.

El código que utilizaremos para limitar el numero de peticiones a la base de datos sera LIMIT.
Este se utiliza de la siguiente manera:
Código: [Seleccionar]
<?php
SELECT 
FROM `your_tableLIMIT 010
?>


El * puede ser sustituido por los campos que interesa extraer de la base de datos, con * se extraeran todos.

your_table debe de ser sustituido por el nombre de tu tabla, la tabla de la base de datos a la que quieres acceder si no lo cambias no funcionara. “nota: las ` que se encuentran a los lados pueden ser obviadas, no es necesario ponerlas.”

Después de LIMIT observamos 2 números con una coma entre medias, estos números representan el inicio y el recorrido, el código anteriormente expuesto comenzara por la primera fila y recorrerá 10.

Esto puesto así, no nos sirve realmente si queremos una pagina dinámica, no vamos a estarlo modificando cada vez que nuestro blog tenga una entrada mas de las puestas por pagina para ello asignaremos a ambos números una variable.

Código: [Seleccionar]
<?php
SELECT 
FROM `your_tableLIMIT '.$start.','.$end.'
?>


La única diferencia con el anterior es que los numeros ahora mismo no son fijos, son dados por una variable que asignaremos según nuestra conveniencia en mi caso me interesan 5 entradas por pagina pues la variables serian:

Código: [Seleccionar]
<?php
$start 
= (empty($_REQUEST["start"]) ? : ($_REQUEST["start"]));
$end 5;
?>


El $end carece de sentido explicarlo, pero el $start tiene mas chicha, lo enviaremos mediante la barra de direcciones, como explicare veremos mas tarde en los botones. La explicación de lo que hace la linea es: (si no recibo nada $star = 0 pero si recibo algo, le doy el valor recibido.)

Para que nuestro botón de siguiente pagina solo se muestre si hay mas entradas que las mostradas en la pagina que estamos utilizaremos la siguiente función php: mysql_num_rows($resource)

Esta función nos dice el numero de filas que hay en nuestra llamada, el $resource es la variable que hayamos asignado a dicha llamada.
El código seria
Código: [Seleccionar]
<?php
$filas_tot 
mysql_num_rows($var);
?>


Con esta nueva variable asignada y mediante un if conseguiremos que solo se muestre si el numero de entradas es mayor a las que muestra la pagina en la que estamos actualmente.

Código: [Seleccionar]
<?php
if(($start 5) < =$filas_tot)
   {
      echo 
'<a href="?start='.($start 5).'">NOTICIAS ANTERIORES</a>';
   }
?>

Siempre que haya mas entradas de las mostradas aparecerá nuestro botón.
 
El botón para ir a las paginas anteriores es mucho mas sencillo, siempre que no estés en la primera pagina se mostrara por lo que seria de la siguiente manera:

Código: [Seleccionar]
<?php
   
if($start 0)
   {
      echo 
'<a href="?start='.($start 5).'">NOTICIAS RECIENTES</a>';
   }
?>


Este otro if haría que se mostrase siempre que $start fuese distinto de 0 en la pagina 0 no se muestra a partir de ella se muestra siempre.

El código que se muestra dentro del echo es un hipervinculo, con el mandamos la variable que modifica la pagina. En el primer caso sumamos a nuestra variable 5, con ello la llamada a la base de datos sube 5 filas.

El $end por otra parte siempre es constante 5 puesto que queremos mostrar el mismo numero de entradas siempre.

Bueno esto es todo, espero que os sirva de ayuda cualquier problema no dudéis en preguntar.

Agradecer al equipo de Quijost su ayuda ya que ellos me lo explicaron a mi.

18
mmm he utilizado el metodo mediante SQL y esto es lo que me a salido, me gustaria saber si e metido la pata o estoy por el buen camino.

Código: [Seleccionar]
<?php
   $dbh 
mysql_connect('localhost''user''pass');
   
mysql_select_db('sensei_blog'$dbh);
   
$start = (empty($_REQUEST["start"]) ? : ($_REQUEST["start"]));
   
$section = (empty($_REQUEST["seccion"]) ? principal : ($_REQUEST["seccion"]));
   
$not = (empty($_REQUEST["noticia"]) ? false : ($_REQUEST["noticia"]));
   
$end 5;
if( 
$not == false)
{
   
$res mysql_query("SELECT title, SUBSTRING(entrada,0,100) FROM blog 
                       WHERE seccion='"
.$section."' ORDER BY id DESC LIMIT ".$start.",".$end.""$dbh
                       or die(
'Error select_blog: '.mysql_error());
}
else
{
   
$res mysql_query("SELECT title, entrada FROM blog 
                       WHERE title ='"
.$title."' ORDER BY id DESC LIMIT ".$start.",".$end.""$dbh
                       or die(
'Error select_blog: '.mysql_error());
}
   
$n mysql_num_rows($res);

   echo 
'<table>';
   while(
$row mysql_fetch_array($res))
   {
  echo' <a href=/?noticia='.$row['title'].'>
  <table>
<tr>
<td> '
.$row['title'].'</td>
<td>  '
.$row['entrada'].'</td>
</tr>
</table>
</a>'
;
   }

   if(
$start 0)
   {
      echo 
'<div style="float:left">
              <a href="?start='
.($start 5).'">NOTICIAS RECIENTES</a>
           </div>'
;
   }
   
   if((
$start 5) <= $n)
   {
      echo 
'<div style="align:right">
              <a href="?start='
.($start 5).'">NOTICIAS ANTERIORES</a>
                        </div>'
;
   }
?>


19
Otra duda mas que me surge, os cansareis de mi y tanta pregunta jeje espero algún día poder responder yo también...
Bueno yendo al grano, quiero hacer una sección de noticias en mi web y seria estilo:

titulo noticiaresumen de noticia
titulo noticiaresumen de noticia
titulo noticiaresumen de noticia

Pues me gustaría que en el resumen apareciesen unos 50 caracteres o un par de lineas de lo que seria la noticia y a su vez que todo fuese un hiper-vinculo hacia la entrada completa, en su defecto también me parece interesante la idea de que al darle saliese la entrada entera dentro de la misma pagina pero eso debe de ser javascript y no tengo ni idea...

Lo del link, lo había pensado hacer con un _get que en vez seleccionar la sección como ya e echo anteriormente seleccione el titulo de la noticia. lo que me tiene intrigado es lo otro, como limitar la salida del campo.

20
Desarrollo Web / Re:"Cambiar de hoja"
« en: Julio 09, 2010, 04:47:50 am »
Tras el sufrimiento la recompensa. Ya que estaba puesto aproveche para asignar la sección del foro mediante una variable y así tener que estar pendiente de un solo index y no tener uno por sección.

Código: [Seleccionar]
<?php
   $dbh 
mysql_connect('localhost''usuario''contraseña');
   
mysql_select_db('sensei_blog'$dbh);
   
$start = (empty($_REQUEST["start"]) ? : ($_REQUEST["start"]));
   
$section = (empty($_REQUEST["seccion"]) ? principal : ($_REQUEST["seccion"]));
   
$end 5;

   
$res mysql_query("SELECT entrada, imagen, autor, title FROM blog 
                       WHERE seccion='"
.$section."' ORDER BY id DESC LIMIT ".$start.",".$end.""$dbh
                       or die(
'Error select_blog: '.mysql_error());
   
$n mysql_num_rows($res);

   echo 
'<table>';
   while(
$row mysql_fetch_array($res))
   {
      echo 
'<tr>
            <td>
               <center>
                     <span style="font-weight:bold; font-size:20px; color:#FFFFFF;">
                        '
.$row['title'].'
                     </span>
                     <br />
                     <br />
                     <img alt="cabezera" src="'
.$row['imagen'].'">
                     <br />
                     <br />
                     <div style="color:#FFFFFF;">
                        '
.nl2br($row['entrada']).'
                     </div>
               </center>
               <br />
               <br /> 
               <p align="right" style="color:#FFFFFF;"> 
                  autor: '
.$row['autor'].'
               </p>
            </td>
         </tr>'
;
   }
   echo 
'</table>';

   if(
$start 0)
   {
      echo 
'<div style="float:left">
              <a href="?start='
.($start 5).'">ENTRADAS RECIENTES</a>
           </div>'
;
   }
   
   if((
$start 5) <= $n)
   {
      echo 
'<div style="align:right">
              <a href="?start='
.($start 5).'">ENTRADAS ANTERIORES</a>
                        </div>'
;
   }
?>


Hernesto, SixLima, Shakaran gracias a todos una vez mas veloces y precisos.
Este finde intentare sacar un rato y hacer un tutorial de esto, que una vez lo consigues parece fácil pero he sudado sangre para llegar a esto.

21
Desarrollo Web / Re:"Cambiar de hoja"
« en: Julio 09, 2010, 02:16:47 am »
Ahora lo modifico, en el anterior lo cambie pero en este se paso. El $end no lo modifico por que segun entendi a SixLima es el numero de post que se van a mostrar, siempre quiero que se muestren 5 pero empezando 5 mas tarde. Yo creo que sera mas bien un error en los if, o al pedir el numero total de entradas, pero no se exactamente que es lo que puede fallar.

22
Desarrollo Web / Re:"Cambiar de hoja"
« en: Julio 09, 2010, 01:42:29 am »
he usado el metodo de SixLima, ya que si parecia mas sencillo aun que no se si tambien e usado ideas de ernestmego total que no funciona... he puesto mediante un if los botones para que se muestren solo en caso de ser necesarios  el codigo es el siguiente.

Código: [Seleccionar]
<?php
   $connect 
mysql_connect('localhost''user''pass');
    
mysql_select_db('sensei_blog'$connect);
    if (
$_get["start"]=="")
$start=1;}
else
{$start=$_get["start"];}
    
$end 5;
   
$result =  mysql_query("SELECT entrada, imagen, autor, title FROM blog WHERE seccion='TEST' ORDER BY id DESC LIMIT $start , $end",  $connect);
   
$total mysql_num_rows($result);
   echo 
'<table>';
   while(
$row mysql_fetch_array($result))
   {
      echo  
'<tr><td><center>
<span style="font-weight:bold; font-size:20px; color:#FFFFFF;">'
.$row['title'].'</span>
<br/><br/>
<img alt=cabezera src='
.$row['imagen'].'>
</br></br>
<div style="color:#FFFFFF;">'
.nl2br($row['entrada']).'</div>
</center></br></br> 
<p align="right" style="color:#FFFFFF;"> autor: '
.$row['autor'].'</p></td></tr>';
   }
    echo 
'</table>';
    if (
$start != 1)
    {
echo '<div style="float:left>';
echo '<a href="http://sensei.quijost.com/?start='.$start += .'">ENTRADAS RECIENTES</a>
</div>'
;
}

if (($start += 5) <= $total)
{
echo '<div style="align:right">';
echo '<a href="http://sensei.quijost.com/?start='.$start -= .'">ENTRADAS ANTERIORES</a>
</div>'
;
}
?>


23
Desarrollo Web / Re:"Cambiar de hoja"
« en: Julio 06, 2010, 19:44:15 pm »
mil gracias ernesto, ya lo entendí, para mostrar luego en otra pagina las 5 siguientes seria modificar "if($i >0 or $i < 5)" por "if($i >5 or $i < 10)" ¿no? Es que me parece que no por que así se bloquearía al principio no mostraría nada... solo me falta eso, como mostrar las 5 siguientes luego el crear los botones creo que me las arreglare

24
Desarrollo Web / Re:"Cambiar de hoja"
« en: Julio 06, 2010, 18:35:26 pm »
bufff no me ayuda demasiado a ver el codigo que tengo ahora mismo es este:
Código: [Seleccionar]
<?php
   $connect 
mysql_connect('localhost''usuario''cotraseña');
    
mysql_select_db('sensei_blog'$connect);
   
$result =  mysql_query("SELECT entrada, imagen, autor, title FROM blog WHERE seccion='principal' ORDER BY id DESC",  $connect);
   echo 
'<table>';
   while(
$row mysql_fetch_array($result))
   {
      echo  
'<tr><td><center>
<span style="font-weight:bold; font-size:20px; color:#FFFFFF;">'
.$row['title'].'</span>
<br/><br/>
                        <img alt=cabezera src='
.$row['imagen'].'>
</br></br>
                        <div style="color:#FFFFFF;">'
.nl2br($row['entrada']).'</div>
</center> </br> </br>
<p align="right" style="color:#FFFFFF;"> autor: '
.$row['autor'].'</p>
</td></tr>'
;
   }
    echo 
'</table>';
?>


con esto las entradas se me muestran en la web, pero se me muestran todas me gustaría que solo se mostraran 5 o 10 y en caso de haber mas en la parte inferior apareciese un botón para ver las siguientes. quizá ahora puedas decirme mejor que hacer

25
Desarrollo Web / Re:invertir orden de la descarda de la bd
« en: Julio 06, 2010, 18:30:09 pm »
Si muchas gracias funciono a la perfeccion al final la llamada a la base de datos quedo así:
Código: [Seleccionar]
mysql_query("SELECT entrada, imagen, autor, title FROM blog WHERE seccion='principal' ORDER BY id DESC",  $connect);

26
Desarrollo Web / invertir orden de la descarda de la bd
« en: Julio 06, 2010, 02:58:08 am »
en al base de datos almaceno las entradas de mi blog, tengo todo basado en un id que asigna un numero único a cada entrada. al descargarlo y mostrarlo muestra de mas antiguo a mas moderno y me gustaria invertir el orden para mostrar en la parte superior el mas nuevo

27
Desarrollo Web / Mostrar toda una carpeta de imagenes.
« en: Julio 06, 2010, 02:16:14 am »
Hola, me gustaria saber si hay forma de mostrar toda una carpeta de imagenes en una pagina, del mismo modo si es posible ajustar el tamaño de todas para que entren en una tabla y si se puede que cada una sea hipervinculo con la original.

Gracias por adelantado.

28
Desarrollo Web / "Cambiar de hoja"
« en: Julio 06, 2010, 02:13:39 am »
Hola, me gustaría saber como se hace para  que haya un limite de "entradas" o cualquier cosa descargada de la base de datos por hoja y que en caso de haber mas aparezca un siguiente y al darle continué con las "entradas". seria tipo blog para mostrar entradas mas antiguas. Si alguien puede ayudarme gracias por adelantado.

29
No es el servidor, son las cuentas basic las que están en modo seguro, para poder utilizar el script deberás upgradear la cuenta o en su defecto instalar wordpress de forma manual.

30
Tutoriales y Manuales / Sustituir saltos de linea por <br/>
« en: Julio 01, 2010, 02:41:27 am »
Cuando se utilizan bases de datos, al menos a mi me surgió este problema, al introducir cosas como comentarios o entradas se utiliza el intro y se produce un salto de linea, pero como ya sabemos ese salto de linea no es reconocido por HTML que para ello utiliza <br/>.

La solución para este problema y que al enviar la entrada a la base de datos no tengamos que estar introduciendo los <br/> a mano esta la función "nl2br()". Entre los paréntesis introduciremos la variable, en este caso la llamada a la base de datos que trae la entrada o el comentario.

Código: [Seleccionar]
<?php
/* El logueo a la base de datos y la peticion de el texto */
echo nl2br($variable);
?>


Este seria el código modelo pero a mi no me sirvió ya que tenia un código mas complejo y no entendía bien como hacerlo en el caso de mi web el codigo quedo asi.

Código: [Seleccionar]
<?php
 $connect 
mysql_connect('localhost''usuario''contraseña');
    
mysql_select_db('tabla'$connect);
 
$result =  mysql_query("SELECT [u]entrada[/u] FROM tabla WHERE columna='valor'",  $connect);

echo 
'<h1>entrada</h1><br/>'.nl2br($row["entrada"]).'<br/>gracias a todos por leer la entrada.';
?>


En el echo final que es el que muestra en la pantalla se puede observar un titulo (entrada) y tras el salto de linea la entrada y por debajo un mensaje de agradecimiento por leer la entrada. Este ejemplo para mi es mas claro, ya que si mostramos contenido de cara al publico incluiremos mas cosas aparte del valor extraído, otros valores, o etiquetas para aplicar un estilo. en las zonas 'así' se introducirían todas aquellas cosas que el navegador interpretara tal cual esta mientras que las que están '.así.' serán tratadas por el servidor, en este caso para extraer la entrada de la base de datos.

para acabar el código de mi web, el cual esta completamente funcional y quizá a alguno le resulte mas sencillo que el anterior con texto subrayado.

Código: [Seleccionar]
<?php
   $connect 
mysql_connect('localhost''usuario''contraseña');
    
mysql_select_db('base'$connect);
   
$result =  mysql_query("SELECT entrada, imagen, autor, title FROM blog WHERE seccion='principal'",  $connect);
   echo 
'<table>';
   while(
$row mysql_fetch_array($result))
   {
      echo  
'<tr><td><div align="center">
<span style="font-weight:bold; font-size:20px; color:#FFFFFF;">'
.$row['title'].'</span><br/><br/><img alt=cabezera src='.$row['imagen'].'</br></br>'.nl2br($row['entrada']).'</div> </br> </br> <p align="right" style="color:#FFFFFF;"> autor: '.$row['autor'].'</p></td></tr>';
   }
    echo 
'</table>';
?>


Es mi primer tutorial, cualquier duda no duden en preguntar, estaré encantado de responder.

Páginas: 1 [2] 3

Página generada en 0.103 segundos con 34 consultas.