Error en al insertar

Iniciado por jagltoro, 6 Abril 2012, 19:05 PM

0 Miembros y 1 Visitante están viendo este tema.

jagltoro

Les voy a explicar mi problema lo mas detallado posible:

tengo una instruccion:
Citar$query="insert into libro (foto,titulo,descripcion,id_categoria,archivo) values ('$des_2','$nom','$des','$cat','$des_1')";

Cuando le doy el echo me muestra bien:
Citarinsert into libro (foto,titulo,descripcion,id_categoria,archivo) values ('foto.png,'Titulo','Descripcion','1','documento.pdf)

[No pongo los valores reales porq no son importantes, si me muestra lo que le mando]

el detalle esta en cuando ejecuto mysql_query($query) or die (mysq_error()); no me da nada, he intentado incluso mysql_query($query,$link) or die (mysq_error()); y lo mismo
El archivo de conexion a la base de datos esta bien porque lo utilizo en otros formularios y si me ingresa correctamente, el detalle es con este.

Al principio lo tenia directo
Citarmysql_query("insert into libro (foto,titulo,descripcion,id_categoria,archivo) values ('$des_2','$nom','$des','$cat','$des_1')")
lo cambie por:
Citarmysql_query("insert into libro (foto,titulo,descripcion,id_categoria,archivo) values ('$des_2','$nom','$des','$cat','$des_1')",$link)

le puse el ';' despues de las comillas dobles y aun nada

no se que mas pueda hacer, ah un amigo me dijo que lo pusiera asi:
Citar"insert into libro (foto,titulo,descripcion,id_categoria,archivo) values ('".$des_2."','".$nom."','".$des."','".$cat."','".$des_1."')";

Y aun nada

Detalles:
SO: Ubuntu 11.10
PHP: 5.3.6-13ubuntu3.6
MySQL: 5.1.61

Runex

Código (sql) [Seleccionar]

mysql_query("insert into libro(foto,titulo,descripcion,id_categoria,archivo) values($des_2,$nom,$des,$cat,$des_1)",$link);


Si las variables las has declarado tu en el mismo archivo, con esto te debería funcionar, además mira si el orden en el que insertas las variables es el correcto.

Si en vez de ser declaradas son recibidas mediante un formulario de otra página, ya sabes que debes usar las variables $_REQUEST[],$_POST[] o $_GET[].

Si con ésto no te funciona avisalo y te busco otras posibles soluciones :)

Un saludo :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

jagltoro

el formulario:


<legend>Ingresar nuevo libro</legend>
     <form action="ingresos/libros.php" method="POST" enctype="multipart/form-data">
      <table class="nostyle">
              <input type="hidden" name="action" value="nuevo"/>
                <tr>
        <td style="width:70px;">Foto: </td>
<td><input type="file" name="foto" class="input-text"/></td>
</tr>
                <tr>
<td style="width:70px;">Titulo: </td>
<td><input type="text" name="titulo" class="input-text"/></td>
</tr>
                <tr>
<td style="width:70px;">Descripcion: </td>
                        <td><textarea name="descripcion" cols="50" rows="10"></textarea></td>
</tr>
                <tr>
<td style="width:70px;">Categoria: </td>
<td>
                        <select name="categoria">
                        <option value="">------------</option>
                        <?php
                                 
include('conect.php');
                                 
$link=Conectarse();
                                 
