Forum » Server-Side scripting » MySQL foutje...
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privebericht
Beste,

Ik ben een spel aan het maken.
Nu moet er iets weergegeven worden, als de tijd (net zoals in banditi in de database staan 2 velden. Een datetime en een int.) nog niet voorbij is.

Daarvoor gebruik ik dit scriptje:
Code | Selecteer Alles
minimaliseren
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$res mysql_query("SELECT id FROM toestellen WHERE eigenaar='".$data['name']."'");
$beschikbaar mysql_num_rows($res);

while(
$sel mysql_fetch_array($res)){
$res2 mysql_query("SELECT vliegtijd, id, code, naar, soort, UNIX_TIMESTAMP(vliegen) AS vliegen".$sel['id']." FROM toestellen WHERE id='".$sel['id']."'");
$sel2 mysql_fetch_array($res2);
$datijd $sel2['vliegtijd'];
$tijdverschil1 $sel2['vliegen'.$sel2['id']]-3600+$datijd-time();
if(
$sel2['vliegen'.$sel2['id']] + $datijd time()){
list(
$uur,$min,$sec)=explode(":",date("H:i:s",$tijdverschil1));
$countdown $sel2['vliegen'.$sel2['id']]+$datijd-time();
}
if(
$countdown 0){
//voer uit, resultaten
}
}


Dit werkt 100% voor 1 rij.
Dus voor zeg maar rij in de tabel "toestellen".
Maar als ik er 2 in plaats, waarvan 1 dat de tijd nog niet voorbij is, en 1 wel.
Staat er bij allebij dezelfde tijd.
Dus hij telt (met JS) af, en er staat dezelfde tijd.
Terwijl er bij 1 niet eens iets weergegeven moet worden.

Als ik in de bron kijk zie ik dat in het javascriptje de waarde om vanaf af te tellen, bij allebij is dit hetzelfde.
Terwijl er bij 1 dus 1 moet staan.

Hoe fix ik dit, ik weet echt geen raad meer.

De javascript ziet er zo uit:
Code | Selecteer Alles
minimaliseren
1
2
3
<script language="javascript">
countdown('<?echo$countdown;?>','count_timer<?echo$sel2['id'];?>','status.php');
</script>


En ik roep hem aan via een span id.

Ik hoop dat iemand het weet,

Lars
06-06-2010 12:40
Dit topic is 155 keer bekeken door 38 verschillende leden
Reacties op: "MySQL foutje..."
1
De causeur!
Berichten: 504
avatar
Offline Stuur privébericht
Je moet gewoon 1 query maken, die de resultaten haalt wanneer vliegtijd + vliegen < de tijd op dit moment.

Code | Selecteer Alles
minimaliseren
1
mysql_query("SELECT id FROM toestellen WHERE UNIX_TIMESTAMP(`vliegen`) + vliegtijd < '".time()."' AND eigenaar='".$data->eigenaar."'");


Ik weet niet of het werkt...
06-06-2010 13:05
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
@MrMees,

Het werkt nu.
Heel erg bedankt.
Gewoon:
Code | Selecteer Alles
minimaliseren
1
$res mysql_query("SELECT id FROM toestellen WHERE eigenaar='".$data['name']."'");


met:
Code | Selecteer Alles
minimaliseren
1
$res mysql_query("SELECT id FROM toestellen WHERE UNIX_TIMESTAMP(`vliegen`) + vliegtijd < '".time()."' AND eigenaar='".$data['name']."'");


vervangen en het werkt nu 100% en de code is ook veel korter.
Hartelijk bedankt!!

Lars
06-06-2010 13:39
De causeur!
Berichten: 504
avatar
Offline Stuur privébericht
Graag gedaan
06-06-2010 14:20
Berichten: 709
avatar
Offline Stuur privébericht
Eveneens bedankt, net wat ik nodig had voor mijn eigen script
06-06-2010 14:30
Reageer op: "MySQL foutje..."
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden