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']; ?>" /> <?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
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
*/
Código:
Bueno, espero que alguien me pueda ayudar que no se porqué esta fallando.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
Muchas gracias y saludos
Carlos