Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] duda con pedido a base Mysql

Estas en el tema de duda con pedido a base Mysql en el foro de PHP en Foros del Web. hola tengo la siguiente duda y error: Código PHP: <?php                $conexion  =  mysqli_connect ( "localhost" , "root" , "" , "pruebadatos" );                 mysqli_set_charset ( ...
  #1 (permalink)  
Antiguo 12/10/2017, 16:58
 
Fecha de Ingreso: junio-2010
Mensajes: 183
Antigüedad: 7 años, 5 meses
Puntos: 1
duda con pedido a base Mysql

hola tengo la siguiente duda y error:

Código PHP:
<?php
               $conexion 
mysqli_connect("localhost","root","","pruebadatos");
               
mysqli_set_charset($conexion,"utf8");
               
$peticion="SELECT * FROM productos";
               
$resultado=mysqli_query($conexion,$peticion);
               while(
$fila=mysqli_fetch_array($resultado)){
                  echo 
$fila["nombre"].'<br />';
                  echo 
$fila["enlace"].'<br />';
                  echo
'<a href="productos.php?id='.$fila["enlace"].' ">ver mas</a><br /><br />';
               }
?>
y recibo:

Código PHP:
<?php
               $conexion 
mysqli_connect("localhost","root","","pruebadatos");
               
mysqli_set_charset($conexion,"utf8");
               
$peticion="SELECT * FROM productos WHERE enlace=".$_GET['id'];
               
$resultado=mysqli_query($conexion,$peticion);
               while(
$fila=mysqli_fetch_array($resultado)){
                  if()
                  echo 
$fila["nombre"].'<br />';
                  echo 
$fila["enlace"].'<br />';
                  echo
'<a href="productos.php?id='.$fila["enlace"].' ">ver mas</a><br /><br />';
               }
?>
Pero me da error. sin embargo cuando cambio "enlace" por "id" y lo comparo con el id de la tabla no hay problema. Que es lo que hago mal.

Lo que quiero hacer es que en mi url en vez que salga por ej: id=4, salga id=productoEjemplo ya que por "enlace" en mi base tengo el nombre de mi producto.
Espero me entiendan
Una vez lo hice pero no recuerdo como. Espero me puedan dar una manito
Gracias
  #2 (permalink)  
Antiguo 13/10/2017, 10:44
 
Fecha de Ingreso: junio-2010
Mensajes: 183
Antigüedad: 7 años, 5 meses
Puntos: 1
Respuesta: duda con pedido a base Mysql

que lástima que aquí ya casi no responden!
Lo pude solucionar, tal vez a alguien le sirva

el error era:

Cita:
$peticion="SELECT * FROM productos WHERE enlace=".$_GET['id'];

DEBE SER:

Cita:
$peticion="SELECT * FROM productos WHERE enlace='".$_GET['id']."'";
  #3 (permalink)  
Antiguo 13/10/2017, 10:47
Avatar de petit89  
Fecha de Ingreso: marzo-2011
Mensajes: 889
Antigüedad: 6 años, 8 meses
Puntos: 130
Respuesta: duda con pedido a base Mysql

te digo algo mas?
es pesima practica, insegura, vulnerable y todo lo malo de programación insertar directamente un GET en una sentencia SQL, tienes que validar esta primero, si es numero lo que esperas, validarlo como tal.. si es string lo mismo, no puedes solo dejar el GET y ya... asi cualquiera puede cambiar el dato, insertar, etc... por medio de la URL directamente a la sentencia...
__________________
█ WebHosting / Reseller a bajo costo | Uptime Garantizado | Soporte en Español e Ingles
¿Te sirvió la respuesta? Deja un +1 (Triangulo negro al lado derecho)
  #4 (permalink)  
Antiguo 13/10/2017, 11:01
Avatar de alvaro_trewhela  
Fecha de Ingreso: octubre-2012
Ubicación: localhost
Mensajes: 783
Antigüedad: 5 años, 1 mes
Puntos: 92
Respuesta: duda con pedido a base Mysql

Aqui si respondemos pero cuando tenemos tiempo, yo respondo por amor al arte. como dicen arriba, inyección segura y adios base de datos.

Nunca dejes nada a mano del usuario.

En cuando a tu problema es un arror tipico de sentencia sql, siempre el string query debe terminar con comilla doble.

En todo caso me sorprende que no te arroje error de sintaxis, no se permite un if vacio.



La zona horaria es GMT -6. Ahora son las 04:01.