[php] Plakband oplossing verhelpen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wie kan mijn verder helpen?
Ik heb een script dat variabele tijden in een database plaatst
(alles moet in één cel geplaatst worden)

Dus 12:00 12:15 12:30 12:45 enz. daar heb ik het volgende script voor, maar het is een beetje een “Plakband oplossing geworden”

Volgens mij kan het handiger, zat te denken aan een array of iets degelijks, wie kan mij verder opgang helpen

<?php

$start = "11:00";
$end = "12:30";

$i = explode(":",$start);
$lo = explode("-",$locatie);

$hours =$i[0];
$minute=$i[1];

echo "<form name=\"form1\" method=\"post\" action=\"$PHP_SELF\">\n";
echo "<textarea name=\"tijd\" rows=\"10\">\n";


while ($counter<=68){

if($minute==60){$minute=0; $hours++;}


if ($hours==25){echo "01:$minute\n"; $stop = "01:$minute";
}elseif ($hours==26){echo "02:$minute\n"; $stop = "02:$minute";
}elseif ($hours==27){echo "$03:$minute\n"; $stop = "03:$minute";
}elseif ($hours==28){echo "$04:$minute\n"; $stop = "04:$minute";
}else {echo "$hours:$minute\n"; $stop="$hours:$minute";}

if($stop==$end){$counter=68;}//STOP !!


$minute = $minute + 15;
$counter++;}
echo "</textarea>";
echo "<script>javascript:document.form1.submit();</script>";
echo "</form>";

$sql = "INSERT INTO template (tijd) VALUES ('$tijd')";
$result = mysql_query($sql);

?>

Acties:
  • 0 Henk 'm!

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 13:04
Waarom niet ofwel een combinatie van mktime() en date() ofwel gebruik makend van de %-operator (modulo)?

in code bijvoorbeeld:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    $start = 0; // starttijd
    for ($i = 0; $i < 10; $i++)
        echo date("H:i", $start + $i * 900); // 900 sec. in ieder kwartier;

    $uur = 0;
    $min = 0;
    for ($i = 0; $i < 10; $i++)
    {
        echo $uur.":".$min."<br>";
        $min += 15;
        if ($min == 60)
        {
            $min = 0;
            $uur = ($uur + 1) % 24;
        }
    }

[ Voor 68% gewijzigd door sjroorda op 18-12-2002 20:35 . Reden: added code ]


Acties:
  • 0 Henk 'm!

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 12:00

Pelle

🚴‍♂️

moved.to/14 :)

Acties:
  • 0 Henk 'm!

Verwijderd

sjroorda schreef op 18 december 2002 @ 20:31:
Waarom niet ofwel een combinatie van mktime() en date() ofwel gebruik makend van de %-operator (modulo)?
Okay daar ben ik weer, kon niet meer inloggen onder mijn eigen account;

Ja deze oplossing is inderdaad wat mooier was er nog niet bekent mee.
Heb het script een beetje aangepast en ben met het volgende gekomen;

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$stop = 12.45 - 9.15;
$stop = $stop * 4 + 1;

    $uur = 9; 
    $min = 15; 
    for ($i = 0; $i < $stop; $i++) 
    { 
   
        echo $uur.":".$min."<br>"; 
        
        $tijd = $uur.$min; 
        
        $min += 15; 
        if ($min == 60) 
        { 
            $min = 0; 
            $uur = ($uur + 1) % 24; 
        } 
    }


maar hoe kan ik alles netje in een dB zetten?
$sql = "INSERT INTO template (tijd) VALUES ('$tijd')";
Is niet genoeg

Acties:
  • 0 Henk 'm!

Verwijderd

volgens mij heb je geen db connectie.... uit de docs:

resource mysql_query (string query [, resource link_identifier])

mysql_query() sends a query to the currently active database on the server that's associated with the specified link identifier. If link_identifier isn't specified, the last opened link is assumed. If no link is open, the function tries to establish a link as if mysql_connect() was called with no arguments, and use it.

