Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Zufalls Spieler aus einer in andere Tabelle "schicken&q“

N

No0oB

Guest

So ihr lieben, da bin ich mal wieder, mit einem neuen Problem :(
Ich schreibe gerade ein Turnierscript, in dem ich eine Tabelle player hab, und eine Tabelle round, in der die Runden (Duellierrunden) reingeschrieben werden sollen.
Wenn also mehrere Spieler in player sind, sollen Spieler zufällig gewählt werden, und in round übergeben werden (in die Zeilen player1 und player2).

Generell ist mir die Funktionsweise des Scripts klar (hoff ich).
Nun hab ich also folgendes:
[php:1:4bca0af55b]
<?
require("inc.config.php");
require("inc.dbconnect.php");

$sql_player_1 = "SELECT * FROM ".$mysql_pref."player";
$query_player_1 = mysql_query($sql_player_1);
$row_player_1 = mysql_fetch_array($query_player_1);

$num = mysql_num_rows($query_player_1); // Counts Amount of Players
$random_player = rand(1,$num);
?>
[/php:1:4bca0af55b]
[php:1:4bca0af55b]
<?
$sql_player_2 = "SELECT * FROM ".$mysql_pref."player WHERE ID LIKE 8";
$query_player_2 = mysql_query($sql_player_2);
$row_player_2 = mysql_fetch_array($query_player_2);
?>
[/php:1:4bca0af55b]

Die Ausgabe erfolgt hier:
Code:
                         <table class="round">
			<tr>
				<td width="50%">
					[b]Dueller 1[/b]
				</td>
				<td width="50%">
					[b]Dueller 2[/b]
				</td>
			</tr>
			<tr>
				<td>
					<? echo $row_player_2['name'] ?>
				</td>
				<td>
					<? echo $row_player_2['clan'] ?>
				</td>
			</table>
(steht in einer Schleife)

Nun habe ich gedacht, dass das Klappen würde... tut es aber nicht :(
Hat jemand einen Tipp für mich? Oder hab ich einen Denkfehler?

Achja, das Script kann man zur Not auf http://rageclan.org/duelcomp begutachten, und auch damit rumspielen
 
N

No0oB

Guest

Ah hi 10c :)
Ist es wirklich so einfach ? :O
Danke :)

Nun hab ich folgendes Problem.
Es wär natürlich unlogisch, wenn jemand gegen sich selbst kämpfen müsste. Wie kann ich sowas ausschließen?
also:
[php:1:2cc7f6a983]
if ($row == $row2)
{
// Was kommt hier rein?
}

[/php:1:2cc7f6a983]

Hier sind die SQL-Anweisungen
[php:1:2cc7f6a983]
$sql = "SELECT * FROM ".$mysql_pref."player ORDER BY RAND()";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);

$num = mysql_num_rows($query); // Counts Amount of Players
$random_player = rand(1,$num);

$sql2 = "SELECT * FROM ".$mysql_pref."player ORDER BY RAND()";
$query2 = mysql_query($sql2);
$row2 = mysql_fetch_array($query2);
[/php:1:2cc7f6a983]
 
B

burni

Guest

Hab mal gebastelt...

[php:1:97a86a0d2c]

function new_player($spieler)
{
srand ((double)microtime()*1000000);
while(count($spieler)>=1)
{
unset($rand_key);
$rand_key= array_rand ($spieler, 1);

$neue_spieler[]=$spieler[$rand_key];

$key_index = array_keys(array_keys($spieler), $rand_key);

if (count($key_index) != '')
{
// Es gibt dieses Element (mindestens einmal) in diesem Array, wir loeschen es:
array_splice($spieler, $key_index[0], 1);
}
else
{
break;
}
}
return $neue_spieler;
}


$neue_spieler=new_player(array("Spieler1", "Spieler2", "Spieler3", "Spieler4", "Spieler5", "Spieler6", "Spieler7", ));

foreach($neue_spieler as $ziel)echo $ziel . "
";[/php:1:97a86a0d2c]

Lies Deine Spieler aus der Datenbank in ein array und ersetze diese mit den obigen... sollte eigentlich dann jeder Spieler (gut gemischt) nur noch einmal drankommen...

Grüße
 
N

No0oB

Guest

Ich habs zwar noch nicht probiert, aber es sieht recht gut aus.
Ich kenn die ganzen Funktionen noch gar nicht, werd mich aber wohl oder übel mit ihnen auseinandersetzen.
Vielen danke für deine Hilfe.
Zuerst hab ich auch an Arrays gedacht, habe aber nicht gewusst, wie ich das realisieren sollte.

Danke :)
 
B

burni

Guest

hmmm, geht doch einfacher per sql...

[php:1:8aef0ca79d]
$sql = "SELECT * FROM ".$mysql_pref."player ORDER BY RAND()";
$query = mysql_query($sql);

if(mysql_num_rows($query)>=1)
{
echo "<table border=\"1\">";
for($i=1;mysql_num_rows($query)>=$i;$i++)
{
$row[$i] = mysql_fetch_array($query);
if((ceil($i/2))*2!=$i)
{
echo "<tr>";
}
echo "<td width=\"40%\" align=\"center\">" . $row[$i][name] . "</td>";
if((ceil($i/2))*2==$i)
{
echo "</tr>";
}
else
{
echo "<td width=\"20%\" align=\"center\">vs.</td>";
}

}
if((ceil($i/2))*2==$i)
{
echo "<td width=\"40%\" align=\"center\">?</td></tr>";
}
echo "</table>";
}[/php:1:8aef0ca79d]

Musste mal schauen ob Du darauf aufbauen kannst ;)

Grüße
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben