Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/12/2008, 11:23
lesterin
 
Fecha de Ingreso: mayo-2008
Mensajes: 15
Antigüedad: 16 años
Puntos: 0
consulta con variables de hidden y URL

Hola que tal amigos de la web, Tengo una gran duda, estoy haciendo ejercicios para aprender mas PHP, mi meta es crear un carro de compras:

Bueno el codigo del ejercicio es este es este

buscacoches.php

<!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>Untitled Document</title>
</head>

<body>
<ul>
<li><a href="index.php">HOME</a></li>
<li><a href="forminserta.html">Inserta Coche</a></li>
<li><a href="formbusca.html">Busca Coche</a></li>
</ul>
<p align = "center">
<h2>RESULTADO DE LA BÚSQUEDA</h2>
<?php
$host="localhost";
$user="root";
$password = ""; //Poner aquí nuestra contraseña.
$db="racer";
$enlace = mysql_connect($host,$user,$password);
mysql_select_db($db,$enlace);

$consulta = mysql_query("SELECT * FROM carros
WHERE
marca LIKE '$marca' or modelo LIKE '$modelo' or fecha LIKE '$fecha' or precio LIKE '$precio'",$enlace);

while($row = mysql_fetch_array($consulta)){
$id= $row["id"];
$marca= $row["marca"];
$modelo= $row["modelo"];
$fecha= $row["fecha"];
$color = $row["color"];

echo '<table width="100%" border="0">';
echo '<tr>';
echo '<td width="12%"><a href=modificarcoche.php?id='.$id.'>Modificar</a></td>';
echo '<td width ="12%"><a href=borrarcoche.php?id='.$id.'>Borrar</a></td>';
echo '<td width="12%"><a href=catalogo.php?id='.$id.'>Datos</a></td>';
echo '<td width="26%">'.$marca.'</td>';
echo '<td width="26%">'.$modelo.'</td>';
echo '<td width="26%">'.$fecha.'</td>';
echo '<td width="26%">'.$color.'</td>';
echo '</tr>';
echo '</table>';
echo '<hr size = 2 color = ffffff width = 100% align = left>';}
?>
<a href="http://localhost/formbusca.htm">Volver
</body>
</html>



Este este es el resultado de una busqueda teniendo como funcion : modificar(modifica el coche), borrar(borrar cohce), datos (datos del coche). como pueden ver cada una redireccionando a una pag.php. dando como variable en la URL de "id"
Hasta aqui esta bien todo me da, pero si quiero modificar el choche: modificacoche.php:

<!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>Untitled Document</title>
</head>

<body>
<ul>
<li><a href="index.php">HOME</a></li>
<li><a href="forminserta.html">Inserta Coche</a></li>
<li><a href="formbusca.html">Busca Coche</a></li>
</ul>
<p align = "center">
<h1><?php echo $id = $_POST[id]; ?></h1>
<form name="form" action= "modificarcoche2.php" method="post">
<strong><h2>MODIFIQUE LOS DATOS DEL VEHÍCULO.</h2></strong>
<hr size = "8" color = "ffffff" width = "100%" align = "left">
<form name="form" action= "modificarcoche2.php" method="POST">
Seleccione la marca de su vehículo:
<select name="marca">
<option value="alfa romeo">Alfa Romeo </option>
<option value="audi">Audi </option>
<option value="bmw">BMW </option>
<option value="chrysler">Chrysler </option>
<option value="ctroen">Citroen </option>
<option value="daewoo">Daewoo </option>
<option value="fiat">Fiat </option>
<option value="ford">Ford </option>
<option value="honda">Honda </option>
<option value="hyundai">Hyundai </option>
<option value="jeep">Jeep </option>
<option value="kia">Kia </option>
<option value="lancia">Lancia </option>
<option value="lexus">Lexus </option>
<option value="mazda">Mazda </option>
<option value="mercedes">Mercedes </option>
<option value="rnitsubishi">Mitsubishi </option>
<option value="nissan">Nissan </option>
<option value="opel">Opel </option>
<option value="peugeot">Peugeot </option>
<option value="porsche">Porsche </option>
<option value="renault">Renault </option>
<option value="rover">Rover </option>
<option value="scab">Saab </option>
<option value="seat">Seat </option>
<option value="skoda">Skoda </option>
<option value="toyota">Toyota </option>
<option value="volkswagen">Volkswagen </option>
<option value="volvo">Volvo </option>
</select>
<br>
<h5>Indique el modelo:<input name="modelo" type="text" size="45"></h5>
<h5>Indique el color:<input name="color" type="text" size="48"></h5>
<h5>Combustible:
<input name="combustible" type="radio" value="diesel" >Diesel
<input name="combustible" type="radio" value="gasolina" checked>Gasolina
</h5>
<h5>Año de matriculación:<input name="fecha" type="text" size="10"></h5>
<h5>Precio:<input type="text" name="precio" size="10"></h5>
<h5>
<hr size = "4" color = "ffffff" width = "100%" align = "left">
<input type="hidden" name="id" value="<?php $_POST[id] ?>"/>
<input name="Enviar" type="submit" value="Enviar" />
</h5>
</form>
</body>
</html>


Esta es la pagina modificar.php, eh aqui el problema: tengo al principio como orden enseñar la variable id (se supone que me la tendria que dar dado que la mande en la URL) y no me da nada, trato de mandar en esta pag por medio de un hidden la variables id para la base de datos de coches y ir a la siguiente pagina

modificarcoche2.php

<!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>Untitled Document</title>
</head>

<body>
<ul>
<li><a href="index.php">HOME</a></li>
<li><a href="forminserta.html">Inserta Coche</a></li>
<li><a href="formbusca.html">Busca Coche</a></li>
</ul>
<p align = "center">
<h2>DATOS DEL VEHÍCULO MODIFICADOS</h2>
<?
// connect()
function connect() {
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '';
$db_name = 'racer';

$db_connect = mysql_connect($db_host,$db_user,$db_pass);
$db_select = mysql_select_db($db_name,$db_connect);
}
connect();

//Variables
$id = $_POST[id];
$marca = $_POST[marca];
$modelo = $_POST[modelo];
$combustible = $_POST[combustible];
$color = $_POST[marca];
$fecha = $_POST[fecha];
$precio = $_POST[precio];

echo $id;
echo $marca;
echo $modelo;
echo $combustible;
echo $color;
echo $fecha;
echo $precio;


///////////Consuta: Actualizacion de datos de carros
$query = "UPDATE `racer`.`carros`
SET
marca='$marca', modelo ='$modelo', combustible='$combustible', color = '$color', fecha = '$fecha', precio = '$precio'
WHERE
id ='$id'";
mysql_query($query_) or die(mysql_error());
echo 'Se han actualizado los Datos';

?>
<a href="formbusca.html">Volver</a>
Volver
</body>
</html>


en esta pag modificarcoche2.php No sigue mostrando la variable id, ni las otras variables...

Podrian ayudarme. acepto criticas mejoras en el codigo etc..
dudas:
hay alguna manera de ahorrarse el estar declarando las variables que mandas por el metodo post: ejemplo $id = $_POST[id];