abonnement Unibet Coolblue Bitvavo
pi_107405449
In een poging om een sportwedstrijdenkalender in elkaar te klussen heb ik een tabel wedstrijd en een tabel speeldag. Wedstrijd is d.m.v. een foreign key aan speeldag gekoppeld, alles is gevuld, en m'n queries geven mooi resultaat.
Op php-newbieniveau heb ik e.e.a. in elkaar gezet. De volgende constructie werkt en geeft alle speeldagen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$squery
="select s_id, s_datum, s_lokatie from speeldag";
$sresult=mysql_query($squery);
$snum=mysql_numrows($sresult);
$i=0;

while(
$i $snum) {
    
$id=mysql_result($sresult$i"s_id");
    
$datum=mysql_result($sresult$i"s_datum");
    
$lokatie=mysql_result($sresult$i"s_lokatie");
    echo 
"<b>",$id"-",$datum," - ",$lokatie"</b><br>";

    
$i++;
}
?>
1
2
3
1-2011-11-19 - Ergenshuizen
2-2011-12-31 - Oudjaarsveld
3-2012-01-23 - Jarigveld
Als ik dit nu wil uitbreiden door per speeldag de bijbehorende wedstrijden op te halen had ik dat als volgt bedacht:
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
<?php
$squery
="select s_id, s_datum, s_lokatie from speeldag";
$sresult=mysql_query($squery);
$snum=mysql_numrows($sresult);
$i=0;

while(
$i $snum) {
    
$id=mysql_result($sresult$i"s_id");
    
$datum=mysql_result($sresult$i"s_datum");
    
$lokatie=mysql_result($sresult$i"s_lokatie");
    echo 
"<b>",$id"-",$datum," - ",$lokatie"</b><br>";

    
$wquery="select w_id, w_tijd, w_team1, w_team2 from wedstrijd where w_speeldag = ".$id;
    
$wresult=mysql_query($wquery);
    
$wnum=mysql_numrows($wresult);
    
$t=0;

    while (
$t $wnum)(
        
$wid=mysql_result($wresult$t"w_id");
        
$tijd=mysql_result($wresult$t"w_tijd");
        
$team1=mysql_result($wresult$t"w_team1");
        
$team2=mysql_result($wresult$t"w_team2");
        echo 
$tijd."  -  ".$team1." - ".$team2."<BR>";
    
        
$t++;
    )
    
$i++;
}
?>
Alle variabelen voor de 2e whileloop/query qua naam aangepast zodat er geen verwarring kan zijn.
Toch krijg ik een parse-error op de regel van het 2e while-statement.
De wedstrijdquery heb ik los getest, en deze geeft ook het resultaat wat er zou moeten komen.

Probeer ik iets wat niet kan, of zie ik iets over het hoofd?

Volgens mij ben ik me aan het blindstaren, of er is een beperking die ik nog niet ken.
"...while I'm supposed to marry her brother, a renowned pillow biter." Cersei Lannister
"Float like a butterfly, sting like a bee, look ridiculous." Rory the Roman
"It's smaller on the outside." Clara Oswin Oswald
  maandag 30 januari 2012 @ 16:37:15 #92
137776 boem-dikkie
Jedi Mind Baby!
pi_107405498
Je hebt ( ) in plaats van { }.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_107405878
quote:
14s.gif Op maandag 30 januari 2012 16:37 schreef boem-dikkie het volgende:
Je hebt ( ) in plaats van { }.
scherp opgemerkt :Y

En volgens mij kan je dit ook veel mooier doen met een JOIN of zie ik dit verkeerd? Ik zou er dan een functie van maken die een multidimensionale array teruggeeft met bijv.

$array['2012-02-23']['locatie1']

en hier dan met een foreach($array as $date => $location) doorheen gaan.

Verder in de while loop roep je steeds mysql_result aan. Dit is dan makkelijker en ben je van die lelijke tellers af.

1
2
3
4
5
6
<?php
while($tmysql_fetch_array($squery)){
     
$id $t['id_kolom_in_database'];
     
$location $t['locatie_kolom_in_database'];
}
?>
  maandag 30 januari 2012 @ 17:33:22 #94
75592 GlowMouse
l'état, c'est moi
pi_107407602
JOINs en mysql_fetch_array maken je code veel mooier
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_107408822
quote:
14s.gif Op maandag 30 januari 2012 16:37 schreef boem-dikkie het volgende:
Je hebt ( ) in plaats van { }.
Krijg nou de *bliep*! :')
Daar heb ik de hele middag op zitten vloeken. Notepad++ laat het verschil bljkbaar niet heel duidelijk zien, of ik heb gewoon niet op zitten letten. Thanks! ^O^
quote:
0s.gif Op maandag 30 januari 2012 16:46 schreef remi1986 het volgende:

