abonnement Unibet Coolblue Bitvavo
pi_26180767
quote:
Op dinsdag 12 april 2005 21:14 schreef sylvesterrr het volgende:
Dus je wil iedere keer dat je de functie smileys() een MySQL-query uitvoeren? Lijkt mij niet echt efficient.
Ach wat maakt zo een query uit ?
Ik heb geen tientallen hits per seconde, hooguit paar per minuut.

Of ik moet het zonder database doen, maar dan moet ik steeds mijn .php bestand wijzigen.

@devzero, thanks het werkt.
ne okuyon, bokmu var?
pi_26187194
quote:
Op dinsdag 12 april 2005 21:23 schreef saban het volgende:
Ach wat maakt zo een query uit ?
Ik heb geen tientallen hits per seconde, hooguit paar per minuut.
Ach, als het sneller kan, waarom dan niet? Wie weet wat je verder nog wil doen op een pagina.
quote:
Of ik moet het zonder database doen, maar dan moet ik steeds mijn .php bestand wijzigen.
Je zult het toch ergens moeten bijhouden, en hoevaak voeg je nieuwe smileys toe Als je strtr gebruikt dan kun je het bijvoorbeeld zo doen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$smileys = Array(
        ":)" => "<img src=\"http://saban.info/smile.gif\">",
        ":{" => "<img src=\"http://saban.info/nosmile.gif\">",
        ":P" => "<img src=\"http://saban.info/tong.gif\">"
);

function doSmileys($text) {
        global $smileys;

        return strtr($text, $smileys);
}

echo doSmileys("hoi saban :). Je komt er nog wel :P");
?>
pi_26191568
Vraagje over data van mysql naar excel.
Alles lukt me, alleen 1 dingetje niet.
jaartallen moeten weergegeven worden als zijnde 99 of 04 (1999 of 2004).
04 wordt door excel gekilled naar 4
99 is wel goed
daarnaast kan het voorkomen dat de jaartallen 88-05 oid zijn (1988-2005) die worden gezien door excel als tekst.

maar alles moet als tekst gezien worden
door in een cel = 45&"" te typen zal de 45 als tekst gezien worden.
hoe zorg ik ervoor dat ik in php aangeef dat een bepaalde string als functie gezien moet worden, want hij plakt nml gewoon de string (= 45&"") in de cel en vooert hem niet uit, pas wanneer je in de cel gaat staan en op enter drukt ofzo.

De complete code waar het omgaat, check de comments die aangeven waar het stukje staat waar het om gaat:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php 

function stringsplit($the_string, $the_number) 

   $startoff_nr = 0; 
   $the_output_array = array(); 
   for($z = 1; $z < ceil(strlen($the_string)/$the_number)+1 ; $z++) 
   {     
       $startoff_nr = ($the_number*$z)-$the_number; 
       $the_output_array[] = substr($the_string, $startoff_nr, $the_number); 
   } 
   return($the_output_array); 


$query = "SELECT MAX(registeraantal) AS registeraantal FROM register" or die(mysql_error()); 
$resultaat = mysql_query($query) or die(mysql_error()); 
$rij= mysql_fetch_assoc($resultaat); 
$count="".$rij['registeraantal'].""; 
$aantal=$count; 

