Foros del Web » Programando para Internet » PHP »

Problema con insertar en MySQL

Estas en el tema de Problema con insertar en MySQL en el foro de PHP en Foros del Web. Hola muchachos, queria hacerles una consulta, estoy haciendo una web para un video club, la pag la tengo en flash, pero las consultas las hago ...
  #1 (permalink)  
Antiguo 02/04/2008, 10:31
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 1 mes
Puntos: 1
Problema con insertar en MySQL

Hola muchachos, queria hacerles una consulta, estoy haciendo una web para un video club, la pag la tengo en flash, pero las consultas las hago desde PHP a una base de datos MySQL y genero un archivo XML desde PHP para que flash lea correctamente toda la info.

Envio los datos desde el formulario flash para insertar una nueva pelicula, y el archivo PHP donde tengo el script para insertar una peli nueva no hace nada... ni siquiera me devuelve un error.

Haber si alguien me puede ayudar a encontrar el error.

Gracias.

Código PHP:
<?php        // INSERTAR UNA PELICULA
           // tomo los datos enviados por el archivo swf
           
           
$id $_POST['id'];
           
$titulo $_POST['titulo'];
           
$descripcion $_POST['descripcion'];
           
$imagen $_POST['imagen'];
           
$estreno $_POST['estreno'];
           
$genero $_POST['genero'];
           
$total $_POST['total'];
           
