Consulta mysql
Hola de nuevo. Hace algunas semanas te hice una pregunta sobre sql y siguiendo tus indicaciones he creado el fichero php, pero me da el siguiente error: parse error, expecting `','' or `')'' in C:\wamp\www\prueba\filtro.php on line 35. Te incluyo el código por si pudieras echarme una mano. Al final he incluido una tabla para que me muestre los datos ¿crees qué es correcta?. Gracias.
<html>
<head>
<title>Automóviles encontrados</title>
</head>
<body>
<?php
$Matricula= $_POST["Matricula"];
$Marca= $_POST["Marca"];
$Modelo= $_POST["Modelo"];
$Precio= $_POST["Precio"];
$conexion = mysql_connect("localhost","root","") or die ("no se pudo conectar con la base de datos");
$db = mysql_select_db("trabajo", $conexion) or die ("no se pudo conectar a trabajo");
$consulta = "INSERT INTO vehiculos (Matricula, Marca, Modelo, Precio) VALUES ('$Matricula','$Marca','$Modelo','$Precio')";
$resultado = mysql_query($consulta) or die ("No se pudo agregar el registro");
echo "Nuevo automóvil agregado a la base de datos<br>";
$conexion = mysql_connect("localhost","root","") or die ("no se pudo conectar con la base de datos");
$db = mysql_select_db("trabajo", $conexion) or die ("no se pudo conectar a trabajo");
$sql_query="SELECT * FROM 'vehiculos' WHERE ";
//tablaaaa es tu tabla y en $sql_query está la primera parte de la sentencia. (lo que no cambia)//
$where_query="#";
//lo uso para quitar luego el primer AND sobrante //
$where_query .= (isset($_POST[Matricula]) && $_POST[Matricula] != "")?" AND `Matricula`= '$_POST[Matricula]'":"";
/*Si el filtro1 tiene un valor, añade "AND `campo1` = '$_GET[filtro1]'" a la where_query (el $_GET[filtro1] lo puedes sustituir por $_POST[filtro1] y otras cosas, que es uno de los filtros (puede ser por ejemplo nombre, apellido, correo, etc...)*/
$where_query .= (isset($_POST[Marca] && $_POST[Marca] != "")?", `Marca` = $_POST[Marca]":""; //E R R O R E N E S T A L I N E A//
$where_query .= (isset($_POST[Modelo] && $_POST[Modelo] != "")?", `Modelo` = $_POST[Modelo]":"";
$where_query .= (isset($_POST[Precio] && $_POST[Precio] != "")?", `Precio` = $_POST[Precio]":"";
$sql_query .= str_replace("# AND", "", $where_query);
/*Si todos los filtros se cumplieron, where_query tiene la forma -> # AND `campo1` = hola AND `campo2` = adios <- con lo que hay que quitar el primer AND (Y para eso estaba el # del principio, para localizarlo. Y lo que salga, se le concatena al principio de sql_query y ya tenemos la sentencia lista*/
$final=mysql_query($sql_query);
echo "
<table border = '1'>
\n";
echo "
<tr>
\n";
echo "
<td><b>Matricula</b></td>
\n";
echo "
<td><b>Marca</b></td>
\n";
echo "
<td><b>Modelo</b></td>
\n";
echo "
<td><b>Precio</b></td>
\n";
echo "
</tr>
\n";
while ($row = mysql_fetch_row($final)){
echo "
<tr>
\n";
echo "
<td>$row[Matricula]</td>
\n";
echo "
<td>$row[Marca]</td>
\n";
echo "
<td>$row[Modelo]</td>
\n";
echo "
<td>$row[Precio]</td>
\n";
echo "
</tr>
\n";
}
echo "
</table>
\n";
mysql_close($conexion);
?>
</body>
</html>
Si prefieres los ficheros, te los envío. Gracias de nuevo.
<html>
<head>
<title>Automóviles encontrados</title>
</head>
<body>
<?php
$Matricula= $_POST["Matricula"];
$Marca= $_POST["Marca"];
$Modelo= $_POST["Modelo"];
$Precio= $_POST["Precio"];
$conexion = mysql_connect("localhost","root","") or die ("no se pudo conectar con la base de datos");
$db = mysql_select_db("trabajo", $conexion) or die ("no se pudo conectar a trabajo");
$consulta = "INSERT INTO vehiculos (Matricula, Marca, Modelo, Precio) VALUES ('$Matricula','$Marca','$Modelo','$Precio')";
$resultado = mysql_query($consulta) or die ("No se pudo agregar el registro");
echo "Nuevo automóvil agregado a la base de datos<br>";
$conexion = mysql_connect("localhost","root","") or die ("no se pudo conectar con la base de datos");
$db = mysql_select_db("trabajo", $conexion) or die ("no se pudo conectar a trabajo");
$sql_query="SELECT * FROM 'vehiculos' WHERE ";
//tablaaaa es tu tabla y en $sql_query está la primera parte de la sentencia. (lo que no cambia)//
$where_query="#";
//lo uso para quitar luego el primer AND sobrante //
$where_query .= (isset($_POST[Matricula]) && $_POST[Matricula] != "")?" AND `Matricula`= '$_POST[Matricula]'":"";
/*Si el filtro1 tiene un valor, añade "AND `campo1` = '$_GET[filtro1]'" a la where_query (el $_GET[filtro1] lo puedes sustituir por $_POST[filtro1] y otras cosas, que es uno de los filtros (puede ser por ejemplo nombre, apellido, correo, etc...)*/
$where_query .= (isset($_POST[Marca] && $_POST[Marca] != "")?", `Marca` = $_POST[Marca]":""; //E R R O R E N E S T A L I N E A//
$where_query .= (isset($_POST[Modelo] && $_POST[Modelo] != "")?", `Modelo` = $_POST[Modelo]":"";
$where_query .= (isset($_POST[Precio] && $_POST[Precio] != "")?", `Precio` = $_POST[Precio]":"";
$sql_query .= str_replace("# AND", "", $where_query);
/*Si todos los filtros se cumplieron, where_query tiene la forma -> # AND `campo1` = hola AND `campo2` = adios <- con lo que hay que quitar el primer AND (Y para eso estaba el # del principio, para localizarlo. Y lo que salga, se le concatena al principio de sql_query y ya tenemos la sentencia lista*/
$final=mysql_query($sql_query);
echo "
<table border = '1'>
\n";
echo "
<tr>
\n";
echo "
<td><b>Matricula</b></td>
\n";
echo "
<td><b>Marca</b></td>
\n";
echo "
<td><b>Modelo</b></td>
\n";
echo "
<td><b>Precio</b></td>
\n";
echo "
</tr>
\n";
while ($row = mysql_fetch_row($final)){
echo "
<tr>
\n";
echo "
<td>$row[Matricula]</td>
\n";
echo "
<td>$row[Marca]</td>
\n";
echo "
<td>$row[Modelo]</td>
\n";
echo "
<td>$row[Precio]</td>
\n";
echo "
</tr>
\n";
}
echo "
</table>
\n";
mysql_close($conexion);
?>
</body>
</html>
Si prefieres los ficheros, te los envío. Gracias de nuevo.
1 respuesta
Respuesta de sealva
1