Hallo erstmal , einen Recht schönen Abend wünsche ich ,
Ich hab mir ein script gebastelt indem für die User die einen eintrag bearbeitet haben ein Bild für 12 Stunden angezeigt werden soll und für den selben Eintrag für andere User für 144 Minuten ein anderes Bild.
Für die Einträge die nicht in die Zeitspanne rein passen soll ein Weiteres Bild angezeigt werden .
Hier erstmal der Code der Ausgabe der Tabelle :
Mein Problem liegt darin , das wenn ich einen eintrag ändere sind aufeinmal alle einträge mit dem Bild der 12 Stunden Sperre versehen , und das soll so nicht sein.
Verantwortlich hierfür ist sicherlich die IF-Anweisung
Oder einfach die Tatsache das ich in die Tabelle "time_s20" einträge drin habe , die Zwangsläufig für diesen Fehler sorgen.
In dieser Tabelle lasse ich die Userid,eintragsid = ( im Eintrag vorhandene nummer die nur einmal in der Tabelle vorkommt ),und die 2 jeweilgen Timestamps einmal time = ( +12 Stunden ) und timea = ( +144 Minuten ) speichern.
Hat jemand eine Idee wie das funktionieren könnte . Das ihr euch ein besseres Bild machen könnt , setze ich auch gleich ein screenshot mit rein wie das jetzt ausschaut.
Der Eintrag mit der ID 44455566 wurde von mir bearbeitet und trägt zu recht das Verbotsschild , die Anderen Einträge haben keinen Passenden gegeneintrag in der Tabelle "time_s20" , wodurch meiner meinung nach immer das Bild Block.gif angezeigt wird. Weil diese Werte ja noch in den Variablen drin sind und nicht ersetzt werden.
Wie mache ich das, das in der whileschleife die zweite whileschleife nur soviele abfragen ausgibt nach der Anzahl der einträge , und wenn keine Passenden Einträge mehr gefunden werden Automatisch Bild OK.gif ausgegeben wird.
Ich hab mir ein script gebastelt indem für die User die einen eintrag bearbeitet haben ein Bild für 12 Stunden angezeigt werden soll und für den selben Eintrag für andere User für 144 Minuten ein anderes Bild.
Für die Einträge die nicht in die Zeitspanne rein passen soll ein Weiteres Bild angezeigt werden .
Hier erstmal der Code der Ausgabe der Tabelle :
PHP:
<?
// *************************************** Paging ****************************************
$query = "SELECT * FROM goldie_s20";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
$anz = mysql_num_rows($result);
//************************************* Paging ende ****************************************
echo '<td align="left" class="uhr"> '.$anz.' Goldies</td>';
?>
</tr>
</table>
<table border="2" bordercolor="#007979" cellspacing="0" cellpadding="0" width="95%">
<tr>
<td class="Kopf" align=center>Status</td>
<td bgcolor="#003333" align=center><a href ="goldie_sort_level.php">Level</a></td>
<td bgcolor="#003333" align=center><a href ="goldie_sort_name.php">Name</a></td>
<td bgcolor="#003333" align=center><a href ="goldie_sort_id.php">ID</a></td>
<td bgcolor="#003333" align=center><a href ="goldie_sort_beute.php">Beute</a></td>
<td bgcolor="#003333" align=center><a href ="goldie_sort_erwischt.php">erwischt</a></td>
<td bgcolor="#003333" align=center><a href ="goldie_sort_energie.php">L-Energie</a></td>
<td bgcolor="#003333" align=center><b><font color="#80FFFF">Datum <img border="0" src="../images/sortup.gif"></font></b></td>
<td bgcolor="#003333" align=center><b><font color="#80FFFF">Zeit <img border="0" src="../images/sortup.gif"></font></b></td>
<td <? if($_SESSION['rechte'] == "admin") { echo 'colspan="2" '; } else { echo ''; } ?> bgcolor="#003333" align=center><b><font color="#80FFFF">Aktion</font></b></td>
</tr>
<?php
// **************************** Countdown Part one ***************************************
$iUserID = $_SESSION["userid"];
$iAttackable = 3;
// **************************** Countdown Part one ende *********************************
$i = 0;
// *************************************** Paging ****************************************
// how many rows to show per page
$rowsPerPage = 20;
// by default we show first page
$pageNum = 1;
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
// ************************************ Hier fängt die Herkömmliche abfrage an ************************************************************
$query = "SELECT * FROM goldie_s20 ORDER BY Jahr DESC, Monat DESC, Tag DESC, Stunde DESC, Minute DESC LIMIT $offset, $rowsPerPage";
$result = mysql_query($query);
$anz = mysql_num_rows($result);
if($anz > 0){
while($row = mysql_fetch_assoc($result)){
$iAttackable = 3;
if($i%2==0) { $trcolor = "#003333"; } else { $trcolor = "#005555"; }
// ************************************************ Countdown part two Start
echo '<tr bgcolor="'.$trcolor.'">';
$sQuery = "SELECT * FROM time_s20 WHERE eintragid = '".$row['IDnum']."' ";
$rAttackResult = mysql_query($sQuery);
while ($aAttacks = mysql_fetch_assoc($rAttackResult)) {
if ( $aAttacks['userid'] == $iUserID && $aAttacks['time'] >= time() ) { $iAttackable = 1; }
else if ($aAttacks['timea'] >= time() ) { $iAttackable = 2; }
if ( $iAttackable == 1 ) {
$iAttackgif = "Block.gif";
$countb = (($aAttacks['time'] - time())-3600) ;
$count = date("H:i:s", $countb);
}
elseif ( $iAttackable == 2 ) {
$iAttackgif = "Block_d.gif";
$countb = (($aAttacks['timea'] - time())-3600) ;
$count = date("H:i:s", $countb);
}
elseif ( $iAttackable == 3 ) {
$iAttackgif = "OK.gif";
$count = '';
}
echo '<td align="center"><img border="0" src="../images/'.$iAttackgif.'">'.$count.'</td>';
// ************************************************ Countdown part two ende
echo '<td><font size="2"> '.$row['Level'].'</font></td>
<td><font size="2"><a href="'.$link_name_s20.''.$row['Name'].'" target="_blank"><b> '.$row['Name'].'</b></a></font></td>
<td align="center"><font size="2"><a href="'.$link_id_s20.''.$row['IDnum'].'" target="_blank"><b>'.$row['IDnum'].'</b></a></font></td>
<td><font size="2"> '.$row['Beute'].'</font></td>
<td><font size="2"> '.$row['erwischt'].'</font></td>
<td><font size="2"> '.$row['Energie'].'</font></td>
<td align="center"><font size="2">'.$row['Tag'].'.'.$row['Monat'].'.'.$row['Jahr'].'</font></td>
<td align="center"><font size="2">'.$row['Stunde'].':'.$row['Minute'].'</font></td>
<td align=center>
<a href="form_aendern.php?
userid='.$iUserID.'&
id='.$row['id'].'&
Level='.$row['Level'].'&
Name='.$row['Name'].'&
IDnum='.$row['IDnum'].'&
Beute='.$row['Beute'].'&
erwischt='.$row['erwischt'].'&
Energie='.$row['Energie'].'&
Tag='.$row['Tag'].'&
Monat='.$row['Monat'].'&
Jahr='.$row['Jahr'].'&
Stunde='.$row['Stunde'].'&
Minute='.$row['Minute'].'" titel="Ändern"><img border="0" src="../images/Redo.gif"></a>';
if($_SESSION['rechte'] == "admin")
{
echo '</td><td align ="center"><a href="action_del.php?id='.$row['id'].'& IDnum='.$row['id'].'& userid='.$iUserID.'" titel="Löschen"><font size="2"><img border="0" src="../images/Delete.gif"></font></a>';
}
else
{
echo '';
}
echo '</td></tr>';
$i++;
}}
Mein Problem liegt darin , das wenn ich einen eintrag ändere sind aufeinmal alle einträge mit dem Bild der 12 Stunden Sperre versehen , und das soll so nicht sein.
Verantwortlich hierfür ist sicherlich die IF-Anweisung
PHP:
$sQuery = "SELECT * FROM time_s20 WHERE eintragid = '".$row['IDnum']."' ";
$rAttackResult = mysql_query($sQuery);
while ($aAttacks = mysql_fetch_assoc($rAttackResult)) {
if ( $aAttacks['userid'] == $iUserID && $aAttacks['time'] >= time() ) { $iAttackable = 1; }
else if ($aAttacks['timea'] >= time() ) { $iAttackable = 2; }
if ( $iAttackable == 1 ) {
$iAttackgif = "Block.gif";
$countb = (($aAttacks['time'] - time())-3600) ;
$count = date("H:i:s", $countb);
}
elseif ( $iAttackable == 2 ) {
$iAttackgif = "Block_d.gif";
$countb = (($aAttacks['timea'] - time())-3600) ;
$count = date("H:i:s", $countb);
}
elseif ( $iAttackable == 3 ) {
$iAttackgif = "OK.gif";
$count = '';
}
echo '<td align="center"><img border="0" src="../images/'.$iAttackgif.'">'.$count.'</td>';
In dieser Tabelle lasse ich die Userid,eintragsid = ( im Eintrag vorhandene nummer die nur einmal in der Tabelle vorkommt ),und die 2 jeweilgen Timestamps einmal time = ( +12 Stunden ) und timea = ( +144 Minuten ) speichern.
Hat jemand eine Idee wie das funktionieren könnte . Das ihr euch ein besseres Bild machen könnt , setze ich auch gleich ein screenshot mit rein wie das jetzt ausschaut.
Der Eintrag mit der ID 44455566 wurde von mir bearbeitet und trägt zu recht das Verbotsschild , die Anderen Einträge haben keinen Passenden gegeneintrag in der Tabelle "time_s20" , wodurch meiner meinung nach immer das Bild Block.gif angezeigt wird. Weil diese Werte ja noch in den Variablen drin sind und nicht ersetzt werden.
Wie mache ich das, das in der whileschleife die zweite whileschleife nur soviele abfragen ausgibt nach der Anzahl der einträge , und wenn keine Passenden Einträge mehr gefunden werden Automatisch Bild OK.gif ausgegeben wird.
Anhänge
Zuletzt bearbeitet: