/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Et totalt mærkeligt problem
Fra : Bertel Lund Hansen


Dato : 27-07-06 13:07

Hej alle

Jeg forstår ikke hvordan det her kan lade sig gøre. Jeg har en
hjemmeside hvor folk kan angive nogle datoer hvor de kan, måske
kan eller ikke kan. Oplysningerne skriver jeg i en lille
tekstfil med formatet

   navn,hostnavn,0,<13 tal med mellemrum imellem>

Et eksempel:

   Bertel,<hostnavn>,0,0 2 2 0 1 0 2 2 2 2 2 2 2


Tallene er 0 (kan ikke), 1 (kan måske) eller 2.

Jeg udskriver en tabel for hver bruger. Den er okay.

Længere nede udskriver jeg også en tabel for hver dag. Jeg
beregner en samlet score (summen af måske'er og ja'er for hver
dag), og endelig tæller jeg ja'erne og måske'erne op for hver
dag.

Det virker som det skal - undtagen lige for den sidste dags
optælling af ja'er og måske'er. Summen er korrekt nok!?

Siden kan ses her:

   http://www.obese.dk/tidspunkt.php

Det er tabellen øverst til venstre og problemtabellen er nederst til højre.

Her er PHP-koden hvor optællingen og udskriften foregår:

<table cellspacing='0' cellpadding='5'>
<tr><td>&nbsp;</td><th>Samlet score</th><th>Ja</th><th>Måske</th></tr>
<?
// Klargør et array med 0'er:
// Format: nej, måske, ja, score
$entry=Array(0,0,0,0);
$time_scores=Array();
for ($nr=0; $nr<$datenumber; ++$nr) $time_scores[]=$entry;
// Optælling:
foreach ($filecontent as $entry) {
   list ($nam,$host,$lock,$choices)=explode(',', $entry);
   $icans=explode(' ',$choices);
   foreach ($icans as $nr => $ican) {
      ++$time_scores[$nr][$ican];
      $time_scores[$nr][3]+=$ican;
   }
}
// Udskrift:
for ($nr=0; $nr<$datenumber; ++$nr) {
   list($no,$may,$yes,$score)=$time_scores[$nr];
   echo "<tr><td>$time_choices[$nr]</td><td>$score</td><td>$yes</td><td>$may</td>";
   echo "</tr>";
}
?>
</table>

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

 
 
Peter Brodersen (27-07-2006)
Kommentar
Fra : Peter Brodersen


Dato : 27-07-06 13:28

On Thu, 27 Jul 2006 14:07:24 +0200, Bertel Lund Hansen
<nospamfilius@lundhansen.dk> wrote:

>Siden kan ses her:
>
>    http://www.obese.dk/tidspunkt.php

Har du tekstfilen liggende et sted til reproduktion? Det er besværligt
at klipkopiere fra svarlisten.

--
- Peter Brodersen
Ugens^WMånedens^WSommerens værktøj - Find vej: www.findvej.dk
Nu med valgfri tekst: www.findvej.dk/Nybrogade2,1203?text=Kulturministeriet

Peter Brodersen (27-07-2006)
Kommentar
Fra : Peter Brodersen


Dato : 27-07-06 13:36

On Thu, 27 Jul 2006 14:27:49 +0200, Peter Brodersen
<usenet2006@ter.dk> wrote:

>Har du tekstfilen liggende et sted til reproduktion? Det er besværligt
>at klipkopiere fra svarlisten.

Mit bedste bud er, at hvis du læser tekstfilen ind med fx file() eller
fgets(), så inkluderes der et newline efter det sidste tegn.

Det betyder, at den sidste værdi, når du splitter på mellemrum, fx
ikke vil være "2" men "2\n".

Du viser dog ikke, hvor $filecontent kommer fra, men hvis det fx er
fra file() eller fgets() (hvor newline bliver bevaret i hver linje),
så vil følgende fx kunne hjælpe:

Ret:
foreach ($filecontent as $entry) {
   list ($nam,$host,$lock,$choices)=explode(',', $entry);

Til:
foreach ($filecontent as $entry) {
   $entry = trim($entry);
   list ($nam,$host,$lock,$choices)=explode(',', $entry);

--
- Peter Brodersen
Ugens^WMånedens^WSommerens værktøj - Find vej: www.findvej.dk
Nu med valgfri tekst: www.findvej.dk/Nybrogade2,1203?text=Kulturministeriet

Bertel Lund Hansen (27-07-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-07-06 14:24

Peter Brodersen skrev:

> Det betyder, at den sidste værdi, når du splitter på mellemrum, fx
> ikke vil være "2" men "2\n".

Tak! Det var lige dér hunden lå begravet.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste