elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  página dinamica atraves de una consulta mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: página dinamica atraves de una consulta mysql  (Leído 5,550 veces)
viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
página dinamica atraves de una consulta mysql
« en: 20 Agosto 2010, 21:46 pm »

hola,tengo el siguiente codigo para hacer una web modular

Código
  1. <?
  2. include ("config.php");
  3. $id = $_GET['id'];
  4. $sql = "select * from categorias";
  5. $squery = mysql_query($sql);
  6. while($row = mysql_fetch_array($squery)){
  7. $categoria = $row['id']; }
  8.  
  9. switch ($_GET["sección"]){
  10. case '$categoria';
  11.    $incluir = '$categoria.php';
  12. $descripcion = '$categoria';
  13.    $titulo = '$categoria';
  14.    break;
  15. default:
  16.  
  17.    $incluir = 'categorias.php';
  18.    $titulo = 'titulo';
  19. $descripcion = 'descripcion';
  20. }
  21. ?>
  22.  

al principio del codigo lo que intento es que en categorias.php que hace una consulta saque la id y la ponga en el include,pero no me funciona,algo estoy haciendo mal pero no se el que,aver si me podeis ayudar,gracias.

me da este error y me sale la misma pagina siempre

Código:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\Archivos de Programa\appserv\www\2\index.php on line 10

gracias y un saludo!


En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: página dinamica atraves de una consulta mysql
« Respuesta #1 en: 20 Agosto 2010, 22:44 pm »

El error debe estar en:
  • La conexión hacia la Base De Datos
  • La selección de la base de datos
  • La consulta SQL

Trata de usar la función mysql_error(), para que sepas donde se encuentra el error.


En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: página dinamica atraves de una consulta mysql
« Respuesta #2 en: 20 Agosto 2010, 22:57 pm »

jojojo se me adelanto Yoya
Código
  1.  include('config.php');
  2.  #$sID = $_GET['id']; # Esto para qué?
  3.  $sSql = 'SELECT * FROM categorias';
  4.  $sQuery = mysql_query($sSql);
  5.  if(!$sQuery){
  6.    die('Invalid query: ' . mysql_error());
  7.  }
  8.  
  9.  while($sRow = mysql_fetch_array($sQuery)){
  10.    $sCategoria = $sRow['id'];
  11.  }
  12.  
  13.  switch ($_GET['sección']){
  14.    case 1: # Verificar tú caso, creo que es mejor usar un IF
  15.      $incluir = $sCategoria.'.php';
  16.      $descripcion = $sCategoria;
  17.      $titulo = $sCategoria;
  18.      break;
  19.    default:
  20.      $incluir = 'categorias.php';
  21.      $titulo = 'titulo';
  22.      $descripcion = 'descripcion';
  23.  }
« Última modificación: 21 Agosto 2010, 03:01 am por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: página dinamica atraves de una consulta mysql
« Respuesta #3 en: 21 Agosto 2010, 02:59 am »

Código:
Invalid query: 

eso es lo que pasa si uso tu codigo Shell Root
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: página dinamica atraves de una consulta mysql
« Respuesta #4 en: 21 Agosto 2010, 03:02 am »

jojojojo cambia la siguiente linea,
Código
  1.  include('config.php');
  2.  #$sID = $_GET['id']; # Esto para qué?
  3.  $sSql = 'SELECT * FROM categorias';
  4.  $sQuery = mysql_query($sSql);
  5.  if(!$sQuery){
  6.    die('Invalid query: ' . mysql_error());
  7.  }
  8.  
  9.  while($sRow = mysql_fetch_array($sQuery)){
  10.    $sCategoria = $sRow['id'];
  11.  }
  12.  
  13.  switch ($_GET['sección']){
  14.    case 1: # Verificar tú caso, creo que es mejor usar un IF
  15.      $incluir = $sCategoria.'.php';
  16.      $descripcion = $sCategoria;
  17.      $titulo = $sCategoria;
  18.      break;
  19.    default:
  20.      $incluir = 'categorias.php';
  21.      $titulo = 'titulo';
  22.      $descripcion = 'descripcion';
  23.  }
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: página dinamica atraves de una consulta mysql
« Respuesta #5 en: 21 Agosto 2010, 03:29 am »

tengo un problema,resulta que esto solo me funciona con el ultimo registro de la tabla,es decir si tengo 3 registros en la tabla y pincho en el tercero me habre bien la url,pero si pincho en el 1 o en el 2 se me queda en la misma página aunque la url cambie por index.php?sección=ID

porque pasa esto?

Código
  1. <?
  2. include('config.php');
  3.  $sSql = 'SELECT * FROM categorias';
  4.  $sQuery = mysql_query($sSql);
  5. if(!$sQuery){
  6.    die('Invalid query: ' . mysql_error());
  7.  }
  8.  
  9.  while($sRow = mysql_fetch_array($sQuery)){
  10.    $sCategoria = $sRow['id'];
  11.  }
  12.  
  13.  switch ($_GET['sección']){
  14.    case $sCategoria; # Verificar tú caso, creo que es mejor usar un IF
  15.      $incluir = $sCategoria.'.php';
  16.      $descripcion = $sCategoria;
  17.      $titulo = $sCategoria;
  18.      break;
  19.  
  20.    default:
  21.      $incluir = 'categorias.php';
  22.      $titulo = 'titulo';
  23.      $descripcion = 'descripcion';
  24.  }
  25. ?>

gracias
« Última modificación: 21 Agosto 2010, 04:01 am por viher » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: página dinamica atraves de una consulta mysql
« Respuesta #6 en: 21 Agosto 2010, 04:04 am »

