Problema con un codigo, funciones.

danf_1979
21 de Febrero del 2005
Tengo un problema con un codigo. El problema es que si pongo el codigo dentro de una funcion ya no puedo acceder al resultado que genera tal codigo.
Aqui esta:
[code]
if ($edit !== 0){
for ($x = 1; $x <= 8; $x++) {
$query_edit_pregunta = "SELECT pregunta FROM enc_preguntas WHERE idvotacion='$edit' AND idpregunta='$x'";
$result_edit_pregunta = mysql_query($query_edit_pregunta) or die ("Error in query: $query_edit_pregunta. ".mysql_error());
while ($registro_edit_pregunta = mysql_fetch_row($result_edit_pregunta))
{
foreach($registro_edit_pregunta as $clave6[$x])
{
$get_edit_pregunta[$x]=$clave6[$x];

}
}
}
}
[/code]
No es una funcion y puedo llamar perfectamente a la variable $get_edit_pregunta[$x] con un ciclo for mas adelante sin problemas. PERO, si ahora pongo el script en una funcion:
[code]
function prueba ($edit) {
if ($edit !== 0){
for ($x = 1; $x <= 8; $x++) {
$query_edit_pregunta = "SELECT pregunta FROM enc_preguntas WHERE idvotacion='$edit' AND idpregunta='$x'";
$result_edit_pregunta = mysql_query($query_edit_pregunta) or die ("Error in query: $query_edit_pregunta. ".mysql_error());
while ($registro_edit_pregunta = mysql_fetch_row($result_edit_pregunta))
{
foreach($registro_edit_pregunta as $clave6[$x])
{
$get_edit_pregunta[$x]=$clave6[$x];
return $get_edit_pregunta[$x];
}
}
}
}
}
[/code]
Más adelante la variable $get_edit_pregunta [$x] ya no la puedo leer con un for. Para que mencionar que se muy poco de funciones y realmente necesito ayuda con esta.

El codigo con que leo la variable mas adelante es este:
[code]
for ($z=1; $z <=8; $z++) {
echo "</tr><tr>";
echo "<td align='left'><font color='$color_numeracion'><b>$z</b>)</td></font>";

if ($edit !== 0){
echo "<td align='left'><INPUT type='text' name='sub_pregunta[$z]' size='35' maxlength='50' value='$get_edit_pregunta[$z]'></td>";
}
else {
echo "<td align='left'><INPUT type='text' name='sub_pregunta[$z]' size='35' maxlength='50' value=''></td>";
}
}
[/code]
Y como les mencione, funciona sin problemas si es que el codigo no se encuentra en una funcion.
Salu2

ile
21 de Febrero del 2005
Y dónde llamas a la función?. Porque no alcanza con preguntar por la variable. Además el RETURN no te retorna la variable cargada, sino que te retorna el valor que contiene la variable a ese momento. Por tanto debes llamar a la función (cargando su valor de retorno en una variable) y luego desplegar esa variable. O sea haz un $variable = prueba($edit) y luego despliega $variable.

saludos!