/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
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
Lægge variable tal sammen?
Fra : dscoop80
Vist : 781 gange
200 point
Dato : 03-10-04 14:28

Hej alle kandu'er ...
Jeg håber der er et klog hovede herinde som har forstand på PHP...

Se på følgende kode, hvilket er et udtog fra mit program:

<?

session_start();
$sessionid = session_id();
$direxist = "vareliste/$sessionid";

if (file_exists($direxist)) {

if ($handle = opendir("./vareliste/$sessionid/")) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {

$part="$file";

   $ext=strrchr($part, ".php");
   $filename=substr($part, 0, -strlen($ext));

   echo "<tr>";
   echo "<td width=\"100%\" style=\"border: green 1px dashed;\"> $filename </td>";
   echo "<td width=\"*\" style=\"border: green 1px dashed;\"> ";

   include "./vareliste/$sessionid/$filename.php";

   echo " kr. ";
   echo "<td><input type=\"button\" value=\"Slet\"></td>";
   echo "</td>";
   echo "</tr>";

}}

closedir($handle);
}

}

else { }

?>

Jeg bruger "Session ID" til at oprette dynamiske biblioteker og sådan her kan brugeren så åbne
dem! det er så selvfølgelig kun admin der kan slette dem igen, men det er også lige meget, det
det hele drejer sig om er at jeg gerne vil have tallene lagt sammen!?

altså: include "./vareliste/$sessionid/$filename.php";

Det er jo dynamisk hvor man filer der er oprettet her, så jeg kan ikke sætte nogen fast variabel.
Der må være en eller anden funktion som gør at man kan lægge uendelig tal af disse sammen?

Skal så lige siges at "$filename.php" indeholder et simpelt tal som f.eks. "100"

Mvh. Cooper

 
 
Kommentar
Fra : rfh


Dato : 03-10-04 15:19

Er det filen der indholder et tal eller er det filenavnet der er = et tal

mvh
rfh


Kommentar
Fra : dscoop80


Dato : 03-10-04 15:50

include "./vareliste/$sessionid/$filename.php"; indeholder et tal som f.eks. 100

Kommentar
Fra : dscoop80


Dato : 03-10-04 15:52

"vareliste/345346254362436526544256/test.php" indeholder f.eks. tallet 100

Kommentar
Fra : rfh


Dato : 03-10-04 16:09

Prøv det her

Kode
<?

session_start();
$sessionid = session_id();
$direxist = "vareliste/$sessionid";

if (file_exists($direxist)) {

if ($handle = opendir("./vareliste/$sessionid/")) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {

$part="$file";

$ext=strrchr($part, ".php");
$filename=substr($part, 0, -strlen($ext));

echo "<tr>";
echo "<td width=\"100%\" style=\"border: green 1px dashed;\"> $filename </td>";
echo "<td width=\"*\" style=\"border: green 1px dashed;\"> ";

// include "./vareliste/$sessionid/$filename.php";
//
$total=0;
// åbne file
$count_file = fopen($part, "r");
while (!feof($count_file)) {
// Hent tal
$tal = fgets($count_file, 20);
// ligge sammen
$total=$total+$tal;
}
// Luk filen
fclose($count_file);

// print total
echo $total;


echo " kr. ";
echo "<td><input type=\"button\" value=\"Slet\"></td>";
echo "</td>";
echo "</tr>";

}}

closedir($handle);
}

}

else { }

?>


mvh
rfh

Kommentar
Fra : dscoop80


Dato : 03-10-04 17:30

Hej rfh...

Kan ikke få den til at virke?
Den læser bare i en evighed til siden går kold.

Kommentar
Fra : Interkriller


Dato : 03-10-04 17:39

Ikke lige en løsning på dit problem, men mere et godt råd.

Tror umiddelbart det vil være mere hensigtsmæssigt at gemme alle disse oplysninger i en Database f.eks MySQL istedet for at gemme et enkelt tal i hver sin php fil i hver sin dokumentfolder.

Det giver dig et langt bedre oversigt over dine data og det du ønsker vil være nemt at opnå!

Kommentar
Fra : dscoop80


Dato : 03-10-04 18:13

Interkriller >>