[..]

scherp opgemerkt :Y

En volgens mij kan je dit ook veel mooier doen met een JOIN of zie ik dit verkeerd? Ik zou er dan een functie van maken die een multidimensionale array teruggeeft met bijv.

$array['2012-02-23']['locatie1']

en hier dan met een foreach($array as $date => $location) doorheen gaan.

Verder in de while loop roep je steeds mysql_result aan. Dit is dan makkelijker en ben je van die lelijke tellers af.
[ code verwijderd ]

Ik ben klein begonnen en heb het steeds verder proberen uit te bouwen met stukjes die ik her en der kon vinden. Het kan ongetwijfeld beter en sneller, maar ik wilde het voor mezelf behapbaar houden. Met jullie aanwijzingen van multidimensionele arrays en foreach heb ik in ieder geval iets om in te verdiepen.
Is PHP & MySQL voor Dummies een geschikt boek met dat soort principes? Ik moet licht beschaamd bekennen dat ik zelf databaseadministrator ben, maar programmeren met php enzo is mij niet echt gegeven. SQL gaat me wel goed af, maar een leuke join-query kreeg ik al helemaal niet in php geduwd :+.

Hartelijk dank in ieder geval voor de aanwijzingen!
"...while I'm supposed to marry her brother, a renowned pillow biter." Cersei Lannister
"Float like a butterfly, sting like a bee, look ridiculous." Rory the Roman
"It's smaller on the outside." Clara Oswin Oswald
pi_107414373
quote:
2s.gif Op maandag 30 januari 2012 18:09 schreef WheeleE het volgende:
Is PHP & MySQL voor Dummies een geschikt boek met dat soort principes? Ik moet licht beschaamd bekennen dat ik zelf databaseadministrator ben, maar programmeren met php enzo is mij niet echt gegeven. SQL gaat me wel goed af, maar een leuke join-query kreeg ik al helemaal niet in php geduwd :+.

Hartelijk dank in ieder geval voor de aanwijzingen!
Ik zou niet een voor dummies boek nemen tenzij het er 1 is uit 2011. Vaak zijn die boeken behoorlijk gedateerd. Mocht je specifieke dingen willen weten kun je het desnoods in een PM vragen. Meeste dingen weet ik wel een antwoord op :)
  maandag 30 januari 2012 @ 20:25:57 #97
137776 boem-dikkie
Jedi Mind Baby!
pi_107414491
Ik heb al zo vaak fouten gehad door dat ik perongeluk () in plaats van {} heb staan. Of dat ik er één mis of iets dergelijks, tegenwoordig controleer ik bij onbekende fouten dat gewoon eerst. :')
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_107414549
quote:
10s.gif Op maandag 30 januari 2012 20:25 schreef boem-dikkie het volgende:
Ik heb al zo vaak fouten gehad door dat ik perongeluk () in plaats van {} heb staan. Of dat ik er één mis of iets dergelijks, tegenwoordig controleer ik bij onbekende fouten dat gewoon eerst. :')
En daarvoor heb je dus een IDE met actieve foutopsporing :P dan doe je het dus nooit meer fout ;)
pi_107414559
quote:
0s.gif Op maandag 30 januari 2012 20:23 schreef totalvamp het volgende:

[..]

Ik zou niet een voor dummies boek nemen tenzij het er 1 is uit 2011. Vaak zijn die boeken behoorlijk gedateerd. Mocht je specifieke dingen willen weten kun je het desnoods in een PM vragen. Meeste dingen weet ik wel een antwoord op :)
Dan ga ik eerst eens kijken hoevel ik uit de manual kan vinden. Mocht ik daar niet uit komen dan kom ik weer terug in t topic :)
quote:
10s.gif Op maandag 30 januari 2012 20:25 schreef boem-dikkie het volgende:
Ik heb al zo vaak fouten gehad door dat ik perongeluk () in plaats van {} heb staan. Of dat ik er één mis of iets dergelijks, tegenwoordig controleer ik bij onbekende fouten dat gewoon eerst. :')
Ik heb het gewoon echt niet gezien, zo vaag. Ik begon echt aan mezelf te twijfelen, letter voor letter vergeleken :+
"...while I'm supposed to marry her brother, a renowned pillow biter." Cersei Lannister
"Float like a butterfly, sting like a bee, look ridiculous." Rory the Roman
"It's smaller on the outside." Clara Oswin Oswald
  maandag 30 januari 2012 @ 20:46:11 #100
