abonnement Unibet Coolblue Bitvavo
pi_64120109
Ahh,

dan moet je docent array uit de functie gehaald worden (wat soieso verstandig is..)

Je zou zoiets kunnen doen:

1
2
3
4
5
6
7
8
9
10
11
<?php
$docent 
= array();

function 
VoegToe(&$docent$naam,$kamer,$telefoon,$vak) {
    
docent[] = array( "naam"=> $naam"kamernummer"=>$kamer,"telnr"=>$telefoon"vak" => $vak);
}

VoegToe($docent"Jij""1""020 1234567""php");
VoegToe($docent"Hij""2""020 1234568""php");
VoegToe($docent"Zij""3""020 1234569""php");
?>


Daarna gewoon je shizzle met $docent doen.

1
2
3
for($k = 0; $k < count($docent); $k++){
# do stuff
}


Dit moet je nooit doen, je gaat nu bij elke iteratie opnieuw een count uitvoeren, als je array een size heeft van 100, zal ie 100x count() uitvoeren. Beter doe je dit:

1
2
3
4
$max = count($docent);
for ($k = 0; $k < $max; $k++) {
    print_r($docent[$k]);
}


Maar aangezien je loopt over een array kan je ook een foreach gebruiken:

1
2
3
4
5
6
7
foreach($docent as $v) {
    print_r($v);
}
# kan ook zo gedaan worden:
foreach($docent as $k => $v) {
    print_r($v); # of print_r($docent[$k]);
}


[ Bericht 23% gewijzigd door slacker_nl op 18-12-2008 14:54:13 ]
In theory there is no difference between theory and practice. In practice there is.
pi_64120373
je bedoelt dat je dan ipv al die extra arrays docent als 1 array aanmaakt en er telkens een regel docent eronder maakt? zoals
docent 0 array (blablabla)
docent 1 array (blablabla)

maar als je $k++ toevoegt in regel 5 tussen die haakjes dan krijg ik een error.
Redacted
pi_64120437
Jep dat bedoel ik, en dat bedoel jij ook:

1
2
3
4
5
6
7
8
9
$docent = array(
    array( "naam"=>"Evelijn Visser", "kamernummer"=>"213","telnr"=>"", "vak"=>"Wiskunde"),
    array( "naam"=>"Gerda Acherop", "kamernummer"=>"214","telnr"=>"213", "vak"=>"Nederlands"),
    array( "naam"=>"Luc de Haan", "kamernummer"=>"215","telnr"=>"213", "vak"=>""),
    array( "naam"=>"Frederik Peppels", "kamernummer"=>"213","telnr"=>"", "vak"=>"Informatica"),
    array( "naam"=>"Hen Tartje", "kamernummer"=>"","telnr"=>"200", "vak"=>""),
    array( "naam"=>"Watje Stanat", "kamernummer"=>"212","telnr"=>"220", "vak"=>"Biologie"),
);
print_r($docent);


Kijk maar..
In theory there is no difference between theory and practice. In practice there is.
  donderdag 18 december 2008 @ 15:00:56 #104
84926 WyriHaximus
Release the hounds smithers!
pi_64120561
Zit ff met indexes te kutten maar wat is nou het verschil tussen 1 index per kolom en meerdere kolommen in 1 index?
phluphy for president!
pi_64121257
ik snap je niet helemaal meer slacker_nl

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
<?php
/*<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>php opdracht 2 week 2 by henk</title>
</head>
<body>
<table border="1">
<tr>
    <th colspan="4">Alle docenten</th>
</tr>
<tr>
    <td>Naam</td> <td>Kamernummer</td> <td>Telefoon</td> <td>Vak</td>
</tr>*/

$docent = array();
// hoe wil je dit herschrijven? zodat een toekomstige regel ook erbij kan komen?
// dacht dat het met k++ kon?
    
$docent[$k++]("naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde"),
    
$docent[$k++]("naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands"),
    
