abonnement Unibet Coolblue Bitvavo
pi_54899589
Je kunt nog beter dit doen; dan is de variabel zo ie zo gebruikt.

1
2
3
<?php
$item 
= (isSet($_GET['i']) ? $_GET['i'] : "");
?>


uit het hoofd hé
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54901201
fuckie...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54913972
Ik heb een beetje een kip-ei probleem met het checken van een variabele...

Ik controleer alle input met een set functies, die bepalen of een veld leeg mag zijn, alleen numeriek, etc. Ik gooi dus een $_POST variabele in die functie. Als deze variabele niet bestaat krijg ik dus een notice, maar ik check pas OF hij bestaat IN de functie....

Nou kan ik wel een isset om de functie aanroep heenzetten, maar dat vind ik niet mooi
Kan ik dit oplossen?
  donderdag 29 november 2007 @ 15:15:12 #79
18008 hornage
FOK! Movie Trivia-Prijsmeester
pi_54920654
Ik heb in delphi een aardig ingewikkelde encoding en decode functie staan.
Nu moet ik in korte termijn ditzelfde kunnen in php.
Herschrijven is een beetje teveel werk schat ik zo in, maar is het ook mogelijk om dit via een dll bestand te doen die php kan benaderen?

Ik had al gezien dat dit met COM wel mogelijk, maar dan moet php op een windows server draaien en dat is het niet geval. FFI moet dan ook mogelijk zijn, maar ik snap eerlijk gezegd niet precies wat er op de flink verouderde site daarvan staat over hoe je het kan gebruiken.

Iemand tips of ideeën?

[ Bericht 0% gewijzigd door hornage op 29-11-2007 15:22:38 ]
Test je filmkennis! Speel mee met FOK! Movie Trivia en win prijzen!
pi_54925359
Stel dat ik in de database een veld "media type" heb waarin zo'n 50 unieke types staan (zoals CD, LP enz.). Nu wil ik wanneer ik die types ga weergeven op de site i.p.v. tekst een afbeelding neerzetten. Dus als het type CD is dan moet hij /images/cd.gif weergeven. Hoe kan ik dit op een nette en efficiënte manier oplossen? 50 if-statements lijkt me een beetje onhandig.

Zelf zat ik te denken aan een array met alle types en de bijbehorende afbeeldingen. Maar hoe maak ik zoiets aan en hoe haal ik dat er weer uit? Hij moet dus die array doorzoeken naar het media-type en vervolgens de afbeelding die erbij hoort terug geven zodat ik die kan echo'en.
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
pi_54925590
quote:
Op donderdag 29 november 2007 10:13 schreef Xcalibur het volgende:
Ik heb een beetje een kip-ei probleem met het checken van een variabele...

Ik controleer alle input met een set functies, die bepalen of een veld leeg mag zijn, alleen numeriek, etc. Ik gooi dus een $_POST variabele in die functie. Als deze variabele niet bestaat krijg ik dus een notice, maar ik check pas OF hij bestaat IN de functie....

Nou kan ik wel een isset om de functie aanroep heenzetten, maar dat vind ik niet mooi
Kan ik dit oplossen?
Je hoeft toch alleen de key aan die functie door te geven? $_POST is super-global, dus die heb je ook tot je beschikking binnen de functie.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54926305
quote:
Op donderdag 29 november 2007 18:50 schreef DaFrenk het volgende:
Stel dat ik in de database een veld &quot;media type&quot; heb waarin zo'n 50 unieke types staan (zoals CD, LP enz.). Nu wil ik wanneer ik die types ga weergeven op de site i.p.v. tekst een afbeelding neerzetten. Dus als het type CD is dan moet hij /images/cd.gif weergeven. Hoe kan ik dit op een nette en efficiënte manier oplossen? 50 if-statements lijkt me een beetje onhandig.

Zelf zat ik te denken aan een array met alle types en de bijbehorende afbeeldingen. Maar hoe maak ik zoiets aan en hoe haal ik dat er weer uit? Hij moet dus die array doorzoeken naar het media-type en vervolgens de afbeelding die erbij hoort terug geven zodat ik die kan echo'en.
over de 50 if: Dat kun je makkelijk met een switch

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
switch($typ)
{
   case 
'lp' :
     
$img 'lp.gif';
     break;

   case 
'cd' :
     
$img 'cd.gif';
     break;

  default :
    
$img 'default.gif';
    break;
}
$imgurl 'path/to/images/'.$img;
?>


En het doorzoeken van een array is niet zo heel moeilijk. Als je de key weet is het een kwestie van $array['key'];
pi_54926587
quote:
Op woensdag 28 november 2007 18:35 schreef Chandler het volgende:
Je kunt nog beter dit doen; dan is de variabel zo ie zo gebruikt.
[ code verwijderd ]

uit het hoofd hé
Waarom die tweede s met een hoofdletter? Overigens vind ik het wel een beetje raar dat die functie geen is_set heet. Aangezien een hoop functies wel met is_ beginnen, zoals is_numeric, is_null enzovoorts.
pi_54926679
quote:
Op donderdag 29 november 2007 19:25 schreef super-muffin het volgende:

[..]

over de 50 if: Dat kun je makkelijk met een switch
[ code verwijderd ]

En het doorzoeken van een array is niet zo heel moeilijk. Als je de key weet is het een kwestie van $array['key'];


Je kunt beter een array aanmaken met bv het volgende

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$arr 
= array("cd" => "cd.gif""lp" => "lp.gif"etcetcetc);

if (
in_array("cd"$arr))
{
    
$img $arr["cd"];
}
else
{
     
$img "standaard.jpg";
}
?>


dit is maar een opzetje, maar scheelt heel veel IF's
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 29 november 2007 @ 19:41:37 #85
62215 qu63
..de tijd drinkt..
pi_54926781
quote:
Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:

[..]



Je kunt beter een array aanmaken met bv het volgende
[ code verwijderd ]

dit is maar een opzetje, maar scheelt heel veel IF's
of een extra kolom maken in je database met daarin "type.gif" en die ook gewoon in je loop gooien
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_54927012
quote:
Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:

[..]



Je kunt beter een array aanmaken met bv het volgende
[ code verwijderd ]

dit is maar een opzetje, maar scheelt heel veel IF's

Wat is daar makkelijker aan?

En in een switch zitten helemaal geen if's
pi_54927828
Bedankt! Ze klinken allebei veelbelovend! Ga eens wat proberen! In de database opnemen is geen optie in dit geval.
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
pi_54929386
quote:
Op donderdag 29 november 2007 19:49 schreef super-muffin het volgende:

Wat is daar makkelijker aan?
De array met de mapping van type naar plaatje kan je in een config bestandje zetten. Dan kan je de mapping wijzigen zonder echt in de code te knoeien.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_54929616
quote:
Op donderdag 29 november 2007 19:38 schreef Chandler het volgende:

[..]

:N

Je kunt beter een array aanmaken met bv het volgende
[ code verwijderd ]

dit is maar een opzetje, maar scheelt heel veel IF's
Om hem dynamisch te maken moet ik dan zoiets doen?

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$arr = array("cd" => "cd.gif", "lp" => "lp.gif", etcetcetc);

if (in_array($row['MEDIA'] , $arr))
{
    $img = $arr[$row['MEDIA']];
}
else
{
     $img = "standaard.jpg";
}
?>


Dus "cd" vervangen door het dynamische $row?
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
  donderdag 29 november 2007 @ 22:34:37 #90
85514 ralfie
!Yvan eht nioj
pi_54932404
1
2
3
<?php
$img 
= ( file_exists$row['media'].'.gif' ) ? $row['media'] : 'default'  ) . '.gif';
?>


Zoooo, hoef je alleen maar de plaatjes te uploaden van de media die je wil en klaar is DaFrenk. Niks geen gezeik met arrays, en simpel dingen toevoegen of verwijderen. Wel iets trager als je dit honderden keren gaat doen op elke pagina, maar het is wel lekker simpel. En daar hou ik van

tevens tvp
pi_54932531
quote:
Op donderdag 29 november 2007 22:34 schreef ralfie het volgende:

[ code verwijderd ]

Zoooo, hoef je alleen maar de plaatjes te uploaden van de media die je wil en klaar is DaFrenk. Niks geen gezeik met arrays, en simpel dingen toevoegen of verwijderen. Wel iets trager als je dit honderden keren gaat doen op elke pagina, maar het is wel lekker simpel. En daar hou ik van

tevens tvp
Interessante oplossing! Inderdaad doodsimpel! Even kijken of dat compatible is met alle media types die ik heb.

Bedankt!
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
pi_54938731
@ralfie; maar dan zorg je weer voor onnodig harddisk gebruik. Zou eerder gaan voor een array ipv file_exists
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54940519
Ik denk dat ik die methode van Ralfie ga gebruiken voor iets anders, namelijk het weergeven van een vlaggetje voor de land van herkomst. Aangezien er daarvan maar één op een pagina staat hoeft hij niet overdreven veel te controleren.

