MYSQL/PHP INT Spalte - Varachar spalte?

DonDemf

Erfahrenes Mitglied
Hallo Leute,
ist es möglich von einem INT Wert einen varachar wert abzuziehen?

Ich habe eine Spalte Budget in INT und eine spalte Wert in Varchar.

Int enthält 5000000 und Varchar enthält 3.500.000

Ich möchte nun INT - Varchar rechnen, kann jedoch die varchar tabelle nicht einfach umformen zu int, weil es mehr als 1000 zeilen sind....

Jemand ne idee?
 
PHP stört sowas nicht im Geringsten und in MySQL solltest du dir die CAST bzw. CONVERT Funktion mal anschauen.
 
Und wieso subtrahiert er mir nicht 1000000 - 500.000 ****


Hier habe ich es mal zum testen versucht:

PHP:
$budget = "100000";
$wert = "50.000";
$result = $budget - $wert;
echo $result;

Ergebnis: 99950

und nicht 50000!

Hier mein Code:


PHP:
$spieler3 = 'SELECT wert(VARCHAR AS UNSIGNED) - INT) FROM fifa_spieler WHERE id = "'.$spielerid.'"';
$ergspieler3 = mysql_query($spieler3);
$spieler3 = mysql_fetch_object($ergspieler3);


PHP:
$aendernb1 = 'UPDATE fifa_admin Set
budget = budget - '.$spielerwert.' WHERE username = "'.$_SESSION["username"].'"';
$updateb1 = mysql_query($aendernb1);

Die INT Spalte ist in einer anderen Tabelle!
 
Dann will ich sie nochmal genauer erklären!

Ich habe die Tabelle fifa_spieler aus der ich den Wert des ausgewählten Spielers nehme. Dieser wert ist Varchar!
PHP:
$spieler3 = 'SELECT wert FROM fifa_spieler WHERE id = "'.$spielerid.'"';
$ergspieler3 = mysql_query($spieler3);
$spieler3 = mysql_fetch_object($ergspieler3);

Dann gibt es noch die Tabelle mit allen Mitgliedern. jedes Mitglied hat ein Budget. Die Tabelle heißt fifa_admin und wir folgendermaßen ausgewählt.
budget ist hierbei INT
PHP:
$budget12 = 'SELECT budget FROM fifa_admin WHERE username = "'.$_SESSION["username"].'"';
$ergbudget2 = mysql_query($budget12);
$budget2 = mysql_fetch_object($ergbudget2);

Jetzt kommt eine Abfrage, ob dass Budget ausreicht um zu kaufen, Wenn es ausreicht, sollt es abgezogen werden und hier klappt es nicht!

PHP:
if($spieler3->wert > $budget2->budget) {
	
	echo 'Dein Budget reicht nicht aus für das aktuelle Gebot.<br />'; } else {
$aenderns = 'UPDATE fifa_spieler Set
verein = "'.$_SESSION["team"].'"
WHERE id = "'.$spielerid.'"';
$updates = mysql_query($aenderns);

$aendernb1 = 'UPDATE fifa_admin Set
budget = budget - '.$wert33.' WHERE username = "'.$_SESSION["username"].'"';
$updateb1 = mysql_query($aendernb1);

Das Updaten des Spielers klappt, er wechselt also den Verein! Nur das subtrahieren des budgets klappt nicht!
 
PHP:
$budget = "100000";
$wert = "50.000";
$result = $budget - $wert;
echo $result;

Ergebnis: 99950

und nicht 50000!
PHP interpretiert $wert auch als "50" und nicht "50000", da du ein Punkt als Tausendertrennzeichen hinzugefügt hast. In den meisten Programmiersprachen gibt es sowas nämlich nicht.
 
Ja, aber das hilft mir ja jetzt nicht weiter, weil die Werte in der tabelle fifa_spieler alle als Varchar nach dem motto: 50.000.000 oder 12.000.000 etc. gespeichert sind!
 
PHP:
function getInt($strNumber)
{
    return intval(str_replace('.', '', $strNumber));
}

echo getInt('100000')-getInt('50.000');

So würde es mal als Beispiel funktionieren.
 
Zurück