267443 Cue_
Cuecumbergirl
pi_107415469
Ik denk dat iedereen er wel eens een paar uur heeft zitten vloeken omdat er bepaalde tekens niet goed werden afgesloten of dat per ongeluk de verkeerde tekens werden gebruikt :') :( :@
  maandag 30 januari 2012 @ 21:21:39 #101
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_107417408
-laatmaarverkeerdgelezen
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  maandag 30 januari 2012 @ 21:22:24 #102
137776 boem-dikkie
Jedi Mind Baby!
pi_107417454
Heeft iemand hier verstand van PHP die een plaatje aanmaakt? Ik heb een stukje code die een captcha plaatje aanmaakt, het werkt allemaal prima maar ik kan niet vinden hoe ik de achtergrond 'weg' krijg (transparant). Een ander kleurtje geven kan ik hem wel door RGB waardes in te vullen maar hoe ik hem transparant krijg ik voor mij een raadsel, heb al wat waardes weggehaald om te proberen maar zonder resultaat. Dit is het stukje code die het plaatje maakt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$dir 
'fonts/';

$image imagecreatetruecolor(10040);
$black imagecolorallocate($image000);
$color imagecolorallocate($image13719662);
$white imagecolorallocate($image255255255);

imagefilledrectangle($image,0,0,399,99,$white);
imagettftext ($image1501025$color$dir."helvetica.otf"$_SESSION['rand_code']);

header("Content-type: image/png");
imagepng($image);
?>
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  maandag 30 januari 2012 @ 21:23:33 #103
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_107417528
quote:
14s.gif Op maandag 30 januari 2012 21:22 schreef boem-dikkie het volgende:
Heeft iemand hier verstand van PHP die een plaatje aanmaakt? Ik heb een stukje code die een captcha plaatje aanmaakt, het werkt allemaal prima maar ik kan niet vinden hoe ik de achtergrond 'weg' krijg (transparant). Een ander kleurtje geven kan ik hem wel door RGB waardes in te vullen maar hoe ik hem transparant krijg ik voor mij een raadsel, heb al wat waardes weggehaald om te proberen maar zonder resultaat. Dit is het stukje code die het plaatje maakt:
[ code verwijderd ]

http://php.net/manual/en/function.imagecolortransparent.php

:)
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  maandag 30 januari 2012 @ 21:24:41 #104
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_107417586
En dus wel op deze manier:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// Create a 55x30 image
$im = imagecreatetruecolor(55, 30);
$red = imagecolorallocate($im, 255, 0, 0);
$black = imagecolorallocate($im, 0, 0, 0);

// Make the background transparent
imagecolortransparent($im, $black);

// Draw a red rectangle
imagefilledrectangle($im, 4, 4, 50, 25, $red);

// Save the image
imagepng($im, './imagecolortransparent.png');
imagedestroy($im);
?>
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
  maandag 30 januari 2012 @ 21:25:45 #105
137776 boem-dikkie
Jedi Mind Baby!
pi_107417635
Oh awesome, thanks!
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_107418100
quote:
0s.gif Op maandag 30 januari 2012 20:46 schreef Cue_ het volgende:
Ik denk dat iedereen er wel eens een paar uur heeft zitten vloeken omdat er bepaalde tekens niet goed werden afgesloten of dat per ongeluk de verkeerde tekens werden gebruikt :') :( :@
Toen ik nog programmeerde in notepad heb ik avonden gehad dat ik de computer kon afbreken als ik weer ergens een } was vergeten.
  dinsdag 31 januari 2012 @ 12:24:48 #107
137776 boem-dikkie
Jedi Mind Baby!
pi_107436364
quote:
0s.gif Op maandag 30 januari 2012 21:24 schreef U.N.K.L.E. het volgende:
En dus wel op deze manier:
[ code verwijderd ]

Het werkt toch niet echt lekker, met een vierkantje e.d wel maar ik laad een font in die 5 letters laat zien, als ik een transparante achtergrond maak met die code dan komen er om mijn letters heen alsnog kleine zwarte randjes.

Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  dinsdag 31 januari 2012 @ 12:53:54 #108
101149 U.N.K.L.E.
Grappen over Tsjernobyl.
pi_107437319
quote:
9s.gif Op dinsdag 31 januari 2012 12:24 schreef boem-dikkie het volgende:

[..]

Het werkt toch niet echt lekker, met een vierkantje e.d wel maar ik laad een font in die 5 letters laat zien, als ik een transparante achtergrond maak met die code dan komen er om mijn letters heen alsnog kleine zwarte randjes.