$query mysql_query("SELECT * FROM categoria");
                                 while (
$row mysql_fetch_array($query)) 
                                 { 
?>

                                      <option value="<?php echo $row['id']; ?>"><?php echo $row['descripcion']; ?></option>
                                <?php ?>
                       </select>
                       </td>
</tr>
                <tr>
                        <td style="width:70px;">Autor(es): </td>
                        <td><input name="btnCreate" type="button" value="+" onClick="javascript:fncCreateElement();">
                               <input name="btnDelete" type="button" value="-" onclick="javascript:fncDeleteElement();"><br>
                               <div id="autores"></div>
                               <input name="conteo" id="hdnLine" type="hidden" value="0">
                        </td>
                 </tr>
                 <tr>
                        <td style="width:70px;">Archivo: </td>
                        <td>
                        <input type="file" name="archivo" class="input-text"/>
                         </td>
                 </tr>
<tr>
                <td colspan="2" class="t-right"><input type="submit" class="input-submit" value="Nuevo" /></td>
</tr>
</table>
</form>


y el php

<?php include('../conect.php');
       
$link=Conectarse();
       
$action=$_POST['action'];
       
$id=$_POST['id'];
       
       
$foto=strtolower($_FILES['foto']['name']);
       
$nom=$_POST['nombre'];
       
$des=$_POST['descripcion'];
       
$arc=$_FILES['archivo']['name'];
       
$cat=(int)$_POST['categoria'];
       
$i=$_POST['conteo'];
       for(
$j=0;$j<=$i;$j++)
       {
           
$id_aut[$j]=$_POST['autor'.$j];
       }
       
$pref=substr(md5(uniqid(rand())),0,15);
       
$trozos=explode(".",$arc);
       
$ext_arc=end($trozos);
       
$trozos=explode(".",$foto);
       
$ext_foto=end($trozos);
       
$des_arc="uploads/".$pref.".".$ext_arc;
       
$des_foto="uploads/".$pref.".".$ext_foto;
       
$des_1="modulos/ingresos/".$des_arc;
       
$des_2="modulos/ingresos/".$des_foto;
       
$query="insert into `libro` (foto,titulo,descripcion,id_categoria,archivo) values ('".$des_2."','".$nom."','".$des."',$cat,'".$des_1."')";
                   
       if(
$action=='nuevo')
       {
           if (
$arc!= ""
            {
                    
// guardamos el archivo a la carpeta files
                    
                    
if (copy($_FILES['archivo']['tmp_name'],$des_arc) and copy($_FILES['foto']['tmp_name'],$des_foto)) 
                    {
                        include(
'../conect.php');
                        
$link=Conectarse();
                        
mysql_query($query);
                        
$idmysql_insert_id($link);
                        for(
$j=0;$j<=$i;$j++)
                        {
                            
mysql_query("insert into autor_a_libro values ('$id','$id_aut[$j]')",$link);
                        }
                    }
            }
           
           echo 
"<script>location.href='../libros.php?do=nuevo'</script>";
       } 
?>


Runex

Has probado lo que te he dicho antes?

Código (sql) [Seleccionar]
  $query="insert into libro(foto,titulo,descripcion,id_categoria,archivo) values($des_2,$nom,$des,$cat,$des_1)";

Y acuérdate de usar addslashes() para eliminar la posibilidad de magic quotes :)

Un saludo :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

jagltoro

Solucione el error rehaciendo todo el codigo, muchas gracias por la ayuda, sin embargo sigo sin entender que paso, porque las instrucciones son identicas a las que tenia, solo movi un poquito y cambie algunos nombres de variables, sin embargo en teoria es lo mismo.

Ah por cierto Runex, el comando que me diste no funciono, daba un error Unknown field, si no me equivoco

:ohk<any>

Que extraño, podria preguntar que hace esta funcion?

Código (php) [Seleccionar]
$link=Conectarse();

Porque es una funcion que la envias sin parámetros, quiza puede ser eso, como tambien no :xD

Pero como ya lo solucionaste no hay problema.
Y es que a veces pienso que si no estuviera loco no podría salir adelante.
Lo que no se es capaz de dar, en realidad no se posee, uno es poseído por ello.

jagltoro

La funcion $link=Conectarse();

viene del conect.php

function Conectarse()
{
     $db_host="****";
     $db_nombre="****";
     $db_user="****";
     $db_pass="*****";

     $link=mysql_connect($db_host,$db_user,$db_pass) or die ("error");
     mysq_select_db($db_nombre,$link);
     
     return $link;
}