$docent[$k++]("naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>""),
    
$docent[$k++]("naam"=>"Frederik Peppels""kamernummer"=>"213","telnr"=>"""vak"=>"Informatica"),
    
$docent[$k++]("naam"=>"Hen Tartje""kamernummer"=>"","telnr"=>"200""vak"=>""),
    
$docent[$k++]("naam"=>"Watje Stanat""kamernummer"=>"212","telnr"=>"220""vak"=>"Biologie"),
);
function 
VoegToe(&$docent$naam,$kamer,$telefoon,$vak) {
    
$docent[$k++] = array( "naam"=> $naam"kamernummer"=>$kamer,"telnr"=>$telefoon"vak" => $vak);
}
// snap nog niet hoe het zit met het toevoegen met name dat hij een error bij   $docent[$k++]  geeft.
VoegToe($docent"Jij""1""020 1234567""php");
VoegToe($docent"Hij""2""020 1234568""php");
VoegToe($docent"Zij""3""020 1234569""php");
$max count($docent);
for (
$k 0$k $max$k++)
// dit was overgekomen dan hertelt hij niet elke keer weer.
{
    Echo 
'<tr><td>'.$docent[$k]['naam'].'</td><td>'.$docent[$k]['kamernummer'].'</td><td>'.$docent[$k]['telnr'].'</td><td>'.$docent[$k]['vak'].'</td></tr>';
}
/*
</table>
</body>
</html>*/
?>
Redacted
  donderdag 18 december 2008 @ 15:27:05 #106
75592 GlowMouse
l'état, c'est moi
pi_64121406
$k++ levert gewoon een getal op. Dit is toch geen valide php-code?
1
2
3
<?php
$docent
[1]("naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde"),
?>
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_64121497
quote:
Op donderdag 18 december 2008 15:27 schreef GlowMouse het volgende:
$k++ levert gewoon een getal op. Dit is toch geen valide php-code?
[ code verwijderd ]


je bedoelt dat de tel nr leeg is ? daar moet dan nog een if bij komen als geen waarde dan zet onbekend neer. maar zover was ik nog niet

ik heb het gevoel alsof ik toch iets vergeet

ik ga dit wel even doorlezen http://www.homeandlearn.co.uk/php/php17p4.html

[ Bericht 12% gewijzigd door cablegunmaster op 18-12-2008 15:39:02 ]
Redacted
  donderdag 18 december 2008 @ 15:37:18 #108
75592 GlowMouse
l'état, c'est moi
pi_64121796
Nee, ik bedoel dat jij een array in een array op wilt slaan. Dat doe je zo:
1
2
3
<?php
$docent
[1] = array("naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde");
?>

In PHP heb je gewoon nooit een $var[1](iets), nouja, of je moet hele gekke code schrijven
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_64122055
Ik zie dat je het niet snapt

Je haalt wat dingen door elkaar.

1
2
3
4
5
6
7
8
<?php
    $docent
[$k++]("naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde"),
    
$docent[$k++]("naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands"),
    
$docent[$k++]("naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>""),
    
$docent[$k++]("naam"=>"Frederik Peppels""kamernummer"=>"213","telnr"=>"""vak"=>"Informatica"),
    
$docent[$k++]("naam"=>"Hen Tartje""kamernummer"=>"","telnr"=>"200""vak"=>""),
    
$docent[$k++]("naam"=>"Watje Stanat""kamernummer"=>"212","telnr"=>"220""vak"=>"Biologie"),
?>


Dit kan je op 3 manieren herschrijven, methode 1 is door de functie die ik je gaf te gebruiken:
1
2
3
<?php
voegtoe
($docent"Gerda Acherop"214213"Nederlands");
?>


Of zoals je het eerst deed:

1
2
3
4
5
6
7
8
9
10
<?php
$docent 
= array(
    array( 
"naam"=>"Evelijn Visser""kamernummer"=>"213","telnr"=>"""vak"=>"Wiskunde"),
    array( 
"naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands"),
    array( 
"naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>""),
    array( 
"naam"=>"Frederik Peppels""kamernummer"=>"213","telnr"=>"""vak"=>"Informatica"),
    array( 
"naam"=>"Hen Tartje""kamernummer"=>"","telnr"=>"200""vak"=>""),
    array( 
"naam"=>"Watje Stanat""kamernummer"=>"212","telnr"=>"220""vak"=>"Biologie"),
);
?>


Of manier 3 (en eigenlijk ben je dan manier 1 aan het uitvoeren, zonder de functie call):
[pcp]
$docent[] = array("naam"=>"Luc de Haan", "kamernummer"=>"215","telnr"=>"213", "vak"=>"");
[/php]

$array[] is hetzelfde als array_push alleen ietwat sneller (aangezien je geen functie call uitvoert), maar array_push kan meerdere elementen toevoegen aan een array:

1
2
3
4
5
6
7
8
9
<?php
array_push
($docent,  
    array(
"naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>""), 
    array( 
"naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands"))

# hetzelfde als:
$docent[] = array("naam"=>"Luc de Haan""kamernummer"=>"215","telnr"=>"213""vak"=>"");
$docent[] = array( "naam"=>"Gerda Acherop""kamernummer"=>"214","telnr"=>"213""vak"=>"Nederlands");
?>


Maar let op!! $docent ga je niet initialiseren in de functie zelf, want dan "bestaat" $docent niet meer buiten je functie! zie http://nl.php.net/variables.scope

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
functie mijnfunctie
() {
    
$docent = array(1,2,3,4,5);
}

/* Hier bestaat docent niet meer 
Dat kan je oplossen door global te gebruiken, maar dat raad ik je af. */

functie mijnfunctie() {
    global 
$docent = array(1,2,3,4,5);
}

/* $docent bestaat nu wel buiten de functie scope*/
?>


Maar waar je in beide gevallen rekening mee moet houden is dat je $docent na elke call op mijnfunctie weer opnieuw een array wordt, gevuld van 1-5...

Ik pas nu een kleine truc toe waardoor het wel buiten de functie bestaat (http://nl.php.net/manual/en/language.references.php).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$docent 
= array();

function 
VoegToe(&$docent$naam,$kamer,$telefoon,$vak) {
    
docent[] = array( "naam"=> $naam"kamernummer"=>$kamer,"telnr"=>$telefoon"vak" => $vak);
}

VoegToe($docent"Jij""1""020 1234567""php");
VoegToe($docent"Hij""2""020 1234568""php");
VoegToe($docent"Zij""3""020 1234569""php");

# Zonder references:
function VoegToe($docent$naam,$kamer,$telefoon,$vak) {
    
docent[] = array( "naam"=> $naam"kamernummer"=>$kamer,"telnr"=>$telefoon"vak" => $vak);
    return 
$docent;
}
$docent VoegToe($docent"Jij""1""020 1234567""php");
$docent VoegToe($docent"Hij""2""020 1234568""php");
$docent VoegToe($docent"Zij""3""020 1234569""php");
?>


$k++ is niks meer dan een counter, en dat kan je overal voor gebruiken. Je kan ook wat toevoegen aan een array door het zo te doen:

1
2
3
4
$k = count($docent);
$docent[$k] = array(..);
$k++;
$docent[$k] = array(..);


Maar dan is de array[] of array_push() methode beter/makkelijker/minder omslachtig.

Ik zou heel even de documentatie omtrent arrays doorspitten om beter te begrijpen wat je ermee kan doen en hoe je ze kan manipuleren, http://nl.php.net/manual/en/book.array.php en http://us2.php.net/manual/en/language.types.array.php

Succes!

[ Bericht 50% gewijzigd door slacker_nl op 18-12-2008 15:54:12 ]
In theory there is no difference between theory and practice. In practice there is.
pi_64123347
ik denk dat ik het wel snap met toevoegen maar ik krijg het gevoel dat ik dan een for each moet gebruiken om alle waarde's weer te geven. en dat mijn for ($k = -1; $k < $max; $k++) niet meer de lading dekt om de nieuwe array's weer te geven
Redacted
pi_64125850
Die forloop zou gewoon moeten werken.. alleen moet je niet bij -1 moeten beginnen aangezien een sequentiele array bij zero based is (oftewel, de eerste value heeft 0 als index).

Je kan overigens beter foreach($docent as $leraar) { echo "Naam van leraar is " . $leraar['naam'] . "\n" } doen. Werkt makkelijker (IMO).

Met print_r() en/of vardump() kan je zien wat er in je variable zit.. Handig bij het debuggen/troubleshooten van problemen
In theory there is no difference between theory and practice. In practice there is.
pi_64128428
laat mij over dit nadenken volgens mij moet ik met al deze info wel iets werkends produceren.

snapte het eerst niet, maar begint steeds duidelijker te worden
Redacted
pi_64275245
ik wil de waarden in een array sorteren. De eerste waarde is de waarde waar op gesorteerd moet worden. De array ziet er als volgt uit:
1
2
3
4
5
6
7
8
9
<?php
$members 
= array();
$i 0;
while(
argumenten){
 
$members[$i]['rank'] = $rank;
 
$members[$i]['name'] = $name;
 
$i++;
}
?>


Hoe sorteer ik mijn array op rank?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  dinsdag 23 december 2008 @ 10:36:55 #114
187069 slacker_nl
Sicko pur sang
pi_64275900
http://nl.php.net/asort en/of soortgelijke functies.
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 23 december 2008 @ 17:22:20 #115
11091 SEMTEX
Mevr. Hoe-die-nie
pi_64290744
TVP
Kierkegaard: Life Can Only Be Understood Backwards, But It Must Be Lived Forwards
  dinsdag 23 december 2008 @ 17:30:42 #116
152303 hamkaastosti
ook bekend als hamkaastosti
pi_64291034
oi

Ik probeer een mvc framework in elkaar te klussen (jaja wiel opnieuw uitvinden e.d. ik weet het.)
nu heb ik de volgende sites op internet gevonden:
http://www.sitemasters.be(...)VC_pattern_uitgelegd
http://www.phpro.org/tutorials/Model-View-Controller-MVC.html

en toen ben ik wat gaan prutsen. Inmiddels werkt m'n router en m'n registry en heb ik 2 controllers voor m'n index en een gastenboek (bijvoorbeeld. als ik guestbook/view invul kom ik netjes in de functie view van de class guestbook. So far so good maar nu gaat het over de models en de views. Hoe zitten de bestanden van de models en de views in elkaar en hoe en waar verwerk ik de _POST variabelen. Heeft er iemand toevallig een site of een e-book met een duidelijker voorbeeld. Ik zie in die maffe voorbeelden door de bomen het bos niet meer.
Tom Jones zong ooit...
she's got style she's got grace, takes a cumshot to the face, she's a lady
laat een berichtje achter in mijn vriendjes en vriendinnetjesboek
grolsch is tof | Aj plat könt praoten, mo-j ut neet laoten
pi_64404667
ik krijg mijn switch niet werkend:


1
2
3
4
5
6
7
<?php
$ua 
//een string 
switch ($ua){
    case (
strstr($ua,'blaat')):
        
//doe wat
    
break;
?>


Hij doet het alleen als $ua exact 'blaat' is, niet als 'blaat' ergens halverwege staat... (dan voert'ie de default actie uit)
iemand een idee?
  zaterdag 27 december 2008 @ 17:36:20 #118
75592 GlowMouse
l'état, c'est moi
pi_64404793
quote:
Op zaterdag 27 december 2008 17:32 schreef mcDavid het volgende:
ik krijg mijn switch niet werkend:
[ code verwijderd ]

Hij doet het alleen als $ua exact 'blaat' is, niet als 'blaat' ergens halverwege staat... (dan voert'ie de default actie uit)
iemand een idee?
Is het hier niet zo dat de 'doe wat' bij veel cases sterk op elkaar lijkt, en je dus met een array met speciale user-agents beter af bent?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_64404899
euh ja dat is wel zo... hoe stel je je dat voor?
  zaterdag 27 december 2008 @ 17:42:43 #120
75592 GlowMouse
l'état, c'est moi
pi_64404970
1
2
3
4
5
6
7
8
9
<?php
$special_uas 
= array('blaat1''blaat2''etc');
foreach(
$special_uas as $special_ua) {
  if(
stripos($ua$special_ua) !== false) {
    
// w00t
    
break;
  }
}
?>
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 27 december 2008 @ 17:44:56 #121
46383 Tiemie
sowieso wel!
pi_64405054
quote:
Op zaterdag 27 december 2008 17:32 schreef mcDavid het volgende:
ik krijg mijn switch niet werkend:
[ code verwijderd ]

Hij doet het alleen als $ua exact 'blaat' is, niet als 'blaat' ergens halverwege staat... (dan voert'ie de default actie uit)
iemand een idee?

De functie strstr returned de string die die gevonden heeft. (de string die je zoekt ;) ) Deze is anders dan de string die je meegeeft aan de switch.

1
2
3
4
5
6
7
8
9
<?php
$ua 
'hoi blaat';//een string
switch ($ua){
    case (
strstr($ua,'blaat') == 'blaat'):
        
//doe wat
        
print 'hoi';
    break;
}
?>
pi_64405490
Ah beiden bedankt! ik zie nu wat ik fout deed, en denk tevens dat de methode van GM idd handiger is in dit geval!

-edit-
mochten julle geinteresseerd zijn in wat stats: http://duft.nl/avatars/browsers.php


[ Bericht 29% gewijzigd door mcDavid op 28-12-2008 01:53:48 ]
pi_64442510
het is me gelukt

met de for while methode, en je tel waarde op te slaan in een variabele

dankje slacker_nl

pixel respect
Redacted
  zondag 28 december 2008 @ 21:23:31 #124
12221 Tijn
Powered by MS Paint
pi_64443224
quote:
Op zaterdag 27 december 2008 18:00 schreef mcDavid het volgende:

mochten julle geinteresseerd zijn in wat stats: http://duft.nl/avatars/browsers.php
Leuk Misschien nog aardig om ook het OS te vermelden?
pi_64445429
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
echo '<tr><td>'.$docent[$k]['naam'].'</td><td>';
if(isset(
$docent[$k]['telnr'])) {
echo 
$docent[$k]['telnr'].'</td><td>'
} else {
echo 
$onbekend.'</td><td>';}
if(isset(
$docent[$k]['kamernummer'])) {
echo 
$docent[$k]['kamernummer'].'</td><td>'
} else {
echo 
$onbekend.'</td><td>' ;}
if(isset(
$docent[$k]['vak'])) {
echo 
$docent[$k]['vak'].'</td></tr>';
} else {
echo 
$onbekend.'</td></tr>'; }
}
?>



mijn bedoeling was dat als de waarde erin leeg was dat hij dan onbekend weergaf. maar hij geeft niks weer

variabele $onbekend = onbekend ;

maar dat lukt niet om een onbekende reden iemand een idee?
Redacted
pi_64446306
isset() geeft ook true als het element in de array een lege string is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_64446811
quote:
Op zondag 28 december 2008 22:26 schreef SuperRembo het volgende:
isset() geeft ook true als het element in de array een lege string is.
ipv dat hij aangeeft dat het waar is false? als er niks in zet met empty()?
Redacted
pi_64447029
je kunt gewoon if ($variable) {//doe iets} doen!
pi_64447072
quote:
Op zondag 28 december 2008 22:39 schreef mcDavid het volgende:
je kunt gewoon if ($variable) {//doe iets} doen!
heb hem al opgelost met empty
Redacted
pi_64447732
empty() is een irritante functie die om allerlei wazige redenen true kan geven:

The following things are considered to be empty:
  • "" (an empty string)
  • 0 (0 as an integer)
  • "0" (0 as a string)
  • NULL
  • FALSE
  • array() (an empty array)
  • var $var; (a variable declared, but without a value in a class)

    Vooral dat empty("0") true geeft is waardeloos.
  • Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_64449378
    quote:
    Op zondag 28 december 2008 22:52 schreef SuperRembo het volgende:
    empty() is een irritante functie die om allerlei wazige redenen true kan geven:

    The following things are considered to be empty:
  • "" (an empty string)
  • 0 (0 as an integer)
  • "0" (0 as a string)
  • NULL
  • FALSE
  • array() (an empty array)
  • var $var; (a variable declared, but without a value in a class)

    Vooral dat empty("0") true geeft is waardeloos.
  • het ging hier om tekst en als ik een van deze bovenste wil gebruiken wat kan ik dan gebruiken?
    Redacted
    pi_64450208
    quote:
    Op zondag 28 december 2008 22:52 schreef SuperRembo het volgende:
    empty() is een irritante functie die om allerlei wazige redenen true kan geven:

    The following things are considered to be empty:
  • "" (an empty string)
  • 0 (0 as an integer)
  • "0" (0 as a string)
  • NULL
  • FALSE
  • array() (an empty array)
  • var $var; (a variable declared, but without a value in a class)

    Vooral dat empty("0") true geeft is waardeloos.
  • Ik zou het moeten testen, maar volgens mij is er geen verschil tussen

    if($var) { echo '1'; }

    en

    if(!empty($var)) { echo '1'; }
      Admin zondag 28 december 2008 @ 23:50:54 #133
    725 crew  Breuls
    Bad Wolf
    pi_64450281
    Vergeet vooral de type comparison tables niet: http://nl.php.net/manual/en/types.comparisons.php

    Altijd handig als je 't niet meer weet.
    I am a leaf on the wind.
    Watch how I soar.
    pi_64450532
    quote:
    Op zondag 28 december 2008 23:50 schreef Breuls het volgende:
    Vergeet vooral de type comparison tables niet: http://nl.php.net/manual/en/types.comparisons.php

    Altijd handig als je 't niet meer weet.
    http://www.deformedweb.co.uk/php_variable_tests.php

    zat erbij ook een hele mooie met kleurtjes

    op naar submit dinkies post dinkies

    [ Bericht 11% gewijzigd door cablegunmaster op 29-12-2008 00:19:14 ]
    Redacted
    pi_64451372
    quote:
    Op zondag 28 december 2008 23:50 schreef Breuls het volgende:
    Vergeet vooral de type comparison tables niet: http://nl.php.net/manual/en/types.comparisons.php

    Altijd handig als je 't niet meer weet.
    Ah, dan hoef ik het niet meer te testen
      maandag 29 december 2008 @ 11:35:38 #136
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_64459305
    Ik ben voor een nieuw project eigenlijk op zoek naar 2 verschillende "taken/functies".

    Zo hebben we een proces wat verbinding legt met een externe partij. Echter komt het regelmatig voor dat we bij de eerste paar checks een verzameling antwoorden terug krijgen. Aan de hand hiervan filteren we wat en doen we een nieuw verzoek met een deel van deze gegevens. Echter is in het huidige proces al gebleken dat in een aantal exotische gevallen dit gehele proces behoorlijk tijd rovend kan zijn, omdat er continue verzamelingen antwoorden terug keren.
    Wat ik in het nieuwe project eigenlijk wil bewerkstelligen is dat het proces zelf gewoon door blijft lopen, maar dat er naar de gebruiker toe in ieder geval een melding komt hierover.

    Een 2e geval is of er een soort van "event-listener" bestaat voor PHP. Waar ik naar op zoek ben is een functionaliteit dat als er een bestand in een bepaalde map gezet wordt, dat er dan een proces gestart wordt. Momenteel worden er elke minuut de folder gecontroleerd, maar volgens mij moeten er hier veel betere oplossingen voor zijn.

    Mocht het niet duidelijk zijn, vraag het gerust. Uitleggen is niet mijn sterkste kant..
      maandag 29 december 2008 @ 18:38:18 #137
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_64472618
    Kort vraagje!:

    PHP heeft toch zo'n mooie functie om in een array karakters te zetten, zodat je ze niet allemaal hoeft te typen?

    $A_to_Z = functie(A,Z);

    hoe heet die functie ook alweer??
    pi_64472736
    quote:
    Op maandag 29 december 2008 18:38 schreef Likkende_Lassie het volgende:
    Kort vraagje!:

    PHP heeft toch zo'n mooie functie om in een array karakters te zetten, zodat je ze niet allemaal hoeft te typen?

    $A_to_Z = functie(A,Z);

    hoe heet die functie ook alweer??
    Bedoel je deze?
      maandag 29 december 2008 @ 18:49:57 #139
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_64472989
    Ja! bedankt!
      maandag 29 december 2008 @ 19:00:55 #140
    75592 GlowMouse
    l'état, c'est moi
    pi_64473328
    quote:
    Op maandag 29 december 2008 11:35 schreef ursel het volgende:
    Zo hebben we een proces wat verbinding legt met een externe partij. Echter komt het regelmatig voor dat we bij de eerste paar checks een verzameling antwoorden terug krijgen. Aan de hand hiervan filteren we wat en doen we een nieuw verzoek met een deel van deze gegevens. Echter is in het huidige proces al gebleken dat in een aantal exotische gevallen dit gehele proces behoorlijk tijd rovend kan zijn, omdat er continue verzamelingen antwoorden terug keren.
    Wat ik in het nieuwe project eigenlijk wil bewerkstelligen is dat het proces zelf gewoon door blijft lopen, maar dat er naar de gebruiker toe in ieder geval een melding komt hierover.
    Kun je toch een script maken dat continu in de achtergrond draait en statusinfo stuurt naar een database?
    quote:
    Een 2e geval is of er een soort van "event-listener" bestaat voor PHP. Waar ik naar op zoek ben is een functionaliteit dat als er een bestand in een bepaalde map gezet wordt, dat er dan een proces gestart wordt. Momenteel worden er elke minuut de folder gecontroleerd, maar volgens mij moeten er hier veel betere oplossingen voor zijn.
    Nee dat lukt niet. Je kunt om de zoveel tijd de inhoud van die map opvragen of het proces dat het bestand in die map zet aanpassen om jouw script aan te roepen.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64473632
    quote:
    Op maandag 29 december 2008 11:35 schreef ursel het volgende:
    Een 2e geval is of er een soort van "event-listener" bestaat voor PHP. Waar ik naar op zoek ben is een functionaliteit dat als er een bestand in een bepaalde map gezet wordt, dat er dan een proces gestart wordt. Momenteel worden er elke minuut de folder gecontroleerd, maar volgens mij moeten er hier veel betere oplossingen voor zijn.
    In .NET gaat dat super simpel met een FileSystemWatcher Je zou een heel simpel .NET (of Mono) programmaatje kunnen maken dat die folder in de gaten houd en dan php start als 't nodig is.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      maandag 29 december 2008 @ 21:59:29 #142
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_64479877
    quote:
    Op maandag 29 december 2008 19:00 schreef GlowMouse het volgende:

    [..]

    Kun je toch een script maken dat continu in de achtergrond draait en statusinfo stuurt naar een database?
    Mja, dat is eigenlijk wat we nu dus hebben. Echter als dus deze "exotische" samenstelling voorbij komt kan dat de rest van het systeem dus ook ophouden. Ik wilde er eigenlijk meer naar werken dat voor elke aanroep het proces gaat draaien, zodat deze andere niet op kunnen houden als er oponthoud is.
    Maar volgens mij zit ik idd lastiger te denken als nodig is.
    Ga morgen wel ff wat mee stoeien
    quote:
    [..]

    Nee dat lukt niet. Je kunt om de zoveel tijd de inhoud van die map opvragen of het proces dat het bestand in die map zet aanpassen om jouw script aan te roepen.
    Mja, zoals we nu dus ook al doen dus. Houdt dat ook op.
      maandag 29 december 2008 @ 22:00:02 #143
    63192 ursel
    "Het Is Hier Fantastisch!
    pi_64479897
    quote:
    Op maandag 29 december 2008 19:12 schreef SuperRembo het volgende:

    [..]

    In .NET gaat dat super simpel met een FileSystemWatcher Je zou een heel simpel .NET (of Mono) programmaatje kunnen maken dat die folder in de gaten houd en dan php start als 't nodig is.
    De suggestie kwam inderdaad ook van een .Netter..
    pi_64517554
    *skop*

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    /* Set locale to Dutch */
            
    setlocale(LC_ALL,'nl_NL') or setlocale(LC_ALL,'nld_NLD');
            
            for(
    $i=1$i<=52$i++){ 
                
    $timestamp strtotime('+'.$i.' thursday');
                echo 
    strftime("%A %e %B %Y"$timestamp);
            }
    ?>


    Als ik dit run zie ik de maand nummers niet. Iemand die ziet wat ik fout doe?
      dinsdag 30 december 2008 @ 23:54:07 #145
    75592 GlowMouse
    l'état, c'est moi
    pi_64517706
    quote:
    michiel1978 at hotmail dot com
    06-Oct-2004 11:31
    As said in these comments, Windows strftime() doesn't support %e. However, to achieve a similar effect (not 100%) you can use %#d. The # flag will remove the leading zero, so you do get single digits, but without the space that would be added by %e in other environments.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64517876
    quote:
    Op dinsdag 30 december 2008 23:54 schreef GlowMouse het volgende:

    [..]


    De tering hey, hoe moet ik dat nou weten

    Bedankt!
    pi_64533950
    quote:
    Op dinsdag 30 december 2008 23:57 schreef Scorpie het volgende:

    De tering hey, hoe moet ik dat nou weten
    Erm... door de docs te lezen incl. comments? Die staan er niet voor de lol onder
      donderdag 1 januari 2009 @ 19:00:41 #148
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_64560623
    Even heel erg ontopic, heeft iemand een afbeelding van een winkelwagen, maar dan zo'n grotere, zoals bij de makro en andere groothandels. Maar dan wel als getekend plaatje, in het klein!
    pi_64561083
    quote:
    Op donderdag 1 januari 2009 @ 19:00 schreef Likkende_Lassie het volgende:
    Even heel erg ontopic, heeft iemand een afbeelding van een winkelwagen, maar dan zo'n grotere, zoals bij de makro en andere groothandels. Maar dan wel als getekend plaatje, in het klein!
    http://images.google.nl/images?q=winkelwagentje
      donderdag 1 januari 2009 @ 20:55:10 #150
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_64564224
    Helaas vind ik hem daar niet tussen, maar heb al een goed alternatief kunnen vinden.

    Andere vraag:

    Ik heb een array uit een database met allemaal producten.
    Nu geef ik de klant de mogelijkheid te filterten op a tm z, welke bovenaan de pagina staan als volgt:

    bekijk alle producten - A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    Nu is het niet altijd zo dat er onder G iets te vinden is, enz. In zo'n geval wil ik G als onklikbaar instellen.
    Nu kan ik natuurlijk een while loop maken en indien er geen product met de beginletter G wordt gevonden, iets uitvoeren. Maar als er veel producten in de array zitten, wordt het misschien toch iets te traag.

    Bijkomend probleem is, dat als er een letter is gekozen, de array slechts alleen producten bevat die beginnen met de gekozen letter... misschien een idee om de beschikbare letters ergens op te slaan?
      donderdag 1 januari 2009 @ 21:04:49 #151
    75592 GlowMouse
    l'état, c'est moi
    pi_64564579
    Cachen inderdaad
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64564814
    quote:
    Op donderdag 1 januari 2009 21:04 schreef GlowMouse het volgende:
    Cachen inderdaad
    Dat idd. En MySQL heeft ook een functie die het leven wat makkelijker kan maken.
    pi_64566959
    quote:
    Op donderdag 1 januari 2009 20:55 schreef Likkende_Lassie het volgende:
    Helaas vind ik hem daar niet tussen, maar heb al een goed alternatief kunnen vinden.

    Andere vraag:

    Ik heb een array uit een database met allemaal producten.
    Nu geef ik de klant de mogelijkheid te filterten op a tm z, welke bovenaan de pagina staan als volgt:

    bekijk alle producten - A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    Nu is het niet altijd zo dat er onder G iets te vinden is, enz. In zo'n geval wil ik G als onklikbaar instellen.
    Nu kan ik natuurlijk een while loop maken en indien er geen product met de beginletter G wordt gevonden, iets uitvoeren. Maar als er veel producten in de array zitten, wordt het misschien toch iets te traag.

    Bijkomend probleem is, dat als er een letter is gekozen, de array slechts alleen producten bevat die beginnen met de gekozen letter... misschien een idee om de beschikbare letters ergens op te slaan?
    Ik zou zeer zeker neit gaan opslaan welke letters een product bevatten tenzij de producten stabiel zijn en er maar weinig nieuwe producten bijkomen/weggaan/veranderen van naam.

    Wat je kan doen is je producten opslaan in een dictioary (2d array) van letters naar arrays van producten. Dus
    $producten["a"][0] geeeft het eerst product dat met een a begint.
    Zo kan je met een count($producten["x"]); zien hoeveel producten er zijn die met letter x beginnen.
      donderdag 1 januari 2009 @ 22:20:38 #154
    75592 GlowMouse
    l'état, c'est moi
    pi_64567125
    quote:
    Op donderdag 1 januari 2009 22:16 schreef Database het volgende:
    Ik zou zeer zeker neit gaan opslaan welke letters een product bevatten tenzij de producten stabiel zijn en er maar weinig nieuwe producten bijkomen/weggaan/veranderen van naam.
    Waarom niet? Hoe denk je dat de verhouding opvragen/aanpassen is?
    quote:
    Wat je kan doen is je producten opslaan in een dictioary (2d array) van letters naar arrays van producten. Dus $producten["a"][0] geeeft het eerst product dat met een a begint.
    Zo kan je met een count($producten["x"]); zien hoeveel producten er zijn die met letter x beginnen.
    Hoe denk je dat dat werkt als er, zeg, 10.000 producten zijn?
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64568726
    quote:
    Op donderdag 1 januari 2009 22:20 schreef GlowMouse het volgende:

    [..]

    Waarom niet? Hoe denk je dat de verhouding opvragen/aanpassen is?
    Omdat dit een bron is van bugs. Je krijgt hier code van wat slecht onderhoudbaar is omdat je moet weten/onthouden dat wanneer je een de naam van een product wijzigt, een nieuw product toevoegt of een product verwijderd, dat je dan ook je extra tabel moet updaten. Normaal gesproken is het gewoon bad practice. Plus dat het queryen van een database veel meer overhead geeft dan code uitvoeren.
    quote:
    Hoe denk je dat dat werkt als er, zeg, 10.000 producten zijn?
    Ik snap niet wat je bedoelt? Het opbouwen van je dictioary kost lineair meer werk met het aantal producten dat je hebt.
    Een specifiek item opzoeken gaat sneller als je de productnaam weet (omdat het aantal items wat je dan moet doorzoeken ongeveer 1/26ste is vergeleken bij een lange een dimensionale array). En aangezien je maar 1 keer opbouwt en waarschijnlijk meerdere keer opzoekt, zie ik - met alle respect - het probleem van 10.000 producten niet.
    pi_64569147
    quote:
    Op donderdag 1 januari 2009 23:11 schreef Database het volgende:

    [..]

    Omdat dit een bron is van bugs. Je krijgt hier code van wat slecht onderhoudbaar is omdat je moet weten/onthouden dat wanneer je een de naam van een product wijzigt, een nieuw product toevoegt of een product verwijderd, dat je dan ook je extra tabel moet updaten. Normaal gesproken is het gewoon bad practice. Plus dat het queryen van een database veel meer overhead geeft dan code uitvoeren.
    [..]

    Ik snap niet wat je bedoelt? Het opbouwen van je dictioary kost lineair meer werk met het aantal producten dat je hebt.
    Een specifiek item opzoeken gaat sneller als je de productnaam weet (omdat het aantal items wat je dan moet doorzoeken ongeveer 1/26ste is vergeleken bij een lange een dimensionale array). En aangezien je maar 1 keer opbouwt en waarschijnlijk meerdere keer opzoekt, zie ik - met alle respect - het probleem van 10.000 producten niet.
    True. Dit pattern zie je wel vaker bij grote datacollecties.
      donderdag 1 januari 2009 @ 23:44:14 #157
    75592 GlowMouse
    l'état, c'est moi
    pi_64569596
    quote:
    Ik snap niet wat je bedoelt? Het opbouwen van je dictioary kost lineair meer werk met het aantal producten dat je hebt.
    Een specifiek item opzoeken gaat sneller als je de productnaam weet (omdat het aantal items wat je dan moet doorzoeken ongeveer 1/26ste is vergeleken bij een lange een dimensionale array). En aangezien je maar 1 keer opbouwt en waarschijnlijk meerdere keer opzoekt, zie ik - met alle respect - het probleem van 10.000 producten niet.
    Het probleem is dat je dat lineair meer tijdrovende klusje op jouw manier bij elke request moet doen. Ten eerste moet de gebruiker langer wachten, ten tweede krijgt je server een probleem als je wat meer bezoekers krijgt.

    Bij een request wil je gewoon snel de producten hebben die alleen met een bepaalde beginletter beginnen, eventueel ook alleen die op een bepaalde pagina voorkomen als je paginering gebruikt. Die andere producten wil je niet eerst in een arraytje stoppen, je wilt gewoon snel weten of ze bestaan. En als bij het groeien van je dataset de rekentijd lineair toeneemt, wil je gewoon dingen cachen als je op den duur ook daadwerkelijk veel producten krijgt, bijna onafhankelijk tegen welke prijs.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64570282
    quote:
    Op donderdag 1 januari 2009 23:11 schreef Database het volgende:

    [..]

    Omdat dit een bron is van bugs. Je krijgt hier code van wat slecht onderhoudbaar is omdat je moet weten/onthouden dat wanneer je een de naam van een product wijzigt, een nieuw product toevoegt of een product verwijderd, dat je dan ook je extra tabel moet updaten. Normaal gesproken is het gewoon bad practice. Plus dat het queryen van een database veel meer overhead geeft dan code uitvoeren.
    In het kader van normalisatie is het idd niet handig om informatie dubbel op te slaan. Aan de andere kant is het ook weer niet zo dat je moet onthouden wat er allemaal moet gebeuren bij het aanpassen/toevoegen/verwijderen van een product. Daar kun je immers een leuke API voor schrijven. (En als je dat goed doet, kun je naderhand de hele opbouw aanpassen zonder elders in de code te moeten rommelen.)
    quote:
    [..]

    Ik snap niet wat je bedoelt? Het opbouwen van je dictioary kost lineair meer werk met het aantal producten dat je hebt.
    Een specifiek item opzoeken gaat sneller als je de productnaam weet (omdat het aantal items wat je dan moet doorzoeken ongeveer 1/26ste is vergeleken bij een lange een dimensionale array). En aangezien je maar 1 keer opbouwt en waarschijnlijk meerdere keer opzoekt, zie ik - met alle respect - het probleem van 10.000 producten niet.
    Ik denk dat het aantal zoekacties laag is. Het blijft wel PHP, dus aan het eind van het script is al je harde werk verloren gegaan. De kans dat je meer dan 1 keer gaat zoeken lijkt me dan niet zo groot. En als je een lijst wilt hebben van alle beginletters en van alle producten die met de letter C beginnen, dan is het wat overkill om alle producten uit de database te trekken.
    pi_64570319
    quote:
    Op donderdag 1 januari 2009 23:26 schreef Scorpie het volgende:

    [..]

    True. Dit pattern zie je wel vaker bij grote datacollecties.
    Gebruiken die ook PHP/MySQL?
    pi_64574816
    quote:
    Op donderdag 1 januari 2009 21:12 schreef Light het volgende:

    [..]

    Dat idd. En MySQL heeft ook een functie die het leven wat makkelijker kan maken.
    Dat lijkt mij inderdaad een goede oplossing:

    1SELECT DISTINCT(SUBSTRING(product, 1, 1)) FROM producten
      vrijdag 2 januari 2009 @ 13:07:49 #161
    12221 Tijn
    Powered by MS Paint
    pi_64575600
    quote:
    Op vrijdag 2 januari 2009 00:17 schreef Light het volgende:

    [..]

    Gebruiken die ook PHP/MySQL?
    Er zijn genoeg grote websites met flinke datasets die PHP en/of MySQL gebruiken, waaronder Facebook, Wikipedia, Yahoo!, Digg, Flickr, Google en YouTube.
      vrijdag 2 januari 2009 @ 13:15:03 #162
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_64575764
    Bedankt voor jullie reacties.

    Het zal in totaal misschien wel gaan om 500.000 producten, welke onderverdeelt zijn in categorien.

    Zodra er een categorie is gekozen, is het mogelijk om een keuze te maken uit de begin letter.
    Ik kan gewoon een functie maken die ik elke keer gebruik zodra er wijzigingen worden doorgevoerd in de database.

    Cachen dus. Hoe zien jullie hier de tabel opbouw voor ?
    Ik zelf dacht aan:

    cat_ID, letter_ID.

    Het is namelijk zo dat er per categorie een cache zal moeten zijn, van de beschikbare producten, en niet van de producten.

    Anders wordt het natuurlijk wel weer als er gezocht gaat worden, en er ook een mogelijkheid moet zijn van het kiezen van een begin letter....
      vrijdag 2 januari 2009 @ 13:27:21 #163
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_64576105
    Die array met het resultaat van DISTINCT(SUBSTRING(name, 1, 1)), daar heb ik de functie array_unique(); over laten gaan.

    Ik kan ook eventueel deze array voor een aantal minuten laten cachen via memcached.
    Als er geen array in memcached voor komt, dan kan ik hem laten genereren.... goed idee?
      vrijdag 2 januari 2009 @ 13:30:34 #164
    75592 GlowMouse
    l'état, c'est moi
    pi_64576202
    quote:
    Op vrijdag 2 januari 2009 13:27 schreef Likkende_Lassie het volgende:
    Die array met het resultaat van DISTINCT(SUBSTRING(name, 1, 1)), daar heb ik de functie array_unique(); over laten gaan.
    Want de elementen zijn nog niet uniek vóór array_unique()?
    quote:
    Ik kan ook eventueel deze array voor een aantal minuten laten cachen via memcached.
    Als er geen array in memcached voor komt, dan kan ik hem laten genereren.... goed idee?
    Nee, zijn er alsnog mensen die lang op hun request wachten.
    quote:
    Op vrijdag 2 januari 2009 13:15 schreef Likkende_Lassie het volgende:
    Cachen dus. Hoe zien jullie hier de tabel opbouw voor ?
    Ik zelf dacht aan:

    cat_ID, letter_ID.
    Caches moet je niet te moeilijk over doen, serialized array in de categorieëntabel in een extra kolom is het makkelijkste.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
      vrijdag 2 januari 2009 @ 17:12:45 #165
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_64583947
    quote:
    Op vrijdag 2 januari 2009 13:30 schreef GlowMouse het volgende:

    [..]

    Want de elementen zijn nog niet uniek vóór array_unique()?
    [..]

    Nee, zijn er alsnog mensen die lang op hun request wachten.
    [..]

    Caches moet je niet te moeilijk over doen, serialized array in de categorieëntabel in een extra kolom is het makkelijkste.
    Toch wel, dacht het niet uniek terug te krijgen..

    De cache is opgeslagen en werkt primá! bedankt!
      vrijdag 2 januari 2009 @ 17:19:15 #166
    75592 GlowMouse
    l'état, c'est moi
    pi_64584251
    quote:
    Op vrijdag 2 januari 2009 17:12 schreef Likkende_Lassie het volgende:

    [..]

    Toch wel, dacht het niet uniek terug te krijgen..
    Dat is opmerkelijk, waar denk je dat DISTINCT voor dient?
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64586555
    quote:
    Op vrijdag 2 januari 2009 13:07 schreef Tijn het volgende:

    [..]

    Er zijn genoeg grote websites met flinke datasets die PHP en/of MySQL gebruiken, waaronder Facebook, Wikipedia, Yahoo!, Digg, Flickr, Google en YouTube.
    Dat weet ik Mijn vraag was dan ook meer of die sites eenzelfde pattern gebruiken voor het tonen van gegevens. Dus ook groeperen op eerste letter. Ik blijf er nog bij dat het niet handig is om alle records op te halen, in php te groeperen, en vervolgens een subset te laten zien. Om dat bij de volgende pageview weer helemaal te herhalen.
      vrijdag 2 januari 2009 @ 18:42:17 #168
    85919 Likkende_Lassie
    Doe eens wat aan je ondertitel
    pi_64587158
    quote:
    Op vrijdag 2 januari 2009 17:19 schreef GlowMouse het volgende:

    [..]

    Dat is opmerkelijk, waar denk je dat DISTINCT voor dient?
    Ja die doet hetzelfde, maar toen ik de code teste, en een print_r() deed, stonden er dubbele waardes in.
    Later toen ik dit weer deed, was dit niet het geval. Of ik heb me vergist
    pi_64599855
    quote:
    Op donderdag 1 januari 2009 23:44 schreef GlowMouse het volgende:

    [..]

    Het probleem is dat je dat lineair meer tijdrovende klusje op jouw manier bij elke request moet doen. Ten eerste moet de gebruiker langer wachten, ten tweede krijgt je server een probleem als je wat meer bezoekers krijgt.

    Bij een request wil je gewoon snel de producten hebben die alleen met een bepaalde beginletter beginnen, eventueel ook alleen die op een bepaalde pagina voorkomen als je paginering gebruikt. Die andere producten wil je niet eerst in een arraytje stoppen, je wilt gewoon snel weten of ze bestaan. En als bij het groeien van je dataset de rekentijd lineair toeneemt, wil je gewoon dingen cachen als je op den duur ook daadwerkelijk veel producten krijgt, bijna onafhankelijk tegen welke prijs.
    Voor hele grote datasets is dat misschien makkelijker, maar dan moet je echt huge datasets hebben. En 500k records vind ik daar niet onder vallen.
    Ik denk (maar weet niet zeker) dat het queryen van een database om een simpele tabel op te halen langzamer is (gemeten uit php, niet rechtstreeks op je (my)sql) dan het bouwen van zon array. Maar nogmaals ik heb al tijden geen php gedaan. In .net weet ik zeker dat het sneller is gezien het daar (bijna) native draait.
    Ik zal zo wel even een testje draaien om te timen.
      vrijdag 2 januari 2009 @ 23:44:56 #170
    75592 GlowMouse
    l'état, c'est moi
    pi_64600198
    quote:
    Op vrijdag 2 januari 2009 23:37 schreef Database het volgende:

    [..]

    Voor hele grote datasets is dat misschien makkelijker, maar dan moet je echt huge datasets hebben. En 500k records vind ik daar niet onder vallen.
    Ik denk (maar weet niet zeker) dat het queryen van een database om een simpele tabel op te halen langzamer is (gemeten uit php, niet rechtstreeks op je (my)sql) dan het bouwen van zon array. Maar nogmaals ik heb al tijden geen php gedaan. In .net weet ik zeker dat het sneller is gezien het daar (bijna) native draait.
    Ik zal zo wel even een testje draaien om te timen.
    Ik zal je helpen: op een vrij vlotte server die een tabel met 1 miljoen records geheel in zijn geheugen heeft staan duurt de SELECT DISTINCT-methode 2.7 seconden en de PHP-methode zonder twijfel langer (je hebt het dan aan megabytes aan data die je databaseserver bij elke request uit moet spugen).

    Creëren van die array kost dus ook 2.7 seconden (want de tijd die je daarna in PHP nodig hebt is verwaarloosbaar) en hoeft eenmalig. Daarna kun je hem direct gebruiken bij elke request; zelfs als je hem met een aparte query op moet halen zal dat minder dan 1/100ste van een seconde kosten, als hij in het geheugen staat zelfs minder dan 1/1000ste.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64601638
    quote:
    Op vrijdag 2 januari 2009 23:44 schreef GlowMouse het volgende:

    [..]

    Ik zal je helpen: op een vrij vlotte server die een tabel met 1 miljoen records geheel in zijn geheugen heeft staan duurt de SELECT DISTINCT-methode 2.7 seconden en de PHP-methode zonder twijfel langer (je hebt het dan aan megabytes aan data die je databaseserver bij elke request uit moet spugen).

    Creëren van die array kost dus ook 2.7 seconden (want de tijd die je daarna in PHP nodig hebt is verwaarloosbaar) en hoeft eenmalig. Daarna kun je hem direct gebruiken bij elke request; zelfs als je hem met een aparte query op moet halen zal dat minder dan 1/100ste van een seconde kosten, als hij in het geheugen staat zelfs minder dan 1/1000ste.
    Je hebt idd gelijk, het ophalen van 10000 records is de helft korter vergeleken met het doen van 10.000 assignments.

    Lang leve .net Daar kan je 10.000 assignments nauwelijks timen
      zaterdag 3 januari 2009 @ 00:28:10 #172
    75592 GlowMouse
    l'état, c'est moi
    pi_64601809
    quote:
    Op zaterdag 3 januari 2009 00:22 schreef Database het volgende:

    [..]

    Je hebt idd gelijk, het ophalen van 10000 records is de helft korter vergeleken met het doen van 10.000 assignments.
    Welke 10.000 records haal je op, en welke assignments doe je? Arraytje steeds groter maken kost gewoon tijd, ook in .NET als je de grootte elke keer aan moet passen.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64602685
    quote:
    Op zaterdag 3 januari 2009 00:28 schreef GlowMouse het volgende:

    [..]

    Welke 10.000 records haal je op, en welke assignments doe je? Arraytje steeds groter maken kost gewoon tijd, ook in .NET als je de grootte elke keer aan moet passen.
    Query was:
    $sql = "SELECT * FROM test WHERE id > 0"
    Returned 10.000 2 kolom-rijen met een id en een md5 hash van de rij-id.

    En mn forloop deed $a[$i] = $i.

    Je hoeft de grootte neit elke keer aan te passen in dit geval gezien je een array van lists kan maken. Grootte van je array weet je (26). Grootte van list kan je benaderen met grootte van je resultset/26 (of je kan t iets nauwkeuriger doen). Dus daar komt ook weinig overhead bij kijken.
    Als je t echt goed wil doen kan je je array op je stack alloceren ipv op je heap, dan heb je helemaal dikke performance.

    Net bijna dezelfde forloop gedraaid in .net, daar kan ik in 2.0 seconden (minder dan 2.7 dus) 100 miljoen keer casten, een modulo doen en assignen.
    1
    2
    for (int j = size - 1; j >= 0; j--)
      a[j] = (byte)(j % 255);

    Je haalt in 2.0 seconden no way 100 miljoen records uit een database.

    Ik denk dat in zo'n geval het maken van een dictionary vele malen voordelig is dan een query naar je database. Dat was eigenlijk ook mijn insteek in mijn eerste post, maar ja php performed gewoon crappy :9

    Wat maakt t eigenlijk ook allemaal uit! Alsof het hier om high-performance systemen gaat :p
    pi_64604608
    quote:
    Op vrijdag 2 januari 2009 00:12 schreef Light het volgende:

    Het blijft wel PHP, dus aan het eind van het script is al je harde werk verloren gegaan.
    Memcached anyone?
    pi_64617916
    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
    <?php ;
    if (!empty($_POST)){ 
       switch ($_POST["soort"]){
          case "optellen":
             $getal3 = $_post["getal1"]+ $_post["getal2"];
             echo $_post["getal1"]."+".$_post["getal2"]." = ".$getal3;
             echo("<br> <a href =\"".$_SERVER["PHP_SELF"] . "\">Nieuwe berekening uitvoeren.</a>");
             break;
          case "aftrekken":
             $getal3 = $_post["getal1"]- $_post["getal2"];
             echo $_post["getal1"]."+".$_post["getal2"]." = ".$getal3;
             echo("<br> <a href =\"".$_SERVER["PHP_SELF"] . "\">Nieuwe berekening uitvoeren.</a>");
             break;
          case "delen":
             $getal3 = $_post["getal1"]+ $_post["getal2"];
             echo $_post["getal1"]."+".$_post["getal2"]." = ".$getal3;
             echo("<br> <a href =\"".$_SERVER["PHP_SELF"] . "\">Nieuwe berekening uitvoeren.</a>");
             break;
          case "vermenigvuldigen":
             $getal3 = $_post["getal1"]+ $_post["getal2"];
             echo $_post["getal1"]."+".$_post["getal2"]." = ".$getal3;
             echo("<br> <a href =\"".$_SERVER["PHP_SELF"] . "\">Nieuwe berekening uitvoeren.</a>");
             break;
          default:
             echo("Je hebt niks ingevuld!");
             echo("<br> <a href =\"".$_SERVER["PHP_SELF"] . "\">Nieuwe berekening uitvoeren.</a>");
             break;
       }
    }else{
    ?>
    <html>
    <head>
       <title>Rekenmachientje 2e poging</title>
    </head>
    <body>
    <FORM ACTION="<?php echo($_SERVER["PHP_SELF"]);?>" method="post">
    Getal1 <input type="text" name="getal1"><br>
    Getal2 <input type="text" name="getal2" ><br>
    <INPUT TYPE="radio" NAME="soort" VALUE="optellen">Optellen(+)
    <INPUT TYPE="radio" NAME="soort" VALUE="aftrekken">Aftrekken(-)
    <INPUT TYPE="radio" NAME="soort" VALUE="delen">Delen(/)
    <INPUT TYPE="radio" NAME="soort" VALUE="vermenigvuldigen">Vermenigvuldigen(*)
    <BR>
    <INPUT TYPE="submit" name ="Submit" VALUE="Verzenden">
    <INPUT TYPE="reset" name="Reset" VALUE="Leegmaken">
    </FORM>
    <?php } ?>



    hoe var dump ik dit?
    Redacted
      zaterdag 3 januari 2009 @ 17:31:36 #176
    75592 GlowMouse
    l'état, c'est moi
    pi_64618123
    quote:
    Op zaterdag 3 januari 2009 02:05 schreef Roy_T het volgende:

    [..]

    Memcached anyone?
    Moet je die wel hebben draaien en is er nog steeds één request die er lang over doet.
    quote:
    Op zaterdag 3 januari 2009 17:24 schreef cablegunmaster het volgende:

    [ code verwijderd ]

    hoe var dump ik dit?
    Wat bedoel je?
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64618919
    quote:
    Op zaterdag 3 januari 2009 17:31 schreef GlowMouse het volgende:

    [..]

    Moet je die wel hebben draaien en is er nog steeds één request die er lang over doet.
    [..]

    Wat bedoel je?
    ik krijg de variable niet goed van getal1 en getal 2
    hij telt niet op als ik op ok druk. dus vraag ik me af hoe ik dit nu moet oplossen en vraag ik me ook af hoe ik een var dump van post variabele maak.

    want vardump($post)werkt niet.
    Redacted
      zaterdag 3 januari 2009 @ 18:08:12 #178
    75592 GlowMouse
    l'état, c'est moi
    pi_64619180
    De variabele heet dan ook niet $post of $_post maar $_POST. En de functie niet vardump maar var_dump.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64620755
    quote:
    Op zaterdag 3 januari 2009 18:08 schreef GlowMouse het volgende:
    De variabele heet dan ook niet $post of $_post maar $_POST. En de functie niet vardump maar var_dump.

    hartelijk bedankt meteen ook wat fout was in de php code

    hoofdletters
    Redacted
    pi_64623227
    quote:
    Op zaterdag 3 januari 2009 17:31 schreef GlowMouse het volgende:

    Moet je die wel hebben draaien en is er nog steeds één request die er lang over doet.
    Dat geldt voor iedere extensie natuurlijk. Wil je afbeeldingen resizen, dan zul je ook GD ofzo moeten hebben draaien. En wil je json_encode gebruiken in PHP < 5.2.3, dan zul je dat ook moeten installeren.

    Je kunt de cache overigens prima vullen wanneer er een product wordt toegevoegd bijvoorbeeld, zodat er nooit iemand hoeft te wachten op een lange request. Ik heb verschillende apps gebouwd die met een cron eenmaal per dag kijken wat er nieuw is, dat in memcached opslaan en klaar.
      zaterdag 3 januari 2009 @ 20:25:05 #181
    75592 GlowMouse
    l'état, c'est moi
    pi_64623759
    quote:
    Op zaterdag 3 januari 2009 20:12 schreef Roy_T het volgende:

    [..]

    Dat geldt voor iedere extensie natuurlijk. Wil je afbeeldingen resizen, dan zul je ook GD ofzo moeten hebben draaien. En wil je json_encode gebruiken in PHP < 5.2.3, dan zul je dat ook moeten installeren.
    En wil je PHP gebruiken...Helaas krijg je bij weinig hosters de beschikking over memcached. Bij shared hosting ben ik het nog nooit tegengekomen, waarschijnlijk omdat er geen authenticatie is.
    quote:
    Je kunt de cache overigens prima vullen wanneer er een product wordt toegevoegd bijvoorbeeld, zodat er nooit iemand hoeft te wachten op een lange request. Ik heb verschillende apps gebouwd die met een cron eenmaal per dag kijken wat er nieuw is, dat in memcached opslaan en klaar.
    Dat eerder cachen werd eerder al gesuggereerd als oplossing, alleen niet icm memcached. Memcached is hiervoor niet zo heel erg goed omdat het zomaar dingen weg kan mikken als het geheugen vol zit. En als je al MySQL hebt, waarom zou je dat niet gebruiken? Voor de performance hoef je het niet te laten.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64640410
    quote:
    Op zaterdag 3 januari 2009 20:25 schreef GlowMouse het volgende:

    En wil je PHP gebruiken...Helaas krijg je bij weinig hosters de beschikking over memcached. Bij shared hosting ben ik het nog nooit tegengekomen, waarschijnlijk omdat er geen authenticatie is.
    Dat is waar. Ik werk nooit binnen shared hosting omgevingen, dus daar had ik niet aan gedacht
    quote:
    Dat eerder cachen werd eerder al gesuggereerd als oplossing, alleen niet icm memcached. Memcached is hiervoor niet zo heel erg goed omdat het zomaar dingen weg kan mikken als het geheugen vol zit. En als je al MySQL hebt, waarom zou je dat niet gebruiken? Voor de performance hoef je het niet te laten.
    Dat ligt helemaal aan de architectuur uiteraard. In het artikel waar je naar verwijst hebben ze het over een cluster van databases waar de data sharded wordt opgeslagen. Daar hebben de meesten uiteraard ook geen mogelijkheid toe.

    Memcached kan inderdaad vol raken en de oudste data weggooien, maar daar ben je zelf bij natuurlijk. De app waar ik het over had moet iedere dag een paar MB aan data opslaan (en gedurende die dag gebruiken), terwijl er 1 GB aan ruimte gereserveerd is voor memcached. Dan heb je dat probleem nooit.

    Wat mij betreft dus allebei prima oplossingen, afhankelijk van de architectuur. Maar als je geen memcached hebt en op een shared host draait, dan kun je eigenlijk niets anders dan je database gebruiken (of file caching, maar dat zou niet mijn voorkeur hebben)
    pi_64641420
    Ik ben op het moment bezig met een login scriptje, maar raar genoeg werkt deze niet..
    Ik heb in mijn database een kolom MEMBERS met de velden username en wachtwoord.
    Raar genoeg krijg ik aldoor "U heeft geen goede combinatie van emailadres en wachtwoord gebruikt." te zien terwijl de username en password die ik invoer in mijn inlogscherm zeker weten correct zijn.
    Ziet iemand de fout die ik maak??
    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
    <?php
    error_reporting
    (E_ALL);
    mysql_connect("localhost""root""")or die("mysql_error");
    mysql_select_db("opdracht1")or die("mysql_error");

    if(!empty(
    $_POST))
        { 
            
    // username and password sent from form
            
    $myusername=$_POST['username'];
            
    $mypassword=$_POST['wachtwoord'];

            
    // To protect MySQL injection 
            
    $myusername stripslashes($myusername);
            
    $mypassword stripslashes($mypassword);
            
    $myusername mysql_real_escape_string($myusername);
            
    $mypassword mysql_real_escape_string($mypassword);
            
    $query "SELECT * FROM members WHERE username='$myusername' and password='$mypassword'"

            
    $result mysql_query($query); 

            if(
    $result == 1)
            { 
            
    $user $_POST["username"]; 
            
    $wachtwoord $_POST["wachtwoord"]; 
            
    $_SESSION['username'] = $user
            
    $_SESSION['wachtwoord'] = $wachtwoord

            
    header("Location: beveiligd.php"); 
            } 
            
            else 
            { 
            echo 
    "U heeft geen goede combinatie van emailadres en wachtwoord gebruikt."
            }          
        }
    else
    {
        echo 
    "U heeft de pagina verkeerd opgeroepen.";
    }
     
    ?>
    Bodybuilding #1
    Hardlopen #2
      zondag 4 januari 2009 @ 12:39:41 #184
    75592 GlowMouse
    l'état, c'est moi
    pi_64641651
    MEMBERS is een tabel, geen kolom.
    Om die stripslashes zou ik nog een check doen of magic_quotes_gpc wel aan staat.
    Wat denk je dat $result voorstelt, dat je hem met 1 vergelijkt?
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64641759
    $result ==1 is om te controleren of er 1 rij uit de query komt, wat betekent dat de username bestaat in de database, in geval van 0 rijen krijg je de melding dat er geen goede combinatie is.
    Meer dan 1 rij kan ook niet uit de query komen omdat de username uniek is.
    Bodybuilding #1
    Hardlopen #2
      zondag 4 januari 2009 @ 12:46:53 #186
    75592 GlowMouse
    l'état, c'est moi
    pi_64641862
    Dus $result stelt het aantal rijen in het resultaat voor zeg je? Klopt niet helaas. $result is bij jou wat mysql_query teruggeeft, en dat is een resource:
    quote:
    Return Values

    For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64642212
    En hoe kan ik dan ervoor zorgen dat de resultaten wel in een rij komen te staan? Met mysql_fetch_row?
    Bodybuilding #1
    Hardlopen #2
      zondag 4 januari 2009 @ 13:01:48 #188
    75592 GlowMouse
    l'état, c'est moi
    pi_64642261
    quote:
    Op zondag 4 januari 2009 12:59 schreef Kerol het volgende:
    En hoe kan ik dan ervoor zorgen dat de resultaten wel in een rij komen te staan? Met mysql_fetch_row?
    Je kunt die resource weer aan een andere functie voeren, zoals deze.
    Waarom vraag je eigenlijk zoveel gegevens op uit je database terwijl je alleen maar wilt weten hoeveel rijen er voldoen aan jouw criterium?
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64642469
    Wat bedoel je met zoveel gegevens? Ik vraag nu alleen aan de database of de username en password zich bevinden in de database.
    Verder niets toch? Of is dat niet wat je bedoelt..
    Bodybuilding #1
    Hardlopen #2
      zondag 4 januari 2009 @ 13:12:14 #190
    75592 GlowMouse
    l'état, c'est moi
    pi_64642588
    quote:
    Op zondag 4 januari 2009 13:08 schreef Kerol het volgende:
    Wat bedoel je met zoveel gegevens? Ik vraag nu alleen aan de database of de username en password zich bevinden in de database.
    Verder niets toch? Of is dat niet wat je bedoelt..
    Jij vraagt alle kolommen op uit de tabel members (via SELECT * ), dus in ieder geval krijg je een gebruikersnaam en wachtwoord terug die je toch al kent. Heb je niks aan dus.

    [ Bericht 5% gewijzigd door GlowMouse op 04-01-2009 13:17:55 ]
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64642654
    Hij controleert nu toch juist of die username en wachtwoord in de database staan zodat de gebruiker kan inloggen?
    Bodybuilding #1
    Hardlopen #2
      zondag 4 januari 2009 @ 13:15:27 #192
    75592 GlowMouse
    l'état, c'est moi
    pi_64642698
    quote:
    Op zondag 4 januari 2009 13:14 schreef Kerol het volgende:
    Hij controleert nu toch juist of die username en wachtwoord in de database staan zodat de gebruiker kan inloggen?
    Dat klopt, maar je vraagt veel meer informatie op dan je nodig hebt.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64643478
    -edit- o wacht
    Bodybuilding #1
    Hardlopen #2
    pi_64643560
    Dus eigenlijk moet ik gewoon een count gebruiken?
    1
    2
    3
    <?php
    "SELECT COUNT(*) FROM members WHERE username='$myusername' and password='$mypassword'"
    ?>
    Bodybuilding #1
    Hardlopen #2
      zondag 4 januari 2009 @ 13:46:06 #195
    75592 GlowMouse
    l'état, c'est moi
    pi_64643658
    Dat is hier het beste ja Niet dat je het verschil hier merkt, maar het is goed om van begin af aan te bedenken wat je nodig hebt en niet meer dan dat op te vragen. Je kunt nu alleen niet meer mysql_num_rows gebruiken omdat je nu altijd een rij terugkrijgt.
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64644112
    Ik krijg nog steeds aldoor de melding: 'U heeft geen goede combinatie van emailadres en wachtwoord gebruikt. '

    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
    <?php
    error_reporting
    (E_ALL);
    mysql_connect("localhost""root""")or die("mysql_error");
    mysql_select_db("opdracht1")or die("mysql_error");

    if(!empty(
    $_POST))
        { 
            
    // username and password sent from form
            
    $myusername=$_POST['username'];
            
    $mypassword=$_POST['wachtwoord'];

            
    // To protect MySQL injection (more detail about MySQL injection)
            
    $myusername stripslashes($myusername);
            
    $mypassword stripslashes($mypassword);
            
    $myusername mysql_real_escape_string($myusername);
            
    $mypassword mysql_real_escape_string($mypassword);
            
    $query "SELECT COUNT(*) FROM members WHERE username='$myusername' and password='$mypassword'"

            
    $result mysql_query($query); 

            if(
    $result == 1)
            { 
            
    $user $_POST["username"]; 
            
    $wachtwoord $_POST["wachtwoord"]; 
            
    $_SESSION['username'] = $user
            
    $_SESSION['wachtwoord'] = $wachtwoord

            
    header("Location: beveiligd.php"); 
            } 
            
            else 
            { 
            echo 
    "U heeft geen goede combinatie van emailadres en wachtwoord gebruikt."
            }          
        }
    else
    {
        echo 
    "U heeft de pagina verkeerd opgeroepen.";
    }
     
    ?>


    Wat doe ik nu nog verkeerd?
    Bodybuilding #1
    Hardlopen #2
    pi_64644150
    Vraagje:

    Ik heb deze query & code:

    1
    2
    3
    4
    5
    6
    7
    <?php
    foreach ($_SESSION['user_shop']['items']  AS $item_ID => $key){
       if (
    is_numeric($item_ID)){
          
    $extra_Q .= $item_ID.',';
       }
    }
    ?>


    1SELECT * FROM content_items items WHERE   items.item_ID IN (".$extra_Q." 0)


    - Er wordt niet gesorteerd op de volgorde van $extra_Q.

    Ziet iemand wat er 'fout' is ?

    [ Bericht 4% gewijzigd door jeroen2497 op 04-01-2009 14:07:40 ]
      zondag 4 januari 2009 @ 14:07:14 #198
    75592 GlowMouse
    l'état, c'est moi
    pi_64644381
    quote:
    Op zondag 4 januari 2009 14:00 schreef jeroen2497 het volgende:
    - Er wordt niet gesorteerd op de volgorde van $extra_Q.
    Ik zie geen ORDER BY. En zonder ORDER BY kun je de rijen in elke willekeurige volgorde terugkrijgen. De volgorde waarin je id's in een WHERE opgeeft wordt niet gebruikt voor de sortering.
    quote:
    Op zondag 4 januari 2009 13:59 schreef Kerol het volgende:
    Ik krijg nog steeds aldoor de melding: 'U heeft geen goede combinatie van emailadres en wachtwoord gebruikt. '
    [ code verwijderd ]

    Wat doe ik nu nog verkeerd?
    In $result staat nog steeds een resource, en niet de waarde voor count(*).
    eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
    pi_64644417
    quote:
    Op zondag 4 januari 2009 14:07 schreef GlowMouse het volgende:

    [..]

    Ik zie geen ORDER BY.
    [..]

    In $result staat nog steeds een resource, en niet de waarde voor count(*).
    Maar normaalgesproken is het toch zo dat als ik een serie ID's opgeef, hij ze in de opgegeven volgorde laat zien? Want hier kan ik volgens mij geen order by voor gebruiken?
    pi_64644487
    quote:
    Op zondag 4 januari 2009 13:59 schreef Kerol het volgende:
    Ik krijg nog steeds aldoor de melding: 'U heeft geen goede combinatie van emailadres en wachtwoord gebruikt. '
    [ code verwijderd ]

    Wat doe ik nu nog verkeerd?
    mysql_query geeft niet het resultaat van count terug, maar een resultset. Je moet de eerste row nog fetchen met $row = mysql_fetch_row($result) en dan $row[0] == 1 checken.

    Overigens twijfel ik of count(*) wel het snelste is op mysql vlak

    Mogelijk is onderstaande query nog sneller, met als bijkomende voordeel dat je de member id in je session kan gooien.
    SELECT id FROM members WHERE username='$myusername' and password='$mypassword' LIMIT 1

    $result = mysql_query($query);

    $row = mysql_fetch_assoc($result);
    if($row) {
    //valide record, met $row['id'] = member id
    }
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')