Buenas. Creo que no me he explicado bien. Así que voy a intentar ser lo más claro que pueda.
- Tengo un formulario con varios selects.
- Los valores de los selects son extraídos de tablas Mysql
- En cada tabla hay dos columnas ID y valor. Por ejemplo ID:1 valor:presencial o ID:2 valor:a distancia
- Por cuestiones de validación del formulario, los valores de los options son el campo ID de la tabla.
-Bien, pues la siguiente función la utilizo para que al insertar un nuevo registro en la base de datos inserte el valor y no el ID:
Código PHP:
function getmodaildad() {
$recibimos = $_POST['modalidad'];
include("conexion.php");
$conec = mysql_connect($servidor, $usuario, $clave);
mysql_select_db($db, $conec);
$query = mysql_query("SELECT valor FROM modalidad WHERE ID = '$recibimos' LIMIT 1", $conec);
if ($row=mysql_fetch_array($query)) {
$valor_ok = $row['valor'];
}
return ($valor_ok);
}
Bien, esta función funciona perfectamente. Lo que pasa es que la tengo que repetir para cada uno de los selects cambiando el nombre de la función, el $_POST[''] y la tabla de la consulta.
Y mi intención es hacer algo así:
Código PHP:
function getvalor($select) {
$recibimos = $_POST[$select];
include("conexion.php");
$conec = mysql_connect($servidor, $usuario, $clave);
mysql_select_db($db, $conec);
$consulta = "SELECT valor FROM" . $select . "WHERE ID = '$recibimos' LIMIT 1";
$query = mysql_query($consulta, $conec);
if ($row=mysql_fetch_array($query)) {
$valor_ok = $row['valor'];
}
return ($valor_ok);
}
Pero utilizándola de la siguiente manera: $modalidad = getvalor(modalidad);
me da el error:
Código:
Notice: Use of undefined constant tematica - assumed 'tematica' in (ruta)
Y usándola así:
$valor = 'modalidad';
$modalidad = getvalor($valor);
No me da el error anterior pero no funciona bien y y al no hacer bien la consulta me falla el mysq_fetch_array().
Creo que está suficientemente explicado. Mi script funciona bien escribiendo la función tantas veces como selects tengo. Pero tengo curiosidad y ganas de seguir aprendiendo, por eso os he planteado esta duda, que seguramente será debida a algún error de concepto.
Muchas gracias a todos por la atención y ayuda que siempre recibo en este foro, del cual me siento miembro. Estoy aprendiendo mucho, y de vez en cuando he respondido a alguna duda, jeje.
Saludos !!