[PHP] Mysql daten vergleichen

10/13/2011 16:03 .NoThx#1
Moin, ich möchte einen Wert (text) mit einen anderen wert Vergleichen (der im Script ist) jedoch kommt nur der fehler, das Ich nicht berechtigt bin (sog)

Code:
Code:
   $verbindung = mysql_connect("localhost", "web" , "pw")
or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("wdata") or die ("Datenbank konnte nicht ausgewählt werden");
$abfrage = "SELECT IGactiv FROM login WHERE username LIKE '$name' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
$yes = "yes"
 if ($row == "yes"){
   echo "Hallo, ".$_SESSION["username"];

   echo " Userpanel: <a href=\"market.php\">Marktplatz</a> <a href=\"gssell.php\">Grundstücke Verkaufen</a> <a href=\"rights.php\">Rechte Verwalten</a> <a href=\"options.php\">Optionen</a>";

   
   
   
   
   }else{
   echo "Dein Account wurde nicht ingame Aktiviert! Bitte akiviere ihn!";
   }
Nun sagt er, das $row nicht yes ist, aber in der DB steht yes :o

wo ist mein fehler?
Mfg
.NoThx
10/13/2011 16:29 Che#2
Quote:
Originally Posted by .NoThx View Post
Moin, ich möchte einen Wert (text) mit einen anderen wert Vergleichen (der im Script ist) jedoch kommt nur der fehler, das Ich nicht berechtigt bin (sog)

Code:
PHP Code:
   $verbindung mysql_connect("localhost""web" "pw")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("wdata") or die ("Datenbank konnte nicht ausgewählt werden");
$abfrage "SELECT IGactiv FROM login WHERE username LIKE '$name' LIMIT 1";
$ergebnis mysql_query($abfrage);
$row mysql_fetch_object($ergebnis);
$yes "yes"
 
if ($row == "yes"){
   echo 
"Hallo, ".$_SESSION["username"];

   echo 
" Userpanel: <a href=\"market.php\">Marktplatz</a> <a href=\"gssell.php\">Grundstücke Verkaufen</a> <a href=\"rights.php\">Rechte Verwalten</a> <a href=\"options.php\">Optionen</a>";

   
   
   
   
   }else{
   echo 
"Dein Account wurde nicht ingame Aktiviert! Bitte akiviere ihn!";
   } 
Nun sagt er, das $row nicht yes ist, aber in der DB steht yes :o

wo ist mein fehler?
Mfg
.NoThx
Aaaaalso:
erstmal
PHP Code:
$yes "yes" 
hier fehlt das semikolon ( ; )
und außerdem
PHP Code:
mysql_fetch_object 
les das manual mal bisschen genauer...
$row kann garnicht den wert der spalte IGactiv haben, aber $row->IGactiv hat den wert von der spalte IGactiv an der stelle, an der gelesen wird...

nebenbei würde ich persöhnlich empfehlen für eine "select-where-abfrage" nicht mysql_fetch_object sondern mysql_fetch_row verwenden, denn dann kannst du $row behandeln wie ein array; $row[0] ist demnach der erste eintrag und sollte bei deiner abfrage auch der einzige wert im array sein und somit "yes" sein
10/13/2011 17:13 .NoThx#3
Leider hat sich nix verändert.
10/13/2011 17:26 Che#4
uhm dann weiß ich auch erstmal nicht weiter o.O was mir gerade noch auffält:
Code:
[COLOR=#000000][COLOR=#DD0000]WHERE username LIKE '$name'[/COLOR][/COLOR]
warum "LIKE"? sollte das nicht
Code:
[COLOR=#000000][COLOR=#DD0000]WHERE username = '$name'[/COLOR][/COLOR]
heißen?

außerdem würde ich die namen der einzelnen spalten mit " ` " versehen also nicht username sondern `username` (ist das symbol, dass kommt wenn man shift+´ und danach leerzeichen drückt (taste ist neben dem scharfen ß))
10/13/2011 17:36 NotEnoughForYou#5
PHP Code:
  $verbindung mysql_connect("localhost""web" "pw")
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db("wdata") or die ("Datenbank konnte nicht ausgewählt werden");
$abfrage "SELECT IGactiv,username FROM login WHERE username='$name' LIMIT 1";
$ergebnis mysql_query($abfrage);
$row mysql_fetch_object($ergebnis);
$yes "yes";
 if (
$row->IGactiv == "yes"){
   echo 
"Hallo, ".$_SESSION["username"];

   echo 
" Userpanel: <a href=\"market.php\">Marktplatz</a> <a href=\"gssell.php\">Grundstücke Verkaufen</a> <a href=\"rights.php\">Rechte Verwalten</a> <a href=\"options.php\">Optionen</a>";

   
   
   
   
   }
else{
   echo 
"Dein Account wurde nicht ingame Aktiviert! Bitte akiviere ihn!";
   } 
Soweit ich verstanden habe soll yes in der Spalte IGactive sein oder?
10/13/2011 17:38 .NoThx#6
ja soll in der IGactiv sein und ka :D ände rich ma :p
10/13/2011 17:40 NotEnoughForYou#7
Würde aber nicht mysql_fetch_object sondern mysql_fetch_array/assoc/row verwenden. Ist schneller & performance freundlicher.
10/13/2011 17:47 .NoThx#8
Ja okay, das änder ich dann, aber wo ist der fehler?
10/13/2011 17:54 NotEnoughForYou#9
was steht denn in der Spalte IGactive ? geht das was ich gepostet hab nicht ?
10/13/2011 17:57 .NoThx#10
Geht nicht in der spalte steht exat das:
[Only registered and activated users can see links. Click Here To Register...]
10/13/2011 21:36 NotEnoughForYou#11
hab es dir ja jetzt über skype gesagt ;)
10/14/2011 12:20 .NoThx#12
Jap, Danke dafür, wenn Jemand Mysql In java kann, kann mir evtl. bei der Methode helfen:
Die methode soll das ergebnis von der Mysql Abfrage zurück geben

Code:
public static ResultSet mySQLConnection(String Tabelle, String Spalte, String wert,String TYPE,String nameplayer) { 
    	 ConfigManager cm = new ConfigManager();
        // Diese Eintraege werden zum 
        // Verbindungsaufbau benoetigt. 
        final String hostname = cm.mysqlHost(); 
        final String port = cm.mysqlPort(); 
        final String dbname = cm.mysqlDB(); 
        final String user = cm.mysqlUser(); 
        final String password = cm.mysqlPassword(); 
	
        Connection conn = null; 
	
        try { 
	    System.out.println("* Treiber laden"); 
      	    Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
        } 
        catch (Exception e) { 
            System.err.println("Unable to load driver."); 
            e.printStackTrace(); 
        } 
        try { 
	    System.out.println("* Verbindung aufbauen"); 
	    String url = "jdbc:mysql://"+hostname+":"+port+"/"+dbname; 
	    conn = DriverManager.getConnection(url, user, password); 
	    if (TYPE == "SELECT"){
	     ResultSet statment = conn.createStatement().executeQuery("SELECT * FROM "+Tabelle+" WHERE "+Spalte+" = '"+nameplayer+"'");
	     String stmt=statment.getString(1);
	    return statment;
	    }else if(TYPE == "INSERT"){
	    	/*
	    	 * INERT STUFF
	    	 */
	    }
	    
	    System.out.println("* Datenbank-Verbindung beenden"); 
	    
        } 
        catch (SQLException sqle) { 
            System.out.println("SQLException: " + sqle.getMessage()); 
            System.out.println("SQLState: " + sqle.getSQLState()); 
            System.out.println("VendorError: " + sqle.getErrorCode()); 
            sqle.printStackTrace(); 
        }
        
        ResultSet statment = null;
        String stat = null;
		try {
			stat = statment.getString(0);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return statment;
		
     }