PHP / SQL abfrage problem ...

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • PHP / SQL abfrage problem ...

      Moin leute hab ein problem
      ich will den Account namen und den Account rang aus der "ACCOUNT_TBL_DETAIL" (von flyff) auslesen hab dazu vollgendes skript geschriben!


      Quellcode

      1. $mssql = mssql_connect(MSSQL_DSN, MSSQL_USER, MSSQL_PASS) or die($lang['error']);
      2. @mssql_query($mssql, 'USE [ACCOUNT_DBF]');
      3. $select1 = @mssql_query($mssql, 'SELECT account FROM [ACCOUNT_DBF].[dbo].[ACCOUNT_TBL_DETAIL] WHERE account =\''.$user.'\'');
      4. $select2 = @mssql_query($mssql, 'SELECT * FROM [ACCOUNT_DBF].[dbo].[ACCOUNT_TBL_DETAIL] WHERE [account] =\''.$user.'\'');
      5. echo 'Account: '.$select1['account'].'<br>';
      6. echo 'Rechte: '.$select2['m_chLoginAuthority'].'<br>';
      Ich weis nicht mehr weiter, er schreibt nur die echos hin aber nicht das was er eigendlich abfragt!

      Bitte um schnele hilfe!

      Lg, Demon
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • PHP-Quellcode

      1. $mssql = mssql_connect(MSSQL_DSN, MSSQL_USER, MSSQL_PASS) or die($lang['error']);
      2. @mssql_query($mssql, 'USE [ACCOUNT_DBF]');
      3. $select1 = @mssql_query($mssql, 'SELECT account FROM [ACCOUNT_DBF].[dbo].[ACCOUNT_TBL_DETAIL] WHERE account =\''.$user.'\'');
      4. $select2 = @mssql_query($mssql, 'SELECT * FROM [ACCOUNT_DBF].[dbo].[ACCOUNT_TBL_DETAIL] WHERE [account] =\''.$user.'\'');
      5. $blubb1 = mssql_fetch_assoc($select1);
      6. $blubb2 = mssql_fetch_assoc($select2);
      7. echo 'Account: '.$blubb1['account'].'<br>';
      8. echo 'Rechte: '.$blubb2['m_chLoginAuthority'].'<br>';
      Probier mal das. Ansonsten mssql_fetch_array (?)
    • Bei "mssql_fetch_assoc"

      kommt der error

      Warning: mssql_fetch_assoc() expects parameter 1 to be resource, null given in C:\xampp\htdocs\neu\index.php on line 189
      Warning: mssql_fetch_assoc() expects parameter 1 to be resource, null given in C:\xampp\htdocs\neu\index.php on line 190
      Account:
      Rechte:


      und bei "mssql_fetch_array" der


      Warning: mssql_fetch_array() expects parameter 1 to be resource, null given in C:\xampp\htdocs\neu\index.php on line 189
      Warning: mssql_fetch_array() expects parameter 1 to be resource, null given in C:\xampp\htdocs\neu\index.php on line 190
      Account:
    • Das ist doch nicht so schwer. Die Fehlermeldung sagt aus, dass der erste Parameter eine Resource sein muss, aber NULL übergeben wurde. Da wir den Inhalt von $select1 bzw. $select2 übergeben, heißt das, dass diese Variablen schon den "Wert" NULL beinhalten. Nun liegt es an dir, als Entwickler, zu prüfen, wieso die Variablen eine NULL beinhalten anstelle eine Resource. Dafür ist es natürlich notwendig, den Code auch zu verstehen.
      Woher kommt der Wert der Variablen? Richtig, es ist der Rückgabewert von mssql_query(). Was tun wir also? Richtig, wir schauen uns die Doku über mssql_query() an: PHP: mssql_query - Manual

      Wenn wir nun den Abschnitt "Rückgabewert" betrachten, fällt uns auf, dass die Funktion eine Resource, TRUE oder FALSE zurückgeben kann. Zugegeben, ich weiß nicht, wieso trotzdem NULL zurückgeben wird, aber ich würde an dieser Stelle einfach vermuten, dass da trotzdem etwas nicht stimmt. Merken wir also: Wenn mssql_query() keine Resource zurück gibt, stimmt etwas nicht. Das heißt also, dass du im Code auch prüfen solltest, ob wirklich eine Resource zurückgegeben wird; andernfalls solltest du den Fehler auch sichtbar machen. Aber gut, zu deinem Problem: Irgendetwas stimmt mit mssql_query() also nicht.

      Gehen wir hoch zur "Beschreibung", fällt noch etwas auf.
      mixed mssql_query ( string $query [, resource $link_identifier [, int $batch_size = 0 ]] )

      $select1 = @mssql_query($mssql, 'SELECT account FROM [ACCOUNT_DBF].[dbo].[ACCOUNT_TBL_DETAIL] WHERE account =\''.$user.'\'');

      Hm? Laut der Beschreibung muss zuerst das Query übergeben werden und erst dann die Verbindungskennung; du vertauscht das aber. Ob da der Fehler liegen könnte? Genau. :)
      Jetzt bleibt aber noch die finale Frage: Wieso gibt ein so kritischer Fehler keine Fehlermeldung? Hier wird schließlich ein String anstelle einer Resource übergeben, d.h. das ganze sollte auch in einer entsprechenden Fehlermeldung resultieren. Würde es im Grunde auch, doch diese Fehlermeldung unterdrückst du mit dem "@" Operator. Deshalb bleibt noch eine Frage übrig, die nur du beantworten kannst: Wieso steht der denn da überhaupt?
    • Well;261740 schrieb:

      Mich würde aber noch immer interessieren, was du dir bei dem "@"-Operator gedacht hast. (Nur, damit keine Anfänger auf dieses Thema stoßen und den Quelltext zum "Lernen" verwenden)


      mit @ kommen keine error und alls ich das @ davor gesetzt habe hab ich gedacht die errors wären weg und nicht das sie einfach nur hausgeblendert wurden bin noch nicht so die leuchte in sql ^^
    • ich würd dir einfach empfehlen, zu lesen, was dir hingeworfen wird.
      Sei es ein fehler oder ein tutorial.
      Bei Guides ist es tödlich, einfach den Code zu kopieren ohne ihn zu kapieren.
      Und statt dem @ gibts eine bessere Methode, die man auch nutzen könnte: die()
      Die sorgt bei so manchem Einsatzzweck noch dafür, dass das Script nicht woanders nen Fehler hervorrufen kann,
    • internetfreak;261763 schrieb:

      ich würd dir einfach empfehlen, zu lesen, was dir hingeworfen wird.
      Sei es ein fehler oder ein tutorial.
      Bei Guides ist es tödlich, einfach den Code zu kopieren ohne ihn zu kapieren.
      Und statt dem @ gibts eine bessere Methode, die man auch nutzen könnte: die()
      Die sorgt bei so manchem Einsatzzweck noch dafür, dass das Script nicht woanders nen Fehler hervorrufen kann,


      Ich habe ja nix kopirt ich habe es mir so zusamen gebaut wie meine kentnise zu sql zu dem zeit punkt waren ich wurde eines besseren belert und damit solte doch jetzt auch gut sein und es kann jetzt endlich geschlosen werden !
    • Es wird nix geschlossen, da ich kein Mod mehr bin und sich hoffentlich auch kein SMod darum kümmern wird.
      Wenn ich Mod wäre, würde ich Closerequests zumeist ignorieren, soviel sei gesagt.
      Und das aus einem einfachen Grund: Wird etwas geschlossen, so muss der nächste, der das Problem auch hat, nen neuen Thread eröffnen. -> Führt irgendwann zu nem Chaos
    • internetfreak;261771 schrieb:

      Es wird nix geschlossen, da ich kein Mod mehr bin und sich hoffentlich auch kein SMod darum kümmern wird.
      Wenn ich Mod wäre, würde ich Closerequests zumeist ignorieren, soviel sei gesagt.
      Und das aus einem einfachen Grund: Wird etwas geschlossen, so muss der nächste, der das Problem auch hat, nen neuen Thread eröffnen. -> Führt irgendwann zu nem Chaos


      Da ich der ersteller bin kann der theme auf meien wunsch geschlosen werden kenns du eigendlich die regeln du warst doch lange genung mod ich war nur 3 monate mod und kenn emich besser aus als du?