sábado, 26 de noviembre de 2011

clase PHP para insertar, borrar y actualizar una tabla mysql

<?

//*****************************
class sql
{

    //###################################### devuelve valor de vector
    function devuelveposicion($vector,$abuscar)
    {
        $encotrado = false;

        for ($i=0;$i<count($vector);$i++)
        {
            if ($vector[$i]==$abuscar)
            {
                return $i;
            }
        }

        return -1;
    }


    //###################################### elimina espacios en blanco delante y detras de una cadena
    function eliminaEspaciosEnBlancoDelanteYDetras($cadena)
    {

        $cadena = ltrim($cadena);
        $cadena = rtrim($cadena);

        return $cadena;
    }



    //###################################### insertar
    function insert($nombd,$campos,$valores)
    {

        //**** guarda los tipos de los atributos y su nombre
        $query = "select * from ".$nombd;
        $result = mysql_query($query) or die(mysql_error());

        //**** numero de campos de la tabla
        $fields = mysql_num_fields($result);

        for ($i=0;$i<$fields;$i++)
        {
            $nombre[$i] = mysql_field_name($result,$i);
            $tipo[$i] = mysql_field_type($result,$i);
        }

        for ($i=0;$i<$fields;$i++)
        {
            $valores[$i]= $this->eliminaEspaciosEnBlancoDelanteYDetras($valores[$i]);
        }


        //**** crea la query
        $query = "INSERT into ".$nombd." (";

        for ($i=0;$i<count($campos);$i++)
        {
            if ($i!=count($campos)-1)
                $query = $query." `".$campos[$i]."`, ";
            else
                $query = $query." `".$campos[$i]."` ";
        }

        $query = $query." ) values (";

        for ($i=0;$i<count($campos);$i++)
        {
            $j = $this->devuelveposicion($nombre,$campos[$i]);

            if (($tipo[$j]=="string") || ($tipo[$j]=="date") || ($tipo[$j]=="blob"))
                $comillas="'";
            else
                $comillas="";


            if ($i!=count($campos)-1)
                $query = $query." ".$comillas.$valores[$i].$comillas.", ";
            else
                $query = $query." ".$comillas.$valores[$i].$comillas." ";
        }

        $query = $query." )";

        //**** ejecuta la query
        return $result = mysql_query($query) or die(mysql_error());
    }



    //###################################### update
    function update($nombd,$campos,$valores,$condicion,$vcondicion,$condicion2,$vcondicion2)
    {

        //**** guarda los tipos de los atributos y su nombre
        $query = "select * from ".$nombd;
        $result = mysql_query($query) or die(mysql_error());

        //**** numero de campos de la tabla
        $fields = mysql_num_fields($result);

        for ($i=0;$i<$fields;$i++)
        {
            $nombre[$i] = mysql_field_name($result,$i);
            $tipo[$i] = mysql_field_type($result,$i);
        }

        for ($i=0;$i<$fields;$i++)
        {
            $valores[$i]= $this->eliminaEspaciosEnBlancoDelanteYDetras($valores[$i]);
        }


        //**** crea la query
        $query = "UPDATE ".$nombd." set ";

        for ($i=0;$i<count($campos);$i++)
        {
            $query = $query." `".$campos[$i]."` = ";

            $j = $this->devuelveposicion($nombre,$campos[$i]);

            if (($tipo[$j]=="string") || ($tipo[$j]=="date") || ($tipo[$j]=="blob"))
                $comillas="'";
            else
                $comillas="";

            if ($i!=count($campos)-1)
                $query = $query." ".$comillas.$valores[$i].$comillas.", ";
            else
                $query = $query." ".$comillas.$valores[$i].$comillas." ";
        }


        //*** condicion

        $j = $this->devuelveposicion($nombre,$condicion);

        if (($tipo[$j]=="string") || ($tipo[$j]=="date") || ($tipo[$j]=="blob"))
            $comillas="'";
        else
            $comillas="";

        $query = $query." where ".$condicion." = ".$comillas.$vcondicion.$comillas;

        //*** si hay otra condicion

        if ($condicion2!='')
        {
            $j = $this->devuelveposicion($nombre,$condicion2);

            if (($tipo[$j]=="string") || ($tipo[$j]=="date") || ($tipo[$j]=="blob"))
                $comillas="'";
            else
                $comillas="";

            $query = $query." and ".$condicion2." = ".$comillas.$vcondicion2.$comillas;
        }    


        //**** ejecuta la query
        return $result = mysql_query($query) or die(mysql_error());
    }


    //###################################### delete
    function delete($nombd,$campos,$valores)
    {

        //**** guarda los tipos de los atributos y su nombre
        $query = "select * from ".$nombd;
        $result = mysql_query($query) or die(mysql_error());

        //**** numero de campos de la tabla
        $fields = mysql_num_fields($result);

        for ($i=0;$i<$fields;$i++)
        {
            $nombre[$i] = mysql_field_name($result,$i);
            $tipo[$i] = mysql_field_type($result,$i);
        }

        //**** crea la query
        $query = "DELETE from ".$nombd." where ";

        for ($i=0;$i<count($campos);$i++)
        {
            $query = $query." `".$campos[$i]."` = ";

            $j = $this->devuelveposicion($nombre,$campos[$i]);

            if (($tipo[$j]=="string") || ($tipo[$j]=="date") || ($tipo[$j]=="blob"))
                $comillas="'";
            else
                $comillas="";

            if ($i!=count($campos)-1)
                $query = $query." ".$comillas.$valores[$i].$comillas.", ";
            else
                $query = $query." ".$comillas.$valores[$i].$comillas." ";

        }


        //**** ejecuta la query
        return $result = mysql_query($query) or die(mysql_error());
    }

}
?>

2 comentarios:

Anónimo dijo...

I do not know if it's just me or if everybody else experiencing problems with your site. It looks like some of the text in your posts are running off the screen. Can somebody else please comment and let me know if this is happening to them as well? This may be a problem with my web browser because I've
had this happen before. Thank you

Review my web-site; http://www.youtube.com/watch?v=VMJkb-bhjiI

Anónimo dijo...

Please let me know if you're looking for a article writer for your site. You have some really great posts and I think I would be a good asset. If you ever want to take some of the load off, I'd really
like to write some content for your blog in exchange for a link back to mine.
Please send me an e-mail if interested. Cheers!

Here is my page; http://www.youtube.com/watch?v=MN36K29q7_Q