php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.03.2005, 20:55  
Gast
 
Beiträge: n/a
Standard Dringend! PHP, JScript und SQL - countdown

Hallo Leute, ich habe folgendes Problem:

Ich habe eine while-schleife in php, in der ich einen datenbank-wert und die aktuelle Zeit auslese und die Differenz als Restzeit speichere (nebenbei lese ich natürlich zu jeder der Restzeiten andere Informationen wie username, preis,... ebenfalls aus). Nun soll aber die dort angezeigte Restzeit dynamisch heruntergezählt werden. Das javascript hierfür habe ich auch schon, nur habe ich keine Ahnung, wie ich das einbinden soll, da ich ja immer eine unbestimmte Anzahl an zu übergebenden Variablen habe, die als Countdown ablaufen sollen. Das ganze soll dann so aussehen:


1.
xxxxxxxx // x,y,z: passende Werte aus Datenbank
yyyyyyyy
Restzeit: 20 Std 10 Min 05 Sek // soll runterzählen
zzzzzzzz

2.
aaaaaaa
bbbbbbb
Restzeit: 33 Std 21 Min 17 Sek
ccccccc

3.
dddddd
eeeeee
Restzeit: 80 Std 44 Min 32 Sek
ffffffffff

Hier auch der aktuellste Quelltext, wenn wer so nett wäre und sich durchwühlt.
________________________________
<script LANGUAGE="JavaScript"><!--
function validateForm()
{
var okSoFar=true
with (document.UE)
{
if (okSoFar==true) submit();
}
}
// --></script>


<script language="JavaScript">
var jahr=2222, monat=2, tag=22, stunde=22, minute=22, sekunde=22; // Hier erfolgt die variablen-Übergabe
var zielDatum=new Date(jahr,monat-1,tag,stunde,minute,sekunde);
function countdown() {
startDatum=new Date(); // Aktuelles Datum

// Countdown berechnen und anzeigen, bis Ziel-Datum erreicht ist
if(startDatum<=zielDatum) {

var jahre=0, monate=0, tage=0, stunden=0, minuten=0, sekunden=0;

// Jahre
if(startDatum<zielDatum) {
while(startDatum<zielDatum) {
if(startDatum.setFullYear(startDatum.getFullYear() +1)<=zielDatum) jahre++;
}
startDatum.setFullYear(startDatum.getFullYear()-1);
}

// Restliche Tage zum Monatsende ermitteln
var restTage=0;
var m=startDatum.getMonth();
if(m==1-1||m==3-1||m==5-1||m==7-1||m==8-1||m==10-1||m==12-1) restTage=31-startDatum.getDate();
else if(m==4-1||m==6-1||m==9-1||m==11-1) restTage=30-startDatum.getDate();
else if(m==2-1) {
if(startDatum.getFullYear()%4==0 && (startDatum.getFullYear()%100!=0 || startDatum.getFullYear()%400==0)) restTage=29-startDatum.getDate(); // Schaltjahr
else restTage=28-startDatum.getDate();
}

// Start- und Ziel-Tag merken und auf 1 setzen
var startTag=startDatum.getDate();
var zielTag=zielDatum.getDate();
startDatum.setDate(1);
zielDatum.setDate(1);

// Monate
if(startDatum<zielDatum) {
while(startDatum<zielDatum) {
if(startDatum.setMonth(startDatum.getMonth()+1)<=z ielDatum) monate++;
}
startDatum.setMonth(startDatum.getMonth()-1);
}

// Tatsächlichen Start- und Ziel-Tag berücksichtigen
if(startDatum.getMonth()==zielDatum.getMonth()) {
if(startTag<=zielTag) startDatum.setDate(startTag);
else {
monate--;
tage=restTage+1;
}
}
else {
startDatum.setMonth(startDatum.getMonth()+1);
if(startTag>=zielTag) tage=restTage+1;
else {
monate++;
startDatum.setDate(startTag);
}
}
zielDatum.setDate(zielTag);

// Tage
restTage=Math.floor((zielDatum-startDatum)/(24*60*60*1000));
startDatum.setTime(startDatum.getTime()+restTage*2 4*60*60*1000);
tage+=restTage;

// Stunden
stunden=Math.floor((zielDatum-startDatum)/(60*60*1000));
startDatum.setTime(startDatum.getTime()+stunden*60 *60*1000);

// Minuten
minuten=Math.floor((zielDatum-startDatum)/(60*1000));
startDatum.setTime(startDatum.getTime()+minuten*60 *1000);

// Sekunden
sekunden=Math.floor((zielDatum-startDatum)/1000);

// Anzeige formatieren
(jahre!=1)?jahre=jahre+" Jahre, ":jahre=jahre+" Jahr, ";
(monate!=1)?monate=monate+" Monate, ":monate=monate+" Monat, ";
(tage!=1)?tage=tage+" Tage, ":tage=tage+" Tag, ";
(stunden!=1)?stunden=stunden+" Stunden, ":stunden=stunden+" Stunde, ";
(minuten!=1)?minuten=minuten+" Minuten und ":minuten=minuten+" Minute und ";
if(sekunden<10) sekunden="0"+sekunden;
(sekunden!=1)?sekunden=sekunden+" Sekunden":sekunden=sekunden+" Sekunde";

document.countdownform.countdowninput.value=jahre+ monate+tage+stunden+minuten+sekunden;

setTimeout('countdown()',200);
}
// Anderenfalls alles auf Null setzen
else document.countdownform.countdowninput.value="0 Jahre, 0 Monate, 0 Tage, 0 Stunden, 0 Minuten und 00 Sekunden";
}
</script>