[ afbeelding ]
Hmm ik weet niet of dat zo gemakkelijk is op te lossen. Daarvoor heb ik net iets te weinig ervaring met deze functies. Als je dezelfde letters op een witte achtergrond plaatst is het niet?
Ze keek me smerig aan ik vond 'm zelf nog zo subtiel
maar ze kon ze niet waarderen, grappen over Tsjernobyl
pi_107437540
quote:
0s.gif Op maandag 30 januari 2012 20:46 schreef Cue_ het volgende:
Ik denk dat iedereen er wel eens een paar uur heeft zitten vloeken omdat er bepaalde tekens niet goed werden afgesloten of dat per ongeluk de verkeerde tekens werden gebruikt :') :( :@
Vaak genoeg. Helemaal aan het einde van de dag dan zie je het gewoon niet meer. Kom je de ochtend erna weer terug en kijk je erna, zie je het meteen c_/ c_/ c_/
  dinsdag 31 januari 2012 @ 12:59:48 #110
137776 boem-dikkie
Jedi Mind Baby!
pi_107437570
Dan is het niet inderdaad. De reden dat ik het graag wil is omdat de background waar dit plaatje opkomt een lichte gradient heeft, zelfs als ik dezelfde hoofdkleur van de gradient als achtergrond doe zie je het nog heel duidelijk.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  dinsdag 31 januari 2012 @ 13:00:27 #111
91039 mstx
2x1/2 = 1/2 x 1/2
pi_107437603
quote:
9s.gif Op dinsdag 31 januari 2012 12:24 schreef boem-dikkie het volgende:

[..]

Het werkt toch niet echt lekker, met een vierkantje e.d wel maar ik laad een font in die 5 letters laat zien, als ik een transparante achtergrond maak met die code dan komen er om mijn letters heen alsnog kleine zwarte randjes.

[ afbeelding ]
Met imagecolortransparent() kun je maar één kleur transparant maken. Als je de randen van schuine lijnen/rondingen ook transparant wilt hebben moet je alpha blending gebruiken waardoor pixels ook halftransparant kunnen zijn.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  dinsdag 31 januari 2012 @ 13:15:44 #112
137776 boem-dikkie
Jedi Mind Baby!
pi_107438193
quote:
0s.gif Op dinsdag 31 januari 2012 13:00 schreef mstx het volgende:

[..]

Met imagecolortransparent() kun je maar één kleur transparant maken. Als je de randen van schuine lijnen/rondingen ook transparant wilt hebben moet je alpha blending gebruiken waardoor pixels ook halftransparant kunnen zijn.
Ik wil ook maar één kleur transparant maken. De achtergrond, de letters moeten gewoon wit.

Maar goed, ik heb nu deze code staan en het resultaat is redelijk goed. Niet spierwit, maar wel prima op zich.

1
2
3
4
5
6
7
<?php
$im 
imagecreatetruecolor(10040);
$almostblack imagecolorallocate($im,239,130,0);
   
imagefill($im,0,0,$almostblack);
   
$black imagecolorallocate($im,255,255,255);
   
imagecolortransparent($im,$almostblack);
?>
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  dinsdag 31 januari 2012 @ 13:44:38 #113
91039 mstx
2x1/2 = 1/2 x 1/2
pi_107439104
quote:
14s.gif Op dinsdag 31 januari 2012 13:15 schreef boem-dikkie het volgende:

[..]

Ik wil ook maar één kleur transparant maken. De achtergrond, de letters moeten gewoon wit.

Maar goed, ik heb nu deze code staan en het resultaat is redelijk goed. Niet spierwit, maar wel prima op zich.
[ code verwijderd ]
Je gebruikt een anti-aliased font.


Als je maar één kleur transparant kunt maken kunnen in dit voorbeeld dus alleen de pixels die 100% wit zijn transparant worden. De 'grijze' pixels blijven dan de oorspronkelijke kleur, dus als je dat op een paarse achtergrond zet blijven de pixels grijs en krijgen ze niet een paarse tint.
Met alpha blending maak je die pixels halftransparant waardoor je wel mooie randen krijgt.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  dinsdag 31 januari 2012 @ 13:47:37 #114
137776 boem-dikkie
Jedi Mind Baby!
pi_107439204
quote:
0s.gif Op dinsdag 31 januari 2012 13:44 schreef mstx het volgende:

[..]

Je gebruikt een anti-aliased font.
[ afbeelding ]

