Brauche Hilfe bei Fehlersuche in php/mysql Befehl

BadBoy227

Mitglied
Hi Leute,

meine Erfahrung in php/mysql steigt entdlich, hab jetzt folgendes script welches meine Datenbank ändert, aber naja ich hab da wohl irgendwo ein Fehler drin. Jedes mal wenn ich es ausführe, kommt immer nur nicht genügend Kapital -.-, hab dann nocheinmal einmal mit get versucht geht aber auch net :/, leider, ich kann mir vll nur erklären, dass ich einfach zuviel Anweisungen gebe, aber da bin ich mir net sicher, hoffentlich findet einer von euch den Fehler, wahrscheinlich was ganz einfaches.
Hier der COde
PHP:
<?
if( $_GET['action'] == "buy" ) {
     $Stadt = mysql_query("SELECT * FROM Stadt WHERE Name = 'Dortmund'");
     $City = mysql_fetch_array( $Stadt );
     $Geld = mysql_query("SELECT * FROM airports WHERE Besitzer = 'Xerox' and name = 'Inter'");
     $money = mysql_fetch_array( $Geld );
     $Square =  $_Post[Square];
     $Squarep= $Square * $City[preis];
     $gelduser = $money[geld] - $Squarep;
     $SCity = $City[Fläche] - $Square;
     if ( $money[geld] > 0 ) {
     $Airup = mysql_query("UPDATE airports SET geld = '$gelduser', Fläche = '$_POST[Square]' where Besitzer = 'Xerox' and name = 'Testname'");
     $Citup = mysql_query("UPDATE Stadt SET Fläche = '$SCity' where Name = 'Dortmund'");
     if ( $Citup ) {
        print 'Land gekauft';
     }
     } else {
        print 'Nicht genügend Kapital';
     }
}
?>

Vielen Dank für die Hilfe
Liebe Grüße
BadBoy
 
Versuch mal so:
PHP:
if($_POST['action'] == 'buy')
{
     $Stadt 	= mysql_query('SELECT * FROM Stadt WHERE Name = "Dortmund"');
     $City 		= mysql_fetch_array($Stadt);
     $Geld 		= mysql_query('SELECT * FROM airports WHERE Besitzer = "Xerox" and name = "Inter"');
     $money 	= mysql_fetch_array($Geld);
     $Square 	= $_Post['Square'];
     $Squarep 	= $Square*$City['preis'];
     $gelduser 	= $money['geld']-$Squarep;
     $SCity 	= $City['Fläche']-$Square;
	 
     if ($money['geld'] > 0)
	 {
		$Airup = mysql_query('UPDATE airports SET geld = "' .$gelduser. '", Fläche = "' .$_POST['Square']. ' " where Besitzer = "Xerox" and name = "Testname"');
		$Citup = mysql_query('UPDATE Stadt SET Fläche = "' .$SCity. '" where Name = "Dortmund"');
		
			if ( $Citup )
			{
				echo 'Land gekauft';
			}
     } else
		{
			echo 'Nicht genügend Kapital';
		}
}
 
Hi danke für die Antwort,
leider geht es nicht, es kommt keinerlei Antowrt, und wenn ich mit get arbeite, werden die ganzen mysql Befehle auseracht gelassen und nur der Wert wird als Priorität wieder gegen und wenn ich jetzt richtig denke bzw. ich hoffe es richtig verstanden zuhaben, dass mit Post der Wert weitergegeben wird ohne das man ihn "sieht", aber mysql weiß dann das ein gewisser Wert X da ist, oder?
 
Tue mal bitte folgendes:
PHP:
echo var_dump($_POST); // Vor die erste If-Abfrage
PHP:
error_reporting(E_ALL); // Am Anfang der Datei
Und lass dir mysql_error(); augeben.

Dann poste mal alles hier.

// edit: Oder jemand anders sieht einen Fehler den ich übersehe.
 
Zuletzt bearbeitet:
ok hab das eben sogemacht wie du gesagt hast und ich bekomme folgende Fehlermeldungen:
PHP:
array(1) { ["Square"]=>  string(3) "100" }
Notice: Undefined index: action in C:\Programme\Browser\Airlinegigant\buyland.php on line 18

Notice: Undefined variable: Sqaure in C:\Programme\Browser\Airlinegigant\buyland.php on line 43
 
Dein Script wird wohl nie ausgeführt weil..
PHP:
if($_POST['action'] == 'buy')
...$_POST['action'] nicht gibt.

Zeig mal das Formular das man abschicken muss.
 
hm ok jetzt wirds wahrscheinlich peinlich xD
PHP:
<form action="buyland.php?action=buy" method="post">
      <tr>
          <td>
              <label for="Square"> Fläche: </label>
              <input type="text" maxlenght="10" id="Square" name="Square">
          </td>
      </tr>
      <tr>
          <td>
              <input type="submit" value="Land kaufen">
 
Mhh um an das buy zu kommen musst du es mit GET und nicht mit POST abrufen!
Du übergibst den Wert ja schliesslich über die URL und nicht über das Formular.

PHP:
 $_GET['action']

Nur um zu wissen ob das Formular abgeschickt wurde kannst du auch einfach dem submit Button einen Namen geben und dies dann mit isset prüfen.

HTML:
<input type="submit" name="buy" value="Land kaufen" >

PHP:
if(isset($_POST['buy']))
 
Zuletzt bearbeitet:
geändert und jetzt kommt folgendes:
PHP:
array(1) { ["Square"]=>  string(3) "100" }
Notice: Undefined variable: _Post in C:\Programme\Browser\Airlinegigant\buyland.php on line 24

Notice: Undefined index: preis in C:\Programme\Browser\Airlinegigant\buyland.php on line 25

Notice: Undefined index: geld in C:\Programme\Browser\Airlinegigant\buyland.php on line 26

Notice: Undefined index: geld in C:\Programme\Browser\Airlinegigant\buyland.php on line 29
Nicht genügend Kapital

könnte es sein das mein Query net stimmt? abgeschickt wird es, da ich das schon mit echo ausprobiert habe und auch oben die "100" sind der Wert
 
Das Problem von vorhin haben wir jetzt jedenfalls behoben, denn der Code wird ja ausgeführ und diesbezüglich kommt keine Fehlermeldung mehr.

Nun schreibst du das $_Post einmal gross-> $_POST['Square'].
Ich weis grad nicht ob es gross sein muss, aber ich habs noch nie so gemacht.

Und dann gib uns mal ein paar Daten zu deiner DB.
Spaltennamen usw.

Edit ich nehme mal an das du den Code von Loomes übernommen hast und die '' beim POST bereits gesetzt hast. :)
 
Zurück