<html>
<head><title>Übersicht</title></head>
<body>
Hier sehen sie Ihre laufenden Auftraege:


<?php
$db_server='localhost';
$db_user='root';
$db_passwort='';
$db_name='translations';

$verbindung=mysql_connect($db_server,$db_user,$db_ passwort);

if(!$verbindung)
die("Der Server kann nicht erreicht werden. Bite versuchen sie es später wieder.");

if(!mysql_select_db($db_name,$verbindung))
die("Die Datenbank kann nicht angesprochen werden.");



if(!session_id()) session_start();
if (isset($_SESSION['md5_pass'])) pama_authenticate($_SESSION['username'],$_SESSION['md5_pass'],"members",0);
else
{
js_msg("Error, please re-login.");
include ("../get_details.php");
js_goto(INITIAL_PAGE);
exit;
}


$query="SELECT aid, auftraege.text_alt, sekunden, sprache FROM texts, auftraege WHERE auftraege.id=(SELECT id FROM pama_members WHERE their_username='".$_SESSION['username']."') AND texts.text_alt=auftraege.text_alt AND auftraege.alt='0' ";
$result=mysql_query($query);




if(!$result)
echo mysql_error();

$number=mysql_numrows($result);
$i=1;

function smarty_modifier_count_words($string)
{
$split_array = preg_split('/\s+/',$string);
$word_count = preg_grep('/[a-zA-Z0-9\\x80-\\xff]/', $split_array);

return count($word_count);
}

