Ich codiere ein ähnliches Spiel zu Karten gegen die Menschheit und ich bin ein bisschen stecken auf die Ergebnisse mit PHP zusammen, ich bin neu in PHP so haben einen Stolperstein treffen.Gleichheit vergleichen und zählen, wie oft die gleiche Zeichenfolge in einer zurückgegebenen Sql-Abfrage
Also ich habe alle meine Spieldaten in einer SQL-Tabelle auf meinem localhost und es sieht aus wie diese etwa: Dies sind die Spaltenüberschriften und Eingang, wie es in der Tabelle ist:
+------------+-----------------+------------+-----------------+
| FirebaseID | Votes | GameNumber | Submission |
+------------+-----------------+------------+-----------------+
| id1 | Option number 6 | Game 9 | Option number 6 |
| id2 | Option number 6 | Game 9 | Option number 1 |
| id3 | Option number 6 | Game 9 | Option number 6 |
| id4 | Option number 1 | Game 9 | Option number 1 |
| id5 | Option number 6 | Game 9 | Option number 4 |
+------------+-----------------+------------+-----------------+
Wo Stimmen ist die Antwort, die sie wählen, um die beste zu sein und Submission ist ihre eigene Unterordnung zum Kartenspiel. Ich weiß, dass die Werte im Moment nicht viel bedeuten, aber sobald ich das Ding funktioniere, gebe ich verschiedene Werte für jede Karte ein.
Mein Code ist dies:
$conn = new mysqli($servername, $username, $password, $db);
// Check connection
if ($conn->connect_error) {
die("Database connection failed: " . $conn->connect_error);
}
$q = $_GET['q'];
$sql="SELECT Votes, FirebaseID FROM cauusers WHERE GameNumber = '".$q."'";
$result = mysqli_query($conn,$sql);
$length = $result->num_rows;
if ($result->num_rows > 0) {
// output data of each row
$myResArray = [];
$count = 0;
while($row = $result->fetch_assoc()) {
$myResArray[$count] = $row["Votes"];
$count++;
}
//var_dump($myResArray);
$max = 0;
$winner = "";
$index = 1;
//$length = count($myResArray) (This prints 5);
for($i = 0; $i < $length;$i++){
for($j = 0; $j < $length; $j++){
if($myResArray[$i]===$myResArray[$j]){
$max += 1;
$winner = $myResArray[$i];
}
}
}
echo $winner . "<br>";
$sqlSel="SELECT FirebaseID FROM cauusers
WHERE GameNumber = '".$q."' AND Submission = '".$winner."'";
$Submission = mysqli_query($conn,$sql);
echo var_dump($Submission);
if ($Submission->num_rows > 0) {
while($row = $Submission->fetch_assoc()) {
echo $row["FirebaseID"] . "<br>";
}
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
Wenn ich q $ drucken ich:
Spiel 9
Als ich var_dump
$ myResArray ich;
array(5) {
[0] => string(15) "Option number 6"
[1] => string(15) "Option number 6"
[2] => string(15) "Option number 6"
[3] => string(15) "Option number 1"
[4] => string(15) "Option number 6"
}
So versuche ich, für später, welche Karte gewählt wurde für die meisten und dann basierend auf, dass herauszufinden, was die Person (oder Personen), die geltend gemacht, dass Karten-IDs ist, so kann ich vergeben dann die Gewinner mit Münzen zu sammeln Verwenden Sie im Spiel. Ich kann sehen, dass ich die Daten, die ich brauche, abrufen kann, aber nicht auf jede einzelne Zeichenfolge zugreifen kann, um sie miteinander zu vergleichen. Im Moment, wenn es zwei Antworten gibt, die für dieselbe Anzahl von Malen abgestimmt wurden, wird nur eine Antwort zurückgegeben.
Es druckt die richtige Antwort zu gewinnen, aber er druckt alle 5 Firebase-IDs anstelle des
Jede Hilfe wäre massiv geschätzt.
Prost
Das ist toll, danke für die Hilfe trincot. Sehr geschätzt!! –
Gern geschehen. Ich würde mich freuen, wenn Sie die Antwort als akzeptiert markieren würden (das graue Häkchen links davon). – trincot
Fertig, danke nochmal! –