Foros del Web » Programando para Internet » PHP »

[AYUDA]Añadir datos a MySQL - pregunta de novato

Estas en el tema de [AYUDA]Añadir datos a MySQL - pregunta de novato en el foro de PHP en Foros del Web. Buenas a todos, bien estoy con un problema interesante, estoy tratando de añadir unos datos a mysql y sinceramente cuadno miro el codigo, creo que ...
  #1 (permalink)  
Antiguo 02/03/2009, 15:19
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta [AYUDA]Añadir datos a MySQL - pregunta de novato

Buenas a todos, bien estoy con un problema interesante, estoy tratando de añadir unos datos a mysql y sinceramente cuadno miro el codigo, creo que tengo todo bien, pero al intentar hacerlo funcionar no anda entonces... supongo que algo anda mal y por mi ignorancia no lo encuentro.

Bien empiezo a explicarles, primero que nada tengo el formulario y la funcion para añadir en el archivo func_admin.php de la siguiente manera:

Código:
<?

require_once "func_db.php";

function form_categoria()
{
?>
<form action="result_categoria.php" method="post">
Nombre de la Catetoría:<br />
<input type="text" size="36" maxlength="36" name="categoria" /><br />
<input type="submit" value="Añadir Categoría" />
</form>
<?
}

function nueva_categoria($categoria)
{

	$conn = conecta_db();
	if (!$conn)
		return "No se pudo conectar con el servidor de la base de datos, por favor intentelo más tarde";
		
		//COMPROBAR SI EL NOMBRE DE LA CATEGORIA NO ESTA UTILIZADO
		$result = mysql_query("select * from categorias where catname='$categoria'");
		
		if (!$result)
			return "No se pudo ejecutar la petición";
		if (mysql_num_rows($result)>0)
			return "Ese nombre de usuario ya está ocupado - Intentalo nuevamente y elige otro.";
			
		//SI LAS COMPROBACIONES FUERON CORRECTAS AGREGAR CATEGORIA A LA BASE DE DATOS
		
		$result = mysql_query("INSERT INTO categorias (catname)
								VALUES ('$categoria')");
								
								
		
		if (!$result)
			return "No se pudo completar el registro - por favor inténtalo más tarde.";
		return true;
		
		cierra_db();
}

?>
bien las funciones de conectar a la base de datos y cerrar la base de datos estan en el archivo func_db.php

Código:
<?php
function conecta_db()
{
	$result = mysql_pconnect("localhost", "root", "xxxxxx");
	if(!$result)
		return false;

	mysql_select_db("brightsystems");
		
	return $result;
}

function cierra_db()
{
	mysql_close();
}
?>

Bien ahora tengo el archivo insert_categoria.php que contiene el codigo html, y entre el el formulario form_categoria() el cual muestra correctamente y funciona correctamente tambien, el problema surge cuando envia el dato a result_categoria.php

donde solo me aparece el codigo html y donde debiera aparecer el resultado queda en blanco

este es el archivo result_categoria.php
Código:
<?

// incluye archivos de funciones para esta aplicación
require_once("requires.php");

$categoria=$_POST['categoria'];

$categoria= addslashes($categoria);

head();
//ESTO ES SIMPLEMENTE PARA PROBAR SI RECIBE LA VARIABLE
echo $categoria."<br /><br />";

//FUNCION PARA AGREGAR LA NUEVA CATEGORIA
nueva_categoria($categoria);

footer();

?>
el archivo requires.php es el siguiente
Código:
<?php
require_once 'func_salida.php';
require_once 'func_admin.php';
require_once 'valid_datos.php';
?>>
Creo que con eso es suficiente apra que me digan lo que estoy haciendo mal

Espero que me puedan ayudar, desde ya muchas gracias
y nuevamente disculpas por mi ignorancia.

Última edición por matiD; 02/03/2009 a las 15:46
  #2 (permalink)  
Antiguo 02/03/2009, 15:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: [AYUDA]Añadir datos a MySQL - pregunta de novato

por favor, activa el reporte de errores...

Código PHP:
error_reporting(E_ALL);
ini_set('display_errors'true); 
y también, cuando hagas una consulta de SQL
Código PHP:
mysql_query(/* ... */) or die(mysql_error()); 
y por cierto, no sera este el error??
Código:
if (!result)
demás, el return "mensaje de error"; no te va a servir si no lo imprimes...
Código PHP:
echo nueva_categoria($categoria); 
que de por si, debería devolver false ya que una cadena se tomaría como true, en fin... esta mal diseñado este comportamiento!

si la función solo devuelve true/false
Código PHP:
if (agregar_categoria($categoria))
{
  echo 
"se agrego la categoria: $categoria";
}
else
{
  echo 
'hubo un error';

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/03/2009, 15:48
 
Fecha de Ingreso: octubre-2008
Mensajes: 85
Antigüedad: 16 años, 1 mes
Puntos: 0
ok ahora le hago unos retoques y muestro como lo deje.

bien ya se soluciono parece que el problema residia en que !result, estaba mal era una variable necesitaba añadirle el $, un error de despistado nomas.

Muchas gracias pateke

Última edición por GatorV; 02/03/2009 a las 16:02
  #4 (permalink)  
Antiguo 02/03/2009, 21:43
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 17 años
Puntos: 18
Respuesta: [AYUDA]Añadir datos a MySQL - pregunta de novato

un aporte más, deberías de uniformizar en el uso de los tags php, lo recoemndable es usar el tag completo <?php ?>

a partir de php 5.2 declara la función error_reporting asi

error_reporting(E_ALL | E_STRICT);

y a partir de php 5.3 hay un nuevo tipo de error que es E_DEPRECATED, que te devuelve errores sobre funciones obsoletas como ereg*,split,etc, que por cierto en php 6 no estarán disponibles las que son obsoletas en php 5.3 entonces quedaría así.

error_reporting(E_ALL | E_STRICT |E_DEPRECATED);

suerte.




ha
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:08.