Error al recibir ID

hamedm Seguir

Gamma
Programador
Verificación en dos pasos desactivada
Desde
7 Ene 2013
Mensajes
193
Hola Forobetanos

Es que estaba haciendo mi pagina por medio de PHP
Esta es mi pagina: Productos-Sabz Goltab-Pagina Web Oficial-Vajillas en Melamine

este es el codigo de probando.php
PHP:
<!DOCTYPE html>
<html>
<head>
<title>Productos-Sabz Goltab-Pagina Web Oficial-Vajillas en Melamine</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<link rel="stylesheet" href="CSS/index.css" type="text/css">
</head>
<body>
<?php
include ('header.php');
$conexion=mysql_connect("localhost","timersco_usuario","7Xlg=81ty.k-");
$bd="timersco_base";
$sql1="select * from categorias";
$resultado1=mysql_db_query ($bd,$sql1,$conexion);

while ($row=mysql_fetch_array($resultado1))
{ 
?> 
<fieldset>
<legend>
<?php echo $row["tipo"]; ?>
</legend>
<?php 
$sql2='select * from productos where id_producto='.$row["ID"].' ';
$resultado2=mysql_db_query ($bd,$sql2,$conexion);
while ($yo=mysql_fetch_array($resultado2)) 
{ 
?> 

<div class="main_product"> <div class="product_left"></div>
<div class="product_image"><img src="fotos/<?php echo $yo["imagen"]; ?>"></div>
<div class="product_information">
<table width="265" height="50" bgcolor="#0f95f6">
<tr>
<td style="text-align:center; color:white; width:265px: height:50px;>
<?php echo $yo["nombre"]; ?>
</td>
</tr>
<tr>
<td style="cursor:pointer;background-color:#F6F60F; border:2px solid #F6F60F; border-radius:3px;padding:0px; width:5px;height:10px;" >
<a href="prueba.php?id=<?php echo $row['ID']; ?>">Ver Mas</a>
</td>
</tr>
</table>
</div>
<div class="product_right"></div>
</div> 

<?php } ?> 
</fieldset>
<?php } ?> 

</body>
</html>
se supone que en mi pagina tiene dos categorias, que son los redondos y los cuadrados, los redondos tiene ID 1 y los cuadrados tienen ID 2 el cual hago que los productos que tengan id_producto 1 salgan en redondos y los que tengan id_producto 2 salgan en cuadrados. Pero lo que pasa es que al hacer click en Ver mas me dirige al Id_producto y no al ID del producto.

El codigo de prueba.php es:

PHP:
<DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=gb18030">
<title>Productos-Sabz Goltab-Pagina Web Oficial-Vajillas en Melamine</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<link rel="stylesheet" href="CSS/index.css" type="text/css">
</head>
<body>
<?php
include ('header.php');


###CONECTAMOS A LA BASE DE DATOS###
//Inician los datos de conexi贸n hacia la base de datos
$host = "localhost"; //Servidor de la Base de Datos
$usuario = "timersco_usuario"; //Usuario de la Base de Datos
$contrasena = "7Xlg=81ty.k-"; //Contrasena de la Base de Datos
$basededatos = "timersco_base"; //Nombre de la Base de Datos


//Crear conexi贸n hacia la base de datos 
$conectarbasededatos = mysql_connect($host,$usuario,$contrasena);
mysql_select_db("$basededatos",$conectarbasededatos);

if (!$conectarbasededatos)
{
die("<font color='red'>Error al conectar con la base de datos, quiz谩s los los datos son incorrectos.</font>");
}



//Utilizamos la funcion $_GET para tomar valores de la url
$tomarid=$_GET['ID'];

