Foros del Web » Programando para Internet » PHP »

Fallo al subir relaciones

Estas en el tema de Fallo al subir relaciones en el foro de PHP en Foros del Web. Buenos días a todos. Paso a explicaros el problemilla que soy incapaz de detectar: En un formulario que estoy realizando se dara de alta a ...
  #1 (permalink)  
Antiguo 28/11/2011, 02:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Fallo al subir relaciones

Buenos días a todos.
Paso a explicaros el problemilla que soy incapaz de detectar:

En un formulario que estoy realizando se dara de alta a X persona, hasta ahí bien, pero ahora estoy desarrollando una parte en la cual según el checkbox activado, creara una relación entre la persona recientemente dada de alta y un listado de categorías. Antes de implementar esta parte la estoy probando aparte mediante las categorías ya creadas y una persona dada de alta aposta para ello.

Me falla cuando va a proceder a crear las relaciones (bueno, mas concretamente cuando trata de contar las categorías existentes) pero en teoría lo he escrito todo bien, ¿he cometido algún error que soy incapaz de ver o esta mal planteado?
a continuación muestro los códigos para ver si podéis verlo o por lo menos haceros una idea:

muestracategoria.php

<html>
<head>
<title>Ejemplo</title>
<?php
include("conex.php");
$link=Conectarse();
$categorias=mysql_query("select categoria from categorias order by codigo",$link);
?>
</head>
<body>
<H1>Simulacion del apartado de categorias para Personas y Entidades:</H1>
<FORM NAME="subrel" ACTION="subirrelacion.php">
Categorias:
<TABLE border=5>
<TR>
<?php
$number=0;
$linea=0;
while($now = mysql_fetch_array($categorias)){

printf("<TD><INPUT TYPE='CHECKBOX' NAME=check[%s]>%s</TD>",$number,$now["categoria"]);

$number++;

$linea++;

if($linea==4){
printf("</TR><TR>");
$linea=0;
}
}
printf("</TR>");

?>
</TABLE>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>

<?php
mysql_free_result($categorias);
mysql_close($link);
?>
</body>
</html>


subirrelacion.php

<html>
<head>
</head>
<body>
<?php
include("conex.php");
$link=Conectarse();

$resultado = mysql_querry("select count(codigo)from categorias",$link);
$total=mysql_result($resultado,0);

$defecto="00000005A";

for($paso=0;$paso<$total;$paso++){
$mirex=$_GET['check[$paso]'];
if(mirex==1){
mysql_query("insert into 'entidad-categoria' (categoria,entidad)values($paso,$defecto)",$link);
}

}


header("Location: muestracategoria.php");
?>
</body>
</html>
  #2 (permalink)  
Antiguo 28/11/2011, 04:44
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Fallo al subir relaciones

Hola. qué error te manda?
Yo lo que veo al mirarlo por encima es que tienes un header después de insertar html, y eso te mandará un error de Header alredy sent etcetc.

Nota: si usas el highlight para los códigos nos facilitarás mucho su lectura ;)
Saluodos
  #3 (permalink)  
Antiguo 29/11/2011, 03:07
 
Fecha de Ingreso: octubre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Fallo al subir relaciones

Bueno, el error que aparece es el siguiente:
Fatal error: Call to undefined function mysql_querry() in C:\xampp\htdocs\prueba3\subirrelacion.php on line 9

Por lo que da a entender que el fallo esta en:
$resultado = mysql_querry("select count(codigo)from categorias",$link);

pero por mas que veo no localizo ningun error.

Nota: por desgracia no se utilizar el highlight.
  #4 (permalink)  
Antiguo 29/11/2011, 04:07
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Fallo al subir relaciones

Es mysql_query no mysql_querry.
  #5 (permalink)  
Antiguo 29/11/2011, 04:55
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Fallo al subir relaciones

Nota: en el mensaje, seleccionas el trozo de texto que tenga código, y en la parte superior tienes un menú desplegable que pone highlight. Si seleccionas el lenjuage correspondiente, puedes facilitar su lectura.
Saludos.

Ejemplo:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <?php
  6. include("conex.php");
  7. $link=Conectarse();
  8.  
  9. $resultado = mysql_querry("select count(codigo)from categorias",$link);
  10. $total=mysql_result($resultado,0);
  11.  
  12. $defecto="00000005A";
  13.  
  14. for($paso=0;$paso<$total;$paso++){
  15. $mirex=$_GET['check[$paso]'];
  16. if(mirex==1){
  17. mysql_query("insert into 'entidad-categoria' (categoria,entidad)values($paso,$defecto)",$link);
  18. }
  19.  
  20. }
  21.  
  22.  
  23. header("Location: muestracategoria.php");
  24. ?>
  25. </body>
  26. </html>
  #6 (permalink)  
Antiguo 29/11/2011, 04:57
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Fallo al subir relaciones

