MySQL überpüfen ob Wert 1 ist

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,
    hab etwas Probleme mit MySQL und hab auch schon viel gegoogelt aber leider nicht gefunden. Ich will abfragen ob in der Tabelle 'houses' und in der Spalte 'forsale' 1 steht.
    Sollte ungefähr so aussehen :
    if((hier die Abfrage ob der Wert = 1ist) return SendClientMessage(playerid,COLOR_RED, " This house is not for sale");
    Und ich suche auch nach einer Seite auf der alle MySQL "Befehle" + Parameter aufgeführt werden.
    *edit* Wichtig ist auch das in der Abfrage das ans Ende kommt : NULL WHERE `hID` = '%i',hausInfo[i][hID]

  • Schau dir die Wiki an.


    Lade den Wert aus der Tabelle und Speicher ihn in einer Variable ab.
    Mit der Variable kannst du dann über prüfen ob der Wert 1 ist.


  • Was für ein MySQL Plugin verwendest du? Gibt ja unterschiedliche.


    Ist gerade etwas das Problem weiß ich nicht mehr genau ich glaube das von BlueG, ich hab nur noch den Downloadlink : https://code.google.com/p/sa-mp-mysql-plugin/




    @'Weihnachtsbaum ich bekomm das Auslesen ja nicht richtig hin, das ist mein Problem und aus Wiki wurde ich nicht viel schlauer.
    Ich habe mir mal die Include angeschaut und ein Native gefunden, kann man das dazu benutzen ?
    native cache_get_data(&num_rows, &num_fields, connectionHandle = 1);
    Und wenn so ?
    cache_get_data(`houses`,`forsale`, dbhandle)

    Einmal editiert, zuletzt von Oskaar1994 ()

  • Schau dir die Wiki an.


    Lade den Wert aus der Tabelle und Speicher ihn in einer Variable ab.
    Mit der Variable kannst du dann über prüfen ob der Wert 1 ist.


    Schau dir die Wiki an.


    Lade den Wert aus der Tabelle und Speicher ihn in einer Variable ab.
    Mit der Variable kannst du dann über prüfen ob der Wert 1 ist.


    Schau dir die Wiki an.


    Lade den Wert aus der Tabelle und Speicher ihn in einer Variable ab.
    Mit der Variable kannst du dann über prüfen ob der Wert 1 ist.


    Ich würd dir Raten als MySQL-Anfänger die MySQL Version R5/R6 zu Benutzen oder dich erstmal Vernünftig mit Threaded-Querys auseinander setzen


    Bin ich auch dabei aber kannst du mir bitte mit der Abfrage helfen ?

  • new lQuery[128];
    format(lQuery, sizeof(lQuery), "SELECT * FROM houses WHERE hID = '%i' AND forsale = '1' ", hausInfo[i][hID]);
    mysql_query(lQuery);mysql_store_result();
    if(mysql_num_rows()) {
    // -> EINTRAG VORHANDEN
    }
    mysql_free_result();
    Soweit verstanden? Kurze Erklärung: Es werden alle Informationen von dem Haus selectet, dessen ID du übergeben hast und bei dem forsale 1 ist. mysql_num_rows überprüft dann, ob Ergebnisse zurückgekommen sind. Wenn nicht, ist das Haus nicht zu verkaufen.


  • Irgendwie erkennt Pawno den Integer nicht richtig und meckert wegen dem %i undefined Symbol. Komisch.

  • Poste doch mal deine Funktion + Fehlermeldungen, dann können wir dir besser weiterhelfen.


    Ich habe es jetzt noch nicht in die Funktion selber aber ein Test Command gemacht. Und beim zweiten Fehler weiß ich wie ich ihn löse weil das an der Mysql Version/ der Native liegt.
    CMD:test(playerid, params[])
    {


    new lQuery[128];
    format(lQuery, sizeof(lQuery), "SELECT * FROM houses WHERE hID = '%i' AND forsale = '1' ", hausInfo[i][hID]);//1440
    mysql_query(lQuery);mysql_store_result();
    if(mysql_num_rows()) {
    SendClientMessage(playerid,COLOR_RED,"Test");
    }
    mysql_free_result();


    return 1;
    }


    Die Fehler :
    BeThePilot.pwn(1440) : error 017: undefined symbol "i"
    BeThePilot.pwn(1441) : error 035: argument type mismatch (argument 1)

  • Mach aus dem %i mal ein %d. Für den Tag Missmatch musst du deine Connection einfügen (du hast ja irgendwoe xyz = mysql_connect), z.B. mysql_query(xyz, lQuery)


    Tag Missmatch habe ich schon gelöst, das andere probier ich jetzt ;)
    *edit* Tag Missmatch kommt doch nicht vom %i sondern von meinem hinteren i weil es eigentlich für eine Schleife vorgesehen ist.
    Und danke für die Hilfe :) Noch eine Frage. Also wenn nichts im Feld steht kann ich es nicht kaufen und mit einer 1 schon ,oder ?