Obvio, tenes que realizar un WHERE (Condición) en la query, es decir,
Código
  1. SELECT * FROM categorias WHERE (ID = "$_GET['id']");

En php, sería algo así,
Código
  1.  include('config.php');
  2.  $sID = $_GET['id'];
  3.  $sSql = 'SELECT * FROM categorias WHERE (ID ='.$sID.');';
  4.  $sQuery = mysql_query($sSql);
  5. if(!$sQuery){
  6.    die('Invalid query: ' . mysql_error());
  7.  }
  8.  
  9.  while($sRow = mysql_fetch_array($sQuery)){
  10.    $sCategoria = $sRow['id'];
  11.  }
  12.  
  13.  switch ($_GET['sección']){
  14.    case $sCategoria: # Verificar tú caso, creo que es mejor usar un IF
  15.      $incluir = $sCategoria.'.php';
  16.      $descripcion = $sCategoria;
  17.      $titulo = $sCategoria;
  18.      break;
  19.    default:
  20.      $incluir = 'categorias.php';
  21.      $titulo = 'titulo';
  22.      $descripcion = 'descripcion';
  23.  }

Sigo pensando en que, no deberías de emplear el SWITCH, sino un simple IF-ELSE

Código
  1.  $sSeccion = $_GET['sección'];
  2.  if(!empty($sSeccion)){
  3.    # Acciones a realizar
  4.  }else{
  5.    # Acciones neutras
  6.  }
« Última modificación: 21 Agosto 2010, 04:10 am por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: página dinamica atraves de una consulta mysql
« Respuesta #7 en: 21 Agosto 2010, 04:29 am »

me da este error:

Código:
Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

y puse el codigo que me diste

Código
  1.  include('config.php');
  2.  $sID = $_GET['id'];
  3. $sSql = 'SELECT * FROM categorias WHERE (ID ='.$sID.');';
  4.  $sQuery = mysql_query($sSql);
  5. if(!$sQuery){
  6.    die('Invalid query: ' . mysql_error());
  7.  }
  8.  
  9.  while($sRow = mysql_fetch_array($sQuery)){
  10.    $sCategoria = $sRow['id'];
  11.  }
  12.  
  13.  switch ($_GET['sección']){
  14.    case $sCategoria: # Verificar tú caso, creo que es mejor usar un IF
  15.      $incluir = $sCategoria.'.php';
  16.      $descripcion = $sCategoria;
  17.      $titulo = $sCategoria;
  18.      break;
  19.    default:
  20.      $incluir = 'categorias.php';
  21.      $titulo = 'titulo';
  22.      $descripcion = 'descripcion';
  23.  }

y si uso un If como sería

Código
  1. $sSeccion = $_GET['sección'];
  2.  if(!empty($sSeccion)){
  3.      case $sCategoria: # Verificar tú caso, creo que es mejor usar un IF
  4.      $incluir = $sCategoria.'.php';
  5.      $descripcion = $sCategoria;
  6.      $titulo = $sCategoria;
  7.  }else{
  8.    echo "nada";
  9.  }

asi? gracias
« Última modificación: 21 Agosto 2010, 04:31 am por viher » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: página dinamica atraves de una consulta mysql
« Respuesta #8 en: 21 Agosto 2010, 04:31 am »

Bueno, ando en mi macbook y es un poco incomodo responder esto tipos de temas, prefiero hacerlo en Linux, ya que testeo directamente....

Citar
tengo un problema,resulta que esto solo me funciona con el ultimo registro de la tabla
Código
  1.  while($sRow = mysql_fetch_array($sQuery)){
  2.    $sCategoria = $sRow['id'];
  3.  }

Ese es tu problema, se ejecuta el primer ciclo del bucle while(), y a la variable $sCategoria se le da el valor del primer registro de la columna id de la tabla Categorias, luego entra el segundo ciclo y se le da el valor a la variable $sCategoria el valor del segundo registro del campo id, osea el valor anterior se cambia por este nuevo y al final la variable $sCategoria contendra un solo valor, que seria el ultimo registro.

Lo que puedes hacer es almacenar todos los valores en un Array, asi que cada registro sera parte del array.

Ejemplo de lo que haces, aver si entiendes:
Código
  1. <?php
  2. for($i=0;$i<=10;$i++){
  3. $valor = $i;
  4. }
  5. echo $valor;
  6. ?>
Salida:
Código:
10

Código
  1.      $incluir = $sCategoria.'.php';
Esto me acordó a Null Byte Injection, es vulnerable a LFI, pero seria necesario ingresar el PATH del archivo a la columna ID xD.
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
viher

Desconectado Desconectado

Mensajes: 113



Ver Perfil
Re: página dinamica atraves de una consulta mysql
« Respuesta #9 en: 21 Agosto 2010, 04:35 am »

y como podria solucionarlo Yoya? porque con los arrays no me entero muy bien,si puedes enseñarme un ejemplo o algo parecido que pueda adaptar a mi codigo... gracias por la ayuda
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Consulta ataque dos a una pagina web.
Nivel Web
volteo0101 6 5,030 Último mensaje 1 Enero 2011, 14:38 pm
por Karcrack
Consulta SELECT dinámica en un Declare
Bases de Datos
GhostLT 4 4,357 Último mensaje 17 Marzo 2011, 03:20 am
por GhostLT
Ayuda Con Lista Dinámica en PHP Según Consulta SQL
PHP
ZedGe 1 2,194 Último mensaje 19 Julio 2012, 15:47 pm
por Shell Root
Consulta dinamica php mysql
PHP
datab 2 4,142 Último mensaje 8 Mayo 2015, 22:06 pm
por datab
Consulta dinamica php mysql
PHP
datab 5 2,113 Último mensaje 15 Mayo 2015, 23:51 pm
por kaiserr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines