Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - jagltoro

#1
Bases de Datos / Consulta a Entidades Debiles
14 Abril 2012, 17:38 PM
Tratare de explicar completo que es lo que quiero:

Tengo 4 tablas enlazadas entre si con las foregein key.
En la 1ra tabla [Libro] (id, titulo, descripcion, id_categoria)
En la 2da tabla [Categoria] (id, categoria)
En la 3ra tabla [Autor_Libro] (id_autor,id_libro)
En la 4ta tabla [Autor] (id, nombre, apellido)

Entonces haciendo un query normal con Inner Join me arroja los resultados pero mas o menos asi:







IDTituloDescripcionCategoriaAutor
1El libro08/04/2012ComediaJuan
1El libro08/04/2012ComediaPedro
1El libro08/04/2012ComediaMaria
2El libro208/04/2012ComediaPedro
2El libro208/04/2012ComediaMaria

Si a la consulta le pongo un GROUP BY libro.id





IDTituloDescripcionCategoriaAutor
1El libro08/04/2012ComediaJuan
2El libro208/04/2012ComediaMaria

Lo que quiero es alguna forma de agrupar los autores por el libro, osea que me muestre asi





IDTituloDescripcionCategoriaAutor
1El libro08/04/2012ComediaJuan, Pedro, Maria
2El libro208/04/2012ComediaPedro, Maria

lo hice con un query dentro del query, pero supongo que es incorrecto porq solo me muestra el primer resultado, osea el ID 1.
Como deberia hacer la consulta?

PD: No puedo colocar en libro algo como un id_autor, ya que el numero de autores para un libro no esta definido
#2
PHP / Re: [Consulta] Query a entidades debiles
10 Abril 2012, 00:20 AM
No mucho, puedo esperarme estos dias aun.. Tranquilo
#3
Ok si, pero acuerdate que para un libro pueden haber varios autores. un numero indefinido de ellos. por eso es la tabla autor_a_libro
#4
PHP / [Consulta] Query a entidades debiles
8 Abril 2012, 20:32 PM
Tratare de explicar completo que es lo que quiero:

Tengo 4 tablas enlazadas entre si con las foregein key.
En la 1ra tabla [Libro] (id, titulo, descripcion, id_categoria)
En la 2da tabla [Categoria] (id, categoria)
En la 3ra tabla [Autor_Libro] (id_autor,id_libro)
En la 4ta tabla [Autor] (id, nombre, apellido)

Entonces haciendo un query normal con Inner Join me arroja los resultados pero mas o menos asi:







IDTituloDescripcionCategoriaAutor
1El libro08/04/2012ComediaJuan
1El libro08/04/2012ComediaPedro
1El libro08/04/2012ComediaMaria
2El libro208/04/2012ComediaPedro
2El libro208/04/2012ComediaMaria

Si a la consulta le pongo un GROUP BY libro.id





IDTituloDescripcionCategoriaAutor
1El libro08/04/2012ComediaJuan
2El libro208/04/2012ComediaMaria

Lo que quiero es alguna forma de agrupar los autores por el libro, osea que me muestre asi





IDTituloDescripcionCategoriaAutor
1El libro08/04/2012ComediaJuan, Pedro, Maria
2El libro208/04/2012ComediaPedro, Maria

lo hice con un query dentro del query, pero supongo que es incorrecto porq solo me muestra el primer resultado, osea el ID 1.
Como deberia hacer la consulta?
#5
PHP / Re: Error en al insertar
8 Abril 2012, 20:14 PM
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;
}
#6
PHP / Re: Error en al insertar
6 Abril 2012, 21:28 PM
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
#7
PHP / Re: Error en al insertar
6 Abril 2012, 19:40 PM
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>";
       } 
?>

#8
PHP / Error en al insertar
6 Abril 2012, 19:05 PM
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