abonnement Unibet Coolblue Bitvavo
pi_23431014


Vorige delen:
[PHP] voor dummies - Deel 2
[PHP] voor dummies


Zie ook:
FAQ / PHP Dataverwerking
http://www.php.net
http://www.php.net/docs.php

Verder?

[ Bericht 2% gewijzigd door SHERMAN op 19-11-2004 19:07:01 ]
Op vrijdag 12 augustus 2005 01:46 schreef ElisaB het volgende:
Wat is SHERMAN leuk he Bloes O+
pi_23431373
Het volgende, ik ben bezig met de site voor een schaakclub..

Nu wil ik daar voor 1 speler de resultaten die die speler behaalt heeft tegen andere spelers laten zien.
Alleen kost me dat, zoals ik het nu uitgedacht heb, een boel mysql queries.

Namelijk:
Speler 1 | WINST | REMISE | VERLIES
Speler 14 | WINST | REMISE | VERLIES
(14 spelers in totaal bijv)

Het is de bedoeling dat de partijen in een andere tabel worden opgeslagen.
Maar per speler ben ik dus al 3 mysqlqueries kwijt(SELECT * FROM table WHERE speler=1 and winst =1, en zo ook over verlies en remise.. En dat dus 14 keer.

Dus 14 x 3 = 42 Select queries in een pagina..

Nu mijn vragen:
Is 42 queries veel/kost dat veel performance?
En is er eventueel een andere makkelijkere oplossing?

Ik ben nog niet begonnen met scripten/gegevens invoeren, dus alles is mogelijk.
pi_23431375
Goed topic, dit!
Op maandag 9 november 2009 12:25 schreef Whiskey_Tango het volgende:
Dat interesseert GroenLinks voor geen meter, ze zien je als een wandelende zak euro's waar ze handig een tap in kunnen drukken voor hun socialistische hobbies.
pi_23431490
quote:
Op vrijdag 19 november 2004 19:17 schreef DutchBlood het volgende:

Het volgende, ik ben bezig met de site voor een schaakclub..

Nu wil ik daar voor 1 speler de resultaten die die speler behaalt heeft tegen andere spelers laten zien.
Alleen kost me dat, zoals ik het nu uitgedacht heb, een boel mysql queries.

Namelijk:
Speler 1 | WINST | REMISE | VERLIES
Speler 14 | WINST | REMISE | VERLIES
(14 spelers in totaal bijv)

Het is de bedoeling dat de partijen in een andere tabel worden opgeslagen.
Maar per speler ben ik dus al 3 mysqlqueries kwijt(SELECT * FROM table WHERE speler=1 and winst =1, en zo ook over verlies en remise.. En dat dus 14 keer.

Dus 14 x 3 = 42 Select queries in een pagina..

Nu mijn vragen:
Is 42 queries veel/kost dat veel performance?
En is er eventueel een andere makkelijkere oplossing?

Ik ben nog niet begonnen met scripten/gegevens invoeren, dus alles is mogelijk.
correct me if i'm wrong

maar je geeft elke match een ID en dan spelerA tegen spelerB en match result (set=winst, remise, verlies)

en dan kun je gewoon alles ophalen waar de speler heeft gespeeld SELECT * FROM bla WHERE player1 = playerID OR player2 = playerID
pi_23431924
quote:
Op vrijdag 19 november 2004 19:23 schreef Pakspul het volgende:

[..]

correct me if i'm wrong

maar je geeft elke match een ID en dan spelerA tegen spelerB en match result (set=winst, remise, verlies)

en dan kun je gewoon alles ophalen waar de speler heeft gespeeld SELECT * FROM bla WHERE player1 = playerID OR player2 = playerID
Dat heeft niet het gewenste effect denk ik, dan zou ik alleen de matches van de speler met PlayerID krijgen, en niet van playerID1 tegen PlayerID2.

Ik zal het schematisch weergeven:
$currentplayer = 12; // Id van de speler waar de pagina over gaat

//Alle spelers opvragen
$query = "SELECT * FROM playerstable";
$res = mysql_query(($query);
while ($data = mysql_fetch_array($res) {
//Winsten
$query = "SELECT * FROM partijen WHERE player1 = $currentplayer and player2 = $data['id'] or $player1 = $data['id'] and player2 = $currentplayer WHERE uitslag='$currentplayer'";

//Uitslag bevat id van de speler die gewonnen heeft

$res = mysql_query($query);
$gewonnen = mysql_num_rows($res);
Print "Aantal keer gewonnen van $data['playername']:" . $gewonnnen";
} //endwhile

[ Bericht 47% gewijzigd door DutchBlood op 19-11-2004 19:56:56 ]
pi_23432231
-edit-
pi_23433001
quote:
Op vrijdag 19 november 2004 19:43 schreef DutchBlood het volgende:

[..]

Dat heeft niet het gewenste effect denk ik, dan zou ik alleen de matches van de speler met PlayerID krijgen, en niet van playerID1 tegen PlayerID2.
Hij zoekt alles waar player1 = playerID OF! player2 = playerID hij haalt dus alles op waar playerID heeft gespeeld en dan kun je via php uitzoeken of hij uit speelde (player2) of thuis (player1)

Wat jij doet vind ik persoonlijk ranzig in een loopje een query uitvoeren volgens mij moet mijn query alles perfect ophalen


dit is mijn idee voor de database
matchID (int)
player1 (smallint)
player2 (smallint)
result (set=winst,gelijk,verlies)
pi_23433233
hoe diep wil je je mysql database hebben DutchBlood, ik weet ook wel een leuk schematje voor je.

info?
- club
- player
- matches

db club
--
id (int)
naam (string * 25)

db player
--
id (int)
club_id (int)
naam (string * 25)

db matches
--
id (int)
club_id (int)
player_id (int)
tijd (time)
result (enum 'g', 'v', 'r')

nu kan je kijken welke clubs met welke spelers tegen elkaar zijn geweest, en welke player het snelste mensen verslaat... en wie't meeste heeft gewonnen....

tis maar een klein ideetje.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_23433868
quote:
Op vrijdag 19 november 2004 20:31 schreef Pakspul het volgende:

[..]

Hij zoekt alles waar player1 = playerID OF! player2 = playerID hij haalt dus alles op waar playerID heeft gespeeld en dan kun je via php uitzoeken of hij uit speelde (player2) of thuis (player1)

Wat jij doet vind ik persoonlijk ranzig in een loopje een query uitvoeren volgens mij moet mijn query alles perfect ophalen


dit is mijn idee voor de database
matchID (int)
player1 (smallint)
player2 (smallint)
result (set=winst,gelijk,verlies)
Maar hoe kom ik dan achter het totale aantal winsten van een speler tegen de andere?
pi_23433931
quote:
Op vrijdag 19 november 2004 20:42 schreef Chandler het volgende:
hoe diep wil je je mysql database hebben DutchBlood, ik weet ook wel een leuk schematje voor je.

info?
- club
- player
- matches

db club
--
id (int)
naam (string * 25)

db player
--
id (int)
club_id (int)
naam (string * 25)

db matches
--
id (int)
club_id (int)
player_id (int)
tijd (time)
result (enum 'g', 'v', 'r')

nu kan je kijken welke clubs met welke spelers tegen elkaar zijn geweest, en welke player het snelste mensen verslaat... en wie't meeste heeft gewonnen....

tis maar een klein ideetje.
Zoiets had ik al bedacht, zonder het clubgebeuren, dat is niet nodig.

Het gaat vrijwel alleen om partijen die binnen de binnen de club gespeeld worden, dus player1 van de club tegen player2.
pi_23434003
quote:
Op vrijdag 19 november 2004 21:09 schreef DutchBlood het volgende:

[..]

Maar hoe kom ik dan achter het totale aantal winsten van een speler tegen de andere?
player_win++ ?
pi_23434037
quote:
Op vrijdag 19 november 2004 21:15 schreef Pakspul het volgende:

[..]

player_win++ ?
Dus eerst de winsten van alle spelers in een keer ophalen, die in bijv een array proppen en dan de resultaten printen.

Das inderdaad veel beter, thnx .
pi_23434570
Zoals ik het nu heb bedacht:
CREATE TABLE `sc_matches` (
`Id` int(6) unsigned NOT NULL auto_increment,
`player1` tinyint(4) default NULL,
`player2` tinyint(4) default NULL,
`tijd` tinyint(4) default NULL,
`winst` tinyint(1) default NULL,
`date` int(10) default NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM;


CREATE TABLE `sc_spelers` (
`Id` int(6) unsigned NOT NULL auto_increment,
`naam` varchar(50) default NULL,
`email` varchar(50) default NULL,
`gebdatum` int(10) default NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM;
pi_23439219
vraagje of ik dit zo goed heb gedaan:

linkje 1

linkie 2

waaar gaat dit over?
heel simpel ik wil weten of mij eerste o.o.p gerichte php scriptje klopt, ik heb wel eens wat gedaan met o.o.p. maar heb het nnooit 100% gesnapt volgens mij vandaar..
als jullie opmerkingen hebben hoor ik het wel

Thnx alvast..!
pi_23447723
*kick*
pi_23447986
quote:
Op vrijdag 19 november 2004 21:16 schreef DutchBlood het volgende:
Dus eerst de winsten van alle spelers in een keer ophalen, die in bijv een array proppen en dan de resultaten printen.

Das inderdaad veel beter, thnx .
Euh nee dat is eigelijk veel slechter. Het idee van een database is dat je er uit haalt wat je nodig hebt, niet meer en niet minder. Laat dus een database zelf de juiste data selecteren. Als je database goed gemodeleerd is, kun je alles van een entiteit binnenhalen met een enkel sql statement.
pi_23448098
quote:
Op zaterdag 20 november 2004 00:21 schreef mschol het volgende:
heel simpel ik wil weten of mij eerste o.o.p gerichte php scriptje klopt, ik heb wel eens wat gedaan met o.o.p. maar heb het nnooit 100% gesnapt volgens mij vandaar..
Ik weet niet of php ook aan data hiding doet (in dit geval het niet toegankelijk maken van de variabelen van de klasse MYSQL vanaf buiten de klasse) want dat is wel een aanrader. Ik zou dan vervolgens een contructor schrijven met de vier argumenten voor een directe initialisatie. Vervolgens "get" en "set" functies voor de attributen(name, host, etc) van deze klasse. Dan begint het een beetje op OO te lijken.
pi_23448381
quote:
Op zaterdag 20 november 2004 16:08 schreef markvleth het volgende:
Vervolgens "get" en "set" functies voor de attributen(name, host, etc) van deze klasse.
Misschien is de = operator al overloaded

edit: ik zie net dat je in php __set en __get functies hebt om te overloaden Overloading

[ Bericht 26% gewijzigd door devzero op 20-11-2004 16:27:23 (link) ]
pi_23448676
Ja en voor de rest heeft overloading hier helemaal niets mee te maken. en maakt het geheel alleen maar verwarrend. Overigens heeft dit niks te maken met overloading in OO termen.

[ Bericht 22% gewijzigd door markvleth op 20-11-2004 16:46:19 ]
pi_23449535
quote:
Op zaterdag 20 november 2004 16:08 schreef markvleth het volgende:

[..]

Ik zou dan vervolgens een contructor schrijven met de vier argumenten voor een directe initialisatie. Vervolgens "get" en "set" functies voor de attributen(name, host, etc) van deze klasse. Dan begint het een beetje op OO te lijken.
zou je dat een beetje kunnen uitleggen?? (tis immer voor dummies deze hoek )

enne overloading
pi_23450161
quote:
Op zaterdag 20 november 2004 16:41 schreef markvleth het volgende:
Ja en voor de rest heeft overloading hier helemaal niets mee te maken
Ik dacht dat je de = operator kon overloaden in php, gelijk aan C++. Maar je roept slecht 1 polymorphe functie aan. Voortaan beter lezen.
  FOK!-Schrikkelbaas zaterdag 20 november 2004 @ 23:33:35 #22
1972 Swetsenegger
Egocentrische Narcist
pi_23458449
OOP in een dummy topic

Nu weer een echte dummy vraag

Hoe maak ik een variabele met de dag/datum/jaar van over 3 maanden.
Ok, ik strftime om de dag van vandaag uit te lezen, en vervolgens moet ik wat met mktime gaan doen, maar dat lees ik over unix timestamps en 1970 en word ik nerveus

Iemand een tip.
pi_23459124
[php]
<?php
$year = date("Y");
$month = date("n");
$day = date("j");
$date = date("M-d-Y", mktime(0, 0, 0, ($month+3), $day, $year));
?>
[/php]
pi_23459174
quote:
Op zaterdag 20 november 2004 23:33 schreef Swetsenegger het volgende:
OOP in een dummy topic
yup

dat is o.a. opweg helpen (ik ben zoals ik al zei niet super in o.o.p., vind het te omslachtig maar als je het goed doet (commetaar.......) dan is het ovrzichtelijk en kan je makkelijk allerlei dingen doen...
  FOK!-Schrikkelbaas zondag 21 november 2004 @ 00:01:15 #25
1972 Swetsenegger
Egocentrische Narcist
pi_23459240
quote:
Op zaterdag 20 november 2004 23:57 schreef ensifex het volgende:
[php]
<?php
$year = date("Y");
$month = date("n");
$day = date("j");
$date = date("M-d-Y", mktime(0, 0, 0, ($month+3), $day, $year));
?>
[/php]
Toch zo simpel
Het is nu maand 11, +3 telt hij het jaar gewoon mee?
En kan je dit ook localiseren want wij zeggen niet 12-21-2004
$date = date("d-M-Y", mktime(0, 0, 0, ($month+3), $day, $year));
kan ook?

-edit- Ja dus
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')