PHP Abfrage aus MySQL Datenbank leer
    
bluezz
    
    
      
    
  - datenbank
 nicht angemeldet
 nicht angemeldetHallo,
ich habe folgende DB-Struktur:
md5 (DB)
   -md5 (Tabelle)
        plain           hashed
        test            098f6bcd4621d373cade4e832627b4f6
usw...
Also plain text und md5 dazu. Der zum hashed dazugehörige plain soll beim modus get ausgegeben werden. Wenn ich nun query.php?act=get&text=098f6bcd4621d373cade4e832627b4f6 aufrufe wird nichts zurückgegeben (stat 'test'). Obwohl alles in der Tabelle drinsteht. Hat jemand eine Ahnung wieso das so ist?
<?php  
	$in = $HTTP_GET_VARS['text'];  
	$act = $HTTP_GET_VARS['act'];  
	$hash = md5($in);  
 	$db = mysql_connect('localhost', 'root', 'root') or die ("Keine Verbindung moeglich");  
 	$db_select = mysql_select_db( 'md5' ) or die ("Datenbank  nicht verfügbar");  
	if($act == 'add'){  
		$result = mysql_query ( "INSERT INTO md5 (plain,hashed) VALUES ('$in', '$hash')" );  
	}  
	else if($act == 'get'){  
		$result = mysql_query ( "SELECT plain FROM md5 WHERE hashed = $in");  
		while($row = mysql_fetch_object($result))  
		{  
  			echo $row;  
		}  
	}  
 	mysql_close($db);  
?>  
Kleine Anmerkung: hatte auch schon echo $row->url versucht
Gruß bluezz
Hi,
bitte keinen sinnlosen Links setzen.
Wenn ich nun query.php?act=get&text=098f6bcd4621d373cade4e832627b4f6 aufrufe wird nichts zurückgegeben (stat 'test').
Dann überprüfe die Werte der im Script vorliegenden Variablen durch Kontrollausgaben an stragetisch geeigneten Stellen, und führe eine *Erfolgskontrolle* deiner Datenbankabfragen durch, statt naiv von „wird schon klappen“ auszugehen:
Kurzum, ganz einfach ein *bisschen* sinnvolles Debuggin betreiben.
MfG ChrisB
Also: wenn ich in der Abfrage den Wert direkt einsetze (WHERE hashed = 098f6bcd4621d373cade4e832627b4f6)und dann das query ausgeben lasse kriege ich Resource id #2 oder Resource id #3 zurück, aber nicht den plaintext...
über phpmyadmin geht der code einwandfrei.
An was könnte das liegen?
Gruß
Bluezz
Hi,
Also: wenn ich in der Abfrage den Wert direkt einsetze (WHERE
hashed= 098f6bcd4621d373cade4e832627b4f6)und dann das query ausgeben lasse kriege ich Resource id #2 oder Resource id #3 zurück, aber nicht den plaintext...
An was könnte das liegen?
Daran, dass dir noch ziemlich viel Grundlagenwissen fehlt.
Der Rückgabewert von mysql_query im Erfolgsfalle ist eine Resource, ja - das ist aber ein imaginäres Konstrukt, und nichts, was sich einfach so per echo ausgeben liesse.
Schreibe deine Queries der Übersichtlichkeit halber so, dass du erst den Query-„Text“ in einer Variablen ablegst (dann kannst du ihn auch sehr einfach zur Kontrolle ausgeben lassen), und anschließend diese Variable als Parameter für mysql_query verwendest.
MfG ChrisB
$sql = "SELECT `plain` FROM `md5` WHERE `hashed` = '098f6bcd4621d373cade4e832627b4f6' ";  
		$result = mysql_query ( $sql) or die ('failed');  
		while ($row = mysql_fetch_assoc($result)) {  
    		echo $row['plain'];  
		}
So geht es !