//Verificamos si el valor de id esta vacio
if($tomarid == NULL)
{
echo "<h2><font color='red'>El elemento solicitado no se encontro.</font></h2>";

//Si no esta vacio, continuar
} else {

//Como solo usaremos numeros verificamos si el ID no es numerico
if (!is_numeric($tomarid))
{
echo "<h2><font color='red'>El elemento solicitado no se encontro.</font></h2>";

//En caso contrario que si sea numerico, procederemos con todo
} else {

//Utilizamos mysql_real_escape_string para limpiar los datos que reciba el url ?id= y asi evitar inyecciones de SQL (hacking)
//Y asignamos lo que resulte a $idtabla
$idtabla=mysql_real_escape_string($tomarid);


//Buscamos si existe una tabla con el nombre del ID solicitado en ?id=xx
$existe=mysql_query("show tables like 'platos".$idtabla."'") or die(mysql_error());

///Si existe la tabla, procederemos todo con normalidad
if(mysql_fetch_row($existe) != false) {

$resultado1=mysql_query("select * from categoriasplatos") or die(mysql_error());

while ($row=mysql_fetch_array($resultado1))
{ 
?>

<fieldset>
<legend><?php echo $row["tipo"]; ?></legend>
<?php
//Haremos la consulta a la tabla platos{ID}
$resultado2=mysql_query('select * from platos'.$idtabla.' where id_producto="'.$row["ID"].'"') or die(mysql_error());
while ($yo=mysql_fetch_array($resultado2))
{


?> 
<div class="main_product">
<div class="product_left">
</div>
<div class="product_image">
<img src="imgs/platos-redondos/bl/<?php echo $yo["imagen"]; ?>">
</div>
<div class="product_information">
<table width="265" height="50" bgcolor="#0f95f6">
<tr>
<td style="text-align:center; color:white;" width:265px: height:50px;><?php echo $yo["nombre"]; ?></td>
</tr>
<tr>
<td style="cursor:pointer;background-color:#F6F60F; border:2px solid #F6F60F; border-radius:3px;padding:0px; width:5px;height:10px;" ><a href="platos.php">Ver Mas</a></td>
</tr>
</table>
</div>
<div class="product_right">
</div>
</div>
<?php
}
?>
</fieldset>
<?php
}

//Si la tabla NO EXISTE mostramos que no se encontro el contenido solicitado
}else{
echo "<h2><font color='red'>El elemento solicitado no se encontro.</font></h2>";

}

//Llave del "si no es numerico el id"
}
//Llave del "si no esta vacio"
}
?>

</body>
</html>

y los datos de la tabla productos:

PHP:
-- phpMyAdmin SQL Dump
-- version 4.1.8
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jul 24, 2014 at 10:41 AM
-- Server version: 5.5.37-cll
-- PHP Version: 5.4.23

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `timersco_base`
--

-- --------------------------------------------------------

--
-- Table structure for table `productos`
--

