anoniem Geplaatst: 14 mei 2003 Delen Geplaatst: 14 mei 2003 Ik heb 2 pagina's. Een search forumulier en een 'laat zien pagina'. Als je op submit bij search drukt is het de bedoeling dat er via de laat zien page (screenshots.php) een aparte query wordt gedaan dan wanneer er gewoon screenshots.php wordt aangeroepen. Het script in screenshots.php moet hierachter komen door te kijken of $search de waarde 1 heeft. Dus: druk op submit is de url: screenshots.php?search=1 gewoon aanroepen is de utl: screenshots.php In screenshots.php heb ik de volgende functie maar het werkt niet echt. Elke keer, hoe je de page ook aanroept, hij voert altijd hetgene uit wat bij else staat. Blijkbaar is search dus altijd 1. :-? [code:1:eb672ed308]function select_entries ($start=0) { if ($search=1) { echo ('Search = 1'); // Dit is ter controle of de juiste query goed wordt uitgevoerd. if (empty($start)) { $start=0; } $query = "select * FROM screenshots WHERE authorised=1 ORDER BY game desc LIMIT $start, " . PAGE_LIMIT; $result = mysql_query($query); return($result); } else { echo ('Search = empty'); // Dit is ter controle of de juiste query goed wordt uitgevoerd. if (empty($start)) { $start=0; } $query = "select * FROM screenshots WHERE authorised=1 ORDER BY no desc LIMIT $start, " . PAGE_LIMIT; $result = mysql_query($query); return($result); } } [/code:1:eb672ed308] Ik ben hier al uren zoet mee geweest maar op de een of ander manier heb ik altijd problemen met if/else statements. Wie helpt mij verder? :cry: Quote Link naar reactie
anoniem Geplaatst: 14 mei 2003 Auteur Delen Geplaatst: 14 mei 2003 [quote:6a3d2d47de="Cmdr Chakotay"]Blijkbaar is search dus altijd 1. :-? [/quote:6a3d2d47de] Klopt want je zegt hier : [quote:6a3d2d47de="Cmdr Chakotay"]if ($search=1)[/quote:6a3d2d47de] oftewel "als $search geef waarde 1" dus altijd 1 Wat jij wilt is "als $search is gelijk aan 1" if ($search[b:6a3d2d47de]==[/b:6a3d2d47de]1) Quote Link naar reactie
anoniem Geplaatst: 14 mei 2003 Auteur Delen Geplaatst: 14 mei 2003 Daarnaast nog de twee volgende punten:[list:7a6470839d][*:7a6470839d]Je moet de waarde van $search waarschijnlijk bepalen door hem op te vragen via $_GET["search"].[*:7a6470839d]Als je dit doet buiten de functie om dan moet je $search binnen de functie eerst op global zetten, anders valt deze buiten de scope.[/list:u:7a6470839d]Hopelijk heb je er wat aan. - Bas Quote Link naar reactie
anoniem Geplaatst: 15 mei 2003 Auteur Delen Geplaatst: 15 mei 2003 [quote:dda4f3b182="bosjvd"][quote:dda4f3b182="Cmdr Chakotay"]Blijkbaar is search dus altijd 1. :-? [/quote:dda4f3b182] Klopt want je zegt hier : [quote:dda4f3b182="Cmdr Chakotay"]if ($search=1)[/quote:dda4f3b182] oftewel "als $search geef waarde 1" dus altijd 1 Wat jij wilt is "als $search is gelijk aan 1" if ($search[b:dda4f3b182]==[/b:dda4f3b182]1)[/quote:dda4f3b182] Ok, dat heb ik gedaan maar nu komt het volgende probleem. Wat je nu ook doet, hij blijft zeggen dat search altijd leeg is. Hij voert nu dus altijd hetgeen uit wat bij else staat. :roll: Ik denk dat dit wel zal helpen maar: [quote:dda4f3b182="BasHamar"]Je moet de waarde van $search waarschijnlijk bepalen door hem op te vragen via $_GET["search"].[/quote:dda4f3b182] Wordt het dan zo? [code:1:dda4f3b182]if ($_GET["search"]==1) { }[/code:1:dda4f3b182] [quote:dda4f3b182="BasHamar"]Als je dit doet buiten de functie om dan moet je $search binnen de functie eerst op global zetten, anders valt deze buiten de scope.[/quote:dda4f3b182] Ok, sorry, maar hier snap ik ff niks van. Kun je het misschien iets duidelijker uitleggen? ;) [size=9:dda4f3b182](Ligt aan mij hoor)[/size:dda4f3b182] Quote Link naar reactie
anoniem Geplaatst: 15 mei 2003 Auteur Delen Geplaatst: 15 mei 2003 [quote:cdc1e1b1f3="Cmdr Chakotay"][quote:cdc1e1b1f3="BasHamar"]Als je dit doet buiten de functie om dan moet je $search binnen de functie eerst op global zetten, anders valt deze buiten de scope.[/quote:cdc1e1b1f3] Ok, sorry, maar hier snap ik ff niks van. Kun je het misschien iets duidelijker uitleggen? ;) [size=9:cdc1e1b1f3](Ligt aan mij hoor)[/size:cdc1e1b1f3][/quote:cdc1e1b1f3] Lees het [url=http://www.php.net/manual/en/language.variables.php]hoofdstuk over variabelen[/url] uit de manual van PHP een keer goed door (m.n. de onderdelen over [b:cdc1e1b1f3]variable scope[/b:cdc1e1b1f3] en [b:cdc1e1b1f3]variables from outside PHP[/b:cdc1e1b1f3]). Als je dan nog vragen hebt dan horen we het wel. Quote Link naar reactie
anoniem Geplaatst: 15 mei 2003 Auteur Delen Geplaatst: 15 mei 2003 Probeer dit eens : Vervang: [code:1:1f2b7b086d]function select_entries ($start=0) { if ($search==1) { [/code:1:1f2b7b086d]Door:[code:1:1f2b7b086d]function select_entries ($start=0) { global $search; if ($search==1) { [/code:1:1f2b7b086d] Quote Link naar reactie
anoniem Geplaatst: 15 mei 2003 Auteur Delen Geplaatst: 15 mei 2003 [quote:bf378f0240="bosjvd"]Probeer dit eens : Vervang: [code:1:bf378f0240]function select_entries ($start=0) { if ($search==1) { [/code:1:bf378f0240]Door:[code:1:bf378f0240]function select_entries ($start=0) { global $search; if ($search==1) { [/code:1:bf378f0240][/quote:bf378f0240] Ja dat werkte! Dank je wel. :) Dus zodra een variabele door het hele document nodig is, is het de bedoeling dat er bijvoorbeeld aan het begin global $var1, $var2, etc; staat? Quote Link naar reactie
anoniem Geplaatst: 15 mei 2003 Auteur Delen Geplaatst: 15 mei 2003 Kan, maar dat hoeft niet. $_GET["search"] zou ook gewoon moeten werken. Met GET verwijs je naar een var die aan de url is meegegeven. Zie www.php.net voor meer info, maar dat was geloof ik al eerder genoemd :) Quote Link naar reactie
anoniem Geplaatst: 15 mei 2003 Auteur Delen Geplaatst: 15 mei 2003 [quote:e30cd8b2a2="Cmdr Chakotay"]Dus zodra een variabele door het hele document nodig is, is het de bedoeling dat er bijvoorbeeld aan het begin global $var1, $var2, etc; staat?[/quote:e30cd8b2a2]Het is niet helemaal juist... Als je binnen PHP een variabele declareert dan heeft deze een bepaalde "scope", een bereik waarbinnen deze is aan te roepen. Een functie heeft zijn eigen scope en kan variabelen buiten de functie dus niet "zien" zodat je binnen de functie evt dezelfde namen kunt gebruiken. Wil je toch een variabele buiten de scope aanroepen dan moet je deze [b:e30cd8b2a2]binnen[/b:e30cd8b2a2] de functie op global zetten zoals hiervoor al is genoemd. Ik hoop dat dit het een en ander verheldert. - Bas Quote Link naar reactie
anoniem Geplaatst: 15 mei 2003 Auteur Delen Geplaatst: 15 mei 2003 Ik kan alleen maar zeggen: ik snap het. :) Dank jullie wel voor jullie hulp. Quote Link naar reactie
anoniem Geplaatst: 15 mei 2003 Auteur Delen Geplaatst: 15 mei 2003 Ach ik heb er ook aan moeten wennen hoor en al helemaal omdat ik niet zo verschrikkelijk veel met php werk. Ze zijn hier op m'n werk groot fan van ColdFusion en dat is weer heel wat anders. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen