Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2009, 09:00
Avatar de chiquirf
chiquirf
 
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid
Mensajes: 215
Antigüedad: 14 años, 2 meses
Puntos: 3
Funcion para hacer consultas en SQL

Hola a todos,

Con el afán de reducir líneas de código y terminar antes una web, quise hacer una función en PHP que haga la conexión a MySQL y me extraiga los resultados, pero no me funciona.

La tabla de mi BBDD tiene la siguiente estructura:
id - clave - ord - nombre - valor
1 - form_1_4 - 1 - pregunta1_4_a - resp_a
2 - form_1_4 - 2 - pregunta1_4_b - resp_b
3 - form_1_5 - 1 - pregunta1_5_a - resp_a
...

Es para una encuesta que las respuestas son radiobuttons, y la idea es que los administradores de la encuesta puedan agregar o quitar opciones a las respuestas, así que metí todo en una tabla y las muestro filtrando por el campo "clave".

La sentencia "normal" (una para cada pregunta) que tengo para acceder a MySQL y que funciona es la siguiente:
Código PHP:
/*
CODIGO PARA CONECTAR Y EXTRAER DATOS
*/
<?php
mysql_select_db
($database_empresa$empresa);
$clave 'form_1_4';
$query_clave 'query_'.$clave;
$
$query_clave "SELECT * FROM selects WHERE clave = '$clave' ORDER BY ord";
$mysqlquery $clave;
$
$mysqlquery mysql_query($$query_clave$empresa) or die(mysql_error());
$fila_clave 'row_'.$clave;
$
$fila_clave mysql_fetch_assoc($$mysqlquery);
$todaslasfilas 'totalRows_'.$clave;
$
$todaslasfilas mysql_num_rows($$mysqlquery);
?>
/*
CODIGO PARA MOSTRAR LOS RESULTADOS
*/
 <?php   do { ?>
<label><input name="<?php echo $row_form_1_4['clave']; ?>" type="radio" value="<?php echo $row_form_1_4['valor1']; ?>" />&nbsp;<?php echo $row_form_1_4['nombre']; ?></label><br />
<?php $i++;} while ($row_form_1_4 mysql_fetch_assoc($form_1_4)); ?>

// se nota que es del Dreamweaver, jejejeje :D
Lo malo es que tengo 20 preguntas, por lo tanto tengo que repetir esto 20 veces

Por eso quiero convertir la primera parte en una función y con solo escribir, por ejemplo "ConectarBD('nombre_filtro');" y me haga la conexión.

He intentado hacer esto pero me da un error:

Código PHP:

/*
FUNCION PARA CONECTAR Y EXTRAER DATOS
*/
function ConectarBD($nompregunta){
        
            
mysql_select_db($GLOBALS['database_sinceo2'], $GLOBALS['sinceo2']);
            
$clave $nompregunta;
            
$query_clave 'query_'.$clave;
            $
$query_clave "SELECT * FROM selects WHERE clave = '$clave' ORDER BY ord";
            
$mysqlquery $clave;
            $
$mysqlquery mysql_query($$query_clave$GLOBALS['sinceo2']) or die(mysql_error());
            
$fila_clave 'row_'.$clave;
            $
$fila_clave mysql_fetch_assoc($$mysqlquery);
            
$todaslasfilas 'totalRows_'.$clave;
            $
$todaslasfilas mysql_num_rows($$mysqlquery);
            return $
$query_clave;
            return $
$mysqlquery;
            return $
$fila_clave;
            return $
$todaslasfilas;

}

/*
LLAMADO A LA FUNCION
*/
ConectarBD('form_1_4');
ConectarBD('form_1_5');
...


/*
CODIGO PARA MOSTRAR LOS RESULTADOS ES IGUAL AL ANTERIOR
*/ 
Esto me muestra un error en la zona donde está el código:
Código:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL 
result resource in 
D:\Mis Documentos\Carlos\WEBS\www\empresa\www\cuestionario.php on line 129
Bueno, espero que alguien me pueda ayudar que no se porqué esta fallando.

Muchas gracias y saludos

Carlos