Ayuda con código PHP/MySQL porfavor...

#1
Ayuda con código PHP/MySQL. RESUELTO

Estoy realizando un sitio tipo CMS, tengo el diseño maquetado y listo, empecé con la programación, en mi panel de control tengo las opciones para insertar, modificar, consultar, eliminar, hasta aqui nada nuevo para ustedes, ahora, tengo un archivo en específico donde deseo meter toda la programación en PHP (al menos la mayoría) estructurada en funciones que deseo mandar llamar desde los archivos del panel de control, el problema es el siguiente, en mi archivo "insertar.php" tengo un formulario, la recuperación de variables y la llamada a la funcion "fx_insertarRegistro();" que se encuentra dentro del archivo general de funciones php, envío las variables recuperadas del formulario como parámetros

HTML:
 <br><input type="submit" value="Insertar registro" />

</form>


PHP:
<?php

//  Recuperar información del vehiculo

$marca = $_GET['marca'];
$linea = $_GET['linea'];
$modelo = $_GET['modelo'];
$kilometraje = $_GET['kilometraje'];
$precio = $_GET['precio'];
$descripcion = $_GET['descripcion'];
$estado = $_GET['estado'];

//  Recuperar información del vendedor

$nombre_ap = $_GET['nombre_ap'];
$telefono = $_GET['telefono'];
$agencia = $_GET['agencia'];



fx_insertarRegistro($marca,$linea,$modelo,$kilometraje,$precio,$descripcion,$estado,$nombre_ap,$telefono,$agencia);
en mi archivo de funciones, recibo todas los parámetros correctamente (en la construcción de la función)

PHP:
function fx_insertarRegistro($marcaAuto, $lineaAuto, $modeloAuto, $kilometrajeAuto, $precioAuto, $descripcionAuto, $estadoAnuncio, $nombreVendedor, $telefonoVendedor, $agenciaBin){
dentro de la misma función empleo otra para realizar la conexión a la base de datos y trabajar con ella

PHP:
function fx_insertarRegistro($marcaAuto, $lineaAuto, $modeloAuto, $kilometrajeAuto, $precioAuto, $descripcionAuto, $estadoAnuncio, $nombreVendedor, $telefonoVendedor, $agenciaBin){

fx_conexion();
pero el problema surge en que después de esto, si deseo insertar la información de los parámetros recibidos en la base de datos, no lo hace

PHP:
function fx_insertarRegistro($marcaAuto, $lineaAuto, $modeloAuto, $kilometrajeAuto, $precioAuto, $descripcionAuto, $estadoAnuncio, $nombreVendedor, $telefonoVendedor, $agenciaBin){

fx_conexion();

mysql_query("INSERT INTO marcas (marca)VALUES('".$marcaAuto".')");
de hecho utilice un echo para verificar k los parámetros se están recibiendo y funcionó bien

PHP:
function fx_insertarRegistro($marcaAuto, $lineaAuto, $modeloAuto, $kilometrajeAuto, $precioAuto, $descripcionAuto, $estadoAnuncio, $nombreVendedor, $telefonoVendedor, $agenciaBin){

fx_conexion();

echo $marcaAuto;

mysql_query("INSERT INTO marcas (marca)VALUES('".$marcaAuto".')");
y también probé con cambiar la variable dentro del query por un string (solo de ejemplo) para ver si asi funcionaba y aún asi no realiza la inserción del nuevo record

PHP:
mysql_query("INSERT INTO marcas (marca)VALUES('FORD')");
alguien que pueda ayudarme?
 

RyukInside

Bovino maduro
#2
Por favor coloca el código de la función fx_conexion() y la estructura de la tabla "marcas" para poderte ayudar mejor.

Te recomiendo filtrar las entradas a tu sistema, veo que coges datos de la URL y los insertas directamente a la consulta, eso deja a tu sistema altamente vulnerable.

Saludos.
 
#3
RyukInside

De hecho la conexión se realiza correctamente, esta es la función

PHP:
function fx_conexion(){
	
	$conexion = mysql_connect("localhost","root","contraseña");
	
	if(!$conexion){
		die("No se ha podido establecer la conexión con la base de datos!". mysql_error());
	}else{
		echo "La conexi&oacute;n al servidor gestor de bases de datos se ha realizodo exitosamente!";
	}
	
	mysql_select_db("base_de_datos",$conexion);
	
}
como vez, compruebo que la conexión se haya realizado, y lo de la vulnerabilidad, de hecho las variables las estaba recuperando con el método POST, pero lo cambié solamente para saber si ese era el error y ver directamente en la URL si se estaban pasando

la estructura de la tabla donde kiero insertar es muy simple, como vez solo es un campo, y la tabla consta de dos solamente

tabla: marcas
campo1: marcaID - Autoincrementable - Llave primaria - Int(11) - No Nulo
campo2: marca - TYNYTEXT - No Nulo

Es para un clasificado de autos y en esta tabla quiero guardar las marcas de los mismos (Ford, Chevrolet, Jeep, etc.)
 
#5
No es necesario cerrar la conexión ya que php la cierra al terminar la ejecución del script, pero si gustas colócala, aunque no tiene nada que ver con tu error.

Te hago algunas recomendaciones:
1.- Por seguridad, cambia el método de tu formulario a post
Ejemplo:
<input type="submit" value="Insertar registro" method="post"/>
y recíbelos en PHP con $_POST['nombredecampo']

2.- Utiliza la extensión mysqli o PDO
checa en esta página el porqué:
Código:
http://otroblogmas.com/diferencias-entre-mysql-mysqli-pdo-php/
3.- Para saber si la consulta está devolviendo error utiliza
la función mysql_error

Código:
http://php.net/manual/es/function.mysql-error.php
o utiliza una llamada a error_reporting (E_ALL) para que php te muestre todos
los mensajes de error

lo más seguro es que en tu tabla hayas definido los campos como no nulos, y si no envías los valores la consulta falla, a menos de que establezcas un valor por default.

Espero esto te ayude. saludos.
 
Arriba