MySQL Query mehrmals ausführen?

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
  • Moin,
    kann es sein, dass sich mehrere mysql_querys in einem public nicht vertragen?
    Habe oben in einem public eins und unten:



    mysql_query("SELECT COUNT(`ID`) FROM `enters`;");
    new jE = mysql_num_rows();


    //ZEUGS
    mysql_query("SELECT COUNT(`id`) FROM `dutypoints`;");
    new jD = mysql_num_rows();

    Scheinbar wird allerdings nur der Wert des unteren genommen, auch wenn bei "Zeugs" der obere Wert verwendet werden sollte.
    Hat jemand Tipps?

    ▬|██████|▬
    This is Nudelholz.
    Copy Nudelholz in your Signatur
    to make better Kuchens
    and other Teigprodukte!

  • Ich kenne mich mit PAWN zwar nicht aus, aber ich würde auf den ersten Blick das so mal versuchen:



    new query1 = mysql_query("SELECT COUNT(`ID`) FROM `enters`;");
    new jE = mysql_num_rows(query1);


    //ZEUGS
    new query2 = mysql_query("SELECT COUNT(`id`) FROM `dutypoints`;");
    new jD = mysql_num_rows(query2);


    Vielleicht bringts ja was :rolleyes:

    Trancebase, Dreamweaver und ab geht die Uzi.

  • Du kannst erst Funktionen, wie mysql_num_rows() verwenden, wenn du das Ergebnis der Abfrage storest.


    mysql_store_result() zwischen dem Query und dem mysql_num_rows().


    mysql_query("SELECT COUNT(`ID`) FROM `enters`;");
    mysql_store_result()
    new jE = mysql_num_rows();
    mysql_free_result()


    //ZEUGS
    mysql_query("SELECT COUNT(`id`) FROM `dutypoints`;");
    mysql_store_result()
    new jD = mysql_num_rows();
    mysql_free_result()

  • Dazu müsste ich free result aber in die schleife packen, oder würde das so passen, wie du es geschrieben hast?

    ▬|██████|▬
    This is Nudelholz.
    Copy Nudelholz in your Signatur
    to make better Kuchens
    and other Teigprodukte!


  • mysql_query("SELECT COUNT(`ID`) FROM `enters`;");
    mysql_store_result();
    new jE = mysql_num_rows();
    mysql_free_result();

    for(new d = 0; d != jE+1; d++)
    {}//Zeug



    mysql_query("SELECT COUNT(`id`) FROM `dutypoints`;");
    mysql_store_result();
    new jD = mysql_num_rows();
    mysql_free_result();

    for(new d = 0; d != jD+1; d++)
    {}//other zeug




    Bei beidem wird jeweils nur 0 und 1 für d durchlaufen, obwohl es bei enters 3 Einträge sind. Dutypoints stimmt.

    ▬|██████|▬
    This is Nudelholz.
    Copy Nudelholz in your Signatur
    to make better Kuchens
    and other Teigprodukte!

  • Dann schalte mal den MySQL Debug Modus an und poste dann hier was im Server_log steht.
    Außerdem kannst du mal versuchenbdas Semikolon am Ende des queries weg zu machen, vielleicht hilft das was. Bei einem query ist es unüblich ein Semikolon zu setzen.


  • Scheint also nicht ausgegeben zu werden.


    Hab die Query mal manuell eingegeben, da kommt 3 raus.


    edit: query

    ▬|██████|▬
    This is Nudelholz.
    Copy Nudelholz in your Signatur
    to make better Kuchens
    and other Teigprodukte!

    Einmal editiert, zuletzt von ElDiabolo ()

  • Danke, jetzt ist mir das auch klar warum das passiert.
    Du selektierst die ANZAHL der Zeilen (nicht die Zeilen!), da bekommst du ja logischerweise nur eine Zahl zurück, das heißt genau eine Zeile.


    Ändere
    new jE = mysql_num_rows();


    zu:
    new jE = mysql_fetch_int();


    Das Selbe für "jD" versteht sich.


    Dann sollte es eigentlich funktionieren.
    Wenn nicht, poste noch mal den Log.

  • mysql_query("SELECT COUNT(`id`) FROM `dutypoints`");
    new jD = mysql_num_rows();
    jD = mysql_fetch_int();

    for(new d = 0; d != jD+1; d++)


    Die oben genannte Schleife wird nun gar nicht mehr aufgerufen. Die andere aber schon. (das selbe mit jE)

    ▬|██████|▬
    This is Nudelholz.
    Copy Nudelholz in your Signatur
    to make better Kuchens
    and other Teigprodukte!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Du hast ja auch die falsche Zeile ersetzt. :pinch:


    mysql_query("SELECT COUNT(`ID`) FROM `enters`;");
    mysql_store_result();
    new jE = mysql_fetch_int();
    mysql_free_result();

    for(new d = 0; d != jE+1; d++) {
    //zeug
    }



    mysql_query("SELECT COUNT(`id`) FROM `dutypoints`;");
    mysql_store_result();
    new jD = mysql_fetch_int();
    mysql_free_result();

    for(new d = 0; d != jD+1; d++) {
    //zeug
    }