Mysql / System

Tags:    c++

Hej..

Jeg er ved at prøve mig frem med c++ og mysql. men det er sku ikke helt så let som det lige virke til..
så vil gerne have lidt hjælp..

jeg køre en while hvor den skriver alle name og id ud fra en tabel
men jeg vil så gerne have den til at blande det sammen med lidt mere.

Det skal være sådan at den henter alle name og id fra min tabel og bruger dem to til at køre et andet linux script på min server.
har tænkt mig det skal se sådan ud.
system(echo '<name fra tabek>'|/root/status --id <id fra tabel>;)
nå den så har køret det skal den gå ind og updater et felt ' disabled' og rette værdien til 1.

Håber der en som kan hjælpe mig.

Desvære har jeg ikke rigtig nogle point at gi, men håber der er en vendelig person som vil hjælpe mig.


- - - - - - - - - - - - - - - - - -
ICQ : 135939182
HP : http://www.KageNet.dk



5 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Hvis du ved hvordan man hiver navn og id ud fra databasen kunne du lave en funktion:

Fold kodeboks ind/udKode 


Og så kalde den for hver navn/id

Jeg ved ikke noget om databaser.



Hej....

Jeg har fundet noget på internet om det og det virkr skam også fint nok, men ved ikke lige hvordan det skal passes sammen med det andet kode.

#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
#include "/usr/include/mysql/mysql.h"
int main()
{
/* connection */
MYSQL *handle;
/* query result */
MYSQL_RES *result;
/* række i query result */
MYSQL_ROW row;
/* antal felter i query result */
int nfields;
/* pointer til array med felt længder i række i query resuult */
int *l;
/* counter */
int i;
/*
* åben connection til:
* server = "localhost"
* username = "root"
* password = ""
* database = "Test"
* port = 0 (bliver opfattet som default 3306)
*/
handle= mysql_init(NULL);
if(handle == NULL)
{
printf("MySQL error: %s", mysql_error(handle));
exit(1);
}
if(!mysql_real_connect(handle, "localhost", "root", "", "test", 0, NULL, 0))
{
printf("MySQL error: %s", mysql_error(handle));
exit(1);
}
/* udfør query */
mysql_query(handle, "SELECT name FROM test");
result = mysql_store_result(handle);
/* print resultat af query */
nfields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result))) {
l = (int *)mysql_fetch_lengths(result);
for (i=0; i<nfields; i++) {
printf(" %.*s", row ? l : 4, row ? row : "NULL");
}
printf("\\n");
}
/* luk query */
mysql_free_result(result);
/* luk connection */
mysql_close(handle);
return 0;
}

- - - - - - - - - - - - - - - - -
ICQ : 135939182
HP : http://www.KageNet.dk




Jeg kan ikke sql men,

Her må man læse et felt i db'en:
while ((row = mysql_fetch_row(result))) {
row må være en streng, men ikke 0 termineret (?)

Her læser man længden af row:
l = (int *)mysql_fetch_lengths(result);

Her udskriver man strengen:
printf(" %.*s", row ? l : 4, row ? row : "NULL");

Jeg forstår dog ikke at man bruger l, det er en pointer, jeg ville forvente *l

Du kan lægge row over i en char[] og nul-terminere den.



Jaa... Det kan jeg også ca få det til....men det at sætte det sammen går ikke så godt..

Nogle som kan hjælpe..



Er der inden som kan få tid til at lave det til mig... ?
hvis du har krav så skrive endelig..
- - - - - - - - - - - - - - - - - -
HP : http://www.KageNet.dk



t