Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2009, 05:30
snoz
 
Fecha de Ingreso: abril-2008
Mensajes: 43
Antigüedad: 16 años, 1 mes
Puntos: 3
Dudas consulta MySQL

Bueno, hace un tiempo tuve el mismo problema, pero se "solucionó", esta vez no. Este es el código que me produce el problema (lo pongo todo como si estuviera en el mismo fichero, en realidad las funciones están repartidas en distintos ficheros):

Código PHP:
<?php

// Esta función ejecuta la consulta SQL
function query($query)
{
    
    
$link mysql_connect('localhost','user','pass');
    
mysql_select_db('db'$link);
    
    
mysql_query("SET NAMES utf8");
    
mysql_query("SET CHARACTER_SET utf8");
    
    
$query mysql_query($query$link) or die("DB error: ".mysql_error());
    
    return 
$query;
    
    
mysql_close($link);
}

// Esta función es la encargada de purgar las variables antes de entrarlas en la DB.
function escape($string)
{
    
$link mysql_connect('localhost','user','pass');
    
mysql_select_db('db'$link);
    
    
mysql_query("SET NAMES utf8");
    
mysql_query("SET CHARACTER_SET utf8");
    
    
$string mysql_real_escape_string($string);
    
    return 
$string;
    
    
mysql_close($link);    
}

// Esta es la función que se encarga de realizar el proceso para insertar la categoría en la base de datos.
function add_category($cat_name)
{
    
$cat_name escape($cat_name);
    
$cat "INSERT INTO categorias (category_name) VALUES ('".$cat_name."');";
    
query($cat);
    
?>
    <div class="done">
        Completado
    </div>
    <?php
}

// Este es un fragmento de código del formulario, si lo pegara todo sería muy extenso.
?>
<form method="post" action="test.php">
    <div class="new_cat">                
        Añadir categoria: <input type="text" name="category_name" size="30" maxlength="64" /> <input type="submit" value="añadir" />
    </div>
    <?php
    
if (!empty($_POST["category_name"]))
    {
        
add_category($_POST["category_name"]);
    }
    
?>
</form>
Al cargar esta página en el navegador, ha de mostrar un campo para introducir texto y un botón, al escribir algo y pulsar el botón, debería insertar una fila nueva en la base de datos con el valor que se ha introducido en el campo de texto.
El problema, es que se inserta dos veces el mismo código y, lo peor de todo es que una vez insertado, cuando abandono la página, inserta una tercera línea con el mismo texto.

¿Qué estoy haciendo mal?

Saludos y muchas gracias