MYSQL Query Problem bei mehrfachem aufruf



  • Moin,

    ich versuche gerade vergebens meine Daten aus einer Tabelle auszulesen. Die Datenbank besteht aus mehrere Tabellen diese will ich einfach hintereinander wech auslesen.

    Ich habe leider mein orignal Script auf der Arbeit vergessen 😞 aber es sieht so in der art aus:

    //MYSQL Verbinden
    			MYSQL  *my;
       			/* Handle initialisieren */
       			my = mysql_init(NULL);
       			if(my == NULL) {
          				fprintf(stderr, " Initialisierung fehlgeschlagen\n");
          				return EXIT_SUCCESS;
       			}
    
    			mysql_real_connect (
            			my,   /* Zeiger auf MYSQL-Handler */
            			"127.0.0.1", /* Host-Name */
            			"root", /* User-Name */
            			"xxxx", /* Passwort für user_name */
            			"xxxx",  /* Name der Datenbank */
            			0,     /* Port (default=0) */
            			NULL,  /* Socket (default=NULL) */
            			0      /* keine Flags */  );
    
    			//MYSQL Aufruf
    			char statement[512] ="SELECT * FROM `Z1` WHERE 1";
    			mysql_real_query(my, statement, strlen(statement));
    
       			MYSQL_RES *result = mysql_store_result(my);
      			int num_fields = mysql_num_fields(result);
    			MYSQL_ROW row;
      			row = mysql_fetch_row(result);
    

    Das Funktioniert auch danach sotiere ich per While Schleife die Daten in die Array.
    Aber wenn ich jetzt diesen aufruf:

    //MYSQL Aufruf
    			char statement_1[512] ="SELECT * FROM `Z2` WHERE 1";
    			mysql_real_query(my, statement_1, strlen(statement_1));
    
       			MYSQL_RES *result_1 = mysql_store_result(my);
      			int num_fields_1 = mysql_num_fields(result_1);
    			MYSQL_ROW row_1;
      			row_1 = mysql_fetch_row(result_1);
    

    Wenn ich gleich danach den Code noch mal einsetzte natürlich mit neuen row result usw Variablen, aber mit dem gleichn Handle(my), bekomme ich einen fehler zurüch der Sytax des SQL wäre falsch?!

    Ist auch so wenn ich den Sytax der ersten Anfrage kopieren 😞

    Warum ist das so? Darf man nicht 2 mal hinter einander Anfragen????

    Wäre Super wenn mir da jemand ne Tip geben könnte

    Lars



  • So hier mein original Code:

    //MYSQL Verbinden
    			//Handle initialisieren
       			my = mysql_init(NULL);
       			if(my == NULL) 
    			{
          				fprintf(stderr, " Initialisierung fehlgeschlagen\n");
          				return EXIT_SUCCESS;
       			}
    
    			mysql_real_connect (
            			my,   /* Zeiger auf MYSQL-Handler */
            			"127.0.0.1", /* Host-Name */
            			"root", /* User-Name */
            			"000", /* Passwort für user_name */
            			"000",  /* Name der Datenbank */
            			0,     /* Port (default=0) */
            			NULL,  /* Socket (default=NULL) */
            			0      /* keine Flags */  );
    
    ///////////////////////MYSQL Aufruf Tabelle Leistungsdaten
    			//Aufruf der Leistungsdaten
    			char aufruf[512] ="SELECT * FROM `Leistungsvorgabe` WHERE 1";
    			mysql_real_query(my, aufruf, strlen(aufruf));
    			MYSQL_RES *result = mysql_store_result(my);
    			int i;
    			int num_fields = mysql_num_fields(result);
    			MYSQL_ROW row;
    
    			//Daten Arrays
    			float Datum[100];
    			int Uhrzeit[100];
    			float Leistung[100];
    
    			i=0;
    
    			//Aus der Tabelle in die Arrays
    			while ((row = mysql_fetch_row(result)))
    			{
    				unsigned long *lengths;
    				lengths = mysql_fetch_lengths(result);
    
    				//Char zu Float
    				Datum[i] = atof(row[1]);
    				Leistung[i] = atof(row[3]);
    
    				//Char zu int
    				Uhrzeit[i] = atoi(row[2]);
    
    				i++;
    
    			}
    
    			//Anzahl Datensätze speichern
    			int Daten_L = i;
    
    //////////////////////////////////////////////////////////
    ///////////////////////MYSQL Aufruf Tabelle Leistungsdaten
    			//Aufruf der Zählerdaten
    			char aufruf2[512] ="SELECT * FROM `Leistungsvorgabe` WHERE 1";
    
    			err = mysql_real_query(my, aufruf, strlen(aufruf) > 0);
    			if (err > 0)
    			{
    				break;
    			}
    			MYSQL_RES *result2 = mysql_store_result(my);
    
    			int num_fields2 = mysql_num_fields(result2);
    			MYSQL_ROW row2;
    
    			//Daten Arrays
    			float Bezug[100];
    			int Addr[100];
    			float Liefer[100];
    
    //			i=0;
    
    			//Aus der Tabelle in die Arrays
    			//while ((row2 = mysql_fetch_row(result2)))
    			//{
    				//unsigned long *lengths2;				
    				//lengths2 = mysql_fetch_lengths(result2);
    
    				//Char zu Float
    				//Bezug[i] = atof(row[2]);
    				//Liefer[i] = atof(row[3]);
    
    				//Char zu int
    				//Addr[i] = atoi(row[1]);
    
    				//i++;
    			//}
    			//Anzahl Datensätze speichern
    //			int Zaehler_L = i;
    
    ///////////////////////////////////////////////////////
    

    Und da bekomm ich die Meldung das der Syntax einen fehler hat 😞



  • Athlonxp schrieb:

    Und da bekomm ich die Meldung das der Syntax einen fehler hat 😞

    Wann kommt wo welche Fehlermeldung?
    Bitte den genauen Wortlaut.

    Wenn der Compiler meckert bist du hier richtig.
    Wenn die Meldung von MySQL kommt sollte das Datenbankenunterforum mehr Hilfe bieten.

    Das Beispiel ist nicht compilierbar, da die Hälfte fehlt.
    Erstell mal ein vollständiges minimales Programm, bei dem der Fehler gerade noch autritt.

    In Zeile 11-18 nutzt du den Blockkomentar, obwohl du nur den Rest der Zeile kommentierst und in Zeile 76-94 hast du aus jeder Zeile einen Zeilenkommentar gemacht 😕


Anmelden zum Antworten