Problem mit DB Abfrage

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo Community,


    wenn ich ne DB-Query ausführe bekomme ich zwar die korrekte Anzahl an Rows zurück,
    beim fetch() hört er jedoch nach einer Zeile auf :S


    Hoffe ihr könnt mir helfen, hier mein Code:



    if(samp_mysql_query(statement) && samp_mysql_store_result())
    {
    new num_line;
    num_line=samp_mysql_num_rows(); //Korrekte Anzahl
    while ((num_line = samp_mysql_fetch_row(line)) > 0) //Bricht nach einem Schleifendurchgang ab
    {
    format(str, sizeof(str), "Num: %d", num_line);
    print(str);
    print(line);
    if (!strlen(line)) { continue; }
    samp_mysql_strtok(col1, "|", line);
    samp_mysql_strtok(col2, "|", "");
    samp_mysql_strtok(col3, "|", "");
    print("..."); //Wird noch ausgegeben
    }
    }




    edit: kann mir niemand helfen? :(

    Einmal editiert, zuletzt von Morpheus ()

  • >= 0
    Das ist sicherlich falsch,denn samp_mysql_fetch_row()


    num_line=samp_mysql_num_rows(); //Korrekte Anzahl
    while ((num_line = samp_mysql_fetch_row(line)) > 0) //Bricht nach einem Schleifendurchgang ab

    Verstehe hier den Zusammenhang nicht ganz.Wozu speicherst du erst in num_line die Anzahl an rows,wenn du sie danach in der while()-schleife überschreibst mit dem Eregnis von samp_mysql_fetch_row was sowieso nur 1 / true oder 0 /false ist.


    Bin jetzt nicht gut im Ungang mit MYSQL,glaube aber du müsstest es so machen:
    if(samp_mysql_query(statement) && samp_mysql_store_result())
    {
    new
    num_line=samp_mysql_num_rows(); //Korrekte Anzahl
    printf("pre num_line = %d",num_line);
    while ((num_line) && (samp_mysql_fetch_row(line))) {
    {
    printf("num_line = %d", num_line);
    if (!line[0]) {
    continue;
    }
    print(line); // würde crashen wenn nicht vorher abfrage wäre ob der string leer ist
    samp_mysql_strtok(col1, "|", line);
    samp_mysql_strtok(col2, "|", "");
    samp_mysql_strtok(col3, "|", "");
    print("..."); //Wird noch ausgegeben
    num_line--;
    }
    }