Acties:
  • 0 Henk 'm!

Verwijderd

Niet in mijn voorbeeld nee, maar de connectie is geen prob.
Het gaat mij erom dat ik alles in één cel krijg.

Output 9:15 9:30 9:45 ...>>
env. dat alles in een cel

Acties:
  • 0 Henk 'm!

Verwijderd

Misschien ten overvloede (neem aan dat je dit al doet en je niet je gehele code gepost hebt) moet moet je ook ff checken of $tijd wel wat is... anders gaat met elke GET een lege record gevult worden....

----------edit:
wat bedoel je met "in een cel"?

[ Voor 12% gewijzigd door Verwijderd op 21-12-2002 17:28 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Dat is ook het probleem mijn output $tijd is 12.45
is het mogelijk om het een array of oz te werken..

Acties:
  • 0 Henk 'm!

Verwijderd

Sorry.... ik begrijp niet helemaal wat je wilt....

Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb een dB waar ik een tabel tijden gemaakt heb en daar in staan weer cellen die gevuld moeten worden.

Een daar van wil ik vullen met variabele tijden dus 9:15 9:30 9:45 enz.

Acties:
  • 0 Henk 'm!

Verwijderd

Wat zijn toch die cellen waar je het over hebt? Hoe moet de inhoud van de DB na het uitvoeren van het script eruit zien?
---------------Edit:
Misschien ben ik niet helemaal duidelijk (ik heb namelijk nog nooit van cellen in een DB gehoord maar dat zo aan mij kunnen liggen) ... Wil je nou dat je fields in je tabel worden aangepast (dan kan je beter een koppel tabel gebruiken) of wil je dat je records in je tabel worden gevuld met tijden van 9:45 tot whatever (en waarvoor gebruik je eigenlijk een textfield)? Kortom ik begrijp eigenlijk nog steeds niet echt wat je wilt...

[ Voor 68% gewijzigd door Verwijderd op 22-12-2002 10:44 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Oké even voor de duidelijkheid;
dB bevat een tabel Tijdschema met een kolom genaamd tijden
Een kolom heeft cellen waar de waardes worden ingevuld.

Nou wil ik dat de records in de kolom Tijden worden gevuld.
Als ik var $tijd zal gebruiken krijg ik niet alles in mijn dB.

Dus dacht ik; Ik maak wel gebruik van een textarea die vul ik en laat mijn formulier automatisch versturen. Op deze manier krijg ik alle tijden netjes in een cel.

Maar dit alles is behoorlijk omslachtig.

Acties:
  • 0 Henk 'm!

Verwijderd

Dus dit wil je eenmalig doen? Gebruik dan geen textarea en zet het sql statement + uitvoer binnen je for loop...

Acties:
  • 0 Henk 'm!

Verwijderd

Oke ik weet nog niet hoe het moet maar daar kom ik wel achter, hopelijk werkt het .
Laat het wel even weten

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ben nu even PHP 4.3 aan het downloaden om het vervolgens met array_fill te proberen.
hopelijk is dit de juiste manier, meschien heeft iemand nog een andere suggestie

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Wat je aan het doen bent met je plakbandoplossing komt door een fout in je datamodel, misschien moet je de dumps vand e tabel(en) even geven.

offtopic:
Een cel zie ik als 1 plaats in de database waar je iets in kunt vullen, dus kolom1, rij1 is één veld. kolom2, rij1 is een ander veld.

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ik zou iig als je zoiets in een database wilt plaatsen, dat volgens de "officiele manier" doen.

Een array is nergens voor nodig, simpelweg omdat een tabel eigenlijk al een array is.
Als je dus voor een bepaalde setup een rits tijden nodig hebt kan je dat zo modeleren:

bijvoorbeeld uit een programma gids:

programma = programmaid (int/auto_increment), naam (string), presentator(string/reference)
programma_tijden = programmaid (int reference), tijdstip (date/time/timestamp/int)

En vul dus netjes voor elk programma dan per tijdstip een los record in de programma_tijden tabel in. Als je zoiets vaak moet doen is het aan te raden dat met 1 enkel sql-insert-statement te doen ("insert into programma_tijden VALUES (1, 2) (2, 3) (3, 4) (e, tc)" oid, zie mysql-manual)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Okay hier mijn tabel

CREATE TABLE tijdschema (
id varchar(3) NOT NULL,
bandID varchar(2) NOT NULL,
Dag varchar(2) NOT NULL,
tijd varchar(55) NOT NULL
);

(misschien dat ik later iets anders ga gebruiken voor varchar maar dat moet ik nog even uitzoeken)

Acties:
  • 0 Henk 'm!

  • Aceton
  • Registratie: Februari 2001
  • Laatst online: 28-11-2021
Verwijderd schreef op 29 December 2002 @ 15:38:
Okay hier mijn tabel

CREATE TABLE tijdschema (
id varchar(3) NOT NULL,
bandID varchar(2) NOT NULL,
Dag varchar(2) NOT NULL,
tijd varchar(55) NOT NULL
);

(misschien dat ik later iets anders ga gebruiken voor varchar maar dat moet ik nog even uitzoeken)
Ja, ik zou gaan voor 'date' en 'time'. Die zijn speciaal voor dat doel in het leven geroepen ooit.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Waarom wil je nu meerdere tijden in één veld gaan stoppen? Ik hoop niet dat je dit doet omdat bands op meerdere dagen kunnen spelen...

[ Voor 8% gewijzigd door djluc op 29-12-2002 17:18 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
djluc schreef op 29 December 2002 @ 17:17:
Waarom wil je nu meerdere tijden in één veld gaan stoppen? Ik hoop niet dat je dit doet omdat bands op meerdere dagen kunnen spelen...
Omdat ik een begin en een eind tijd wil invoeren met alle tussen liggende uren

Zoiets als dit;
1100=1&1115=1&1130=1&1145=1&120

en dit gebruik ik weer om in Flash een dynamische programma te genereren

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Waarom plaats je die tussenliggende uren, die kun je toch zo invullen. Zit er veredr altijd een uur tussen?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het schema wordt per kwartier opgebouwd.
Hier zijn mijn flash files even voor de duidelijkheid;

[ Voor 37% gewijzigd door Verwijderd op 25-01-2003 12:28 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Sorry ik heb geen flash, zet anders je code ff online, kan wel actionscripten. Je kunt toch gewoon in actionscript programmeren dat hij die tijden er zelf bij moet bedenken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dit is de actie die er opuitgevoerd word

id = getProperty("", _name);
// actions
A1115 = eval("/:1115");
if (A1115 == 1) {
A1115A.nextFrame();
}

vandaar;
1100=1&1115=1&1130=1&1145=1&120

[ Voor 60% gewijzigd door Verwijderd op 25-01-2003 12:29 ]


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
Zou het zo met flash zo snel niet weten, weet wel dat het met php pagina's niet nodig zou zijn, dus hoegft het met flash ook niet perse.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
djluc schreef op 31 december 2002 @ 11:21:
Zou het zo met flash zo snel niet weten, weet wel dat het met php pagina's niet nodig zou zijn, dus hoegft het met flash ook niet perse.
Dat wat niet nodig is?
De tussenliggende uren?
Hoe zou ik het dan in PHP kunnen opbouwen?
Het hoeft dus niet perse met Flash als het maar een overzichtelijk schema wordt

Acties:
  • 0 Henk 'm!

Verwijderd

Ik zou het oplossen met in je tabel een begin- en eindtijd van het optreden.

Vervolgens kun je in flash wel oplossen dat je van begin- tot eindtijd je balkje vol kleurt lijkt mij...

Heeft een band meerdere optredens op een dag, dan doe je gewoon twee inserts voor die band in je tabel.

Just my 2 EUR-cents.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja okay zoiets had ik eerst ook.
Maar hoe zou ik dat in flash moeten opbouwen, ik bouw het nu per kwartier op.

id = getProperty("", _name);
// actions
A1115 = eval("/:1115");
if (A1115 == 1) {
A1115A.nextFrame();
}

vandaar;
1100=1&1115=1&1130=1&1145=1&120

[ Voor 17% gewijzigd door Verwijderd op 25-01-2003 12:29 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 02 January 2003 @ 13:39:
Ja okay zoiets had ik eerst ook.
Maar hoe zou ik dat in flash moeten opbouwen, ik bouw het nu per kwartier op.
Ik heb absoluut geen kaas gegeten van ActionScript. Maar of je laat PHP die waarden per kwartier uitpoepen. Dat lijkt me absoluut geen probleem als je een begin en eindtijd registreert... (zoiets als het loopje wat er boven al genoemd staat en dan met begin- en eindtijd uit database opgehaald).

Tweede optie: daarnaast lijkt het me dat je je Actionscriptje wel kan aanpassen dat ie van begin tot eindtijd een balkje vol kleurt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat had ik ook als oplossing maar daarop kwam mijn vraag;
Verwijderd schreef op 21 December 2002 @ 17:10:
[...]

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$stop = 12.45 - 9.15;
$stop = $stop * 4 + 1;

    $uur = 9; 
    $min = 15; 
    for ($i = 0; $i < $stop; $i++) 
    { 
   
        echo $uur.":".$min."<br>"; 
        
        $tijd = $uur.$min; 
        
        $min += 15; 
        if ($min == 60) 
        { 
            $min = 0; 
            $uur = ($uur + 1) % 24; 
        } 
    }


maar hoe kan ik alles netje in een dB zetten?
$sql = "INSERT INTO template (tijd) VALUES ('$tijd')";
Is niet genoeg

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 12:56
$sql = "INSERT INTO template (tijd) VALUES ('$tijd')";
Maak gewoon een kolom begin, en een kolom eindtijd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja okay maar het gaat om de tussen liggende tijden die zijn erg belangrijk.
Mijn schema wordt per kwartier op gebouwd, en tussen tijden worden op gebouwd met een script.

Voor flash heb ik een output nodig zoiets als dit;
1100=1&1115=1&1130=1&1145=1&120
Dit kan ik genereren maar hoe krijg ik dit in een dB (één enkele cel)?

Acties:
  • 0 Henk 'm!

Verwijderd

(laatste reply wat mij betreft)
Voor flash heb ik een output nodig zoiets als dit;
1100=1&1115=1&1130=1&1145=1&120
Als je nou begintijd en eindtijd (opgehaald uit database) combineert met:
code:
1
$stop = 12.45 - 9.15;

Maar dan:
code:
1
$stop = $eindtijd - $begintijd;

dan ben je toch waar je wezen wilt?

Het in de database stoppen doe je door twee pull down menuutjes te maken met daarin de tijden, een voor begintijd, een voor eindtijd.

Simpel (tm) ;)

[ Voor 3% gewijzigd door Verwijderd op 02-01-2003 14:06 . Reden: te weinig koffie %-) ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja dat ik daar nog niet aan gedacht heb.
Was teveel aan het ploeteren om alles in een dB te krijgen, denk dat ik hier wel verder mee kan.
Loop waarschijnlijk nog wel tegen wat problemen maar dat moet wel te verhelpen zijn.
Txs

Acties:
  • 0 Henk 'm!

Verwijderd

Ok, succes!

Acties:
  • 0 Henk 'm!

  • xces
  • Registratie: Juli 2001
  • Laatst online: 08-09 17:20

xces

To got or not to got..

Waarom gebruik je geen XML? Dat je een php pagina aanroept die xml uitspuugt? Is afaik wel een stuk overzichtelijker als je een keer phpmyadmin gaat gebruiken.

Hier zijn overigens meer dan genoeg voorbeelden voor beschikbaar op google met "flash xml", ook diverse actionscript voorbeelden etc etc..

[ Voor 31% gewijzigd door xces op 02-01-2003 15:49 ]

Pagina: 1