Ver Mensaje Individual
  #8 (permalink)  
Antiguo 30/12/2012, 18:20
Avatar de dontexplain
dontexplain
 
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: No se muestran los datos

En un principio tampoco entendí la finalidad de usar sizeof en ese contexto, pero te diré, sizeof sólo devuelve el tamaño en bytes del argumento, cosa que no tiene absolutamente nada que ver con la clase de bucle que deseas. En tu caso tendrías que usar mysql_num_rows

Código C++:
Ver original
  1. unsigned int num_rows =  mysql_num_rows(res);

que devuelve un entero sin signo con el número de registros.

Por otro lado, tampoco tiene sentido usar fetch_row solo una vez, se ha de usar continuadamente (una vez por cada fila) para mover el puntero de datos a la siguiente fila. En un principio y aplicando esos dos puntos

Código C++:
Ver original
  1. unsigned int num_rows =  mysql_num_rows(res);
  2. MYSQL_ROW row;
  3. for(k = 0 ; k < num_rows ; k++)
  4. {
  5. row = mysql_fetch_row(res);
  6. cout << row[1];
  7.  
  8. }

ya que row contiene la fila actual se puede referenciar a cada uno de los campos usando row[0] y row[1], para lo cual también podrías embeber otro bucle que recorra el número de columnas del resultado actual haciendo uso de mysql_num_fields.

Como apreciación (algo sabido de sobra por todos aquellos que hemos programado php), un bucle while al comprobar a cada ejecución la condición, se puede incluir la misma en un bucle while y por tanto sería equivalente

while(mysql_fetch_row(res))
{
...
}

En fin, es algo de imaginación y ya.

Como anotación adicional y sin ánimos de ofender quizás sería bueno que trataras de entender las cosas por tu propia cuenta.

Deberías leer la documentación y tratar de entenderla. (acá).
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 31/12/2012 a las 04:32