Nota dos: de hecho, haciendo esto del highligh, ya te puedes dar cuenta que mysql_querry no es correcto (no te indica ningún enlace al manual de php, como sí que pasa con mysql_query)
Saludos
  #7 (permalink)  
Antiguo 29/11/2011, 05:12
 
Fecha de Ingreso: octubre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Fallo al subir relaciones

Gracias, si que era un fallo tonto el que cometía, pese a ello aun me falla (ahora no realiza el alta, pero no muestra ningún mensaje de error, asi que igual el fallo esta en los datos que le estoy pasando o algo por el estilo), aparentemente envía la información con éxito, y reinicia el formulario, pero las altas no terminan de realizarse (no aparecen).
  #8 (permalink)  
Antiguo 29/11/2011, 05:14
 
Fecha de Ingreso: octubre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Fallo al subir relaciones

muestro como quedo el codigo de subirrelacion.php
Código PHP:
Ver original
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <?php
  6.    include("conex.php");
  7.    $link=Conectarse();
  8.    
  9.    $resultado = mysql_query("select count(codigo)from categorias",$link);
  10.    $total=mysql_result($resultado,0);
  11.  
  12.    $defecto="00000005A";
  13.  
  14.    for($paso=0;$paso<$total;$paso++){
  15.     $mirex=$_GET['check[$paso]'];
  16.     if($mirex>0){
  17.        mysql_query("insert into 'entidad-categoria' (categoria,entidad)values($paso,$defecto)",$link); 
  18.     }
  19.    
  20.    }
  21.  
  22.    
  23.    header("Location: muestracategoria.php");
  24. ?>
  25. </body>
  26. </html>
  #9 (permalink)  
Antiguo 29/11/2011, 06:11
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Fallo al subir relaciones

Añade a los mysql_query or die (mysql_error());

Por ejemplo:

Código PHP:
Ver original
  1. $resultado = mysql_query("select count(codigo)from categorias",$link) or die (mysql_error());

Así a todos los querys y dinos qué error te muestra.
  #10 (permalink)  
Antiguo 30/11/2011, 02:34
 
Fecha de Ingreso: octubre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Fallo al subir relaciones

Me aparece :


Notice: Undefined index: check[$paso] in C:\xampp\htdocs\rescate\subirrelacion.php on line 15
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''entidad-categoria' (categoria,entidad)values(0,00000005A)' at line 1
  #11 (permalink)  
Antiguo 30/11/2011, 05:05
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 6 meses
Puntos: 140
Respuesta: Fallo al subir relaciones

mi pregunta aquí es, qué significa check? no lo encuentro en el manual de php...
  #12 (permalink)  
Antiguo 30/11/2011, 05:17
 
Fecha de Ingreso: octubre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Fallo al subir relaciones

check es el nombre que les he puesto a los checkboxs (lamento la confusión). A todo esto ahora los he modificado ligeramente para añadirles una función en la que si seleccionas el primero el resto se deseleccione, y que el primero pierda su selección si seleccionamos cualquier otro, así que muestro de nuevo los códigos para mostrar el estado actual de lo que estoy tratando
(nota, el error sigue siendo el mismo antes y después de esta modificación, así que el fallo que me envía sigue siendo el mismo)

muestracategoria.php
Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <title>Ejemplo</title>
  4. <?php
  5.     include("conex.php");
  6.     $link=Conectarse();
  7.     $categorias=mysql_query("select categoria from categorias order by codigo",$link);
  8. ?>
  9.  
  10. <SCRIPT>
  11.     function pulsarno(obj) {
  12.             if (!obj.checked) return
  13.         elem=document.getElementsByName('check');
  14.         for(i=0;i<elem.length;i++)  
  15.             elem[i].checked=false;
  16.         obj.checked=true;
  17.     }
  18.  
  19.     function pulsarsi(obj) {
  20.         if (!obj.checked) return
  21.         elem=document.getElementsByName('check');
  22.         for(i=0;i<elem.length;i++)  
  23.             if(i==0)
  24.                 elem[i].checked=false;
  25.             obj.checked=true;
  26.         }
  27. </SCRIPT>
  28. </head>
  29. <body>
  30. <H1>Simulacion del apartado de categorias para Personas y Entidades:</H1>
  31. <FORM NAME="subrel" ACTION="subirrelacion.php">
  32. Categorias:
  33. <TABLE border=5>
  34. <TR>
  35. <?php
  36. $number=0;
  37. $linea=0;  
  38.     while($now = mysql_fetch_array($categorias)){
  39.            
  40.         if($number>0){
  41.             printf("<TD><INPUT TYPE='CHECKBOX' NAME='check' value=%s onclick='pulsarsi(this)'>%s</TD>",$number,$now["categoria"]);
  42.             $linea++;
  43.         }else{
  44.             printf("<TD><INPUT TYPE='CHECKBOX' NAME='check' value=%s onclick='pulsarno(this)'>%s</TD>",$number,$now["categoria"]);
  45.             $linea++;
  46.         }
  47.             $number++;
  48.                
  49.         if($linea==4){
  50.             printf("</TR><TR>");
  51.             $linea=0;
  52.         }
  53.        
  54.     }
  55.     printf("</TR>");
  56.    
  57. ?>
  58. </TABLE>
  59. <INPUT TYPE="SUBMIT" VALUE="Enviar">   
  60. </FORM>
  61.  
  62. <?php
  63.     mysql_free_result($categorias);
  64.     mysql_close($link);
  65. ?>
  66. </body>
  67. </html>