tak for tippet, men jeg stoler ikke på databaser som "MySQL"...
efter min mening er det for nemt at hacke sig ind på dem, og evt.
inficere dem med virus osv. på serverne, på den anden måde her
som jeg laver, har jeg styr på alle rettigheder til og fra serveren.

Kommentar
Fra : Interkriller


Dato : 03-10-04 18:35

En anden måde kunne være f.eks at vælge at eksportere dine "simple tal" til ét samlet XML dokument, og derefter trække dem ud som "data islands".

Ved godt det ikke er svaret på dit spg, men syntes bare (no offense) at det virker lidt molboagtigt at skulle lave så mange separate dokumenter.

Kommentar
Fra : rfh


Dato : 03-10-04 18:57

Jeg har testet denne dele og virker.

Kode
$total=0;
// åbne file
$count_file = fopen($part, "r");
while (!feof($count_file)) {
// Hent tal
$tal = fgets($count_file, 20);
// ligge sammen
$total=$total+$tal;
}
// Luk filen
fclose($count_file);

// print total
echo $total;


mvh
rfh

Kommentar
Fra : dscoop80


Dato : 03-10-04 20:02

Interkriller >>

Det jo heller ikke nogen jeg selv opretter...
Alle filer bliver oprettet dynamisk efter brugerens behov!
Har lavet det hele, virker perfekt...

rfh >>

Tester det lige...

Kommentar
Fra : dscoop80


Dato : 03-10-04 20:11

rfh >>

Det virker, men ikke på den måde jeg vil ha det!
Den skriver tallene ved siden af hinanden!
lægger dem ikke sammen?

Kommentar
Fra : dscoop80


Dato : 03-10-04 20:16

rfh >>

Husk på at "$part" ikke kun indeholder én fil!
Den indeholder et sted mellem 2 og f.eks. 1000 filer....... ?

Kommentar
Fra : rfh


Dato : 03-10-04 20:43

Citat
Husk på at "$part" ikke kun indeholder én fil!
Den indeholder et sted mellem 2 og f.eks. 1000 filer....... ?


Det var lige en overset detajle,
flyt denne
Kode
$total=0;

op efter
Kode
$sessionid = session_id();
$direxist = "vareliste/$sessionid";
$total=0;


denne line udskriver variablen $total , hvis den skal udskrives.
Kode
echo $total;


mvh
rfh

Kommentar
Fra : dscoop80


Dato : 03-10-04 21:00

rfh >>

nu virker det!!!
MEN hehe....

nu vises der alle tallene plus det samlede tal.... ?
det er KUN det samlede tal jeg skal bruge...
de andre tal har jeg jo i en kolenne....

Accepteret svar
Fra : rfh

Modtaget 200 point
Dato : 03-10-04 21:17

hej dscoop80

Jeg skulle lige have oprettet nogle test filer + mapper, så her er en fuld test version

Den udskriver kun det total værdi på indholdet af filerne.

mvh
rfh

Kode
<?php
session_start();
$sessionid = session_id();

$direxist = 'vareliste/'.$sessionid.'/';
$total=0;

if (file_exists($direxist)) {
if ($handle = opendir($direxist)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
$part="$direxist$file";
$ext=strrchr($part, ".php");
$filename=substr($part, 0, -strlen($ext));

// åbne file
$count_file = fopen($part, "r");
while (!feof($count_file)) {
// Hent tal
$tal = fgets($count_file, 20);
// ligge sammen
$total=$total+$tal;
}
// Luk filen
fclose($count_file);
}
}
closedir($handle);
// print total
echo $total;
}
}
else { }
?>


Godkendelse af svar
Fra : dscoop80


Dato : 03-10-04 21:46

1000000 gange tak for svaret rfh!!!

Det var præcis hvad jeg søgte! er kanon glad for din hjælp!!!

Mvh. Cooper
                        

Kommentar
Fra : rfh


Dato : 03-10-04 21:59

Skulle det være en anden gang, så kan du bare stille et spørgsmål på Kandu.dk

God fornøjelse med dit script arbejde.

mvh
rfh

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177423
Tips : 31962
Nyheder : 719565
Indlæg : 6407898
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste