Foros del Web » Programando para Internet » PHP »

donde está el error?

Estas en el tema de donde está el error? en el foro de PHP en Foros del Web. Hola, alguien podría decirme que está mal en este código? Código PHP: <?php  require_once( 'Connections/clau.php' );  ?> <?php mysql_select_db ( $database_clau ,  $clau ); $query_form  ...
  #1 (permalink)  
Antiguo 30/06/2005, 20:47
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
donde está el error?

Hola, alguien podría decirme que está mal en este código?

Código PHP:
<?php require_once('Connections/clau.php'); ?>
<?php
mysql_select_db
($database_clau$clau);
$query_form "SELECT * FROM form";
$form mysql_query($query_form$clau) or 

die(
mysql_error());
$row_form mysql_fetch_assoc($form);
$totalRows_form mysql_num_rows($form);

$query=$row_form['camps_var']; 

do { 
?>

<?

$$row_form['camps_var']=$_GET['$query'];
<?
} while (
$row_form mysql_fetch_assoc($form)); 

?>

Gracias
  #2 (permalink)  
Antiguo 01/07/2005, 00:29
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
http://www.forosdelweb.com/f18/como-preguntar-foro-php-cosas-tener-cuenta-295415/
¿es alguna prueba??.. ¿de verdad está mal?, ¿dónde? (suponiendo verdaderamente está mal, al correrlo te debería presentar un mensaje de error el cuál te dirá el tipo de error y la línea donde se encuentra).

Pués de reojo.. y suponiendo el archivo clau.php contiene la función mysql_connect() y que es asociada a $clau... y que el mismo archivo tiene el valor correcto de $database_clau (¿por qué no haces el mysql_select_db() dentro del mismo clau.php?).... te diría que el único error (como tal) que veo es que abres dos veces seguidas PHP (<? y <? sin ?>) dentro del do...while().

.... ... no veo alguna cosa mayor... Espero te sirva ( ó ¿pasé? ).
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 01/07/2005, 12:16
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
lo que me pasa es que cuando escribo esta igualdad:

Código PHP:
$$row_form['camps_var']=$_GET['$query']; 
no toma los valores que quiero que tome.

yo quiero que las igualdades se queden así:

$petal5=$_GET['petal5'];
$petal6=$_GET['petal6'];
$sepal5=$_GET['sepal5'];
$sepal6=$_GET['sepal6'];

donde los valores petal5, petal 6, sepal5, sepal6 salen de una consulta a la base de datos

Me explico?

Gracias por tu ayuda

Un Saludo
  #4 (permalink)  
Antiguo 01/07/2005, 21:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... ... solo comentario, esas NO son ningunas igualdades, son asignaciones...

...

Errores:
- No uses comillas simples en $_GET['$query']; ó no se las pongas ó ponle comillas dobles (cómo no lo ví antes!! )...
- El valor de $query será siempre el mismo --está fuera del ciclo--; por lo que muestras como "resultado" --deceado-- éste valor a de variar...

.... y ya!!, con eso --en teoría-- deberías de conseguir lo que quieres... más, por estar tratando con $_GET cabe el comentario de que quizá debas emplear isset() para cuestiones de validación...

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #5 (permalink)  
Antiguo 02/07/2005, 10:24
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
Muchas gracias Jam!

Me has ayudado muchísimo y ya funciona correctamente.

No he entendido lo de uasr isset(), no veo la finalidad,

Muchas gracias
  #6 (permalink)  
Antiguo 03/07/2005, 15:29
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
otra cosilla relacionada con esto,

¿como puedo hacer una consulta del tipo SELECT * FROM ... WHERE.....
dinámica?

es decir que los condicionantes de despues del where salgan de una tabla de la base de datos.

En mi caso deberían ser del tipo

$row_form['camps_var'] LIKE $$row_form['camps_var']

y haciendo un bucle.

alguien sabe la sintaxis correcta?

Un Saludo
  #7 (permalink)  
Antiguo 04/07/2005, 00:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
http://www.forosdelweb.com/f18/hacer-consulta-multiple-267358/
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 04/07/2005, 04:37
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
Gracias por tu respuesta jam,