Als je maar één kleur transparant kunt maken kunnen in dit voorbeeld dus alleen de pixels die 100% wit zijn transparant worden. De 'grijze' pixels blijven dan de oorspronkelijke kleur, dus als je dat op een paarse achtergrond zet blijven de pixels grijs en krijgen ze niet een paarse tint.
Met alpha blending maak je die pixels halftransparant waardoor je wel mooie randen krijgt.
Thanks voor de duidelijkheid! Even proberen.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_107439922
quote:
2s.gif Op maandag 30 januari 2012 20:27 schreef WheeleE het volgende:

[..]

Dan ga ik eerst eens kijken hoevel ik uit de manual kan vinden. Mocht ik daar niet uit komen dan kom ik weer terug in t topic :)

[..]

Ik heb het gewoon echt niet gezien, zo vaag. Ik begon echt aan mezelf te twijfelen, letter voor letter vergeleken :+
^O^ Mysql_fetch_array ingeklust, en het werkt!
Nu de join en de multidimensional array nog. Daar heb ik nog even een aanwijzing voor nodig.
Als ik speeldag met wedstrijd join krijg ik records van wedstrijden met bijbehorende datum en lokatie. Welk stukje moet dan in welke dimensie van het array komen?
1
2
3
4
5
select w_id, s_id, s_datum, w_tijd, t1.t_naam as w_team1, t2.t_naam as w_team2
from wedstrijd, speeldag, team t1, team t2
where w_speeldag = s_id
and w_team1 = t1.t_id
and w_team2 = t2.t_id
geeft als resultaat
1
2
3
4
5
6
7
8
9
wid sid datum        tijd        T1    T2
---------------------------------------
1    1    2011-11-19    09:00:00    A    B
4    1    2011-11-19    09:30:00    C    D
7    1    2011-11-19    10:00:00    E    F
10    1    2011-11-19    10:30:00    G    H
13    2    2011-11-20    11:00:00    I    J
16    2    2011-11-20    11:30:00    K    L
19    2    2011-11-20    13:00:00    M    N
Hoe krijg ik dat in een md-array? Hoofdarray met alle sid's en datums, en een subarray met wedstrijden op die dag?
"...while I'm supposed to marry her brother, a renowned pillow biter." Cersei Lannister
"Float like a butterfly, sting like a bee, look ridiculous." Rory the Roman
"It's smaller on the outside." Clara Oswin Oswald
  dinsdag 31 januari 2012 @ 14:25:07 #116
75592 GlowMouse
l'état, c'est moi
pi_107440620
1
2
3
<?php
$result
[$row['datum'][$row['sid']][] = array('tijd' => $row['tijd'], 'T1' => $row['T1']);
?>
zo voeg je één element toe aan de array $result.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_107441886
quote:
2s.gif Op dinsdag 31 januari 2012 14:06 schreef WheeleE het volgende:

[..]

^O^ Mysql_fetch_array ingeklust, en het werkt!
Nu de join en de multidimensional array nog. Daar heb ik nog even een aanwijzing voor nodig.
Als ik speeldag met wedstrijd join krijg ik records van wedstrijden met bijbehorende datum en lokatie. Welk stukje moet dan in welke dimensie van het array komen?
[ code verwijderd ]

geeft als resultaat
[ code verwijderd ]

Hoe krijg ik dat in een md-array? Hoofdarray met alle sid's en datums, en een subarray met wedstrijden op die dag?
En JOINS zou ik zoiets doen (je moet zelf ff kijken of de kolomnamen en aliassen goed zijn)

1
2
3
4
5
6
<?php
select w_id
s_ids_datumw_tijdt1.t_naam as w_team1t2.t_naam as w_team2
from wedstrijd
speeldagteam t1team t2
INNER JOIN speeldag ON 
(s_id w_speeldag)
INNER JOIN team AS t1 ON (w_team1 t1.t_id)
?>
pi_107444819
Kan iemand mij helpen met een regex probleem? Ik wil het volgende op kunnen halen

• int(8) unsigned
• varchar(30)
• text

Dus een regex moet drie verschillende dingen kunnen zien, nu zit ik al iets te spelen met lookahead, maar ik kom er niet uit.

De volgende match wel iets, maar alleen het eerste deel (int, of varchar) text match hij dan weer niet.
1'/([a-z]+)(?=\([0-9]+\))/'
  dinsdag 31 januari 2012 @ 16:32:04 #119
75592 GlowMouse
l'état, c'est moi
pi_107445052
Je moet duidelijker zijn. Voorbeeldtekstjes en wat je precies verwacht.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_107446010
Bij text een array met één resultaat, bij varchar(30) een array met twee resultaten en bij de unsigned een lijst met drie resultaten.

Volgens mij gaat dat lookahead zo ongeveer :P
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')