kostenloser Webspace werbefrei: lima-city


Problem mit MySQL-Query

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    azadoras

    azadoras hat kostenlosen Webspace.

    Moin Leute,

    es geht hier um folgendes Query:

    $query = \\\"SELECT * FROM tododone WHERE art = \\\'$art\\\' AND bearbeiter = \\\'$dbuser\\\' ORDER BY status\\\";


    Aus irgendeinem Grund, der mir nicht bekannt ist, ist die Variable \\\"$dbuser\\\" im Query immer leer.

    Schreibe ich allerdings:
    echo \\\"$dbuser\\\";
    , dann wird der richtige Wert ausgegeben.

    Vorhin habe ich es mal mit
    echo \\\"$query\\\";
    versucht, um herauszubekommen, worin der Fehler besteht. Die Ausgabe war dann wie folgt:

    SELECT * FROM tododone WHERE art = \\\'Rassen, Klassen & Gruppen\\\' AND bearbeiter = \\\'\\\' ORDER BY status
    
    hätte aber sein sollen:
    
    SELECT * FROM tododone WHERE art = \\\'Rassen, Klassen & Gruppen\\\' AND bearbeiter = \\\'Azadoras\\\' ORDER BY status

    Dazu muss noch gesagt werden, dass diese Abfrage in folgender Funktion zur Anwendung kommt, da $art mehrfach vorkommt, da es die Kategorie definiert:

    function show($art, $qrynr)
           {
    
    
    
             if($qrynr == \\\"1\\\")
             {
             $query = \\\"SELECT * FROM tododone WHERE art = \\\'$art\\\' AND bearbeiter = \\\'$dbuser\\\' ORDER BY status\\\";
             }
             if($qrynr == \\\"2\\\")
             {
             $query = \\\"SELECT * FROM tododone WHERE art = \\\'$art\\\' AND bearbeiter = \\\'$dbuser\\\' AND status = \\\'2\\\' ORDER BY timestamp\\\";
             }
             if($qrynr == \\\"3\\\")
             {
             $query = \\\"SELECT * FROM tododone WHERE art = \\\'$art\\\' AND bearbeiter = \\\'$dbuser\\\' AND status = \\\'3\\\' ORDER BY timestamp\\\";
             }
             if($qrynr == \\\"4\\\")
             {
             $query = \\\"SELECT * FROM tododone WHERE art = \\\'$art\\\' ORDER BY status\\\";
             }
             if($qrynr == \\\"5\\\")
             {
             $query = \\\"SELECT * FROM tododone WHERE art = \\\'$art\\\' AND status = \\\'1\\\' ORDER BY timestamp\\\";
             }
             if($qrynr == \\\"6\\\")
             {
             $query = \\\"SELECT * FROM tododone WHERE art = \\\'$art\\\' AND status = \\\'2\\\' ORDER BY timestamp\\\";
             }
             if($qrynr == \\\"7\\\")
             {
             $query = \\\"SELECT * FROM tododone WHERE art = \\\'$art\\\' AND status = \\\'3\\\' ORDER BY timestamp\\\";
             }
    
    
    
    
             $result = mysql_query($query);
    
             echo \\\"$query\\\";
             echo \\\"<h1>$art</h1>\\\";
             echo \\\"<table>\\\";
    		echo \\\"<tr bgcolor=\\\\\\\"E9DFCA\\\\\\\">\\\";
     		 echo \\\"<td><center>ToDo: </center></td>\\\";
                      echo \\\"<td><center>Erstellt von:</center></td>\\\";
                      echo \\\"<td><center>Einstelldatum:</center></td>\\\";
                      echo \\\"<td><center>Forschritt:</center></td>\\\";
                      echo \\\"<td><center>In Arbeit von:</center></td>\\\";
                      echo \\\"<td><center>Details:</center></td>\\\";
                      echo \\\"</tr>\\\";
    
             while($row = mysql_fetch_object($result))
                    {
                    $status = $row->status;
                    $id = $row->id;
    
                    if($status == \\\"1\\\") { $bg = \\\"#FF7F7F\\\"; }
                    if($status == \\\"2\\\") { $bg = \\\"#0080FF\\\"; }
                    if($status == \\\"3\\\") { $bg = \\\"#00E090\\\"; }
    
                    $datum = date(\\\"d.m.Y\\\",$row->timestamp);
                    $uhrzeit = date(\\\"H:i\\\",$row->timestamp);
    
                    echo \\\"<tr bgcolor=\\\\\\\"$bg\\\\\\\">\\\";
                    echo \\\"<td><center>$row->head</center></td>\\\";
                    echo \\\"<td><center>$row->ersteller</center></td>\\\";
                    echo \\\"<td><center>$datum, $uhrzeit Uhr</center></td>\\\";
                    echo \\\"<td><center>$row->fortschritt%</center></td>\\\";
                    echo \\\"<td><center>$row->bearbeiter</center></td>\\\";
                    echo \\\"<td><center><a href=\\\\\\\"index.php?site=tododone&action=details&id=$id\\\\\\\"><b>X</b></center></a></td>\\\";
                    echo \\\"</tr>\\\";
    
    
           	       }
    
                    echo \\\"</table><br><br>\\\";
           }


    Das hier ist dann die Schleife für die Ausgabe der Kategorien:

    $query = \\\"SELECT * FROM tododone_art\\\";
               $result = mysql_query($query);
    
               while($show = mysql_fetch_object($result))
                     {
                     show(\\\"$show->art\\\", \\\"$qrynr\\\");
                     }


    ich kapier es einfach nich, warum $dbuser in der MySQL-Abfrage aufeinmal immer leer ist. :>

    Bitte helft mir!

    Danke schonmal im Vorraus,
    Azadoras

    Beitrag geändert: 30.9.2007 14:24:17 von azadoras
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. soweit ich das bei meinem kurzen überflug gesehen habe ist das ganze in einer funktion d.h. alle variablen werden nicht von außerhalb in die funktion übernommen.

    in den ersten zeilen setzt du das qry zusammen, allerdings wird über diesen Zeile nie die variable $dbuser gesetzt. deshalb ist die variable leer.

    sollte $dbuser eine globale variable sein, dann mußt du innerhalb der funktion als erstes noch \\\"global $dbuser;\\\" schreiben. dadurch wird die globale variable $dbuser in die funktion übernommen und kann dort verwendet werden.

    Ansonsten halt den dbuser der funktion mit übergeben ;-)
    grüßle scout

    Beitrag geändert: 30.9.2007 15:00:57 von scout
  4. Autor dieses Themas

    azadoras

    azadoras hat kostenlosen Webspace.

    Ah, super, vielen Dank, genau daran hats gelegen!
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!