Pero no logro entender la filosofía de este método, intentaré explicarme mejor:

- Tengo un formulario que se genera a partir de una tabla de la base de datos, las opciones del formulario son "%" y "1".

- tengo un archivo de declaración de variables, que decrara tantas variables como filas hay en la tabla correspondiente (o en el formulario).

- tengo un archivo de respuesta que quiero que haga un select condicionado según los campos de esa misma tabla (la que carga el formulario y la declaración de variables.


me gustaria que consultando a la base de datos se me generara un query de este tipo:

Código PHP:
$query_Recordset1 "SELECT * FROM familias WHERE petals5 like '$petals5' AND petals6 like '$petals6' 
AND sepals5 like '$sepals5' AND sepals6 like '$sepals6' 
AND herbacia like '$herbacia' AND llenyosa like '$llenyosa'"

donde yo en la tabla tengo los sguientes registros:
petals5
petals6
sepals5
sepals6
herbacia
llenyosa

y si añado algún registro a la tabla, pues que el select cambie de acuerdo con este criterio.

Muchas gracias
Un Saludo
  #9 (permalink)  
Antiguo 04/07/2005, 11:41
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
en realidad lo que estoy pidiendo es como hacer un select incluyendo todos los registros de una tabla
  #10 (permalink)  
Antiguo 05/07/2005, 00:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
poco claro... el simple hecho de que quieras incluir todos los registros (querrás decir campos) de una tabla.... ¿qué no provienes de un formulario? ¿qué pasa con campos sin valor a buscar??

... en fin... adivinando un poco: www.php.net/mysql_field_name

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #11 (permalink)  
Antiguo 05/07/2005, 02:54
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Otra por ahí... http://www.forosdelweb.com/showpost....47&postcount=2
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #12 (permalink)  
Antiguo 05/07/2005, 04:26
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
el formulario o bien devuelve valor 1 o valor % por lo que sí que creo que tienen que estar todos los campos en el select no?
  #13 (permalink)  
Antiguo 05/07/2005, 04:33
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... un formulario en sí no "devuelve" ningún valor , son los "input" (elementos) que lo forman quienes envian valores... Ahora, por tus palabras ¿manejas radiobuttons?? un listbox quizá??, son los únicos elementos que se me vienen a la mente ahora en los cuales recibas un valor forzosamente (o 1 o %).

Definitivamente no he captado la idea ... ¿qué quieres hacer cuando recibas un "1"??, ¿qué hay que hacer cuando recibas un "%"???, ¿por qué "%"???
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #14 (permalink)  
Antiguo 05/07/2005, 04:55
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
lo que tengo son listas desplegables y les he asignado el valor de % o 1, lo que quiero es que en el select me salgan los elementos que hay en el formulario y que busque en la base de datos,

pues si es 1 que busque 1 y si es % que acepte 0 y 1.

Un Saludo
  #15 (permalink)  
Antiguo 05/07/2005, 05:04
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por sintesk7
pues si es 1 que busque 1 y si es % que acepte 0 y 1.
... osease que en tooodos los campos solo puede haber 2 posibles valores: 0 ó 1....

Pués nada nuevo.... if($_POST['select']=='1') $query.=" AND campo=1";
Para que acepte cualquier valor ("acepte 0 y 1") en un campo en específico.... no hagas la busqueda en sicho campo... no lo agregues. Si el campo puede además tener cualquier valor pero tú quieres recuperar solo aquellos que tengan "0 ó 1", necesitas agregar algo como "AND (campoX=1 OR campoX=0)" ... , debería de ser así

Me rindo por ahora.. no cacho, quizá sea yo... nos vemos y la mejor de las suertes!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #16 (permalink)  
Antiguo 05/07/2005, 17:02
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
ahora capto la idea (dios mio que lento soy), lo que tu propones es que la query se construya solo con los datos del formulario que son igual a 1, me parece muy buena idea

lo que pasa es que voy a utiizar el mismo script para distintos formularios y quisiera que según el número de datos enviados me hiciera una consulta u otra.

servirá esto?

if($_GET['%']=='1') $query.=" AND campo=1";

los datos los recibo por GET y he puesto un comodín en el $_GET['%']=='1'

si no es así, con un ejemplo me salvarías la vida, es que soy bastante desastre con la sintaxis del código y nunca sé si lo que hago no me funciona porque está mal planteado o si me he dejado algunas comillas o algo.

En fin, gracias
  #17 (permalink)  
Antiguo 05/07/2005, 18:07
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
Hola!

Me he leido y estudiado todos los posts que me has indicado y creo que ya lo he medio-entendido.

me ha convencido bastante el método de este post

http://www.forosdelweb.com/showpost....7&postcount=2]

y lo he podido integrar sin problemas (he pasado el formulario a post).

lo que no sé es como generar una query con este código, me podrías dar un ejemplo.

Gracias

Última edición por sintesk7; 05/07/2005 a las 19:28
  #18 (permalink)  
Antiguo 05/07/2005, 19:36
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
así me funciona sólo cuando selecciono un solo valor

Código PHP:
  <?php 
if(isset($_POST['Submit'])) { 
foreach(
$_POST as $indice => $valor) { 
    if(!empty(
$valor) && $indice!='Submit') { 
        
$campos[]= $indice
        
$values[]= "$valor"
    } 

$camposimplode(", "$campos); 
$valuesimplode(", "$values); 

?> 

<?
mysql_select_db
($database_clau$clau);

$query_Recordset1 "SELECT * FROM familias WHERE ($campos) like ($values)";

?>
me falla cuando no selecciono ninguno o si marco más de uno

¿como lo hago?
  #19 (permalink)  
Antiguo 06/07/2005, 10:27
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
¿Me podrías indicar como se haría?

Gracias
  #20 (permalink)  
Antiguo 06/07/2005, 10:46
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 14 años
Puntos: 2
Te paso un función que me construí para solventar un problema parecido al tuyo.



Código PHP:
//Función que construye el query. 
function genera_query($cadena,$condicion

  
$pos=strpos($cadena,"where"); 

  if (
$pos === false
      
$cadena=$cadena." where "
  if (
$pos !== false
      
$cadena=$cadena." and "

  
$cadena=$cadena.$condicion
  return 
$cadena


//Construir el query dependiendo de las variables recibidas del formulario. 
if ($busqueda!=""
   
$mysql_string=genera_query ($mysql_string,"Comun.Nombre LIKE '%$busqueda%'"); 

if (
$resumen!=""
   
$mysql_string=genera_query ($mysql_string,"Comun.Resumen LIKE '%$resumen%'"); 

if (
$comentario!=""
   
$mysql_string=genera_query ($mysql_string,"Comun.Comentario LIKE '%$comentario%'"); 

if (
$comentario_cineforum!=""
   
$mysql_string=genera_query ($mysql_string,"Comun_Pelicula.texto_cineforum LIKE '%$comentario_cineforum%'"); 

if (
$genero!=""
   
$mysql_string=genera_query ($mysql_string,"r_cine_genero.id_genero_cine LIKE '%$genero%'"); 
Lo que hacemos es verificar si cada variable recibida desde el formulario que usamos para seleccionar los campos de busqueda esta vacia o no.
En caso de que NO este vacia añadimos la condición de busqueda para esa variable en el query.
La función se encarga de anteponer un AND o el WHERE con lo cual nosotros unicamente nos centramos en pasarle la condición de busqueda que realmente queremos que se realize.


Para mis necesidades me ha facilitado mucho el trabajo.
Espero que te ayude.
  #21 (permalink)  
Antiguo 06/07/2005, 10:53
 
Fecha de Ingreso: agosto-2004
Mensajes: 347
Antigüedad: 13 años, 3 meses
Puntos: 3
Gracias, lo probaré


el problema es que tengo 150 variables y me gustaría que la query se armara con las variables presentes en una tabla, así si añado 30 variables, que no tenga que modificar el código.


un Saludo!
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 21:56.