Anzahl der Datensätze aus Datenbank lesen

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
  • Hey,
    habe versucht, die Anzahl der Datensätze aus der MySQL Datenbank zu lesen.
    Mein Versuch:


    new result = mysql_query("SELECT * FROM tabelle");
    new menge = mysql_num_rows(result);
    printf("Counted: %d", menge);


    Es sind 2 Einträge vorhanden und es wird "-1" ausgegeben. Was mache ich falsch?

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

  • Wie wärs damit:

    new result = mysql_query("SELECT * FROM tabelle");
    mysql_store_result();
    new menge = mysql_num_rows(result);
    printf("Counted: %d", menge);


    Ich hoffe deine Tabelle heißt auch "tabelle"? ^^

  • Funktioniert, vielen Dank!


    edit:


    Das ausgelesene Integer müsste man nun ja eigentlich in ein Array übernehmen können.


    new test[menge][info] =
    {
    {blabla},
    {blabla}
    };


    Allerdings meint er:
    "Must be a constant expression:assumed zero"


    Was tun?

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

    Einmal editiert, zuletzt von ElDiabolo ()

  • NIEMALS die den ganzen inhalt der tabelle holen nur um die rows zu zählen! Das ist das unnötigste was du machen kannst.


    Machs so:
    [code]mysql_tquery(SQL, "SELECT COUNT(`id`) FROM `table`;", "Callback");


    public Callback()
    {
    new rows_in_der_db = cache_get_row_int(0, 0);
    }{/code]


    `id` ist dein Primärschlüssel

  • Hab ich anders gelöst. Danke trotzdem.
    Suche weiterhin nach einer Lösung meines letzten Posts.

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


  • Das ausgelesene Integer müsste man nun ja eigentlich in ein Array übernehmen können.


    Nein, das geht nicht. Arrays müssen mit Konstanten definiert werden, sie können nicht mit Variablen definiert werden.


    In Java geht das, in PAWN leider nicht.
    Du musst also zwangsweise den maximal möglichen Wert nehmen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Es wäre erstmal nicht schlecht zu erfahren was du genau machen möchtest.


    Eine andere Alternative wäre ein Dynamisches Array oder doch umzuschwenken auf das mysql r35+ plugin von maddinat0r da du hier die ausgelesenen Daten zwischen speichern im cache
    und somit ganz ohne query darauf zugreifen kannst.


    Ganz nebensächlich wie schon @Mellnik hier geschrieben hat wäre

    SQL
    SELECT COUNT(`id`) FROM `table`;

    die beste variante um die anzahl der einträge zu ermitteln.

  • Wäre sehr nett, wenn ihr mich mal in Skype adden würdet, habe einige Fragen dazu.
    Skype: eldiabolus96


    LG

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