while($i < ($number + 1))
{
$row = mysql_fetch_array($result);
$aid = $row["aid"];
$txt = $row["text_alt"];
$zeit = $row["sekunden"];
$sprache = $row["sprache"];

$tmp="SELECT preis FROM preis WHERE sprache='".$sprache."' AND id=(SELECT id FROM pama_members WHERE their_username='".$_SESSION['username']."')";
$preis1=mysql_query($tmp);
$ppreis=mysql_fetch_array($preis1);
$preis=$ppreis["preis"];

$anz=smarty_modifier_count_words($txt);
$gpreis1=(bcmul($anz,$preis))/100;
$ant=0.1;
$eg=bcmul($gpreis1,$ant,2);
$gpreis=bcsub($gpreis1,$eg,2);

$jzeit=time();
$restzeit=bcsub($zeit,$jzeit);
$stdfak=3600;
$minfak=60;
$rstd=floor(bcdiv($restzeit,$stdfak,2);
$zerg=bcmul($rstd,$stdfak);
$zerg2=bcsub($restzeit,$zerg);
$rmin=floor(bcdiv($zerg2,$minfak);
$zerg3=bcmul($rmin,$minfak);
$rsek=bcsub($rmin,$zerg3);

if($restzeit > 0)
print "
$i:
$sprache

$txt
$gpreis Euro
$rstd Stunden $rmin Minuten $rsek Sekunden

"; //an dieser Stelle jscript einbinden
//hier muss wohl das script eingebunden werden...
else
{
$anteil=3;
$strafe=bcdiv($gpreis,$anteil,2);
if ($strafe > 20)
$strafe=20;
print "
$i:
$sprache

$txt

Ihre Zeit ist bereits abgelaufen. Ihnen wird ein Betrag in Höhe von ".$strafe." Euro von ihrem Konto abgezogen.

";
$query2="SELECT stand FROM konto WHERE id=(SELECT id FROM pama_members WHERE their_username='".$_SESSION['username']."')";
$result2=mysql_query($query2);
$sstand=mysql_fetch_array($result2);
$stand=$sstand["stand"];
$stand_neu1=bcsub($stand,$strafe,2);
$array=array("," => ".");
$stand_neu=strtr($stand_neu1,$array);
$query3="UPDATE konto SET stand='".$stand_neu."' WHERE id=(SELECT id FROM pama_members WHERE their_username='".$_SESSION['username']."')";
$result3=mysql_query($query3);
$query4="UPDATE auftraege SET alt='2' WHERE aid='".$aid."' ";
$result4=mysql_query($query4);
}
$i++;
}
mysql_free_result($result);
?>

Fügen sie hier eine fertige Übersetzung ein:

<form action="./content/phps/meineauftraege1.php" method="post" name="UE">
<input type="hidden" name="save" value="">
<textarea name="text" cols="100" rows="10" wrap="soft">
</textarea>


Geben sie hier die Nummer des fertigzustellenden Auftrages an:


<input type="text" name="aufid">


<input type="button" value="Auftrag beenden" name="b1"
class="button" onclick="javascript:validateForm();">
</form>
</body>
</html>

________________________________

Wie gehe ich DAS an? Zumal ja PHP server-seitig und JScript client-seitig ist...

Vielen Dank für jede Antwort oder jede Quelltext-Vervollständigung.

Dennis
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.03.2005, 22:19  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

glaubst du irgendwer hat lust sich dieses ganze gewirr durchzulesen?? kannst dus nicht wenigstens in bbcode schreiben und dann die wichtigen teile rausfiltern?
Flor1an ist offline   Mit Zitat antworten
Alt 01.03.2005, 23:50  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

Ohne auch nur reingeschaut zu haben, weil das unlesbar ist: Lies doch die Variablen mit PHP aus und weise sie JS Variablen zu:
PHP-Code:
<?php
$wert 
85;
?>
<script type="text/javascript">
var wert = <?php echo $wert?>;
</script>
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Countdown der.... xenus HTML, Usability und Barrierefreiheit 0 02.10.2006 10:07
php in ein JavaScript Countdown einbinden! Boennchen PHP Tipps 2005 11 26.04.2005 13:41
Wie kann ich den Countdown von der Stautsleiste in den Body HTML, Usability und Barrierefreiheit 17 25.04.2005 22:04
[Erledigt] Leidiges Thema Countdown HTML, Usability und Barrierefreiheit 16 26.03.2005 12:40
DB Countdown? TRW PHP Tipps 2005 2 06.01.2005 19:00
[Erledigt] JavaScript + PHP (SQL) Countdown HTML, Usability und Barrierefreiheit 5 23.12.2004 14:01
problem (countdown) HTML, Usability und Barrierefreiheit 8 07.11.2004 23:08
Der 'Countdown' und das Tutorial... HTML, Usability und Barrierefreiheit 2 12.09.2004 22:43
Countdown HTML, Usability und Barrierefreiheit 0 12.09.2004 21:27
[Erledigt] Countdown problem! HTML, Usability und Barrierefreiheit 3 28.07.2004 11:59
[Suche] dringend! Countdown Funktion Off-Topic Diskussionen 4 19.07.2004 15:58
Javascript countdown mal anders - erledigt Ohrwurm83 HTML, Usability und Barrierefreiheit 4 02.07.2004 23:35
javascript countdown in while scheife Ohrwurm83 PHP Tipps 2004 1 02.07.2004 16:50
[Erledigt] Countdown HTML, Usability und Barrierefreiheit 2 27.06.2004 02:32
Automatisierung durch countdown Ohrwurm83 PHP Tipps 2004 2 16.06.2004 22:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
countdown php, jscript countdown, sql resttage monat, ziel contown jahre monate stunden, javascript timer jahre monate tage, php countdown monatsende, http://www.php.de/php-fortgeschrittene/18799-dringend-php-jscript-und-sql-countdown.html, jscript session_id, sql monatsende ermitteln, javascript countdown anzahl datenbank, php sql countdown, monatsende mit sql ermitteln, php $heute bis $ziel countdown, php monatsende berechnen, javascript countdown in tagen stunden minuten für sekunden aus datenbank, sql date countdown, php countdown tage minuten sek, php countdown, \jscript\ update sql, javascript 1 min countdown

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.