subirrelacion.php
Código PHP:
Ver original
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <?php
  6.    include("conex.php");
  7.    $link=Conectarse();
  8.    
  9.    $resultado = mysql_query("select count(codigo)from categorias",$link) or die (mysql_error());
  10.    $total=mysql_result($resultado,0) or die (mysql_error());
  11.  
  12.    $defecto="00000005Z";
  13.  
  14.    for($paso=0;$paso<=$total;$paso++){
  15.     $mirex=$_GET['check'];
  16.     if($mirex.checked==true){
  17.        mysql_query("insert into 'entidad-categoria' (categoria,entidad)values($mirex.value,$defecto)",$link) or die (mysql_error());   
  18.     }
  19.    
  20.    }
  21.  
  22.    
  23.    header("Location: muestracategoria.php");
  24. ?>
  25. </body>
  26. </html>


Error:
Notice: Use of undefined constant checked - assumed 'checked' in C:\xampp\htdocs\rescate\subirrelacion.php on line 16
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''entidad-categoria' (categoria,entidad)values(13.value,00000005Z)' at line 1
  #13 (permalink)  
Antiguo 30/11/2011, 05:23
 
Fecha de Ingreso: octubre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Fallo al subir relaciones

me he dado cuenta que el valor del check de subirrelacion ya te lo devuelve cuando hago la consulta insert, así que he quitado el .value del check y ahora la linea 17 de subirrelacion queda:


mysql_query("insert into 'entidad-categoria' (categoria,entidad)values($mirex,$defecto)",$link) or die (mysql_error());
  #14 (permalink)  
Antiguo 30/11/2011, 05:31
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Fallo al subir relaciones

Prueba así:

Código PHP:
Ver original
  1. mysql_query("INSERT INTO entidad-categoria  (categoria, entidad) VALUES ('$mirex', '$defecto')",$link) or die (mysql_error());
  #15 (permalink)  
Antiguo 30/11/2011, 05:34
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Fallo al subir relaciones

Así quedaría el código, pruébalo y nos dices:

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <?php
  6.    include('conex.php');
  7.    $link=Conectarse();
  8.    
  9.    $resultado = mysql_query("select count(codigo)from categorias",$link) or die (mysql_error());
  10.    $total=mysql_result($resultado,0) or die (mysql_error());
  11.  
  12.    $defecto='00000005Z';
  13.  
  14.    for($paso=0;$paso<=$total;$paso++){
  15.     $mirex=$_GET['check'];
  16.     if($mirex.checked == true){
  17.        mysql_query("INSERT INTO entidad-categoria  (categoria, entidad) VALUES ('$mirex', '$defecto')",$link) or die (mysql_error());
  18.     }
  19.    
  20.    }
  21.  
  22.    
  23.    header('Location: muestracategoria.php');
  24. ?>
  25. </body>
  26. </html>

Última edición por Arkaitz; 30/11/2011 a las 05:47
  #16 (permalink)  
Antiguo 30/11/2011, 06:54
 
Fecha de Ingreso: octubre-2011
Mensajes: 20
Antigüedad: 12 años, 5 meses
Puntos: 0
Respuesta: Fallo al subir relaciones

sigue surgiendo el error:

Notice: Use of undefined constant checked - assumed 'checked' in C:\xampp\htdocs\rescate\subirrelacion.php on line 16
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-categoria (categoria, entidad) VALUES ('2', '00000005Z')' at line 1


No estoy seguro de estar cogiendo bien el valor de los checkboxs para el if anterior (linea 16) pero no se como ponerlo de otro modo, ya he probado cambiar el for por:

Código PHP:
Ver original
  1. for($paso=0;$paso<=$total;$paso++){
  2.     $mirex=$_GET['check'];
  3.     $tf=$_GET['check.checked'];
  4.     if($tf == true){
  5.        mysql_query("INSERT INTO entidad-categoria  (categoria, entidad) VALUES ('$mirex', '$defecto')",$link) or die (mysql_error());
  6.     }
  7.    
  8.    }

en este caso no me salta ningún error pero tampoco se termina de dar el alta

Etiquetas: fallo, formulario, html, mysql, relaciones, sql
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 16:35.