//knipknip
$counter=1; 
while ($counter<=$count) { 
//data goed zetten 
$j = "registerj".$counter; 
$jj = "registerjj".$counter; 
$plaats = "registerp".$counter; 
$club = "registerc".$counter; 
$order = "registerjj".$counter; 

//knipknip
$export = mysql_query($select); 
//$fields = mysql_num_fields($export); 
$counting=$counter+1; 

while($row = mysql_fetch_row($export)) { 
    $line = ''; 
    $str1 = $row[0]; 
    $str2 = $row[1]; 
    $jaar1 = stringsplit($str1, 2); 
    $jaar2 = stringsplit($str2, 2);
//
//@@@@zoals de code eerst was
//
   if ($jaar1[1] == $jaar2[1]) { 
       $date = "'".$jaar2[1].""; 
   } else { 
       $date = "'".$jaar1[1]."-".$jaar2[1].""; 
   } 
//
//@@@@zoals de codezou moeten zijn (maar door excel verkeerd wordt 'gelezen')
//
   if ($jaar1[1] == $jaar2[1]) { 
       $date = "=".$jaar2[1].""; 
   } else { 
       $date= "=".$jaar1[1]."&-&".$jaar2[1]."";
   } 
    $name = "".$row[3]." ".$row[4].""; 
    $a = array($date,$row[2],$name,$row[5],$row[6]); 
    foreach($a as $value) { 
        if ((!isset($value)) OR ($value == "")) { 
            $value = "\n"; 
        } else { 
            $value = str_replace('"', '""', $value); 
            $value = '"' . $value . '"' . "\t"; 
        } 
        $line .= $value; 
    } 
$nummer++;                                            
    $data .= '"'.$nummer.'"'."\t".trim($line)."\n"; 

$nummer=0; 
$data  = str_replace("\r","",$data); 
if ($data == "") { 
    $data= "\n(0) Records Found!\n";                          


$data = "".$data."\n\n".$done[$counting]."\n\n"; 
$counter++; 


//for ($i = 0; $i < $fields; $i++) { 
//    $header .= mysql_field_name($export, $i) . "\t"; 
//} 
$text=$done[1]; 
header("Content-type: application/x-msdownload"); 
header("Content-Disposition: attachment; filename=".date("d-m-Y")."_register.xls"); 
//filename=extraction.txt"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
print "$text\n\n$data"; 
?> 


de xls is hier te zien:

http://achterop23.downfire.com/finished/register/extract2txt/

[ Bericht 6% gewijzigd door achterop23 op 13-04-2005 13:55:51 ]
pi_26193280
Je maakt geen Excel bestand, maar een CSV bestand. Comma Separated Values, of in dit geval eigenlijk tab gescheiden. Je moet dan ook niet verwachten dat je Excel functies kan gebruiken.
Waarom maak je niet gewoon 2 kolommen met 4-cijferige jaartallen?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_26194970
omdat het juist de bedoeling is om het eruit te krijgen in 1 kolom als zijne 99-04 of 05 oid.

als laatste redmiddel kan ik altjid nog '99-'05 en '05 doen, dit werkt wel. Maar toch liever zonder die '.

niemand een oplossing?
op een engels forum had iemand een antwoord met concatenate, maar dat snap ik niet.

[ Bericht 1% gewijzigd door achterop23 op 13-04-2005 14:09:51 ]
pi_26200753
Het staat goed in de CSV file. Het wordt eigenlijk verkeerd geinterpreteerd door Excel
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_26201903
quote:
Op woensdag 13 april 2005 18:04 schreef SuperRembo het volgende:
Het staat goed in de CSV file. Het wordt eigenlijk verkeerd geinterpreteerd door Excel
blame excel...
ik kan het wel laten wegschrijven als txt (csv) en dan importeren in excel en dan de betreffende kolom als zijnde text te laten zien. Dan is er niets aan de hand.
pi_26207470
Ik krijg net een mailtje van een gebruiker van mijn site, en die zegt dat ze opeens was uitgelogd.
Ik heb mijn inloggen geregeld met een cookie en een sessie.
mn session.cookie_lifetime staat op 0 (dus hij is pas weg als je je browser afsluit toch?)
maar die persoon was dus uitgelogd zonder dat ze haar browser had afgesloten. Dit kan toch eigenlijk niet dan?
pi_26212276
quote:
Op woensdag 13 april 2005 22:18 schreef ikke_ook het volgende:
Ik krijg net een mailtje van een gebruiker van mijn site, en die zegt dat ze opeens was uitgelogd.
Ik heb mijn inloggen geregeld met een cookie en een sessie.
mn session.cookie_lifetime staat op 0 (dus hij is pas weg als je je browser afsluit toch?)
maar die persoon was dus uitgelogd zonder dat ze haar browser had afgesloten. Dit kan toch eigenlijk niet dan?
Niet op een uitlog-link gedrukt?

Ik zou eerst ff wachten tot dat het vaker voor komt...
  donderdag 14 april 2005 @ 09:31:01 #60
85514 ralfie
!Yvan eht nioj
pi_26214978
ik had eigenlijk twee vraagjes:
de eerste: hoe kan ik het snelste een bepaalde regel uit een bestand editen? bijvoorbeeld ik wil alleen regel 5 editen, de enige manier die ik heb gevonden is
1
2
3
4
5
6
$filearray = file['file.txt'];
$filearray[5] = "new line";
$filewrite = fopen("file.txt","w");
foreach ($filearray as $line)
      fwrite($filewrite, $line);
fclose($filewrite);
maar deze methode is erg omslachtig aangezien ie het hele bestand moet lezen en schrijven. dit moet toch sneller kunnen?

vraag 2: stel ik heb een textarea, en daarin wil ik een heel bestand laten zien om te editen en op te slaan. zoals hieronder:
1
2
3
4
5
6
7
8
9
<form action="my.php" method="POST"><textarea name="file">
<?php
$oldfile = file[myfile.txt];
foreach ($oldfile as $line)
             echo "$line";
?>
</textarea>
<input type="submit" value="submit">
</form>
het lukt me goed om elke regel apart te laten printen, maar het terugzetten gaat natuurlijk voor geen meter, aangezien de EOL tekens niet meegaan. Alles wat ik POST opvang zou dan op een regel geprint worden en dat moet niet. Ik heb dit opgelost door aan het eind van elke regel [eol] te printen en met explode("[eol]", $string) er weer een array van te maken die ik kan wegschrijven, maar dit ziet er niet erg mooi uit. weet iemand een beter alternatief?
zo heb ik het nu dus:
1
2
3
4
5
6
7
8
9
<form action="my.php" method="POST"><textarea name="file">
<?php
$oldfile = file['myfile.txt'];
foreach ($oldfile as $line)
             echo "$line [eol]";
?>
</textarea>
<input type="submit" value="submit">
</form>

en voor het POST gedeelte:
1
2
3
4
5
6
7
8
if (isset($_POST['file'])
{
           $newfile = explode("[eol]", $_POST['file']);
           $filewrite = fopen('myfile.txt',"w");
           foreach ($filearray as $line)
          fwrite($filewrite, $line);
            fclose($filewrite);
}

het wordt mss een vrij groot bestand (je moet wat als je geen mysql heb) dus moet het eigenlijk wel zo snel mogelijk uitgevoerd kunnen worden. Iemand een idee?
pi_26219381
quote:
Op donderdag 14 april 2005 09:31 schreef ralfie het volgende:
je moet wat als je geen mysql heb
Als dat het probleem is, misschien is SQLite dan iets voor je.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_26225151
Ik wil graag alle waardes uit alle cellen uit 1 kolom bij elkaar optellen zodat ik het totaal van alle cellen samen heb. Kan dit met mysql of moet ik dan gewoon een query maken om al die waardes op te halen en dan in een while loopje allemaal optellen?

En ik wil eigenlijk ook graag weten wat het meest voorkomende getal is in een bepaalde kolom, hoe kan ik dat handig doen?

[ Bericht 11% gewijzigd door ikke_ook op 14-04-2005 17:05:54 ]
pi_26227215
quote:
Op donderdag 14 april 2005 16:42 schreef ikke_ook het volgende:
Ik wil graag alle waardes uit alle cellen uit 1 kolom bij elkaar optellen zodat ik het totaal van alle cellen samen heb. Kan dit met mysql of moet ik dan gewoon een query maken om al die waardes op te halen en dan in een while loopje allemaal optellen?

En ik wil eigenlijk ook graag weten wat het meest voorkomende getal is in een bepaalde kolom, hoe kan ik dat handig doen?
Dat kan met de wiskundige functies van MySQL.
Kijk eens hier:
http://dev.mysql.com/doc/mysql/en/mathematical-functions.html
pi_26228140
quote:
Op donderdag 14 april 2005 18:00 schreef DutchBlood het volgende:

[..]

Dat kan met de wiskundige functies van MySQL.
Kijk eens hier:
http://dev.mysql.com/doc/mysql/en/mathematical-functions.html
De waarden van een colom optellen doe je met SUM(). Dat is een van de vele aggregate functions.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_26235149
Dankjullie wel heren
Had ik zelf ook nog wel kunnen bedenken natuurlijk
pi_26235184
Ik vind dat random icoon van jou maar niks SuperRembo Nu kan ik je niet meer makkelijk herkennen
pi_26235659
Nieuw vraagje
Ik ben bezig met een statistieken pagina.(voor mn vogelaars pagina)
Ik heb een tabel met alle waarnemingen waarin wordt gewerkt met birdID's en een tabel met vogelnamen waarin deze birdID's terug komen.
Nu wil ik een tabel maken waarin staat hoeveel keer iedere vogel voorkomt.
Daarvoor heb ik de volgende query bedacht:
1
2
SELECT birds.nlname FROM birds RIGHT JOIN determinations ON 
birds.bid = determinations.bid

Waarmee ik alle waarnemingen terugkrijg die ik daarna (op een nog onbekende manier ) op ga tellen en in een array op wil slaan om vervolgens te printen.
Alleen ik heb het gevoel dat dit niet bijster efficient is.
Kan dat efficienter en zo ja, hoe?
pi_26236119
hmm, het volgende werkt best goed en snel eigenlijk
1
2
3
4
5
6
7
8
9
10
   $query5 = "SELECT birds.nlname FROM birds RIGHT JOIN determinations 
ON birds.bid = determinations.bid";
   $result5 = mysql_query($query5);
   while($row = mysql_fetch_assoc($result5)){
      $array[$row['nlname']]++;
   }
   asort($array);
   foreach($array as $field => $value){
      $Str = "<tr><td>".$field."</td><td width=10>".$value."</td></tr>".$Str;
   }
pi_26236202
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_26236634
Dat scheelt toch 35% in tijd dank
(Bij 1500 rijen)

[ Bericht 9% gewijzigd door ikke_ook op 15-04-2005 00:01:01 ]
pi_26285090
Heeft er iemand een leuk [`quote][/quote] preg_replace ?

Dus dat er wanneer [`quote]tekst[/quote] wordt gezien, dat dat wordt replaced met;

1
2
3
4
5
6
7
8
9
10
<table border="0" cellpadding="0" cellspacing="0" width="400">
      <tr>
        <td width="50"> </td>
        <td width="350">quote:</td>
      </tr>
      <tr>
        <td width="50"> </td>
        <td width="350" bgcolor="#E7E7E7">tekst</td>
      </tr>
    </table>


Je moet die ` even wegdenken in [quote]
ne okuyon, bokmu var?
  zondag 17 april 2005 @ 15:14:03 #73
19840 Libris
Live from Singapore
pi_26297173
quote:
Op zondag 17 april 2005 15:07 schreef Masegate het volgende:
Hoi,
ik ben met een site in php bezig en ik heb een formulier. Zodra je deze verzend worden de gegevens in de database gegooid en als dat allemaal goed is gegaan krijg je een berichtje. (Het bericht is geplaatst, klik hier om terug te gaan.)

Nu zou ik alleen willen dat je ook automatisch na 2 of 3 seconden wordt teruggestuurd. Je ziet dit ook altijd op die fora zoals phpBB. Ik kon uit de broncode echter niet achterhalen hoe het nou moet. Google leverde ook vrij weinig op.
Kan iemand mij uitleggen hoe ik dit aanpak?

Alvast bedankt!
Groeten, Dennis
header ("refresh: 2; URL = index.php");
  FOK!-Schrikkelbaas zondag 17 april 2005 @ 15:24:48 #74
1972 Swetsenegger
Egocentrische Narcist
pi_26297465
quote:
Op zaterdag 16 april 2005 23:36 schreef saban het volgende:
Heeft er iemand een leuk [`quote]['/quote] preg_replace ?

Dus dat er wanneer [`quote]tekst['/quote] wordt gezien, dat dat wordt replaced met;
[ code verwijderd ]

Je moet die ` even wegdenken in [quote]
kijk even in php voor dummies 1 of 2. Daar staat een oplossing in
pi_26297815
quote:
Op zondag 17 april 2005 15:14 schreef Libris het volgende:

[..]

header ("refresh: 2; URL = index.php");
Het werkt, heel erg bedankt!
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')