Problem mit 2 verschachtelten SQL Abfragen

Divo1984

Erfahrenes Mitglied
Hallöle,

ich sitze seit 2 Stunden an einer Sache und komme net weiter:(

Ich arbeite grade an einem Auktions-Script, dafür brauche ich bei der "Bieten" Funktion eine bzw. 2 "ineinanderverschachtelte" Abfragen..

PHP:
	if(isset($_POST['bieten']))
	{
		//Array für die Fehlerausgabe
		$fehlertext = array();
		
		if($_POST['bet'] == "")
		{
            //Ausgabe funktioniert
			$fehlertext[] = "Bitte ein Gebot eingeben!";
		}
		else
		{
        //Daten aus der DB holen
		$sql="SELECT * FROM auctions WHERE uid='$uid'";
		$abfrage=($rows = mysql_query($sql));
        //Abfrage ob "gebote" weniger 1 sind(funktioniert)
		if(($rows['bets'])<1)
		{	
            //Hier werde ich immer weitergeleitet, auch wenn die Abfrage False ergeben sollte	
			if(($_POST['bet'])<=$rows['startwert'])
			{
				$fehlertext[] = "Bitte halten Sie sich an das Startgebot!";
			}
		}
		}
	    //Ausgabe des Fehlerarrays	
		if(count($fehlertext))
		{
    		echo "Leider sind einige Fehler aufgetreten. Bitte beachten Sie diese Angaben:  
                <br><br>\n";        
    		foreach($fehlertext as $error)
    		echo $error."\n";
			echo"</br>";
			include($incpfad."/formulare/bet.php");	
	}

Es soll also zuerst abgefragt werden, ob noch kein Gebot vorliegt - denn dann soll der Startwert beachtet werden, welcher in der Datenbank steht!

So schwer dürfte das doch eigentlich nicht sein:(

Ich sehe da leider, grad absolute nicht wo der Fehler liegt... Könnt ihr mir bitte weiterhelfen?

Habs mal geändert, geht zwar immernoch net, sollte aber netmehr son schrott sein wie zum Anfang!

PHP:
if(isset($_POST['bieten']))
	{
		//Array für die Fehlerausgabe
		$fehlertext = array();
		
		if($_POST['bet'] == "")
		{
			$fehlertext[] = "Bitte ein Gebot eingeben!";
		}
		$sql="SELECT * FROM auctions WHERE uid='$uid'";
		$abfrage=($rows=mysql_query($sql));
		if($rows['bets']<1 && $rows['startwert']>$_POST['bet'])
		{		

				$fehlertext[] = "Bitte halten Sie sich an das Startgebot!";
			
		}
		
	    //Ausgabe des Fehlerarrays	
		if(count($fehlertext))
		{
    		echo "Leider sind einige Fehler aufgetreten. Bitte beachten Sie diese Angaben:<br><br>\n";        
    		foreach($fehlertext as $error)
    		echo $error."\n";
			echo"</br>";
			include($incpfad."/formulare/bet.php");	
	}

Zur Erklärung: Es sollen hier Dezimalzahlen aus der DB geprüft werden mit 2 Stellen hinterm komma!

in der Datenbank steht also 1.00 ....

nur wird der Übergabewert nicht überprüft:(
 
Zuletzt bearbeitet:
Problem mit 2 verschachtelten SQL A ...

Moin,

wird die db verbindung richtig aufgebaut?
Sehe zwar deine abfrage,aber müsste nicht erst ein fetch_array ausgeführt werden damit aus deinem mysql_query resultset ein array wird?

Ich sehe auch nur eine abfrage due nicht verschachtelt ist? Oder ich sehs nicht :D

Weiß nicht wie dein formular aussieht, aber du pruefst ob die var bieten existiert und verwendest bet. Schätze mal bieten wird dein button sein? Hat dein feld bet denn auch einen wert?

Versuch mal stück für stück zu suchen, wenn du den wert in der db kennst pruefe mal nach einem festen wert? Oder lass dir vorher den ds ausgeben und schau was die db liefert? Wenn dein $rows Array wirklich ein array ist, dann kannste dir das mit var_dump wunderbar ausgeben :).

Vlt konnte ich dir ha einen tipp geben... Gruß und schönen guten morgen
 
Zurück