$cant_alq $_POST['cant_alq'];


           
$sql"INSERT INTO 'peliculas' (id,titulo,descripcion,imagen,estreno,genero,total,cant_alq) VALUES ('','".$titulo."','".$descripcion."','".$imagen."','".$estreno."','".$genero."','".$total."','".$cant_alq."')";
           
           require(
"config.php");
           
           
$conexmysql_connect($server,$user,$pass);
           
           if (!
$conex$msj_error "No se pudo conectar con la base de datos";
           else {
             
mysql_select_db($db);
             
$resultmysql_query($sql,$conex);
             if (
$result){ //Excepcion del INSERT, comparamos result por si la inserción fue correcta :P
                         
                      
$msj_error "La insercion se ha realizado correctamente";
                      if(!
$fp=fopen("peliculas.xml","w+")) $msj_error="No se ha podido abrir el fichero XML";
                      else {
                           
$sql "SELECT * FROM 'peliculas' ORDER BY 'id'";
                           
resultmysql_query($sql,$conex); 
                           if (!
$resultmsj_error "La insercion fue realizada, pero no se pudo realizar la consulta";
                           else {
                           
/*Escribo la cabecera del xml
                           Véase que \r (retorno de carro) en octal es 015 y \n (nueva linea) en octal es 012*/
                            
fwrite($fp,"<?xml version="1.0" encoding=\"ISO-8859-1\"?>\015\012"))
                            while(
$row=mysql_fetch_array($result))  {
                            
/*estructura del nodo*/
                             
fwrite($fp,"<registro>\015\012
                                          <id>"
.$row[id]."</id>\015\012
                                          <titulo>"
.$row[titulo]."</titulo>\015\012
                                          <descripcion>"
.$row[descripcion]."</descripcion>\015\012
                                               <imagen>"
.$row[imagen]."</imagen>\015\012
                                           <estreno>"
.$row[estreno]."</estreno>\015\012
                                          <genero>"
.$row[genero]."</genero>\015\012
                                          <total>"
.$row[total]."</total>\015\012
                                          <cant_alq>"
.$row[cant_alq]."</cant_alq>\015\012
                                         </registro>\015\012"
);
                            }
                            if(!
fclose($fp)) $msj_error "No se ha podido cerrar el fichero XML"
                           }
                        }       
                                        
                      
                      
             } else  {
                   
$msj_error "No se ha podido insertar el registro";
                            
           }
           
mysql_close($conex);        // cierro la base de datos
           
         
echo "&msj_error=".$msj_error;
           
?>
PD: He probado con formularios comunes en html ( para asegurarme que el problema no era de flash y no funciono)
  #2 (permalink)  
Antiguo 02/04/2008, 11:07
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 5 meses
Puntos: 5
Re: Problema con insertar en MySQL

Creo que tienes algunos errores el php...

línea 30 (te falta el $ de la variable result)
Código PHP:
resultmysql_query($sql,$conex); 
Código PHP:
$resultmysql_query($sql,$conex); 
línea 31 (te falta el $ de la variable msj_error )
Código PHP:
if (!$resultmsj_error "La insercion fue realizada, pero no se pudo realizar la consulta"
Código PHP:
if (!$result$msj_error "La insercion fue realizada, pero no se pudo realizar la consulta"
línea 35 (te sobran y falta cosas, pongo una solución)
Código PHP:
fwrite($fp,"<?xml version="1.0" encoding="ISO-8859-1\"?>\015\012"))
Código:
fwrite($fp,'<?xml version="1.0" encoding="iso-8859-1"?>'."\n");
// no sé que son los caracteres de escape esos \015\012 pero por si acaso
// el problema está en que tienes que escapar las comillas de 1.0
// o usar comillas dobles dentro de simples como arriba
fwrite($fp,"<?xml version = \"1.0\" encoding=\"ISO-8859-1\"?>\015\012");
línea 59(juraría que la última llave que falta por cerrar va aquí pero no sé)

Código PHP:
mysql_close($conex); 
Código PHP:
mysql_close($conex);} 
tampoco sé muy bien, pero al menos así no devuelve ningún error el php.

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 02/04/2008 a las 12:01
  #3 (permalink)  
Antiguo 02/04/2008, 11:17
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 5 meses
Puntos: 5
Re: Problema con insertar en MySQL

De todas formas no es necesario volcar los datos de ls query a un fichero xml directamente, puedes crearte un php que directamente lo construya y lees lo que devuelve el php con un objeto XML de flash, asi te ahorras un paso.

quiero decir algo asi:
Código PHP:
<?=('<?xml version="1.0" encoding="iso-8859-1"?>'."\n")?>
<listado>
<?php        // INSERTAR UNA PELICULA
// tomo los datos enviados por el archivo swf

$id $_POST['id'];
$titulo $_POST['titulo'];
$descripcion $_POST['descripcion'];
$imagen $_POST['imagen'];
$estreno $_POST['estreno'];
$genero $_POST['genero'];
$total $_POST['total'];
$cant_alq $_POST['cant_alq'];


$sql"INSERT INTO 'peliculas' (id,titulo,descripcion,imagen,estreno,genero,total,cant_alq) VALUES ('','".$titulo."','".$descripcion."','".$imagen."','".$estreno."','".$genero."','".$total."','".$cant_alq."')";

require(
"config.php");

$conex= @mysql_connect($server,$user,$pass);

if (!
$conex
    
$msj_error "No se pudo conectar con la base de datos";
else 
{
    
mysql_select_db($db);
    
$resultmysql_query($sql,$conex);
    if (
$result)
    { 
        
//Excepcion del INSERT, comparamos result por si la inserción fue correcta :P
        
$msj_error "La insercion se ha realizado correctamente";
        if(!
$fp=fopen("peliculas.xml","w+")) 
            
$msj_error="No se ha podido abrir el fichero XML";
        else 
        {
            
$sql "SELECT * FROM 'peliculas' ORDER BY 'id'";
            
$resultmysql_query($sql,$conex); 
            if (!
$result)
                
$msj_error "La insercion fue realizada, pero no se pudo realizar la consulta";
            else 
            {
                
/*Escribo la cabecera del xml
                Véase que \r (retorno de carro) en octal es 015 y \n (nueva linea) en octal es 012*/
                
while($row=mysql_fetch_array($result))  
                {
                    
/*estructura del nodo*/
                    
echo ('<registro id="'.$row['id'].'" titulo="'.$row['titulo'].'" descripcion="'.$row['descripcion'].'" imagen="'.$row['imagen'].'" estreno="'.$row['estreno'].'" genero="'.$row['genero'].'" total="'.$row['total'].'" cant_alq="'.$row['cant_alq'].'" />'."\n");

                }
            if(!
fclose($fp)) 
                
$msj_error "No se ha podido cerrar el fichero XML"
            }
        }   
    } 
    else  
    {
    
$msj_error "No se ha podido insertar el registro";
    }

    
mysql_close($conex); 

}
// cierro la base de datos

echo ('<error id="'.$msj_error.'" />'."\n");

?></listado>
La diferencia estaría en que en vez de volcar a un xml los datos de la select es el script php el que devuelve como fichero xml los datos, además de los codigo de error que hubiese en la ultima etiqueta.

no sé si me explico...

Tu entonces desde flash haces un sendAndLoad al script en php y recibes los datos como si los hubieses recibido del fichero que antes creabas...

Pero bueno el proyecto ya lo conoces tu más que yo lo mismo meto la pata.

Un saludo...
__________________
[+]
[+]

Última edición por yoseman; 02/04/2008 a las 11:39
  #4 (permalink)  
Antiguo 03/04/2008, 10:57
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Problema con insertar en MySQL

Muchas gracias muchachos, voy a probar a ver que sale.... gracias nuevamente...
  #5 (permalink)  
Antiguo 05/04/2008, 09:21
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Problema con insertar en MySQL

Hola Yoseman, he probado lo que me mostrastes y no me funciona, asi que para quitar cosas del medio, lo que hice fue armar un formulario en html y un script sencillo de insertar para ver si lo insertaba, obviamente que si estoy escribiendo aca no me funciono... jejejejeje... y no se que puede pasar.

cuando envio las variables la conexion la hace y me aparece el error "No se ha podido insertar el registro".

NO SE QUE ESTA PASANDO... gracias y disculpen las molestias...

PD: los nombres de los campos estan bien, el nombre de la tabla esta bien, el nombre de la base de datos esta bien... alguien puede orientarme de cual puede ser el error?.

Código PHP:
<?php        // INSERTAR UNA PELICULA
           // tomo los datos enviados por el formulario html
           
           
$id $_POST['id'];
           
$titulo $_POST['titulo'];
           
$descripcion $_POST['descripcion'];
           
$imagen $_POST['imagen'];
           
$estreno $_POST['estreno'];
           
$genero $_POST['genero'];
           
$total $_POST['total'];
           
$cant_alq $_POST['cant_alq'];


           
$sql"INSERT INTO 'peliculas' (id,titulo,descripcion,imagen,estreno,genero,total,cant_alq) VALUES ('','".$titulo."','".$descripcion."','".$imagen."','".$estreno."','".$genero."','".$total."','".$cant_alq."')";
           
           require(
"config.php");
           
           
$conexmysql_connect($server,$user,$pass);
           if (!
$conex) echo "No se a podido conectar la base de datos"
           else {
            
mysql_select_db($db);
            if (
mysql_query($sql,$conex))  echo "Se ha insetado correctamente"
            else  echo 
"No se ha podido insertar el registro"
            
mysql_close($conex);        // cierro la base de datos
           

?>
Saludos a todos
  #6 (permalink)  
Antiguo 05/04/2008, 09:39
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Problema con insertar en MySQL

Prueba así tu código:
Código PHP:
<?php   

          
require("config.php"); 
          
$conex mysql_connect($server,$user,$pass); 
          
mysql_select_db($db); 
          if (!
$conex)
          {
               echo 
"No se a podido conectar la base de datos";  
          }
          else 
          {

     
// INSERTAR UNA PELICULA 
           // tomo los datos enviados por el formulario html 
            
           
$id $_POST['id']; 
           
$titulo $_POST['titulo']; 
           
$descripcion $_POST['descripcion']; 
           
$imagen $_POST['imagen']; 
           
$estreno $_POST['estreno']; 
           
$genero $_POST['genero']; 
           
$total $_POST['total']; 
           
$cant_alq $_POST['cant_alq']; 


           
$sql"INSERT INTO peliculas (id,titulo,descripcion,imagen,estreno,genero,total,cant_alq) VALUES ('','$titulo','$descripcion','$imagen','$estreno','$genero','$total','$cant_alq')"
           
$result mysql_query($sql$conex) or die ("Error en query $sql:" .mysql_error() );

           
mysql_close($conex);
         }
?>
Saludos.
  #7 (permalink)  
Antiguo 05/04/2008, 10:12
Avatar de Alesius  
Fecha de Ingreso: marzo-2008
Mensajes: 87
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: Problema con insertar en MySQL

Gracias Carlojas... ahora me funciona... pero no se porque no funcionaba antes...
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 11:46.