como guardo la informacion de SELECT y usarla en otro lado usando MySQL y C?

Iniciado por Belial & Grimoire, 5 Febrero 2011, 23:16 PM

0 Miembros y 1 Visitante están viendo este tema.

Belial & Grimoire

hola

tengo una duda con este codigo, estaba estudiando como conectarme en C con mysql y ya entendi, pero ahora quise tomar la informacion de tabla con SELECT * FROM y si todo lo hago desde el mismo while, me aparece bien todo, pero no logro hacer que pueda guardar la informacion y despues usarla en otra parte del codigo

Les dejo el codigo, asi como lo pongo me funciona pero solo 1 informacion... pero si a esto

printf("%d %s\n",i , first[2]);

le pongo 1, me aparece esto ("") y si le pongo 0 me dice (Null).

alguien sabe como puedo tomar la informacion de SELECT y usarla en alguna zona distinta, por cierto lo estoy haciendo en linux

#include <mysql.h>
#include <stdio.h>

MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *id;
char *first[5];
char *last;
int i = 0;

int main(){

char *server = "localhost";
char *user = "root";
char *password = "toor";
char *database = "database";

conn = mysql_init(NULL);

if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)){
fprintf(stderr, "%s\n", mysql_error(conn));}

if (mysql_query(conn, "show tables")){
fprintf(stderr, "%s\n", mysql_error(conn));}

res = mysql_use_result(conn);

printf("Base de datos en mysql: \n");
while((row = mysql_fetch_row(res)) != NULL){
printf("%s \n", row[0]);}

if (mysql_query(conn, "SELECT * FROM contacts")){
fprintf(stderr, "%s\n", mysql_error(conn));}

res = mysql_use_result(conn);

/////////////////////////////////////////////////////// ESTO ES LO QUE NO ME FUNCIONA////////////////////////

while((row = mysql_fetch_row(res)) != NULL){
i = i + 1;
first[i] = row[i];

}

printf("%d %s\n",i , first[0]);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
mysql_free_result(res);
mysql_close(conn);

return 0;

}


salu2
.                                 

Shell Root

#include <mysql.h>
#include <stdio.h>

int main(){
   MYSQL *sCNN;
   MYSQL_sRes *sRes;
   MYSQL_sRow sRow;

   char *sServer = "127.0.0.1";
   char *sUser = "root";
   char *sPassword = "****";
   char *sDatabase = "mysql";
   
   sCNN = mysql_init( NULL );
   
   if( !mysql_real_sCNNect( sCNN, sServer, sUser, sPassword, sDatabase, 0, NULL, 0 ) ){
      fprintf( stderr, "%s\n", mysql_error( sCNN ) );
      exit( 1 );
   }

   if( mysql_query( sCNN, "show tables" ) ){
      fprintf( stderr, "%s\n", mysql_error( sCNN ) );
      exit( 1 );
   }

   sRes = mysql_use_sResult( sCNN );
   
   printf( "MySQL Tables in mysql sDatabase:\n" );
   while( ( sRow = mysql_fetch_sRow( sRes ) ) != NULL )
      printf( "%s \n", sRow[0] );

   mysql_free_sResult( sRes );
   mysql_close( sCNN );
 
  return 0;
}
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Belial & Grimoire


pero de esa forma me parece todos los registro... y solo quiero guardarlos y utilizar el que necesite... habra otra forma?
.