PHP - ayuda novato errores variables

 
Vista:

ayuda novato errores variables

Publicado por ingleonidas (3 intervenciones) el 13/04/2010 04:36:39
Gente, despues de leerlos reiteradamente me he unido a la comunidad. Esta vez, con una consulta. Tengo

el siguiente codigo para una una encuesta:
<?php
// Configura tu conexion
$db=mysql_connect('xx', 'xx', 'xx');
mysql_select_db("xx", $db);
// Configura tu encuesta
$opciones = array ('Totalmente de acuerdo','De acuerdo','En contra','Totalmente en contra');
if(isset($_GET["voto"])){
$ip = $REMOTE_ADDR;
$sql ="INSERT INTO encuesta (ip,voto) VALUES ('$ip',".$_GET["voto"].")";
$votos = mysql_result(mysql_query($sql),0);
}
$i = 0;
$sql ="SELECT count(ip) FROM encuesta";
$total = mysql_result(mysql_query($sql),0);
echo "<form><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
while ($opciones[$i]){
$sql ="SELECT count(ip) FROM encuesta WHERE voto = $i";
$votos = mysql_result(mysql_query($sql),0);
$porcentaje = round($votos/$total*100,2);
echo " <tr>\n";
echo " <td colspan=\"3\"><b>$opciones[$i]</b></td>\n";
echo " </tr>\n";
echo " <tr>\n";
echo " <td><input type=\"radio\" value=\"$i\" name=\"voto\"></td>\n";
echo " <td><hr color=\"#008000\" size=\"10\" width=\"$porcentaje\" align=\"left\">\n";
echo " </td>\n";
echo " <td align=\"right\">$porcentaje% ($votos)</td>\n";
echo " </tr>\n";
$i++;
}
echo " <tr>\n";
echo " <td colspan=\"3\"><br><input type=\"submit\" value=\"Votar\"></td>\n";
echo " </tr>\n";
echo "</table></form>";
?>
Funciona, pero genera los siguientes errores:
Warning: mysql_result() expects parameter 1 to be resource, boolean given in C:\Archivos de

programa\EasyPHP5.3.0\www\encuesta.php on line 22

Notice: Undefined offset: 4 in C:\Archivos de programa\EasyPHP5.3.0\www\encuesta.php on line 28
Soy novato en la programacion, sepan entender aquellos experimentados...
Gracias!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda novato errores variables

Publicado por Diego Romero (14 intervenciones) el 13/04/2010 17:12:20
Tengo que adivinar cuál es la línea 22 en el código que has posteado aquí. Me parece que el primer error se refiere a la primera vez que llamas a mysql_result(), me parece que el error parte de la sentencia SQL mal formada.

No me creo que siendo tú novato hallas escrito este código tú solo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda novato errores variables

Publicado por Leon (3 intervenciones) el 13/04/2010 20:35:28
line 22
$votos = mysql_result(mysql_query($sql),0);
line 28
while ($opciones[$i]){

Muchas gracias por la respuesta. Tal cual comentaste, este codigo no lo escribi yo, sino que es una encuesta que busque en internet.
Estoy aprendiendo con un curso online la programacion, peor no logro darme cuenta de que se trata este error.
Desde ya, gracias nuevamente
Leonidas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda novato errores variables

Publicado por Diego Romero (14 intervenciones) el 14/04/2010 02:45:40
Exactamente.

Según la descripción de la función mysql_result(), ésta acepta como primer parámetro un recurso que es devuelto por mysql_query, pero mysql_query no devuelve un recurso cuando se ejecutan cualquiera de estas sentencias SQL: INSERT, UPDATE y DELETE. Por lo tanto es allí donde está tu error. Simplemente no puedes usar mysql_result cuando mysql_query ejecuta un INSERT porque los INSERT no devuelven recursos ('recurso' es un puntero al array que contiene registros que son el resultado de una consulta, con INSERT no estás devolviendo ningún registro, por tanto no tiene sentido devolver un recurso).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda novato errores variables

Publicado por leonida (3 intervenciones) el 18/04/2010 17:34:27
Muchisimas Gracias! Me ha quedado bien claro!
Salu2!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar