If Anweisung

Bossi28

Mitglied
Hallo Leute habe mal wieder ein Problem, mit meiner Online-Liga.

Und zwar folgendes, ich will überprüfen das kein User eine Chance hat in einer Saison zwei Topteams zu haben.
Topteams sind Teams mit 4.5 und 5 Sternen.

Deshalb frage ich die Tabelle ab, in denen die ergebnisse stehen von dort hole ich die Teams die der User in der Saison hatte.
Danach hole ich die Sterne in einer anderen Tabelle.

Nur mein Problem ist er sagt auch bei Teams die Schwächer sind als 4.4 Sterne das es ein Topteam sei.

Hier mal der Code

PHP:
		$sql= sprintf("SELECT DISTINCT (SELECT IF(ergz_author_id='%u',ergz_author_team,ergz_sec_team)) as Teams FROM phpkit_ergz where ergz_saison='".$saison."' AND (SELECT    		IF(ergz_author_id='%u',ergz_author_id,ergz_sec_id))='%u'",
			mysql_real_escape_string($myid[0]),
			mysql_real_escape_string($myid[0]),
			mysql_real_escape_string($myid[0]));
			$result= mysql_query($sql);
			$anz = mysql_num_rows($result);
			
			for ($i=1;$i<=$anz;$i++)
			{
			$datensatz= mysql_fetch_row($result);

			foreach ($datensatz as $wert)
				{
		
			
			//teamlogos
			$sql2= sprintf("SELECT team_star FROM phpkit_teams WHERE team_name='%s' limit 1",
			mysql_real_escape_string($wert));
			$result2= mysql_query($sql2);
			$data = mysql_fetch_row($result2);
			$star = $data[0];
			
			}
			}
			

			if ($star<4.4) {
 
PHP:
$star = 4.0;
var_dump ($star<4.4); //bool(true)
$star = 4.5;
var_dump ($star<4.4); //bool(false)
Deine Letzte Zeile Im Skript, die IF-Abfrage hat einen Denkfehler, du hast größer mit kleiner verwechselt.
 
item: Formatier den Code mal lesbar. So siehst du ja nicht mal wo deine Klammern öffnen und wieder schliessen.

item: Die übliche Schleife um die Daten werden mit while gemacht. Ist einfacher und übersichtlicher

item: Warum arbeitest du mit sprintf() und setzt trotzdem Variablen wieder direkt ins SQL?

item: du überschreibst in der Schleife bei jedem Durchgang die Variable $star. Nach der Schleife prüfst du $star des letzten Record. Wenn dieser höher als 4,4 ist, dann werden alle Datensätze von

Das ist dein Scriptausschnitt auf die Struktur reduziert
PHP:
$sql= "....";
$result= mysql_query($sql);
while($datensatz= mysql_fetch_row($result)){
	foreach ($datensatz as $wert){
		//teamlogos
		$sql2= "SELECT team_star FROM phpkit_teams WHERE team_name='$wert' limit 1",
		...
		$star = $data[0];
	}
}
if ($star<4.4) {
    ...
}
 
Zurück