Pascal Bovet: MySQL-Abfrage mit Variable klappt nicht

Hallo,
ich habe ein Problem mit der Übergabe einer Variable für eine MySQL-Abfrage.

srap_user sieht wie folgt aus:
id, username, gruppe (zahl die auf eine gruppe der db srap_gruppe verweist)
srap_gruppe sieht so aus:
id, gruppe

Folgender Code klappt:
$abfrage = @mysql_query("SELECT g.gruppe FROM srap_gruppe g, srap_user u WHERE(u.gruppe = g.id) and (u.username = 'Pasci')");
 while($row = @mysql_fetch_object($abfrage))
        {
        echo $row->gruppe;
        }

Wieso aber klappt folgender code nicht??
$username2 = "Pasci";
$abfrage = @mysql_query("SELECT g.gruppe FROM srap_gruppe g, srap_user u WHERE(u.gruppe = g.id) and (u.username = $username)");
while($row = @mysql_fetch_object($abfrage))
        {
        echo $row->gruppe;
        }

Ich hoffe jemand kann mir helfen..
Besten Dank,
Gruss Pascal

  1. Die zweite Abfrage lautet natürlich
    $username2 = "Pasci";
    $abfrage = @mysql_query("SELECT g.gruppe FROM srap_gruppe g, srap_user u WHERE(u.gruppe = g.id) and (u.username = $username2)");
    while($row = @mysql_fetch_object($abfrage))
            {
            echo $row->gruppe;
            }

    Hallo,
    ich habe ein Problem mit der Übergabe einer Variable für eine MySQL-Abfrage.

    srap_user sieht wie folgt aus:
    id, username, gruppe (zahl die auf eine gruppe der db srap_gruppe verweist)
    srap_gruppe sieht so aus:
    id, gruppe

    Folgender Code klappt:
    $abfrage = @mysql_query("SELECT g.gruppe FROM srap_gruppe g, srap_user u WHERE(u.gruppe = g.id) and (u.username = 'Pasci')");
     while($row = @mysql_fetch_object($abfrage))
            {
            echo $row->gruppe;
            }

    Wieso aber klappt folgender code nicht??
    $username2 = "Pasci";
    $abfrage = @mysql_query("SELECT g.gruppe FROM srap_gruppe g, srap_user u WHERE(u.gruppe = g.id) and (u.username = $username)");
    while($row = @mysql_fetch_object($abfrage))
            {
            echo $row->gruppe;
            }

    Ich hoffe jemand kann mir helfen..
    Besten Dank,
    Gruss Pascal

    1. Die zweite Abfrage lautet natürlich
      $username2 = "Pasci";
      $abfrage = @mysql_query("SELECT g.gruppe FROM srap_gruppe g, srap_user u WHERE(u.gruppe = g.id) and (u.username = $username2)");
      while($row = @mysql_fetch_object($abfrage))
              {
              echo $row->gruppe;
              }

      setze mal $username2 im query-string auch in single-quotes. dann müßte es klappen.

      1. habe ich auch probiert.. aber leider vergebens..
        hoffe du hast noch andere tipps..

        gruss und besten dank Pascal

        Die zweite Abfrage lautet natürlich
        $username2 = "Pasci";
        $abfrage = @mysql_query("SELECT g.gruppe FROM srap_gruppe g, srap_user u WHERE(u.gruppe = g.id) and (u.username = $username2)");
        while($row = @mysql_fetch_object($abfrage))
                {
                echo $row->gruppe;
                }

        setze mal $username2 im query-string auch in single-quotes. dann müßte es klappen.

    2. Moin!

      Die zweite Abfrage lautet natürlich
      $username2 = "Pasci";
      $abfrage = @mysql_query("SELECT g.gruppe FROM srap_gruppe g, srap_user u WHERE(u.gruppe = g.id) and (u.username = $username2)");
      while($row = @mysql_fetch_object($abfrage))
              {
              echo $row->gruppe;
              }

      Du verwendest @-Zeichen, um die Fehlermeldungen der jeweils nachfolgenden Befehle zu unterdrücken, und fragst uns dann hier, warum es "nicht geht"?

      Mach die @ mal weg. Dann siehst du, wo es kneift.

      Und dann mach mal Debugging-Ausgaben rein, dann sagt dir die Datenbank nämlich auch, was sie Scheiße findet, und wir alle müssen nicht blind raten (was insbesondere Mist ist, weil du mit Sicherheit noch mehr Tippfehler in deinen Code eingebaut hast, der hier gepostet ist, so dass der Originalfehler mit Sicherheit schon rausgefallen ist - Copy & Paste ist echt besser).

      http://www.dclp-faq.de/q/q-sql-fehlerbehandlung.html lesen!

      - Sven Rautenberg

      --
      SELFTREFFEN 2003 - http://selftreffen.kuemmi.ch/
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      1. Sehr geehrtet Herr Rautenberg,

        Erstmals möchte ich mich entschuldigen für all die User, die sich nicht so gut auskennen wie SIE. Es tut mir leid, aber ich dachte in Foren stellt man Fragen weil man nicht weiss wie etwas funktioniert oder wo der Fehler steckt. Aber anscheinend sollte man in dem Themenbereich, wo man die Frage stellt so gut sein, dass man die Frage nicht stellen muss..

        Du verwendest @-Zeichen, um die Fehlermeldungen der jeweils nachfolgenden Befehle zu unterdrücken, und fragst uns dann hier, warum es "nicht geht"?

        Da ich leider ein Newbie in Datenbank-Programmierung bin, habe ich das Internet nach Lösungen durchforscht und den Code mit dem @ Zeichen gefunden. Ich konnte ja nicht wissen, was das @ hier für eine Funktion hat.

        (was insbesondere Mist ist, weil du mit Sicherheit noch mehr Tippfehler in deinen Code eingebaut hast, der hier gepostet ist, so dass der Originalfehler mit Sicherheit schon rausgefallen ist - Copy & Paste ist echt besser).

        Aber nur weil mir EIN!! Tippfehler unterlaufen ist, heisst das nicht, das ich so wenig fortgeschritten, um nicht zu sagen dumm bin, dass ich die Copy - Paste Variante nicht genutzt habe. Jedoch lasse ich mich gerne belehren, falls noch mehr Tippfehler vorhanden sein sollten. Ich habe für beide das Gleiche genutzt, jedoch im zweiten die Variable eingefügt, wobei mir leider ein unverzeilicher Tippfehler unterlaufen ist. Möchte mich dafür nochmal aufrichtig entschuldigen.

        Dennoch möchte ich IHNEN für ihre sehr aussagekräftige, mit einer hohen Informationsdichte versehenen, Antwort danken. Fasst man zusammen kommt man zum Schluss "Mit dem @-Zeichen werden Fehlermeldungen unterdrückt!" Vielen Dank!!!

        Hochachtungsvoll
        Pascal

  2. $username2 =

    ----------------------------------------------------------------

    
    > $abfrage = @mysql\_query("SELECT g.gruppe FROM srap\_gruppe g, srap\_user u WHERE(u.gruppe = g.id) and (u.username =  
      
    \----------------------------------------------------------------  
      
    $username)");  
      
      
    liegt es vielleicht daran, daß die beiden variablen für den benutzernamen nicht den gleichen namen haben?
    
    1. Hallo,
      schau mal http://forum.de.selfhtml.org/?t=54543&m=303393

      Dies ist nur ein typo im Forumbeitrag..

      Gruss Pascal

      $username2 =


      > $abfrage = @mysql\_query("SELECT g.gruppe FROM srap\_gruppe g, srap\_user u WHERE(u.gruppe = g.id) and (u.username =  
        
      ----------------------------------------------------------------  
        
      $username)");  
        
        
      liegt es vielleicht daran, daß die beiden variablen für den benutzernamen nicht den gleichen namen haben?