CREATE TABLE IF NOT EXISTS `productos` (
  `tipo` varchar(100) NOT NULL,
  `nombre` varchar(100) NOT NULL,
  `largo` varchar(100) NOT NULL,
  `ancho` varchar(100) NOT NULL,
  `altura` int(100) NOT NULL,
  `valorantes` int(100) NOT NULL,
  `valorahora` int(100) NOT NULL,
  `imagen` varchar(100) NOT NULL,
  `peso` int(100) NOT NULL,
  `oferta` varchar(100) NOT NULL,
  `nuevo` varchar(100) NOT NULL,
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `id_producto` text NOT NULL,
  `url` varchar(100) NOT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=74 ;

--
-- Dumping data for table `productos`
--

INSERT INTO `productos` (`tipo`, `nombre`, `largo`, `ancho`, `altura`, `valorantes`, `valorahora`, `imagen`, `peso`, `oferta`, `nuevo`, `ID`, `id_producto`, `url`) VALUES
('Redondo', 'Blanco', '', '', 0, 0, 0, 'blanco.jpg', 0, 'No', 'Si', 69, '1', 'plblanco.php'),
('Redondo', 'Flor Rojo', '', '', 0, 0, 0, 'flor-rojo.jpg', 0, 'Si', 'Si', 68, '1', 'plflorrojo.php'),
('Redondo', 'Toranj', '', '', 0, 0, 0, 'toranj.jpg', 0, 'Si', 'Si', 67, '1', 'pltoranj.php'),
('Redondo', 'Nastaran', '', '', 0, 0, 0, 'nastaran.jpg', 0, 'Si', 'Si', 66, '1', 'plnastaran.php'),
('Redondo', 'Kubismo Verde', '', '', 0, 0, 0, 'kubismo-verde.jpg', 0, 'Si', 'Si', 65, '1', 'plkubismoverde.php'),
('Redondo', 'Kubismo Azul', '', '', 0, 0, 0, 'kubismo-azul.jpg', 0, 'Si', 'Si', 64, '1', 'plkubismoazul.php'),
('Redondo', 'Flor Azul', '', '', 0, 0, 0, 'flor-azul.jpg', 0, 'Si', 'Si', 62, '1', 'plflorazul.php'),
('Redondo', 'Flor Verde', '', '', 0, 0, 0, 'flor-verde.jpg', 0, 'Si', 'Si', 63, '1', 'plflorverde.php'),
('Cuadrado', 'Flor Negro', '', '', 0, 0, 0, 'flor-negro.jpg', 0, 'Si', 'Si', 53, '2', 'flornegro'),
('Cuadrado', 'Yasmin', '', '', 0, 0, 0, 'yasmin.jpg', 0, 'Si', 'Si', 54, '2', 'yasmin'),
('Cuadrado', 'Blanco', '', '', 0, 0, 0, 'blanco-cuadrado.jpg', 0, 'Si', 'Si', 55, '2', 'blanco3'),
('Cuadrado', 'Blanco 2', '', '', 0, 0, 0, 'blanco-2-cuadrado.jpg', 0, 'Si', 'Si', 56, '2', 'blanco2'),
('Cuadrado', 'Kubismo Verde', '', '', 0, 0, 0, 'kubismo-verde-cuadrado.jpg', 0, 'Si', 'Si', 57, '2', 'kubismoverdec'),
('Cuadrado', 'Flor Azul', '', '', 0, 0, 0, 'flor-azul-cuadrado.jpg', 0, 'Si', 'Si', 58, '2', 'kubismoazulc'),
('Cuadrado', 'Flor Rojo', '', '', 0, 0, 0, 'flor-rojo-cuadrado.jpg', 0, 'Si', 'Si', 59, '2', 'florrojoc'),
('Cuadrado', 'Flor Verde', '', '', 0, 0, 0, 'flor-verde-cuadrado.jpg', 0, 'Si', 'Si', 60, '2', 'florverdec'),
('Cuadrado', 'Kubismo Azul', '', '', 0, 0, 0, 'kubismo-azul-cuadrado.jpg', 0, 'Si', 'Si', 61, '2', 'kubismoazulc'),
('Redondo', 'Ni&Atilde;&plusmn;os', '', '', 0, 0, 0, 'ninos.jpg', 0, 'Si', 'Si', 70, '1', '');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

espero que me puedan ayudar
 

lombervid

Zeta
Verificación en dos pasos desactivada
Desde
29 Abr 2011
Mensajes
1.516
Lo que mandas es "id" y lo que intentas obtener es "ID" :fatigue:
Insertar CODE, HTML o PHP:
http://timers.com.co/hamed/prueba.php?id=1
Insertar CODE, HTML o PHP:
$tomarid=$_GET['ID'];
 

hamedm

Gamma
Programador
Verificación en dos pasos desactivada
Desde
7 Ene 2013
Mensajes
193
Lo que mandas es "id" y lo que intentas obtener es "ID" :fatigue:
Insertar CODE, HTML o PHP:
http://timers.com.co/hamed/prueba.php?id=1
Insertar CODE, HTML o PHP:
$tomarid=$_GET['ID'];

Pero en que parte?

ya que yo lo puse asi: <a href="prueba.php?id=<?php echo $tomarid=$_GET['ID']; ?>">Ver Mas</a>

y pues no me funciona
 

lombervid

Zeta
Verificación en dos pasos desactivada
Desde
29 Abr 2011
Mensajes
1.516
Pero en que parte?

ya que yo lo puse asi: <a rel="nofollow" href="prueba.php?id=<?php echo $tomarid=$_GET['ID']; ?>">Ver Mas</a>

y pues no me funciona

Por eso mismo que te comenté, eso que tu dices:
Insertar CODE, HTML o PHP:
<a href="prueba.php?id=<?php echo $row['ID']; ?>">Ver Mas</a>

Te genera un link como el que te dije:
Insertar CODE, HTML o PHP:
http://timers.com.co/hamed/prueba.php?id=1

Y lo quieres obtener así:
Insertar CODE, HTML o PHP:
$tomarid=$_GET['ID'];

Tú lo que tienes es un $_GET['id'], pero lo que intentas obtener es un $_GET['ID'].

Entonces, ya sea que cambies el que mandas a mayúsculas o donde recibes lo recibas en minúsculas.

Saludos.

- - - Actualizado - - -

Bueno, no había visto bien lo que habías puesto, no me refiero a que no mandes el dato correcto, sino que cuando lo recibes en prueba.php intentas recibir uno que no existe (con mayúsculas, cuando tú el que mandas es con minúsculas).
 
Última edición:

hamedm

Gamma
Programador
Verificación en dos pasos desactivada
Desde
7 Ene 2013
Mensajes
193
Por eso mismo que te comenté, eso que tu dices:
Insertar CODE, HTML o PHP:
<a rel="nofollow" href="prueba.php?id=<?php echo $row['ID']; ?>">Ver Mas</a>

Te genera un link como el que te dije:
Insertar CODE, HTML o PHP:
http://timers.com.co/hamed/prueba.php?id=1

Y lo quieres obtener así:
Insertar CODE, HTML o PHP:
$tomarid=$_GET['ID'];

Tú lo que tienes es un $_GET['id'], pero lo que intentas obtener es un $_GET['ID'].

Entonces, ya sea que cambies el que mandas a mayúsculas o donde recibes lo recibas en minúsculas.

Saludos.

- - - Actualizado - - -

Bueno, no había visto bien lo que habías puesto, no me refiero a que no mandes el dato correcto, sino que cuando lo recibes en prueba.php intentas recibir uno que no existe (con mayúsculas, cuando tú el que mandas es con minúsculas).

pero no veo en donde lo tengo en minusculas
 

lombervid

Zeta
Verificación en dos pasos desactivada
Desde
29 Abr 2011
Mensajes
1.516
Y por cierto, también si lo que quieres es mandarlo como a una descripción de ese producto tienes que cambiar lo que imprimes en:
Insertar CODE, HTML o PHP:
<a href="prueba.php?id=<?php echo $row['ID']; ?>">Ver Mas</a>

por:
Insertar CODE, HTML o PHP:
<a href="prueba.php?id=<?php echo $yo['ID']; ?>">Ver Mas</a>

- - - Actualizado - - -

pero no veo en donde lo tengo en minusculas

Ahí están las minúsculas:
<a href="prueba.php?id=<?php echo $row['ID']; ?>">Ver Mas</a>
 

hamedm

Gamma
Programador
Verificación en dos pasos desactivada
Desde
7 Ene 2013
Mensajes
193
Y por cierto, también si lo que quieres es mandarlo como a una descripción de ese producto tienes que cambiar lo que imprimes en:
Insertar CODE, HTML o PHP:
<a rel="nofollow" href="prueba.php?id=<?php echo $row['ID']; ?>">Ver Mas</a>

por:
Insertar CODE, HTML o PHP:
<a rel="nofollow" href="prueba.php?id=<?php echo $yo['ID']; ?>">Ver Mas</a>

- - - Actualizado - - -



Ahí están las minúsculas:
<a rel="nofollow" href="prueba.php?id=<?php echo $row['ID']; ?>">Ver Mas</a>
Lop debo cambiar a mayusculas?
 

rafadizeosp

Mi
Verificación en dos pasos activada
Desde
19 Nov 2011
Mensajes
3.244
Cambia

Insertar CODE, HTML o PHP:
 $row['ID']

por

Insertar CODE, HTML o PHP:
 $row['id']

y lo otro lo dejas como está
 

hamedm

Gamma
Programador
Verificación en dos pasos desactivada
Desde
7 Ene 2013
Mensajes
193
ya lo logre muchas gracias

- - - Actualizado - - -

No estamos hablando de la DB :ambivalence:, estamos hablando de lo que tu mandas por GET (en la url, desde probando.php) e intentas recibir con PHP (en prueba.php).

Oye, como puedo hacer que en prueba.php
PHP:
<DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=gb18030">
<title>Productos-Sabz Goltab-Pagina Web Oficial-Vajillas en Melamine</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<link rel="stylesheet" href="CSS/index.css" type="text/css">
</head>
<body>
<?php
include ('header.php');


###CONECTAMOS A LA BASE DE DATOS###
//Inician los datos de conexi贸n hacia la base de datos
$host = "localhost"; //Servidor de la Base de Datos
$usuario = "timersco_usuario"; //Usuario de la Base de Datos
$contrasena = "7Xlg=81ty.k-"; //Contrasena de la Base de Datos
$basededatos = "timersco_base"; //Nombre de la Base de Datos


//Crear conexi贸n hacia la base de datos 
$conectarbasededatos = mysql_connect($host,$usuario,$contrasena);
mysql_select_db("$basededatos",$conectarbasededatos);

if (!$conectarbasededatos)
{
die("<font color='red'>Error al conectar con la base de datos, quiz谩s los los datos son incorrectos.</font>");
}



//Utilizamos la funcion $_GET para tomar valores de la url
$tomarid=$_GET['id'];

//Verificamos si el valor de id esta vacio
if($tomarid == NULL)
{
echo "<h2><font color='red'>El elemento solicitado no se encontro.</font></h2>";

//Si no esta vacio, continuar
} else {

//Como solo usaremos numeros verificamos si el ID no es numerico
if (!is_numeric($tomarid))
{
echo "<h2><font color='red'>El elemento solicitado no se encontro.</font></h2>";

//En caso contrario que si sea numerico, procederemos con todo
} else {

//Utilizamos mysql_real_escape_string para limpiar los datos que reciba el url ?id= y asi evitar inyecciones de SQL (hacking)
//Y asignamos lo que resulte a $idtabla
$idtabla=mysql_real_escape_string($tomarid);


//Buscamos si existe una tabla con el nombre del ID solicitado en ?id=xx
$existe=mysql_query("show tables like 'platos".$idtabla."'") or die(mysql_error());

///Si existe la tabla, procederemos todo con normalidad
if(mysql_fetch_row($existe) != false) {

$resultado1=mysql_query("select * from categoriasplatos") or die(mysql_error());

while ($row=mysql_fetch_array($resultado1))
{ 
?>

<fieldset>
<legend><?php echo $row["tipo"]; ?></legend>
<?php
//Haremos la consulta a la tabla platos{ID}
$resultado2=mysql_query('select * from platos'.$idtabla.' where id_producto="'.$row["ID"].'"') or die(mysql_error());
while ($yo=mysql_fetch_array($resultado2))
{


?> 
<div class="main_product">
<div class="product_left">
</div>
<div class="product_image">
<img src="imgs/platos-redondos/<?php echo $yo["nombre"]; ?>/<?php echo $yo["imagen"]; ?>">
</div>
<div class="product_information">
<table width="265" height="50" bgcolor="#0f95f6">
<tr>
<td style="text-align:center; color:white;" width:265px: height:50px;><?php echo $yo["nombre"]; ?></td>
</tr>
<tr>
<td style="cursor:pointer;background-color:#F6F60F; border:2px solid #F6F60F; border-radius:3px;padding:0px; width:5px;height:10px;" ><a href="platos.php">Ver Mas</a></td>
</tr>
</table>
</div>
<div class="product_right">
</div>
</div>
<?php
}
?>
</fieldset>
<?php
}

//Si la tabla NO EXISTE mostramos que no se encontro el contenido solicitado
}else{
echo "<h2><font color='red'>El elemento solicitado no se encontro.</font></h2>";

}

//Llave del "si no es numerico el id"
}
//Llave del "si no esta vacio"
}
?>

</body>
</html>
en donde sale la variable $yo["nombre"]; para que lo coja de la tabla productos, respectiva al ID que tiene cada producto?
ya que me coje el nombre de la tabla platos en vez de la tabla en donde aparecen los colores, o el nombre de cada producto que sale en probando.php
<img src="imgs/platos-redondos/<?php echo $yo["nombre"]; ?>/<?php echo $yo["imagen"]; ?>">
 

lombervid

Zeta
Verificación en dos pasos desactivada
Desde
29 Abr 2011
Mensajes
1.516
Tienes que hacer una unión con la tabla de productos, algo como esto:

Insertar CODE, HTML o PHP:
SLECT *, p.nombre AS pnombre FROM platosPONERTUID LEFT JOIN productos p ON  platosPONERTUID.Producto_id=p.ID WHERE id_producto=56;

Y ya ponerlo donde lo imprimes:
Insertar CODE, HTML o PHP:
$yo["pnombre"]
 

hamedm

Gamma
Programador
Verificación en dos pasos desactivada
Desde
7 Ene 2013
Mensajes
193
Tienes que hacer una unión con la tabla de productos, algo como esto:

Insertar CODE, HTML o PHP:
SLECT *, p.nombre AS pnombre FROM platosPONERTUID LEFT JOIN productos p ON  platosPONERTUID.Producto_id=p.ID WHERE id_producto=56;

Y ya ponerlo donde lo imprimes:
Insertar CODE, HTML o PHP:
$yo["pnombre"]
Recuerda que todo es automatico
 

lombervid

Zeta
Verificación en dos pasos desactivada
Desde
29 Abr 2011
Mensajes
1.516
lo copio igual como lo escribiste?

- - - Actualizado - - -



Lo escribo como escribiste?


Pues practicamente si, pero literalmento no, tendrias que adaptar tú consulta que tienes ya en tu codigo para que te quede más o menos como esa.
 
Última edición:

lombervid

Zeta
Verificación en dos pasos desactivada
Desde
29 Abr 2011
Mensajes
1.516
Me explicas como seria??

- - - Actualizado - - -



me explicas como seria?


Exactamente como seria, no te puedo decir, ya que yo no conozco la estructura de tus tablas.

Tienes que hacer una union (como ya te habia comentado), de tu tabla de los platos con la de productos, en la que ambos identificadores sea igual (supongo que han de estar relacionadas).

Sintaxis de JOIN
JOIN
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba