Hey,
ich möchte Fraktionsmitglieder auflisten doch mir wird immer nur ein Name angezeigt.
Ich weiß das ich mit einer While schleife arbeiten muss doch mir fehlt das Konkrete.
Hier mein Aktueller Code:
Hey,
ich möchte Fraktionsmitglieder auflisten doch mir wird immer nur ein Name angezeigt.
Ich weiß das ich mit einer While schleife arbeiten muss doch mir fehlt das Konkrete.
Hier mein Aktueller Code:
Wenn das deine While schleife ist fehlt dir aufjedenfall eine While schleife..
du musst in der While-schleife eine row abfragen die dir den Inhalt der Tabelle fetched und dann jeden Durchgang der schleife in einer neuen reihe die namen auflistet.
Da fehlt ihm doch nicht nur eine While-Schleife. Alle Fraktionsmitglieder wird er damit ganz sicher nicht ausgeben können.
Du brauchst eine Abfrage, die durch deine Datenbank in der richtigen Tabelle läuft und die Spalten "Fraktion" und "Name" durchläuft.
Anschließend brauchst du ein Result, welches mit einer While Schleife durch die Ausgabe select_Result des Befehls läuft.
In dieser Schleife lässt du dann alle mitglieder mit einem Echo ausgeben.
Falls du weiterhin Probleme haben solltest, oder Verständnisse offen sind, kannst mir gerne eine Konversationsanfrage schicken.
Eigentlich nicht. Er muss nur die User Datenbank durchsuchen und jeden ausgeben der bei Fraktion den Wert der Fraktions ID hat.
Hey,
ich habe hier eine Table mit einer While schleife.
http://pastebin.com/EFYB0QgS
Mir wird bei jedem angezeigt das dieser Online ist obwohl das nicht stimmt.
Eigentlich nicht. Er muss nur die User Datenbank durchsuchen und jeden ausgeben der bei Fraktion den Wert der Fraktions ID hat.
Und wie lässt man mehrere Benutzer in php ausgeben, wenn man nur einen Befehl verwenden möchte, um sparsam zu bleiben?
Genau, mit einer Schleife. Und deshalb braucht er die Fraktion, den Namen und den Rank des Benutzers, welcher in der Benutzer-Tabelle gespeichert wird.
Also einen Befehl, welcher durch die Benutzer-Tabelle schwirrt. Ansonsten bei C&P ist es kein dynamisches System.
Hey,
ich habe hier eine Table mit einer While schleife.
http://pastebin.com/EFYB0QgS
Mir wird bei jedem angezeigt das dieser Online ist obwohl das nicht stimmt.
Dir werden alle Benutzer online angezeigt, weil du mit der Session arbeitest. Die Session nimmt allerdings nur die Daten DEINES Browsers an. Deshalb hat das ganze auch eine Session-ID.
Du musst die Variable (Online) aus deiner Datenbank entnehmen. Also im Zweifelsfall in der Tabelle für die Benutzer eine neue Spalte anfügen, die als Beispiel online heißt.
Wenn die Spieler jetzt aufm Game-Server online sind & die Profile geladen wurden, setzt du diesen Status z.B. auf "1" und wenn sie sich wieder ausloggen auf "0". Der Standardwert für die Erstellung der Tabelle kannst du auch auf "0" stellen.
Anschlißend fragst du ab:
if(row['online'] == 1)
{
echo "Der Benutzer ist online";
}
else
{
echo "Der Benutzer ist offline";
}
Das ganze ergänzt du an dein Script und gut ist
Also meine Datenbank struktur sieht so aus:
http://www.fotos-hochladen.net…/dbstruktur24oersgkcz.jpg
Ich möchte das so machen das der Leader die Ranknamen ändern kann.
Doch ich weiß nicht so genau wie, da fid 7 x 2 ist und so das ich alle Update:
<?php
include("config.php");
session_start();
$rank1 = $_POST['rank1'];
$rank2 = $_POST['rank2'];
$rank3 = $_POST['rank3'];
$rank4 = $_POST['rank4'];
$rank5 = $_POST['rank5'];
$rank6 = $_POST['rank6'];
$rank7 = $_POST['rank7'];
$query = "UPDATE frank SET ";
$check = mysql_query($query) or die("Ungültige Abfrage: ".mysql_error());
$row = mysql_fetch_assoc($check);
?>
Alles anzeigen
Also so?
@Pinguin Dev.
<?php
include("config.php");
session_start();
$rank1 = $_POST['rank1'];
$rank2 = $_POST['rank2'];
$rank3 = $_POST['rank3'];
$rank4 = $_POST['rank4'];
$rank5 = $_POST['rank5'];
$rank6 = $_POST['rank6'];
$rank7 = $_POST['rank7'];
for($i=1; $i<8; $i++){
$rankend = $rank.$i;
$query = "UPDATE frank SET fname = '$rankend' WHERE frank = '$i'";
mysql_query($query) or die("Fehler im Query.");
}
?>
Alles anzeigen
Ja, dürfte funktionieren. Ich habe es, wie bereits oben beschrieben, aber nicht getestet.
Probier es doch einfach mal aus, schau wo die Fehler anschließend liegen und begrenze den Bereich da rauf.
Also ich habe es grade getestet und in die fnamen spalte schreibt er die Zahlen von 1-7
@Pinguin Dev.
Du musst deine Ränge einfach in einem Array übergeben.
<?php
$rank = array(
"Test1",
"Test2",
"Test3",
"Test4",
"Test5",
"Test6",
"Test7"
);
for($i=0; $i<sizeof($rank); $i++){
echo $rank[$i]."<br>";
}
?>
Alles anzeigen
Also du musst halt ein ganzen Array übertragen und nicht für jeden einzelnen Rang eine neue Variable anlegen. Ein bisschen musst du deinen Kopf auch noch anstrengen
Ich speichere doch aber alles schon in einer DB.
Nur, weil du alles in einer DB speicherst, heißt es doch nicht, dass PHP weis, wie du es machst.
Du musst ein Array erstellen und die Namen auch in einem Array übergeben.
Dann kannst du alles mit der Schleife verbinden und aktualisieren bzw. ausgeben.
Einfach in der Form, wo du die Rangnamen aktualisieren lässt, ein Array als Namen angeben und anschließend aktualisieren.
Köpfchen anstrengen habe ich gesagt.
Sorry aber ich kann dir nicht folgen da ich nie mit Array´s gearbeitet habe.
Könntest du mir mein "System" umschreiben, da wäre ich dir dankbar und das vielleicht so kommentieren das ich daraus lerne.
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading"><span class="glyphicon glyphicon-wrench" aria-hidden="true"> Ranknamen bearbeiten</span></div>
<div class="panel-body">
<form class="form-inline" action="checkranksettings.php" method="POST">
<div class="form-group">
<label for="Rank1">Rank 1:</label>
<input type="text" class="form-control" name="rank1" id="rank1" placeholder="bsp. Rank1">
</div>
<div class="form-group">
<label for="Rank2">Rank 2:</label>
<input type="text" class="form-control" name="rank2" id="rank2" placeholder="bsp. Rank2">
</div>
<div class="form-group">
<label for="Rank1">Rank 3:</label>
<input type="text" class="form-control" name="rank3" id="rank3" placeholder="bsp. Rank3">
</div>
<div class="form-group">
<label for="Rank2">Rank 4:</label>
<input type="text" class="form-control" name="rank4" id="rank4" placeholder="bsp. Rank4">
</div>
<div class="form-group">
<label for="Rank1">Rank 5:</label>
<input type="text" class="form-control" name="rank5" id="rank5" placeholder="bsp. Rank5">
</div>
<div class="form-group">
<label for="Rank2">Rank 6:</label>
<input type="text" class="form-control" name="rank6" id="rank6" placeholder="bsp. Rank6">
</div>
<div class="form-group">
<label for="Rank1">Rank 7:</label>
<input type="text" class="form-control" name="rank7" id="rank7" placeholder="bsp. Rank7">
</div>
<br >
<button type="submit" id="Absenden" class="btn btn-default">Absenden</button>
</form>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading"><span class="glyphicon glyphicon-list-alt" aria-hidden="true"> Aktuelle Ranknamen</span></div>
<div class="panel-body">
<table class="table">
<thead>
<tr>
<th>Rank</th>
<th>Rankname</th>
</tr>
</thead>
<?
$fraktion = $_SESSION['fraktion'];
$sql = "SELECT * FROM `frank` WHERE `fid`='$fraktion'" ;
$result = mysql_query($sql) ;
while( $row = mysql_fetch_assoc($result) )
{
?><tr><td><? echo $row["frank"]; ?></td><td><? echo $row["fname"]; ?></td><?
} ?>
</table>
</div>
</div>
</div>
Alles anzeigen
Speicherung:
<?php
include("config.php");
session_start();
$rank1 = $_POST['rank1'];
$rank2 = $_POST['rank2'];
$rank3 = $_POST['rank3'];
$rank4 = $_POST['rank4'];
$rank5 = $_POST['rank5'];
$rank6 = $_POST['rank6'];
$rank7 = $_POST['rank7'];
for($i=1; $i<8; $i++){
$rankend = $rank.$i;
$query = "UPDATE frank SET fname = '$rankend' WHERE frank = '$i'";
mysql_query($query) or die("Fehler im Query.");
}
?>
Alles anzeigen
Ich weiß das man aus C&P nichts eig. nichts lernt doch ich benutze es zum lernen. Da ich mir ein System welches ich schon habe angucke und damit arbeite was drin ist und was ich brauche.
Vielleicht funktioniert es auch so, bin mir dabei aber ziemlich unsicher. Wie gesagt wieder ungetestet. Habe gerade nämlich eigentlich keine Zeit. Wie gesagt, kannst dich per PN an mich wenden oder dich mal auf meinem TS melden.
also ich hab mir nur jetzt den ersten beitrag durchgelesen
es müsste theoretisch so aussehen denke ich
$abfrage = mysql_fetch_assoc (SELECT * FROM Fraktionsliste WHERE Username = $_SESSION["Benutzername"]) //hier mus
und dann halt die whileschleife mit ausgabe
while($row = $abfrage)
{
if($row['fraktion`] != 0) continue; // überprüft ob spieler in Fraktion ist
echo "Fraktionsstatus " . $row['login'] ."); //schaut ob der online status 1 oder 0 ist und gibt dies aus
}
ich denke das dürfte das verständliche sein
ich hoffe ich habe das richtig interpretiert und nichts vergessen
Hey,
ich habe alles nochmal überdacht und mir gedacht das ich meine DB nun so mache:
fid | 1 | 2 | 3 | 4 | 5 | 6 | 7
1-7 steht für den Rank
fid für die Fraktionsid.
Nun habe ich diesen Code um in der Startseite den Ranknamen auszulesen, doch er gibt mir diesen Fehler aus:
ZitatUngültige Abfrage: Unknown column '77' in 'where clause'
Ich denke 77 steht für den Rank.
Hier der Code:
<?php
include("config.php");
session_start();
$fid = $_SESSION['fraktion'];
$rank = $_SESSION['rank'];
for($i=1; $i<8; $i++){
$rankend = $rank.$i;
$query = "SELECT * FROM `frank` WHERE `fid`='$fid' AND `$rankend`='$rank'";
}
$check = mysql_query($query) or die("Ungültige Abfrage: ".mysql_error());
$row = mysql_fetch_assoc($check);
$num_rows = mysql_num_rows($check);
$frank = $row['frank'];
$frankname = $row['$rankend'];
if($num_rows > 0)
{
$_SESSION['frank'] = $frank;
$_SESSION['frankname'] = $frankname;
}
?>
Alles anzeigen
Ich hoffe ihr versteht das und könnt mir helfen.
PS: das mit den Ranknamen ändern wollte ich grad machen doch wegen der neuen DB kommt nun dieser Fehler xD
Seit wann beschäftigst du dich mit php?
Es sieht nämlich danach aus, als könntest du nichtmal die einfachsten Sachen.
Deshalb werde ich jetzt auch keinen Support mehr geben.
//Auslesen lassen
<?php
$query = "SELECT * FROM fraktion WHERE fid = $SESSION['fraktion']";
$result = $handler -> query($query) or die("Funktion fehlerhaft");
while($Zeile = $result -> fetch_array(MYSQLI_ASSOC)){
echo $Zeile['fid']." ".$Zeile['1']." ".$Zeile['2']." ".$Zeile['3']." ".$Zeile['4']." ".$Zeile['5']." ".$Zeile['6']." ".$Zeile['7'];
}
?>
Ok,
eine letzte Frage habe ich.
Ich habe mir deinen Code nochmal angeschaut habe diesen in meinen Eingearbeitet, doch er trägt mir nur in die DB= 2 | 7 | Director <- das stimmt auch doch wo sind die anderen Ränge.
Vielleicht kannst du mir das erklären.
$rank = array(
$_POST['rank0'],
$_POST['rank1'],
$_POST['rank2'],
$_POST['rank3'],
$_POST['rank4'],
$_POST['rank5'],
$_POST['rank6'],
$_POST['rank7']
);
for($i=0; $i<sizeof($rank); $i++){
$sql = "DELETE FROM `frank` WHERE `fid`='$fid'";
$result = mysql_query($sql);
$sql = "INSERT INTO `frank`(`fid`, `frank`, `frankname`) VALUES ('$fid',$i,'$rank[$i]')";
$result = mysql_query($sql);
}
Alles anzeigen