# SQL Werte aus der Datenbank auslesen dividieren und mit einer Zahl vergleichen !



## Sperber (2. September 2004)

Hallo, ich habe da ein Problemschen  
Was funktioniert:
Ich lese zwei Datensätze aus der Datenbank aus:
ticketsw und ticketsl
Was nicht funktioniert:
Diese will ich dann dividieren:
ticketsw / ticketsl
Diesen Wert möchte ich dann vergleichen mit einer ganz Zahl.

```
points = points + $pointswin ($ticketsw/$ticketsl); (>= 2)',
points = points + $pointswin2 ($ticketsw/$ticketsl); (<= 2) & (> 1)
points = points + $pointswinded ($ticketsw/$ticketsl); (= 1)
```

Also pointwin 3 Punkte sollen erteilt werden wenn die Tickets des Gewinners geteilt den Tickets des Verlierer größer oder gleich 2 ist.

pointwin2 sollen erteilt werden wenn die Tickets des Gewinners geteilt den Tickets des Verlierer kleiner oder gleich 2 und größer als 1 ist.

pointwinded sollen erteilt werden wenn die Tickets des Gewinners geteilt den Tickets des Verlierer gleich 1 ist.

Als Fehler bekomme ich:
*Fehler in der Syntax bei '(450/320); (>= 2)', totalpoints ' in Zeile 5* 
Die Tickets ließt er also richtig aus nur das Ergebnis und der Vergleich geht nicht
 

Kann mir da jemand helfen ?

Grüße Sperber


----------



## Gorcky (2. September 2004)

Also - bis auf die Überschrift - sehe ich da kein bisschen SQL, geschweige denn solche Problematik.
Du kannst das sicher auch mit SQL lösen, aber dafür hast du den Teil zu wenig beschrieben.
Von der Schreibweise sieht das für mich wie PHP aus, aber diese Art von Syntax kenne ich da nicht... (Hinter dem Befehlsabschluss ";" einen neuen, nicht wirklich vollständigen Befehl...?)


----------



## Sperber (2. September 2004)

Hi Gorcky,
so sieht der code aus:

```
<?
$pointswin = "3";
$pointswin2 = "2";
$pointswinded = "1";
$pointsloss = "0";
?>

<?
$date = date("M d, Y");
$db = mysql_connect($databaseserver, $databaseuser, $databasepass);
mysql_select_db($databasename,$db);

	// WinnerTickets auslesen
       $sql="SELECT * FROM webl_report WHERE ticketsw = '$ticketsw'";
	   $result=mysql_query($sql,$db);
	   $row = mysql_fetch_array($result);
	   $ticketsw = $row['ticketsw'];
	   
	// LooserTickets auslesen
       $sql="SELECT * FROM webl_report WHERE ticketsl = '$ticketsl'";
	   $result=mysql_query($sql,$db);
	   $row = mysql_fetch_array($result);
	   $ticketsl = $row['ticketsl'];


$sql = "UPDATE webl_players SET wins = wins + 1,
                                losses= losses,
                                totalwins = totalwins + 1,
                                totallosses= totallosses,
                                points = points + $pointswin ($ticketsw/$ticketsl) = (>= 2);',
                                totalpoints = totalpoints + $pointswin ($ticketsw/$ticketsl) = (>= 2);',
                                points = points + $pointswin2 ($ticketsw/$ticketsl) = (<= 2) AND (> 1);',
                                totalpoints = totalpoints + $pointswin2 ($ticketsw/$ticketsl) = (<= 2) AND (> 1);',
                                points = points + $pointswinded ($ticketsw/$ticketsl) = (= 1);',
                                totalpoints = totalpoints + $pointswinded ($ticketsw/$ticketsl) = (= 1);',
                                games = games + 1,
                                totalgames = totalgames + 1,
                                streakwins = streakwins + 1, 
								streaklosses = streaklosses + 0 WHERE name = '$winner'";
	                            mysql_query($sql,$db);
                           echo mysql_errno() . "Punkte wurden eingetragen" . mysql_error(). "\n";
```


----------



## melmager (2. September 2004)

Öhm die Syntax habe ich ja noch nie gesehen - wo haste denn die her ?

das ist übrigends ein fall für php und nicht mysql 


```
if (($ticketsw/$ticketsl) >= 2) {
 $addpunkt = $pointswin;
} elseif (($ticketsw/$ticketsl) > 1) {
 $addpunkt = $pointswin2;
} else {
 $addpunkt = $pointswinded;
}
```

und dann nimmste den wert von addpunkt als updatewert.

und was soll eigendlich passieren wenn die Rechnung ein Wert kleiner 1 ist ?

evenuell muss da noch ein elseif rein


----------



## Sperber (3. September 2004)

THX melmager,


----------