Voor het media type ga ik toch eens kijken naar de array. Want het probleem is voornamelijk dat er wat speciale tekens in zitten. Zoals " (als in inch) en een : , al weet ik ook niet hoe een array daar mee om gaat. Maar om het in een bestandsnaam te gebruiken lijkt me sowieso niet goed gaan.
Michael Scott: If I were joking, you'd be laughing. Do you look like you're laughing?
Dwight K. Schrute: Impossible to say. I can't see myself.
pi_54941206
@DaFrenk, arrays zullen daar niet echt veel problemen mee hebben hoor

Even iets anders van mijn kant, voor de SQL experts

Ik heb een tabel met alle maal gegevens

tabel:
titel - naam - gegeven

voorbeeld data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
kees - jaar - 1980
kees - maand - 2
kees - dag  - 3
kees - stad - groningen
kees - land - NL
erik - jaar - 1988
erik - maand - 3
erik - dag - 12
erik - stad - Amsterdam
erik - land - NL
mark - jaar - 1977
mark - maand - 12
mark - dag - 22
mark - stad - Antwerpen
mark - land - BE

nu wil ik met een query uit deze database alle plaatsnamen halen uit Nederland (NL)

Ik heb getract met een left join query alle namen te pakken waar een property land in zit met de value NL en daarna met distinct de steden er uit te halen, maar dit werkte niet.

voorbeeld:
1
2
3
4
5
SELECT distinct(database.value)
FROM database
LEFT JOIN database d ON d.naam = database.naam
WHERE d.property = 'land' AND d.value = 'NL' AND database.property = 'stad'
GROUP BY database.value


maar helaas kreeg ik 0 resultaten wat doe ik fout?

[ Bericht 1% gewijzigd door Chandler op 30-11-2007 11:01:28 (NL ipv nl) ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 30 november 2007 @ 11:11:58 #95
107951 JortK
Immer kwaliteitsposts
pi_54941445
Je vraag is me een beetje onduidelijk Chandler, maar wellicht dat je hier wat aan hebt:

1
2
3
4
SELECT database.value
FROM database db1, database db2
WHERE db1.naam = 'land' AND db2.naam = 'stad' AND db1.titel = db2.titel AND db1.naam = 'NL'
GROUP BY database.value 


Die distinct is trouwens overbodig als je dezelfde waarde al in je GROUP BY hebt staan ;)

En ik ga ervanuit dat database.value gelijk is aan db2.gegeven :)
pi_54941907
Jort, dat werkte niet.

Ik heb net weer een LEFT JOIN geprobeerd maar kwam weer heel wat buitenlandse woonplaatsen tegen

1
2
3
4
5
SELECT db1.value
FROM db1
LEFT JOIN db1 D on D.naam = db1.naam
WHERE D.property = 'land' AND D.value = 'nl' AND db1.property = 'woonplaats'
GROUP by db1.value


The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_54941958
1
2
3
4
5
6
7
8
SELECT DISTINCT(gegeven)
FROM gegevens
WHERE naam = 'stad'
AND titel IN (
SELECT DISTINCT(titel)
FROM gegevens
WHERE naam = 'land' AND gegeven = 'NL'
)

Zoiets?
Everything is possible, the impossible just takes longer.
  vrijdag 30 november 2007 @ 11:39:47 #98
107951 JortK
Immer kwaliteitsposts
pi_54942030
quote:
Op vrijdag 30 november 2007 11:33 schreef Chandler het volgende:
Jort, dat werkte niet.

Ik heb net weer een LEFT JOIN geprobeerd maar kwam weer heel wat buitenlandse woonplaatsen tegen
[ code verwijderd ]

Je moet geen left join hebben maar je moet dezelfde tabel twee keer aan elkaar joinen en in de WHERE zeggen dat je van de ene alleen het land wil zien, en van de anders alleen de stad
pi_54944439
quote:
Op vrijdag 30 november 2007 11:36 schreef Aquaatje het volgende:

[ code verwijderd ]

Zoiets?
Ik kan helaas geen select in een query gebruiken *(geen query in queries)*
quote:
Op vrijdag 30 november 2007 11:39 schreef JortK het volgende:
Je moet geen left join hebben maar je moet dezelfde tabel twee keer aan elkaar joinen en in de WHERE zeggen dat je van de ene alleen het land wil zien, en van de anders alleen de stad
Dat heb ik dus geprobeerd, maar het stomme is dat ik dan nog buitenlandse plaatsen krijg
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 30 november 2007 @ 13:29:29 #100
529 twi
Het lichtje is uit...
pi_54944593
Het is je vraag niet, maar waarom gebruik je in hemelsnaam zo'n constructie voor je database-tabel, in plaats van gewoon de naam en een aantal extra kolommen voor elk gegeven?

Of is dit slechts een fictieve tabel om je probleem te benadrukken?
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')