sorhhMedlem sedan dec. 2002536 inlägg Jag är rätt så ny i PHP-världen men ni förstår nog.
Så här ser det ut i "textdatabasen" som ligger utanför www-roten:
->
mailadress1@regerar.com¦¦mailadress2@regerar.com¦¦Namn1¦¦Namn2¦¦NUMMER¦¦Meddelande¦¦Session-kod
<-
Hur gör jag för att räkna antal gånger tex. 50 finns i "fältet" NUMMER? Det borde väl gå?
Så här skriver jag ut NUMMER
<?php echo"$data[4]"; ?>
Detta är alltså för att kunna räkna antal gånger ett e-vykort är skickat. http://www.regerar.com/e-kort/ekortstart.php
Blir glad för lite hjälp!
rIkLuNdMedlem sedan feb. 2003169 inlägg Har NUMMER olika värden för varje rad i "databasen", eller finns det bara 1 rad i den??
sorhhMedlem sedan dec. 2002536 inlägg Det är blir en ny rad för varje e-kort som skickas. Dvs. en massa olika värden.
rIkLuNdMedlem sedan feb. 2003169 inlägg gör nåt som det här:
// ladda filen
$load = file("databas.txt");
// loopa igenom datan
for($i = 0; $i < count($load); $i++)
{
// splitta den!
$data = explode("||",$load[$i]);
// räkna det nummer som finns i den här raden!
$number[$data[4]]++;
}
// låt oss kolla på resultatet
echo "<pre>\n";
print_r($number);
echo "</pre>\n";
sorhhMedlem sedan dec. 2002536 inlägg Ok tack, men exakt var ska jag skriva tex. 43 för att kolla hur många gånger det är skickat?
sorhhMedlem sedan dec. 2002536 inlägg <?php
// ladda filen
$load = file("databasen.txt");
// loopa igenom datan
for($i = 0; $i < count($load); $i++)
{
// splitta den!
$data = explode("||",$load[$i]);
// räkna det nummer som finns i den här raden!
$number[$data[4]]++;
}
// låt oss kolla på resultatet
echo "<pre>\n";
print_r($number);
echo "</pre>\n";
?>
<?php
echo $number[43];
?>
Förlåt om jag är lite efter. Är det såhär du menar?
Det här blir resultatet: http://www.regerar.com/e-kort/antal.php
rIkLuNdMedlem sedan feb. 2003169 inlägg det verkar som att det inte funkar... *hmm* är det verkligen || som separerar värdena från varandra??
sorhhMedlem sedan dec. 2002536 inlägg Nja, det är ¦¦ fast det kanske inte är nån skillnad.
rIkLuNdMedlem sedan feb. 2003169 inlägg den här borde fungera:
// ladda filen
$load = file("databas.txt");
// loopa igenom datan
for($i = 0; $i < count($load); $i++)
{
// splitta den!
$data = explode("¦¦",$load[$i]);
// räkna det nummer som finns i den här raden!
$number[$data[4]]++;
}
// låt oss kolla på resultatet
echo "<pre>\n";
print_r($number);
echo "</pre>\n";
ändrade || till ¦¦
sorhhMedlem sedan dec. 2002536 inlägg Det funkade felfritt, tack så mycket!
Kanske återkommer senare ang. en e-kortstopplista ;)
sorhhMedlem sedan dec. 2002536 inlägg Det verkar funka riktigt fint det här. Men hur gör jag om jag vill ha en 0:a när kortet inte har skickats nån gång alls.
Försökte knåpa lite själv med if osv. men det gick inge bra.
Kanske nån som kan hjälpa mej? :OO
rIkLuNdMedlem sedan feb. 2003169 inlägg finns de raderna inte i databasen eftersom de aldrig skickats?
sorhhMedlem sedan dec. 2002536 inlägg Nej, det blir en ny rad för varje skickat e-kort. Själva e-korten finns inte i nån databas.
När ett kort inte är skickat står det ingenting. Kan man byta ut ingenting mot en nolla?
rIkLuNdMedlem sedan feb. 2003169 inlägg vad menar du med ingenting? att det kortets id inte finns med i $number, eller vad menar du?
rIkLuNdMedlem sedan feb. 2003169 inlägg då skulle du kunna ha alla korten som finns i t ex "kort.txt" så att den ser ut så här med kortens id på varje rad:
1
2
3
4
etc...
// ladda filen
$load = file("databas.txt");
// loopa igenom datan
for($i = 0; $i < count($load); $i++)
{
// splitta den!
$data = explode("¦¦",$load[$i]);
// räkna det nummer som finns i den här raden!
$number[$data[4]]++;
}
// låt oss nu kolla vilka kort som inte skickats!
// ladda filen!
$kort = file("kort.txt");
// loop
for($j = 0; $j < count($kort); $j++)
{
// kolla om den har skickats någon gång
if($number[$kort[$j]] > 0)
{
// japp, det hade den...
continue;
}
else
{
// nej, det hade det inte...
$number[$kort[$j]] = 0;
}
}
// låt oss kolla på resultatet
echo "<pre>\n";
print_r($number);
echo "</pre>\n";
sorhhMedlem sedan dec. 2002536 inlägg Tackar, ska prova det ikväll!