Thanks. Zat allemaal moeilijk te doen met die array's vergelijken, maar dat werkte allemaal niet.quote:Op dinsdag 6 oktober 2009 13:58 schreef Light het volgende:
Aangenomen dat je subqueries kunt gebruiken:
[ code verwijderd ]
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 48 49 50 51 52 53 54 55 56 57 58 | ( [1] => 2 [2] => 2 [3] => 0 [6] => 1 [8] => 1 [10] => 0 [11] => 1 [12] => 4 [13] => 2 [14] => 1 [27] => 1 [28] => 1 [33] => 1 ) gisteren:Array ( [1] => 2 [2] => 0 [3] => 0 [5] => 1 [6] => 2 [7] => 1 [8] => 1 [9] => 1 [11] => 0 [12] => 4 [13] => 3 [14] => 1 ) totaal:Array ( [12] => 8 [13] => 5 [1] => 4 [6] => 3 [14] => 2 [8] => 2 [2] => 2 [9] => 1 [5] => 1 [7] => 1 [11] => 1 [26] => 0 [27] => 0 [28] => 0 [33] => 0 [17] => 0 [16] => 0 [3] => 0 [4] => 0 [10] => 0 [15] => 0 ) geen hits SQL: SELECT * FROM `linkpartners` WHERE ID NOT in(1, 2, 3, 6, 8, 11, 12, 13, 14, 5, 7, 9) |
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 | $totaal = array(); foreach(array_keys($hitsArray) as $key) { if(isset($hitsArrayYesterday[$key])) { $totaal[$key] = $hitsArray[$key] + $hitsArrayYesterday[$key]; } } foreach(array_keys($hitsArrayYesterday) as $key) { if(!isset($totaal[$key])) { $totaal[$key] = $hitsArrayYesterday[$key]; } } $SQLnohits = "SELECT * FROM `linkpartners` WHERE ID NOT in("; foreach(array_keys($totaal) as $key) { $SQLnohits .= $key .", "; } $SQLnohits = substr($SQLnohits, 0, -2) .")"; $querynohits = mysql_query($SQLnohits); while($row = mysql_fetch_object($querynohits)) { $totaal[$row->ID] = 0; } arsort($totaal); ?> |
Laat je niet een komma teveel genereren?quote:Op dinsdag 6 oktober 2009 15:28 schreef pc-fr34k het volgende:
Ik had al eerder hier hulp gevraagd voor dit probleem, dacht dat het goed was maar blijkbaar nog niet. Ik heb dus 3 arrays in totaal. $hitsArray staan de hits per partner van vandaag en in $hitsArrayYesterday staan die van gisteren. Die worden samengevoegd in $totaal, waarna de overige partners zonder hits worden binnengehaalt.
Arrays:
[ code verwijderd ]
Code:
[ code verwijderd ]
Wie o wie heeft door wat er nou fout is?
Bedankt. .
Daar is dit stuk voorquote:Op dinsdag 6 oktober 2009 15:55 schreef Lantashh het volgende:
[..]
Laat je niet een komma teveel genereren?
1 2 3 | $SQLnohits = substr($SQLnohits, 0, -2) .")"; ?> |
Dat gaat goed tot je een keer een array met maar 1 element hebt.quote:Op dinsdag 6 oktober 2009 16:36 schreef pc-fr34k het volgende:
[..]
Daar is dit stuk voor
[ code verwijderd ]
Als je kijkt naar die uiteindelijke query zie je ook dat het klopt.(onderaan die array's in dat eerste stuk)
1 2 3 | $keys = implode(', ', array_keys($totaal)); ?> |
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 | error_reporting(E_ALL); class main { function test() { echo 'main:test()<br />'; } } class sub extends main { function test() { echo 'main:submodule:test()<br /'; parent::test(); } public function test2() { echo 'main:submodule:test2()<br />'; $this->test(); } } $x = new main(); $x->test(); $x->test2(); ?> |
1 |
gebruik GREATEST(0, aantal-2)quote:Op woensdag 7 oktober 2009 20:45 schreef Swetsenegger het volgende:
[ code verwijderd ]
Hoe voorkom ik nou dat aantal op -1 komt te staan als er onverhoopt maar 1 aantal was voor de query?
Wat de copulatie doet dit??quote:
1 |
1 |
Tnx, ik dacht dat het via een de hoofdclass overgenomen zou worden (denk net andersom blijkbaar).quote:Op woensdag 7 oktober 2009 20:45 schreef GlowMouse het volgende:
je moet ook new sub(); doen, anders gebruik je de eerste class.
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 48 49 50 51 52 53 54 55 56 57 58 59 60 | error_reporting(E_ALL); class main { public function test() { echo 'main:test()<br />'; } } class db extends main { var $secret = 123; function set() { $this->secret = true; } function abc() { echo 'abc'; echo $this->secret; } } class sub extends main { public function test() { echo 'main:submodule:test()<br />'; parent::test(); } public function test2() { echo 'main:submodule:test2()<br />'; $this->test(); } public function start() { db::set(); } public function woei() { db::abc(); } } $x = new sub; $x->woei(); echo '<hr>'; $x->test2(); ?> |
. Ik kende implode al, had er alleen raar genoeg niet aan gedacht.quote:Op dinsdag 6 oktober 2009 18:58 schreef Light het volgende:
[..]
Dat gaat goed tot je een keer een array met maar 1 element hebt.
Het kan veel overzichtelijker en korter:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 | foreach(array_keys($hitsArray) as $key) { if(!isset($totaal[$key])) { $totaal[$key] = $hitsArray[$key]; } } ?> |
1 2 3 4 5 6 7 8 9 | foreach(array_keys($hitsArrayYesterday) as $key) { if(!isset($totaal[$key])) { $totaal[$key] = $hitsArrayYesterday[$key]; } } ?> |
1 2 3 4 5 | unset($_SESSION['cardid']); // Stop de kaart in een sessie. $_SESSION['cardid'] = $_POST['cardid']; ?> |
omdat hij dat niet doet. dat is juist het probleemquote:Op donderdag 8 oktober 2009 18:28 schreef slacker_nl het volgende:
$_SESSION['cardid'] = $_POST['cardid']; overwrite het toch gewoon, dus waarom unsetten?
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 | $directory="Icons"; $results = array(); $handler = opendir($directory); while ($file = readdir($handler)) { if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess"){ $currentModified = filectime($directory."/".$file); $file_names[] = $file; $file_dates[] = $currentModified; } } closedir($handler); arsort($file_dates); //Match file_names array to file_dates array $file_names_Array = array_keys($file_dates); foreach ($file_names_Array as $idx => $name) $name=$file_names[$name]; $file_dates = array_merge($file_dates); $i = 0; //Loop through dates array and then echo the list foreach ($file_dates as $$file_dates){ $j = $file_names_Array[$i]; $file = $file_names[$j]; $i++; echo "Latest icons: $file<br/>"; } ?> |
Gedaanquote:
Weet niet of het sneller is, maar..quote:Op vrijdag 9 oktober 2009 19:47 schreef WebbySP het volgende:
Hoi,
ik werd naar dit topic verwezen, dus vandaar hier nog maar eens :
Ik heb een pagina waarop een aantal duizend icons te vinden zijn. Alles werkt perfect, alleen wil ik nu een dingetje toevoegen, namelijk : de laatste (3) toevoegingen. Oftewel, de nieuwste 3 icons.
Ik heb nu een scriptje (zie hieronder) die de hele directory doorloopt en dan vervolgens ALLE icons weergeeft in een lijst.
Niet alleen duurt het (te) lang voordat ie alles heeft doorgespit, maar ook moeten er maar 3 weergegeven worden.
Is het mogelijk om het script aan te passen dat ie sneller werkt én ook alleen de laatste 3 icons alleen in een lijstje weergeeft ?
[ code verwijderd ]
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 | $directory="pics/aruba_2009/"; $max = 3; $results = array(); $handler = opendir($directory); while ($file = readdir($handler)) { if ($file != '.' && $file != '..' && $file != "robots.txt" && $file != ".htaccess"){ $date = filemtime($directory."/".$file); $date = filectime($directory."/".$file); $file_dates[$date][] = $file; } } closedir($handler); krsort($file_dates); $last_three = array_slice($file_dates,0,$max); $i = 0; foreach($last_three as $files) { foreach($files as $file) { if ($i < $max) { print "$file \n"; $i++; } else { break 2; } } } ?> |
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 | function wait(msecs) { var start = new Date().getTime(); var cur = start while(cur - start < msecs) { cur = new Date().getTime(); } } $(document).ready(function(){ var percentage = 0; while(percentage < 100) { wait(1000); $("#quote").load("http://www.domein.nl/test.php"); percentage = document.getElementById("quote").innerHTML; $('#progressbar').progressBar(percentage); } }); </script> |
kijk misschien is dat wat... enig idee hoe?quote:Op maandag 12 oktober 2009 17:31 schreef GlowMouse het volgende:
je kunt in php al stukjes html naar de browser flushen
ga eens profilen, dit klopt niet. Connect je ergens naar de verkeerde host? Hoe meet je?quote:Op maandag 12 oktober 2009 17:46 schreef hamkaastosti het volgende:
oi,
ik ben bezig met een klein framework ding in php en zodra ik de mysqli class aanroep duurt het veel langer voordat de site op het scherm komt
zonder new mysqli()
0.0027 seconds
met mysqli()
0.5019 seconds
dat is toch een belachelijke verslechtering? Kan ik hier nog iets aan doen? Ik draai een standaard wamp server
ik connect gewoon naar localhost. M'n framework is nog niet veel meer dan een simpel MVC framepje en ik tel de totale tijd door aan het begin een microtime(TRUE); te doen en helemaal onderaan dat nog eens te doen waarbij ik het verschil aan tijd weergeef.quote:Op maandag 12 oktober 2009 20:55 schreef GlowMouse het volgende:
[..]
ga eens profilen, dit klopt niet. Connect je ergens naar de verkeerde host? Hoe meet je?
Dat is geen goede maat; executie kan pauzeren bij het tussentijds flushen naar je browser.quote:Op maandag 12 oktober 2009 21:21 schreef hamkaastosti het volgende:
[..]
ik connect gewoon naar localhost. M'n framework is nog niet veel meer dan een simpel MVC framepje en ik tel de totale tijd door aan het begin een microtime(TRUE); te doen en helemaal onderaan dat nog eens te doen waarbij ik het verschil aan tijd weergeef.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | display: block; position: fixed; top: 10px; left: 10px; height: 40px; z-index: 999; background-color: red; border:1px solid black; } #content { Position: relative; } |
Volgens mij snappen niet alle browsers precies wat de bedoeling is van position:fixed;quote:Op dinsdag 13 oktober 2009 11:18 schreef LeeHarveyOswald het volgende:
Mag ik hier ook een klein CSS vraagje stellen?
Weet iemand waarom met onderstaande code, mijn <div id='top'> niet gewoon blijft zweven bovenin?
[ code verwijderd ]
mijn "top" div scrolled nu gewoon mee, en dat is niet de bedoeling
CTRL-F hielp mij niet naar dat topic, en aangezien Google de laatste weken wat moeite heeft met het tonen van de geindexeerde pagina's van fok....quote:Op dinsdag 13 oktober 2009 11:58 schreef Light het volgende:
[..]
Volgens mij snappen niet alle browsers precies wat de bedoeling is van position:fixed;
En ben ik heel flauw als ik wijs op het bestaan van [CSS] voor dummies - deel 13 ?
1 2 3 4 5 6 7 8 9 10 11 | echo '<td>' . $vak['titel'] . '</td>'; while($cijfers = mysql_fetch_array($sql)){ echo '<td><a class="fancyopen" href="cijfers.php?p=wijzigen&id='.$cijfers["id"].'&iframe">' . $cijfers["punt"] . '</a></td>'; $gem[$i] = $gem[$i] + ($cijfers["punt"] * $cijfers["weging"]); $weging[$i] = $weging[$i] + $cijfers["weging"]; $gemiddelde[$i] = $gem[$i] / $weging[$i]; } echo '<td>'.$gemiddelde[$i].'</td>'; echo '</tr>'; |
Maar het aantal td's varieert bij elke rij.quote:Op dinsdag 13 oktober 2009 16:53 schreef Light het volgende:
Zorg dat je op iedere regel evenveel <td>'s hebt.
1 |
1 2 3 4 5 6 7 8 9 | //nieuwe Post van update if(isset($_POST['nieuw']) && empty($test)) { $sql = "insert into update_scardfiles (updatenr,bestandsnaam,wijziging,date) VALUES ('','".esc($_POST['bestandsnaam'])."','".esc($_POST['wijziging'])."',now())"; mysql_query($sql); $test = 'gepost'; } ?> |
1 2 3 4 5 6 7 8 | if(isset($_POST['nieuw']) && $_SESSION['nieuw'] = 'ja') { $sql = "insert into update_scardfiles (updatenr,bestandsnaam,wijziging,date) VALUES ('','".esc($_POST['bestandsnaam'])."','".esc($_POST['wijziging'])."',now())"; mysql_query($sql); $_SESSION['nieuw'] = 'nee'; } ?> |
1 2 3 4 5 6 | if(!empty($_GET['nieuw'])) { $_SESSION['nieuw'] = 'ja'; } ?> |
1 2 3 4 | $this->cssFile = $this->xpath->query("//a[@rel='stylesheet']/@href"); $this->cssFile = $this->xpath->query("//link"); ?> |
Ik heb geen ervaring met xpath, maar moet dat geen functie zijn?quote:Op woensdag 14 oktober 2009 00:54 schreef BaggerUser het volgende:
ik probeer de css files die aangeroepen worden in een pagina op te vragen.. met xpath wil dit echter niet lukken.
[ code verwijderd ]
o.a. geprobeerd maar geen succes mee.. alsnog een verkeerde syntax of gaat dit gewoon niet lukken met xpath? (zo niet, hoe dan wel? of zal ik toch aan de regexp moeten...?)
Dankjewel! Na veel zoeken en proberen is het toch gelukt!quote:
klopt maar hier is de query de functie... t komt er op neer dat xpath prima werkt kan er alles mee opvragen alleen de <link elementen wil me niet lukken...quote:Op woensdag 14 oktober 2009 09:38 schreef Light het volgende:
[..]
Ik heb geen ervaring met xpath, maar moet dat geen functie zijn?
1 2 3 | $links = $this->dom->getElementsByTagName('link'); ?> |
1 2 3 | SELECT m.id, m.capcode, m.tijd, m.datum, m.melding, m.soort, m.label, c.capcode, c.txt FROM capcode AS c INNER JOIN meldingen AS m ON c.txt LIKE 'Groningen-%' WHERE m.capcode = c.capcode ORDER by m.id DESC LIMIT 150 ?> |
1 2 3 4 5 | FROM capcode AS c INNER JOIN meldingen AS m ON m.capcode = c.capcode WHERE c.txt LIKE 'Groningen-%' ORDER by m.id DESC LIMIT 150 |
1 2 3 4 5 6 7 8 9 | class newscontroller extends basecontroller { public function view() { $this->view = new view(); $this->model = new newsmodel(); //newsitem ophalen undsoweiter } |
1 |
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 | <body> <h1>Toevoegen Wedstrijdverloop </h1> <form action="3.1.3_controleWedstrijdVerloop.php" method="post"> <p>team1: <select name="team1[]" size="10" multiple="true"> <?php $user="root"; $host="localhost"; $password="root"; $database="zaalvoetbal"; $conn = mysql_connect($host,$user,$password) or die(mysql_error()); $db = mysql_select_db($database, $conn) or die(mysql_error()); $query = "Select spelers_achternaam from Spelers"; $result = mysql_query($query) or die (mysql_error()); $nrows = mysql_num_rows($result); if(mysql_num_rows($result)or die (mysql_error()) { while ($row = mysql_fetch_assoc($result)or die (mysql_error()) { echo"<option>$row[spelers_achternaam]</option>"; } } ?> </select> <input type="submit" name="teamCheck" value="ControleTeam"</> </form> </body> |
Die favicon.ico is een plaatje en er is een bestand in je directory die erom vraagt je kan er 1 aanmaken omdat het geheel onschadelijk plaatje is.quote:Op vrijdag 16 oktober 2009 12:45 schreef jakees het volgende:
hallo,
ik ben nog steeds aan het worstelen met PHP. Van de week een query in een tabel gekregen. Eindelijk gelukt. Nu heb ik een volgend probleem. Ik probeer een multiselect te vullen. ik heb dit op mijn werk pc gedaan geen probleem. Nu probeer ik precies dezelfde code op mijn thuispc te draaien en dan wordt de multiselect leeg getoond. Ik heb in de logs gekeken en zie daar geen foutmeldingen. Ik gebruik PHP 5.2.11 in cm apache 2.2.Ik gebruik PHP 5.2.11 in cm apache 2.2. Wel zie ik soms (niet altijd) de melding:
[ code verwijderd ]
De code die ik gebruik (die root en dergelijke ga ik er later wel uit halen)
[ code verwijderd ]
1 2 3 4 5 | include("jakees.inc"); echo $user; echo test; ?> |
nee. Ik heb ook nog even in het include bestand gekeken maar daar staat ook niets.quote:Op zondag 18 oktober 2009 21:04 schreef GlowMouse het volgende:
Heb je ergens include() staan zonder wat ertussen?
1 2 | [Sun Oct 18 21:02:14 2009] [error] [client 127.0.0.1] PHP Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening '' for inclusion (include_path='.;c:\\php\\includes') in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Joomla\\zaalvoetbal\\test.php on line 11 |
thx is opgelost nu. Het probleem was dat ik dubbele quotes ipv enkele quotes gebruikte. Lekker weer 2 uur van mijn leven verspilt ;-).quote:Op zondag 18 oktober 2009 22:13 schreef GlowMouse het volgende:
[Sun Oct 18 21:02:14 2009] [error] [client 127.0.0.1] PHP Warning: include_once() [<a href='function.include-once'>function.include-once</a>]: Filename cannot be empty in C:\\Program Files\\Apache Software Foundation\\Apache2.2\\htdocs\\Joomla\\zaalvoetbal\\test.php on line 11
hoe duidelijk wil je het hebben?
pfft... zo leer je. en 2 uur over 1p robleem is redelijk normaal wen er maar aanquote:Op zondag 18 oktober 2009 22:25 schreef jakees het volgende:
[..]
thx is opgelost nu. Het probleem was dat ik dubbele quotes ipv enkele quotes gebruikte. Lekker weer 2 uur van mijn leven verspilt ;-).
Of het is hetzelfde probleem en je doet er weer 2 uur overquote:Op maandag 19 oktober 2009 01:57 schreef cablegunmaster het volgende:
[..]
pfft... zo leer je. en 2 uur over 1p robleem is redelijk normaal wen er maar aan
Alleen verschilt het probleem elke keer, een stapje ingewikkelder.
je leert vanzelf de foutmeldingen lezen het is heel erg handig internal server error 500 vind ik irritanterquote:Op maandag 19 oktober 2009 08:32 schreef Xcalibur het volgende:
[..]
Of het is hetzelfde probleem en je doet er weer 2 uur over
En daarna voel je je altijd heel stom
Zeker als je niet bij logfiles etc kanquote:Op maandag 19 oktober 2009 16:52 schreef cablegunmaster het volgende:
[..]
je leert vanzelf de foutmeldingen lezen het is heel erg handig internal server error 500 vind ik irritanter
Foutmeldingen lezen kan ik wel, maar ze zeggen niet altijd wat er nou aan de hand is jammer genoeg...quote:Op maandag 19 oktober 2009 16:52 schreef cablegunmaster het volgende:
je leert vanzelf de foutmeldingen lezen
Nee, maar meestal geven ze wel goede aanwijzigen. Ik kan me zo snel even geen foutmelding bedenken die niet aangeeft wat er aan de hand is, of het moet al iets zijn als de "unexpected end of file" als je een } vergeet. Maar technisch gezien is die melding wel correct.quote:Op maandag 19 oktober 2009 17:02 schreef Xcalibur het volgende:
[..]
Foutmeldingen lezen kan ik wel, maar ze zeggen niet altijd wat er nou aan de hand is jammer genoeg...
Dat levert meestal geen foutmeldingen op maar alleen ongewenst/onverwacht gedrag. En het kan idd wel lastig zijn om na te gaan waarom X wel of juist niet gebeurt terwijl je het tegenovergestelde verwacht.quote:Op maandag 19 oktober 2009 19:51 schreef Xcalibur het volgende:
Syntaxfouten zijn geen probleem inderdaad, ik doel meer op een variabele die niet / verkeerd gezet is omdat je script in een situatie draait die je helemaal niet verwacht had, en daardoor verkeerde output geeft
Dan kan je lang zoeken, aangezien je op de verkeerde plek zit te zoeken
Een waarde die per ongeluk uit een cookie komt en iets anders overschrijft bijvoorbeeld.
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | private function word_frequency3($text) { $i = 0; $encodeText = $text; $wordfrequenc = ""; $str = $encodeText; $str = ereg_replace("[^A-Za-z _]", " ", $str); $str = str_replace("\n", "", $str); $str = str_replace("\n\l", "", $str); $str = str_replace(" ", " ", $str); $str = strip_tags($str); #$word_count = (array_count_values(str_word_count(strtolower($str),1,'àáãç3'))); $word_count = (explode(' ',(strtolower($str)))); $woorden = array(); foreach ($word_count as $key) { if(($key != "") AND ($key != " ")) { #echo $key."<br />"; $woorden[$i] = $key; $i++; } } $drie_woorden = array(); $i = 0; $this->aantalWoordenInBody = count($woorden); while ($i < (count($woorden) - 2)) { $j = 0; while ($j < (count($woorden) - 2)) { # echo $woorden[$i].' '.$woorden[$i+1].' - '. $woorden[$j].' '.$woorden[$j+1]."<br />"; if(($woorden[$i].' '.$woorden[$i+1].' '.$woorden[$i+2]) == ($woorden[$j].' '.$woorden[$j+1].' '.$woorden[$j+2])) { if(isset($drie_woorden[$woorden[$i].' '.$woorden[$i+1].' '.$woorden[$i+2]])) { $drie_woorden[$woorden[$i].' '.$woorden[$i+1].' '.$woorden[$i+2]]++; } else { $drie_woorden[$woorden[$i].' '.$woorden[$i+1].' '.$woorden[$i+2]] = 1; } } $j++; } $i++; } arsort($drie_woorden); $return = array(); foreach ($drie_woorden as $combinatie => $aantal) { $return[$combinatie] = sqrt($aantal); } return($this->aantalWoordenPercentage($return,3)); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | function pwn_cpu($str) { $str=preg_replace("#[^a-z_0-9]+#i",' ',$str);//neem ff aan dat 0-9 ook woordchars zijn $words=explode(' ',trim($str)); $triple=array(); for($x=0;$x<count($words)-2;$x++) { $set="{$words[$x]} {$words[$x+1]} {$words[$x+2]}"; $triple[$set]=sqrt(substr_count($str,$set)); } arsort($triple); return $triple; } ?> |
Ik zie nu net dat de functie curl_exec() alles direct output ofzo? Wat is de manier om alles op te vangen?quote:Op maandag 26 oktober 2009 10:55 schreef slacker_nl het volgende:
Ik zou het met curl doen ja. Tenzij je zelf alles wilt coden, maar waarom dat doen als je curl hebt
Er zijn een aantal functies voor output buffering.quote:Op maandag 26 oktober 2009 11:06 schreef daReaper het volgende:
[..]
Ik zie nu net dat de functie curl_exec() alles direct output ofzo? Wat is de manier om alles op te vangen?
Bekijk de curl opties die je kan meegeven.. Hint: CURLOPT_RETURNTRANSFERquote:Op maandag 26 oktober 2009 11:06 schreef daReaper het volgende:
[..]
Ik zie nu net dat de functie curl_exec() alles direct output ofzo? Wat is de manier om alles op te vangen?
perfect, heeft me echt geholpenquote:Op dinsdag 20 oktober 2009 11:33 schreef ralfie het volgende:
ik snap maar half wat je wil bewerkstellingen, maar zoiets?
[ code verwijderd ]
en hoe kun je dat traag zijn eruithalen ?quote:Op maandag 26 oktober 2009 19:50 schreef GlowMouse het volgende:
sorteren op ABS(veld - huidigedatum); en met veel records gaat dat traag zijn
Door niet te sorteren op een functieresultaat.quote:Op dinsdag 27 oktober 2009 14:34 schreef cablegunmaster het volgende:
[..]
en hoe kun je dat traag zijn eruithalen ?
Door indices te gebruiken, als je die nog niet hebt. Anders een snellere manier vinden om je gewenste resultaat te bereiken.quote:Op dinsdag 27 oktober 2009 14:34 schreef cablegunmaster het volgende:
[..]
en hoe kun je dat traag zijn eruithalen ?
Met indices los je het hier niet op. Je kunt geen index zetten op een functieresultaat.quote:Op woensdag 28 oktober 2009 09:16 schreef Trollface. het volgende:
[..]
Door indices te gebruiken, als je die nog niet hebt. Anders een snellere manier vinden om je gewenste resultaat te bereiken.
Ah, ik las het verkeerd excuses.quote:Op woensdag 28 oktober 2009 09:41 schreef Light het volgende:
[..]
Met indices los je het hier niet op. Je kunt geen index zetten op een functieresultaat.
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 | $result = mysql_query($sql) or die(mysql_error()."\n".$sql."\n"); echo $sql.'<br>'; print '<pre>'; while($row = mysql_fetch_array($result)) { print_r($row); } print '</pre>'; Tabel 1 CREATE TABLE IF NOT EXISTS `tabel1` ( `cur_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `name` varchar(30) NOT NULL, `card` int(11) NOT NULL, PRIMARY KEY (`name`,`card`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; tabel 2 CREATE TABLE IF NOT EXISTS `table2` ( `id` int(11) NOT NULL auto_increment, `cur_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `name` varchar(30) NOT NULL, `card` int(11) NOT NULL, `was_card` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=16013 ; |
Dan heb je één index teveel.quote:Op donderdag 29 oktober 2009 15:18 schreef Light het volgende:
Oh, ik lees nu de query, je gaat vergelijken op naam. Zet daar dan ook een index op, in beide tabellen.
Nee, bij deze query gebruik je maar één index. Van tabel a (om het even welke) lees je namelijk alle rijen, en bij elke rij heb je een waarde van naam (die je toch al hebt), en via een index in tabel b kijk je of daar een rij in zit met dezelfde naam. Een index op tabel a voegt hieraan niks toe. Dit zou hier dus het beste query plan opleveren, geen gedoe met nog een index:quote:Op donderdag 29 oktober 2009 19:13 schreef Light het volgende:
[..]
Feitelijk wel, ja. Een primary key op name, card is automatisch ook een index op name.
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | class database { // controller public function test() { die($this->template->test()); return $x . " - " . " - database"; } } class user { // controller public function test() { return "user"; } } class template { // controller public function test() { return "template"; } } class system { // system core function __construct($param) { $arr = array("database", "user", "template"); foreach ($arr AS $cls) { $this->{strtolower($cls)} = new $cls; } // combine classes foreach ($arr AS $cls) { foreach ($arr AS $subcls) { if ($cls != $subcls) { $this->{strtolower($cls)}->$subcls = $this->$cls; } } } echo '<pre>'; print_r($this); echo $this->database->test(); echo '<br />'; } } class testmod { function start() { echo 'hello world'; echo $this->database->test(); } } $param = "testmod"; $system = new system($param); ?> |
http://anantgarg.com/2009(...)vc-framework-part-1/quote:Op zondag 1 november 2009 10:42 schreef Chandler het volgende:
Ik kan er maar niet achter komen hoe een mvc(mcv?) precies werkt maar ben nog steeds lerende, echter heb ik nu het volgende gebakken.
[ code verwijderd ]
maar op een of andere manier lukt het mij niet om alles samen te laten werken... aangezien er geen duidelijke nederlandse tutoriaal is ben ik dus op basis van engelse aan de slag gegaan... comments?
Mja, werk ermee, maar echt tevree ben ik er nog niet mee..quote:Op zondag 1 november 2009 16:19 schreef DirkZz het volgende:
Iemand hier die Zend Studio 7 al in gebruik heeft? En wat vind je er van?
Ben aan het twijfelen of ik hem zal downloaden kopen.quote:Op zondag 1 november 2009 20:56 schreef ursel het volgende:
[..]
Mja, werk ermee, maar echt tevree ben ik er nog niet mee..
5.5 Was toch echt hun beste versie die ze hadden..
Was net naar iets vergelijkbaars op zoek, ik wil na de submit van index.php naar index.php#feedback om zo direct een melding te zien te krijgen. Ik heb gegoogled maar het lukt me niet om een adequate zoekterm voor mijn probleem op te hoesten. Iemand die dit weet of een linkje voor me heeft?quote:Op maandag 2 november 2009 14:04 schreef cablegunmaster het volgende:
simpel vraagje , stel ik heb een pagina.
index.php?inhoud=tekst&blablabla=iets
nu heb ik hierop een post staan met een $_SERVER['PHP_SELF'] hoe houd ik die variabele die $_GET erachter?
want de pagina laad dan en gaat naar index.php en niet naar alle $_GET variabelen die erachter staan.
Iemand een idee?
Mijn oplossing was de url in een input hidden te stoppen en deze dan mee te posten en dan daar weer heen gaan. maar dan heb ik nog geen idee hoe ik de url erin stop.
NVM gewoon in de form wat variabelen meegeven echt te Triest!
In principe is het toch relatief eenvoudig?quote:Op zondag 1 november 2009 11:24 schreef Chandler het volgende:
@Roonaan, deze sites heb ik al zo vaak proberen door te nemen maar blijf er gewoon niets van snappen
Ik heb dan ook net een knoopje doorgehakt en mijzelf een boek aanschafd waarmee ik hopelijk stap voor stap kan leren hoe het werkt
"MCV techniek niveau 3/4 + CD-ROM / druk 1"
Autoloading heet dat. Er zijn zat classes te vinden die dat voor je doen.quote:Tevens wil ik graag weten hoe ik alles classes met elkaar kan laten communiceren zodat een class voor authorisation gebruik kan maken van de database class en eventueel (onzinnig, even om het feit) de database class gebruik kan maken van de authorisation class.
Duidelijk, echter heeft dit alleen maar te maken met het 'laden' van de classes, hoe kan ik ze met elkaar laten communiceren?quote:Op woensdag 4 november 2009 12:41 schreef Scorpie het volgende:
[..]
Autoloading heet dat. Er zijn zat classes te vinden die dat voor je doen.
Volgens mij begin ik die MVC's ook te snappenquote:Op dinsdag 3 november 2009 22:12 schreef Roönaän het volgende:
[..]
In principe is het toch relatief eenvoudig?
1. Er is een router (optioneel) die op basis van een request en wat voor variabelen al niet kijkt welke controller en action er moet worden afgevuurd
2. Er wordt een action (meestal een method op een controller class) uitgevoerd. Hierin wordt data in een view object gestopt zoals je gewend bent van smarty bijvoorbeeld
3. De view )=="template" [opzettelijk tussen quotes, php is ook een template taal natuurlijk]) die bij de action hoort wordt uigevoerd.
Binnen de controller structuur is er dan eventueel de mogelijkheid om van de ene action naar een andere controller en action te springen. Bijvoorbeeld als iemand geen rechten heeft, er een exception optreed, etc.
Vervolgens is er een model waarvan je vaak ziet dat dit gewoon een datalaag is (Zend_Db) of een ORM implementatie als doctrine.
var $classA = classA::getInstance()quote:Op woensdag 4 november 2009 12:49 schreef Chandler het volgende:
[..]
Duidelijk, echter heeft dit alleen maar te maken met het 'laden' van de classes, hoe kan ik ze met elkaar laten communiceren?
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 | class config_core { private static $instance; private $settings; private $ini_file = 'config.ini'; /** * constructor set to private so new config can not be created with new config() */ private function __construct() { $this->settings = parse_ini_file(APP_PATH . 'config' . DIRSEP . $this->ini_file, TRUE); //print_r($this->settings); } /** * prevent the baddies from cloning the config. */ public function __clone() { throw new exception("unable to clone"); } /** * Return Config instance or create intitial instance * @access public * @return <object> */ public static function getInstance() { if(!self::$instance) { self::$instance = new config_core(); } return self::$instance; } } ?> |
1 2 3 | $this->config = config_core::getInstance(); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 | v_count NUMBER := 1; BEGIN FOR i IN (SELECT abonneenummer FROM tmp_abodata) LOOP UPDATE tmp_totodata SET toto_code = (SELECT code FROM tmp_toto WHERE code_number = v_count) WHERE abonneenummer = i.abonneenummer; v_count := v_count + 1; END LOOP; END; |
Helemaal mee eens, maar aangezien 5.5 al flink verouderd is en de 6.x en 7.x zwaar bagger zijn ben ik overgestapt op Komodo Edit.quote:Op zondag 1 november 2009 20:56 schreef ursel het volgende:
[..]
Mja, werk ermee, maar echt tevree ben ik er nog niet mee..
5.5 Was toch echt hun beste versie die ze hadden..
Staat hier op de planning om volgende maand ZendServer in de live omgeving in gebruik te gaan nemen. De samenwerking van deze 2 producten is wat dat betreft wel vrij relaxt.quote:Op vrijdag 6 november 2009 08:57 schreef GuidooH het volgende:
[..]
Helemaal mee eens, maar aangezien 5.5 al flink verouderd is en de 6.x en 7.x zwaar bagger zijn ben ik overgestapt op Komodo Edit.
Kan je de dummies helpenquote:Mag je als niet-dummie hier wel komen?
Ah kijk. ZendServer heb ik wel eens uitgeprobeerd, maar het was niet helemaal wat ik zocht. Ga je dan ook gebruik maken van ZF? Dat heb ik ook wel eens geprobeerd, werkt echt wel mooi. Maar is eigenlijk alleen rendabel met groter projecten.quote:Op vrijdag 6 november 2009 09:29 schreef ursel het volgende:
[..]
Staat hier op de planning om volgende maand ZendServer in de live omgeving in gebruik te gaan nemen. De samenwerking van deze 2 producten is wat dat betreft wel vrij relaxt.
Dus ja, soms is het het een of het ander
Heb een hoop zaken in Zend Studio uitgeschakeld, zodat de software zelf in ieder geval stabiel genoeg draait.
[..]
Kan je de dummies helpen
Nee, (nog) niet. Kreeg gisteren wel te horen dat we een voorstel mogen doen om het volledige extranet hier vanaf scratch opnieuw te gaan bouwen.quote:Op vrijdag 6 november 2009 09:34 schreef GuidooH het volgende:
[..]
Ah kijk. ZendServer heb ik wel eens uitgeprobeerd, maar het was niet helemaal wat ik zocht. Ga je dan ook gebruik maken van ZF? Dat heb ik ook wel eens geprobeerd, werkt echt wel mooi. Maar is eigenlijk alleen rendabel met groter projecten.
Maar voor de meeste kleine/middel-grote project prefereer ik toch een eigen "frameworkje" op basis van MVC.
Verder stelt de certificering van Zend helemaal niks voor.
Tuurlijk wel Dummies hebben toch mensen nodig die het een en ander kunnen uitleggen. En als je zelf eens een vraag hebt, kan dat natuurlijk ook.quote:Op vrijdag 6 november 2009 08:57 schreef GuidooH het volgende:
Mag je als niet-dummie hier wel komen?
Oké, het is wel leuk om mee te werken, maar noodzakelijk is het eigenlijk niet als je het mij vraagt. Vooral als je er nog niet mee gewerkt hebt, zou ik er niet direct een extranet mee bouwen. Verder is het na 4 jaar door verschillende programmeurs wel eens tijd om het op nieuw te bouwen?quote:Op vrijdag 6 november 2009 10:15 schreef ursel het volgende:
[..]
Nee, (nog) niet. Kreeg gisteren wel te horen dat we een voorstel mogen doen om het volledige extranet hier vanaf scratch opnieuw te gaan bouwen.
Dat is onderhand al 4 jaar oud, ontwikkelt door ontwikkelaars die komen en gaan en momenteel meer en meer een brobbelwerk is geworden van telkens kleine projecten
Ben overigens zelf niet gecertificeerd van Zend ofzo.
Ohja, dummies moeten elkaar het niet gaan leren, dan krijg je enge constructies in PHP. Heb zelf niet zoveel vragen meer met PHP, maar mocht ik ooit nog eens iets niet weten zal ik hier eens een keer posten ipv GoT.quote:Op vrijdag 6 november 2009 10:19 schreef Light het volgende:
[..]
Tuurlijk wel Dummies hebben toch mensen nodig die het een en ander kunnen uitleggen. En als je zelf eens een vraag hebt, kan dat natuurlijk ook.
die gebruik ik dus, maar ik denk dat die dus is uitgeschakeld?quote:Op maandag 9 november 2009 13:07 schreef Xcalibur het volgende:
gewoon met de mail() functie van PHP?
Heb je verschillende mailadressen geprobeerd? Dus verschillende domeinen? Je zou kunnen testen met gmail/hotmail ofzo.quote:Op maandag 9 november 2009 14:15 schreef BaggerUser het volgende:
[..]
die gebruik ik dus, maar ik denk dat die dus is uitgeschakeld?
draai ik het script lokaal dan werkt het (met gmail) en op de hosting werkt het niet. erg vreemd..quote:Op maandag 9 november 2009 15:44 schreef Light het volgende:
[..]
Heb je verschillende mailadressen geprobeerd? Dus verschillende domeinen? Je zou kunnen testen met gmail/hotmail ofzo.
Dan ligt het aan de hosting provider. Neem daar contact mee op en laat ze het probleem oplossen.quote:Op maandag 9 november 2009 16:54 schreef BaggerUser het volgende:
[..]
draai ik het script lokaal dan werkt het (met gmail) en op de hosting werkt het niet. erg vreemd..
Dat boek gaat over iets heel anders. Dat is een boek van bouwkunde. je haalt MCV en MVC door elkaar.quote:Op zondag 1 november 2009 11:24 schreef Chandler het volgende:
@Roonaan, deze sites heb ik al zo vaak proberen door te nemen maar blijf er gewoon niets van snappen
Ik heb dan ook net een knoopje doorgehakt en mijzelf een boek aanschafd waarmee ik hopelijk stap voor stap kan leren hoe het werkt
"MCV techniek niveau 3/4 + CD-ROM / druk 1"
Da's eigenlijk niets nieuws, dat doet Chandler al zolang hij over MVC denkt...quote:
Het is zelfs een boek van maatschappijleer volgens mij. .quote:Op maandag 9 november 2009 19:16 schreef Light het volgende:
[..]
Da's eigenlijk niets nieuws, dat doet Chandler al zolang hij over MVC denkt...
Als je leergierig bent kom je er snel genoegquote:Op dinsdag 10 november 2009 12:16 schreef Darkomen het volgende:
<==== Wel een php amateur
Werk nu ook in Amsterdam, maar woon onder utrecht dus wil verhuizen.
Klopt, was ik al achter en boek weer terug gestuurdquote:Op maandag 9 november 2009 19:19 schreef Tiemie het volgende:
[..]
Het is zelfs een boek van maatschappijleer volgens mij. .
Ik raad Chandler aan een goed boek over een bestaand framework als Zend Framework of CakePHP te kopen, heeft hij veel meer aan imho.
Wat is precies het probleem met een engels boek dan? Nederlandse boeken lopen juist vaak enorm achter. Koop een engels boek, lees het goed door en als je iets in het boek niet snapt dan vraag je het hier maarquote:Op dinsdag 10 november 2009 16:20 schreef Chandler het volgende:
[..]
Klopt, was ik al achter en boek weer terug gestuurd
Waarom noemen ze dat ook zo grrr hehe.. en waarom zijn al die pokke boeken in't engels wil gewoon een goed boek in't nederlands
Maar goed, ben er nog niet achter hoe het geheel goed werkt maar ga nu samen met iemand stap voor stap het model wat ik in mijn hoofd heb van a-z proberen te realiseren!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function kostenapk ( $veelstukaanauto ) { if ( $veelstukaanauto == "ja" ) { return "rekening is 700 euro"; } else { return "Rekening is niet duur"; // die smilie kwam door de BB parser van Fok <img class="rde_img_smiley" src="http://i.fok.nl/s/puh2.gif" width="15" height="15" alt="" /> } } echo kostenapk ( "ja" ); ?> |
regel 15: hoe weet php dat de string niet afgelopen is bij ss="quote:Op vrijdag 13 november 2009 18:25 schreef wobbel het volgende:
[ code verwijderd ]
@hierboven
http://www.phphulp.nl/php/scripts/3/328/
quote:Op vrijdag 13 november 2009 18:25 schreef wobbel het volgende:
[ code verwijderd ]
@hierboven
http://www.phphulp.nl/php/scripts/3/328/
Dat dus. Ik gebruik sinds een tijd Eclipse voor PHP, en ga binnenkort eens de PHP IDE voor Visual Studio testen (ik werk ook veel met .NET en Visual Studio, dus zou ideaal voor mij zijn). Ik heb jarenlang stug bij Notepad ( ++ ) afgezworen, maar een PHP die je al netjes aangeeft waar je syntaxfouten hebt; ik kan niet meer zonder.quote:Op vrijdag 13 november 2009 18:44 schreef hamkaastosti het volgende:
[..]
[ afbeelding ]
doe jezelf een lol en download voordat je ook maar iets aan php schrijft een beetje goede IDE.
netbeans is bijvoorbeeld gratis en werkt prima met php
bovendien wil je denk ik checken of $veelstukaanauto ja of iets anders is en dan moet je niet toewijzen (=) maar vergelijken (==)
http://nl2.php.net/manual/en/language.operators.comparison.php
1 2 3 4 5 6 7 | while ($iknogitemsheb) { $currentitem = new newsitem('id', 'author', 'undsoweiter'); array_push($newsitems, $currentitem); } ?> |
1 2 3 4 5 6 | <h2>Laatste 5 nieuwsitems</h2> foreach($newsitems as $item): echo $item->author; endforeach; ?> |
1 2 3 | $item['author'] ?> |
Ja, dan moet je de http headers uitlezen. Zie example 1 op http://php.net/manual/en/function.fsockopen.phpquote:Op zaterdag 14 november 2009 12:36 schreef JortK het volgende:
Kleine vraag:
Stel ik heb een link:http://www.domain.com/ref/113 welke doorverwijst naar http://www.google.com/.
Kan ik er met PHP achterkomen dat de betreffende URL naar http://www.google.com gaat?
Ik doe het nu via cURL: http://forums.devshed.com(...)edirects-544144.htmlquote:Op zaterdag 14 november 2009 12:41 schreef GlowMouse het volgende:
[..]
Ja, dan moet je de http headers uitlezen. Zie example 1 op http://php.net/manual/en/function.fsockopen.php
de vraag is eigenlijk wat doet hij hier?quote:Op woensdag 18 november 2009 16:52 schreef daReaper het volgende:
Op deze pagina staat een registratieformulier:
http://www.bonnydoggy.ru/component/user/register
Maar als je op "Registreer" (зарегистрируйтесь) drukt, gebeurt er helemaal niets, en daar snap ik nix van! Ik heb zelfs een onclick erin gezet, die niet reageert op het moment dat ik op de knop druk. Zelfs geen foutmeldingen in de Foutconsole van Firefox... Wat kan hier aan de hand zijn?
Een update met IF erin.quote:Op zondag 15 november 2009 16:28 schreef DirkZz het volgende:
even een SQL vraag je die ik binnen kort kreeg, namelijk hoe kan je in één query het volgende uitvoeren:
In de tabel boeken
alle boeken die in de catogorie nederlands vallen
de prijs verhogen met 19%
en alle boeken die niet in de catogorie nederlands vallen
de prijs verhogen met 6%
waarom?quote:Op woensdag 18 november 2009 20:41 schreef DirkZz het volgende:
Was blijkbaar dus een fout in de overhoring..
Waarom de volgende dingen?quote:Op vrijdag 20 november 2009 12:43 schreef hamkaastosti het volgende:
ik ben nog steeds bezig met m'n MVC systeempje en nu vroeg ik me af of ik sommige dingen compleet verkeerd aanpak dus hieronder wat code van een controller en een model.
mijn newscontroller: http://pastebin.com/d7cfa2981
mijn newsmodel: http://pastebin.com/m47be5495
Welke ervaren php'er kan me wat goede tips geven?
1 2 3 4 5 6 7 8 | $this->view->addContent($this->controller, __FUNCTION__); final class newscontroller extends basecontroller { private $controller = 'news'; } ?> |
1 2 3 4 | $this->newsitems = array(); $this->singleitem = array(); ?> |
dus die addContent methode kan 1 niveau hoger worden geplaatst, eigenlijk na de call van de controller functiequote:Op vrijdag 20 november 2009 13:15 schreef hamkaastosti het volgende:
$this->view->addContent haalt de view op uit modules/controllernaam/methodnaam.tpl.php en voegt dit toe op de juiste locatie in layout.tpl.php. zo voegt $this->view->addUserError('newsitem_not_found'); bijvoorbeeld de geselecteerde foutmelding toe aan de layout.
hij haalt het op en voegt het vervolgens toe aan de algehele layoutquote:Op vrijdag 20 november 2009 14:23 schreef Xcalibur het volgende:
Los van je vraag vind ik 'AddContent' een wat verwarrende naam voor iets wat content ophaalt
wat dacht je van getContent? doet precies wat hij zegt haalt content opquote:Op vrijdag 20 november 2009 17:21 schreef hamkaastosti het volgende:
[..]
hij haalt het op en voegt het vervolgens toe aan de algehele layout
ik ben niet zo goed met naamgevingen
Ik wil dis het deel tot de EERSTE </td> hebben. Ik heb dit al geprobeerd maar dat werkt uiteraard niet:quote:bla<br>bla<div></td>blabla
1 |
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 48 49 50 51 52 53 | public function react() { //form is submitted if(strtoupper($_SERVER['REQUEST_METHOD']) == "POST" && !empty($_POST['submit'])) { $validator = new validator(); $validator->validateField('name', 3, 45, '/^[aA-zZ0-9]+$/', true); $validator->validateMail('email', true); //form is valid if($validator->isValid()) { echo 'valide'; // hier moet ik dan ook nog een keer checken of nieuwsitem wel bestaat. // kan ik ook in het model doen maar wat is beter? } //form not valid. display it again with errors else { //not existing item $newsitem = $this->model->getSingleItem($this->path->getPiece(3)); if($newsitem == false) { $this->view->addUserError('newsitem_not_found'); } //it exists. else { $this->view->newsitem = $newsitem; $this->view->errors = $validator->getErrors(); $this->view->postvars = $validator->getPostVars(); $this->view->addContent($this->controller, __FUNCTION__); } } } //show the reactionform else { $newsitem = $this->model->getSingleItem($this->path->getPiece(3)); //not existing item if($newsitem == false) { $this->view->addUserError('newsitem_not_found'); } //it exists. else { $this->view->newsitem = $newsitem; $this->view->addContent($this->controller, __FUNCTION__); } } } ?> |
Als je een ? achter het sterretje plaatst zou het moeten werken. Da's het verschil tussen greedy en lazy binnen regular expressions.quote:Op vrijdag 20 november 2009 20:32 schreef PiRANiA het volgende:
Er is geen regex-topic, maar ik denk dat de PHP bazen hier mij wel kunnen helpen:
Ik wil een stuk tekst matchen tót een bepaald punt:
[..]
Ik wil dis het deel tot de EERSTE </td> hebben. Ik heb dit al geprobeerd maar dat werkt uiteraard niet:
[ code verwijderd ]
dan zoekt hij namelijk niet de eerste </td>, maar de laatste </td>
Anyone?
Werktquote:Op vrijdag 20 november 2009 20:38 schreef Sirolf het volgende:
[..]
Als je een ? achter het sterretje plaatst zou het moeten werken. Da's het verschil tussen greedy en lazy binnen regular expressions.
True, standaard zijn dingen als * en + in regular expressions allemaal greedy. Met de /U modifier maak je ze allemaal ungreedy. En met een ? erachter draai je greedy en ungreedy om op die plek.quote:Op vrijdag 20 november 2009 20:38 schreef Sirolf het volgende:
[..]
Als je een ? achter het sterretje plaatst zou het moeten werken. Da's het verschil tussen greedy en lazy binnen regular expressions.
Ik moet er eens een fatsoenlijk boek over lezenquote:Op vrijdag 20 november 2009 21:43 schreef Light het volgende:
[..]
True, standaard zijn dingen als * en + in regular expressions allemaal greedy. Met de /U modifier maak je ze allemaal ungreedy. En met een ? erachter draai je greedy en ungreedy om op die plek.
Een boek lezen hoeft nog niet eens vind ik. Gewoon dit downloaden en naast je leggen, en een programma als Regex Coach gebruiken om te oefenen. Binnen een paar uurtjes heb je het al onder de knie als je er even voor gaat zitten.quote:Op zaterdag 21 november 2009 00:10 schreef PiRANiA het volgende:
[..]
Ik moet er eens een fatsoenlijk boek over lezen
Ik gebruik het best veel, maar moet steeds door forums achter dit soort dingetjes komen
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 | class db { private static $instance; private static $db; public function getInstance() { if (is_null(self::$instance)) { self::$instance = new db; } return self::$instance; } public function __construct() { mysql_connect('host', etc); } public function query($sql) { } } class user { private static $db; public function __construct() { $db = db::getInstance(); } public function login($u, $p, $t) { $query = self::$db->query("JE QUERY HIER"); } } $u = new user; print_r($u->login('username','password',true)); ?> |
1 2 3 | Fatal error: Call to a member function query() on a non-object in *\system\classes\class.user.php on line 29 |
Je moet gewoon eerst eens een goed boek kopen. En wat meer lezen over OO.quote:Op zondag 22 november 2009 17:21 schreef Chandler het volgende:
Gatverdamme, kun je dan eens een voorbeeld schetsen die wel zou moeten werken? ik sla blijkbaar gewoon continu de plank mis :'( :P
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class user { private $db; public function __construct() { $this->db = db::getInstance(); } public function login($u, $p, $t) { $query = $this->db->query("JE QUERY HIER"); } } $u = new user(); ?> |
Da's ook een optie. Hoeveel verschil er is in geheugengebruik, weet ik niet.quote:Op zondag 22 november 2009 17:29 schreef Pakspul het volgende:
Haal die $db variabel uit de class, dat is echt geheugen versmering eerste klas
Wanneer je de DB nodig hebt doe je even DB::functienaam(); en dan query uitvoeren en waarde returnen. Garbage cleaner zorgt er dan zelf weer voor dat DB uit geheugen gaat en niet in de klasse blijft zwerven/.
Smarty ben ik nu even mee aan het klooien en ziet er goed uit! Vele malen uitgebreider dan m'n huidige template parserquote:Op zondag 22 november 2009 18:53 schreef hamkaastosti het volgende:
smarty is geloof ik de meest uitgebreide geloof ik. Zelf maak ik enkel nog gebruik van de beste template engine: php zelf
Je kunt eens zoeken naar btree of b-tree. Kun je ook nog dieper dan 7 niveau'squote:Op zondag 22 november 2009 19:10 schreef wobbel het volgende:
Is er btw een soort tutorial die mij verteld hoe ik met meerdere categorieen kan werken?
Heb nu een tabel "category" en "subcategory" maar dan houdt het al snel op... (Categorienaam => Subcategorienaam)
Ik wil ook tot wel 7 niveaus verder gaan indien dat mogelijk is...(Kleding => Heren => T-shirts => Merk X => Lijn Y => etc)
Moet ik dan met "nested id's" ofzo iets doen? zoals ik dat ooit een keer gehoord heb ofzo
Noem me eens een goed boek! dan zal ik deze aanschaffen!quote:Op zondag 22 november 2009 17:25 schreef Light het volgende:
[..]
Je moet gewoon eerst eens een goed boek kopen. En wat meer lezen over OO.
[ code verwijderd ]
Zo zou ik het doen. De verschillen met jouw code mag je zelf uitzoeken.
Ik ook niet, maar op deze manier is het niet goed in ieder geval.quote:Op zondag 22 november 2009 17:34 schreef Light het volgende:
[..]
Da's ook een optie. Hoeveel verschil er is in geheugengebruik, weet ik niet.
Upper camelcase, lower camelcase. Gewoon een kiezen en daar bij blijvenquote:Ik zou class names ook met een hoofdletter laten beginnen, voor een stukje extra duidelijkheid.
waar komt 251 vandaan?quote:Op zondag 22 november 2009 19:58 schreef Chandler het volgende:
oh en wat kun je tegen dit soort fouten doen?
imagecolorsforindex() [<a href='function.imagecolorsforindex'>function.imagecolorsforindex</a>]: Color index 251 out of range
heeft te maken dat een transparante kleur niet aanwezig is
Kun je dan eens een voorbeeld schetsen waarbij het geheugen niet veel overbodige data ontvangt?quote:Op zondag 22 november 2009 20:14 schreef Pakspul het volgende:
[..]
Ik ook niet, maar op deze manier is het niet goed in ieder geval.
[..]
Upper camelcase, lower camelcase. Gewoon een kiezen en daar bij blijven
quote:
1 2 3 | $trnprt_color = @imagecolorsforindex($im,$trnprt_indx); // error lijn |
singleton is een goed begin, maar pleur deze dan niet in een variable van een klasse, gewoon in de functie gebruiken en daarna ruimte de garbage collector hem wel weer op. Mocht je een obsessie hebben kun je altijd nog volgende doenquote:Op zondag 22 november 2009 20:15 schreef Chandler het volgende:
[..]
Kun je dan eens een voorbeeld schetsen waarbij het geheugen niet veel overbodige data ontvangt?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | functie gewoonEenFunctie() { $db = Database::GetInstance(); $query = "SELECT * FROM table WHERE x = y"; $result = $db->ExecuteQuery($query); // verder verwerking van gegevens hier $db = null; return "wat je ook maar hebt om terug te geven"; } ?> |
Klopt toch?quote:Op zondag 22 november 2009 20:20 schreef GlowMouse het volgende:
grappig, het enig verschil met de voorbeelden op http://nl2.php.net/imagecolortransparent is dat jij de kleur door php laat bepalen
waarmee aangegeven wordt als er een transparante kleur is ingesteld is, deze gereturned wordt, wat ik bij de 'nieuwe afbeelding' weer als transparante kleur aangeeft.quote:The identifier of the new (or current, if none is specified) transparent color is returned.
Ik denk dat ik singleton wel aardig begrijp, zoals beschreven hier: http://nl.wikipedia.org/wiki/Singleton_(informatica) kan het toch ook zo worden geschreven?quote:Op zondag 22 november 2009 20:21 schreef Pakspul het volgende:
singleton is een goed begin, maar pleur deze dan niet in een variable van een klasse, gewoon in de functie gebruiken en daarna ruimte de garbage collector hem wel weer op. Mocht je een obsessie hebben kun je altijd nog volgende doen
[ code verwijderd ]
Maar de garbage collector zal de ruimte die $db in nam zelf uit vrij maken na het eindigen van de functie.
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 | // object instance private static $instance; private function __construct() {} private function __clone() {} public static function getInstance() { if (!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; } public static function query($sql) { // doe query } } class user { public function login($u, $p, $t) { $db = db::getInstance(); $db->query("Doe je query"); } } $u = new user; $u->login('username','password',true); |
Een singleton blijft bestaan, zolang er een verwijzing naar is. En die is er, als class variabele in de singletonclass. De garbage collector zal dus niet al te veel doen.quote:Op zondag 22 november 2009 20:21 schreef Pakspul het volgende:
[..]
singleton is een goed begin, maar pleur deze dan niet in een variable van een klasse, gewoon in de functie gebruiken en daarna ruimte de garbage collector hem wel weer op. Mocht je een obsessie hebben kun je altijd nog volgende doen
[ code verwijderd ]
Maar de garbage collector zal de ruimte die $db in nam zelf uit vrij maken na het eindigen van de functie.
Omdat deze query in het voorbeeld gebruikt wordt....quote:Op maandag 23 november 2009 08:40 schreef Xcalibur het volgende:
Hoezo zou dat een probleem zijn? Hij zit toch op een andere plek...?
1 2 3 4 5 6 7 8 | SELECT parent.name, parent.content FROM nested_category AS node, nested_category AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.name = 'NAAAAM' ORDER BY parent.lft; ?> |
De singleton blijft inderdaad bestaan omdat die in de static variabel van zichzelf is opgeslagen, maar het heeft geen nut om deze in andere klasse te gaan opslaan. In de methode die een database verbinding nodig heeft is die alleen nodig is de rest van de klasse niet.quote:Op zondag 22 november 2009 22:46 schreef Light het volgende:
[..]
Een singleton blijft bestaan, zolang er een verwijzing naar is. En die is er, als class variabele in de singletonclass. De garbage collector zal dus niet al te veel doen.
En een script draait sowieso niet langer dan nodig om een pagina te bouwen, daarna is het script afgelopen en mag de garbage collector alle zooi opruimen.
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | error_reporting(E_ALL); $mem = memory_get_usage(); class db { // object instance private static $instance; private static $queries = array(); private static $db_connection; private static $config; public static $message; public static function getInstance() { if (!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; } private function __construct() { self::$queries = array(); self::$config = config::getInstance(); self::$db_connection = @mysql_connect(self::$config->config_values['database']['hostname'], self::$config->config_values['database']['username'], self::$config->config_values['database']['password']); if (self::$db_connection) { $db_con = mysql_select_db(self::$config->config_values['database']['name'], self::$db_connection); if ($db_con == true) { return true; } self::$message = "Kan database tabel niet bereiken"; } else { self::$message = "Kan database server niet bereiken"; } return self::$message; } private function __clone() { } public static function query($sql) { $res = mysql_query($sql, self::$db_connection); if (mysql_error()) { self::$queries['query'][$sql] = array("err" => mysql_error(), "num" => (isset(self::$queries['query'][$sql]) ? self::$queries['query'][$sql]['num']+1 : 1)); } return $res; } public static function stats() { return self::$queries; } } class config { // object instance private static $config_file = 'config.ini'; private static $instance; private static $queries; public $config_values = array(); public static function getInstance() { if (!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; } private function __construct() { $this->config_values = parse_ini_file(self::$config_file, true); } public function getValue($key) { return self::$config_values[$key]; } private function __clone() { } } class user { public function login($u, $p, $t) { $db = db::getInstance(); $db->query("SELECT count(id) FROM users"); } } class mooi { private $db; public function __construct() { $this->db = db::getInstance(); $this->db->query("SELECT count(id) FROM gebruikers"); } public function startuptest() { $this->db->query("SELECT count(bestaatniet) FROM gebruikers"); } } $u = new user; print_r($u->login('username','password',true)); $u = new user; print_r($u->login('username','password',true)); $m = new mooi; $m->startuptest(); $db = db::getInstance(); echo '<pre>'; print_r($db->stats()); echo memory_get_usage() - $mem. "<br />"; ?> |
ik zou me eens verdiepen in pdo of mysqli.quote:Op maandag 23 november 2009 15:16 schreef Chandler het volgende:
Dus dit is nu goed? zoals ik het schets..
[ code verwijderd ]
gebruikt hier 17500 bytes... is dat veel? even self::$db veranderd in class mooi naar $this en scheelt 20 bytes (17480)
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | final class database extends pdo { private $sth; private $numrows; public function __construct($dbconn) { extract($dbconn); parent::__construct('mysql:host=' . $server . ';dbname='. $database, $username, $password); parent::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } /** * query the db * @param <string> $query * @param <array> $values */ private function doQuery($query, $values) { if(substr_count($query, '?') == count($values) || !is_array($values)) { $this->sth = parent::prepare($query); $i = 1; foreach ($values as $current) { switch($current) { case is_string($current): $type = PDO::PARAM_STR; break; case is_int($current): $type = PDO::PARAM_INT; break; case is_bool($current): $type = PDO::PARAM_BOOL; break; case is_double($current): $type = PDO::PARAM_STR; break; } $this->sth->bindValue($i, $current, $type); $i++; } $this->sth->execute(); } else { throw new exception('wrong parameters for binding'); } } /** * perform a select query on the database * @param <string> $query * @param <array> $values * @param <bool> $m_array * @return <array> */ public function select($query, $values, $m_array = false) { $this->doQuery($query, $values); $this->numrows = parent::query("SELECT FOUND_ROWS()")->fetchColumn(); if($this->numrows == 1 && $m_array == false) { $result = $this->sth->fetch(PDO::FETCH_ASSOC); } else { $result = $this->sth->fetchAll(PDO::FETCH_ASSOC); } return $result; } /** * @desc insert values into database * @param <string> $table * @param <array> $values */ public function insert($table, $values) { $fields = ''; $args = ''; foreach($values as $f => $v) { $fields .= $f . ', '; $args .= '?, '; } $fields = substr($fields, 0, -2); $args = substr($args, 0, -2); $query = ('INSERT INTO ' . $table . ' (' . $fields . ') VALUES (' . $args . ')'); $this->doQuery($query, $values); $this->numrows = $this->sth->rowCount(); } public function update($query, $values) { $this->doQuery($query, $values); $this->numrows = $this->sth->rowCount(); } } ?> |
1 2 3 | $this->db->select('SELECT * FROM news ORDER BY date ? LIMIT ?', array($sortingorder, $itemcount), true); ?> |
1 2 3 4 5 6 | $reaction['id'] = 1; $reaction['name'] = blaat; $this->db->insert('newsreactions', $reaction); ?> |
Dat lijken me nogal eenvoudige queries?quote:Op maandag 23 november 2009 16:00 schreef Darkeye89 het volgende:
We zijn bezig met het maken van een forum (php/mysql). de forums zelf werken alleen nu hebben we nog een voorpagina nodig.
hier moet het volgende op komen:
- totaal aantal berichten met een bepaald 'catid' uit de database
- laatste bericht met een bepaald 'catid' uit de database. (weergave: gebruiker/bericht/datum&tijd)
- laatste 25 berichten uit de database met alle 'catids' (weergave: gebruiker/bericht/datum&tijd)
zijn hier misschien standaard scripts voor te vinden?
sorry ik ben niet helemaal duidelijk, we gebruiken een script wat meerdere gastenboeken (dat worden de topics dan) kan aanmaken (door iemand anders gemaakt) nu willen we hier een voorpagina voor hebben. ik heb zelf heel weinig php kennis.quote:Op maandag 23 november 2009 16:05 schreef Xcalibur het volgende:
[..]
Dat lijken me nogal eenvoudige queries?
Als je een heel forum kunt maken, zouden deze queries ook niet zo'n probleem moeten zijn? Of mis ik nu iets?
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 | <head> <title>formulier</title> </head> <body> <table> <tr> <form action="formulier.php" method="post"> </tr> <tr><td>Vul hier je voornaam in:</td> <td><input type="text" name="voornaam" /></td> </tr> <tr><td>vul hier je achternaam in: </td> <td><input type="text" name="achternaam" /></td> </tr> <tr><td>Vul hier je tel. nr. in:</td> <td><input type="text" name="telefoon" /></td> </tr> <tr><td>Vul hier je postcode in:</td> <td><input type="text" name="postcode" /></td> </tr> <tr><td>geslacht:</td> <td>Jongen:<input type="radio" name="geslacht" value="jongen" checked="true" /></td> </tr> <tr><td></td> <td>Meisje<input type="radio" name="geslacht" value="meisje" /></td> </tr> <tr><td>Waar wil je een abonnement op?</td> <td><input type="checkbox" name="gamez" value="gamez" />Gamez</td> </tr> <tr><td></td> <td><input type="checkbox" name="girls" value="girls" />Girls</td> </tr> <tr><td></td> <td><input type="checkbox" name="uitgaan" value="uitgaan" />Uitgaan</td> </tr> <tr><td></td> <td><input type="checkbox" name="mode" value="mode" />Mode</td> </tr> <tr> <td><input type="submit" value="Verzend het formulier" /></td> </tr> </table> </body> </html> |
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | <php? //variabelen $voornaam = $_POST["voornaam"]; $achternaam = $_POST["achternaam"]; $telefoon = $_POST["telefoon"]; $postcode = $_POST["postcode"]; $geslacht = $_POST["geslacht"]; $gamez = $_POST["gamez"]; $girls = $_POST["girls"]; $mode = $_POST["mode"]; $uitgaan = $_POST["uitgaan"]; if (empty($voornaam)) { echo "Je bent vergeten om je voornaam in te vullen!" } elseif (empty($achternaam)) { echo "Je bent vergeten om je achternaam in te vullen!" } elseif (empty($postcode)) { echo "Je bent vergeten om je postcode in te vullen!" } elseif (empty($gamez) && empty ($girls) && empty ($mode) && empty ($uitgaan)) { echo "Je moet tenminste 1 tijdschrift aankruisen"; } else { echo " <tr> <td>voornaam</td> <td>$voornaam</td> </tr> <tr> <td>achternaam</td> <td>$achternaam</td> </tr> <tr> <td>telefoon</td> <td>$telefoon</td> </tr> <tr> <td>postcode</td> <td>$postcode</td> </tr> <tr> <td>geslacht</td> <td>$geslacht</td> </tr> <tr> <td>gamez</td> <td>$gamez</td> </tr> <tr> <td>girls</td> <td>$girls</td> </tr> <tr> <td>mode</td> <td>$mode</td> </tr> <tr> <td>uitgaan</td> <td>$uitgaan</td> </tr> </table> "; } ?> |
Dat klinkt als een weinig degelijke constructie... is het niet veel makkelijker om een phpBB3 of WordPress neer te zetten, afhankelijk van wat je precies zoekt?quote:Op maandag 23 november 2009 16:09 schreef Darkeye89 het volgende:
[..]
sorry ik ben niet helemaal duidelijk, we gebruiken een script wat meerdere gastenboeken (dat worden de topics dan) kan aanmaken (door iemand anders gemaakt) nu willen we hier een voorpagina voor hebben. ik heb zelf heel weinig php kennis.
1 |
quote:Op maandag 23 november 2009 10:05 schreef Xcalibur het volgende:
ja, dan krijg je dus 2 resultaten
Die allebei geldig zijn....
Je zult dus in je PHP aan de slag moeten om uit te zoeken welke van de twee de gevraagde is
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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | require 'libs/Smarty.class.php'; require 'configs/default.php'; $RequestURI = $_SERVER['REQUEST_URI']; if ( substr ( $RequestURI, 0, 1 ) == "/" ) { $RequestURI = substr ( $RequestURI, 1 ); } if ( substr ( $RequestURI, -1 ) == "/" ) { $RequestURI = substr ( $RequestURI, 0, -1 ); } if ( $RequestURI == "" ) { $page_id = 1; } else { $RequestedVars = explode ( "/", $RequestURI ); $RequestedCount = count ( $RequestedVars ); $select = "SELECT parent.name, parent.category_id FROM nested_category AS node, nested_category AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.name = '" . $RequestedVars[$RequestedCount - 1] . "' ORDER BY parent.lft;"; $query = mysql_query ( $select ) or die ( mysql_error ( ) ); $count = mysql_num_rows ( $query ); if ( $count == $RequestedCount ) { $i = 0; $failed = false; while ( $assoc = mysql_fetch_assoc ( $query ) ) { if ( $RequestedVars[$i] != $assoc['name'] ) { $failed = true; } $page_id = $assoc['category_id']; $i++; } } else { $failed = true; } } ################# # PARSE PAGE # ################# $smarty = new Smarty; $smarty->compile_check = true; $smarty->assign ( "title_d", "Welkom op onze website" ); if ( $failed == true ) { $smarty->assign ( "c_content", "404 - pagina niet gevonden" ); } else { $MySQL_Content_Select = "SELECT * FROM nested_category WHERE category_id = '" . $page_id . "'"; $MySQL_Content_Query = mysql_query ( $MySQL_Content_Select ) or die ( mysql_error ( ) ); $MySQL_Content_Assoc = mysql_fetch_assoc ( $MySQL_Content_Query ); $smarty->assign ( "c_content", $MySQL_Content_Assoc['content'] ); } $smarty->display('index.tpl'); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | `category_id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `content` text NOT NULL, `lft` int(11) NOT NULL, `rgt` int(11) NOT NULL, PRIMARY KEY (`category_id`) ) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ; -- -- Dumping data for table `nested_category` -- INSERT INTO `nested_category` (`category_id`, `name`, `content`, `lft`, `rgt`) VALUES (1, 'beginpagina', 'welkom op de beginpagina ', 1, 2), (3, 'grafisch', 'pagina met dingetjes over grafisch, zoals ENVELOPPEN, VISITEKAARTJES, LOGO en DRUKWERK ', 3, 16), (11, 'drukwerk', 'wij ontwerpen allerhande drukwerk, maar doen het ook het DRUKKEN en de VERSPREIDING', 10, 15), (10, 'logo', 'logo ontwerp doen we ook ', 8, 9), (9, 'visitekaartjes', 'mooie visitekaartjes maken is onze hobby', 6, 7), (8, 'enveloppen', 'mooie envelopjes hebben? moet je lars ff bellen', 4, 5), (12, 'drukken', 'jah, wij kunnen het ontworpen drukwerk ook naar de drukker sturen', 11, 12), (13, 'verspreiding', 'en alles wat je hebt laten ontwerpen en hebt laten drukken kunnen we ook voor u verspreiden ', 13, 14), (14, 'websites', 'websites maken we ook, met CMS en ook soms met WEBSHOP', 17, 22), (16, 'cms', 'cms is makkelijk, content management system enzo ', 18, 19), (17, 'webshop', 'gimme teh moneyzzz online met je eigen webshop', 20, 21); |
Kan je dat niet gewoon met phpMyAdmin doen ofzo?quote:Op woensdag 25 november 2009 16:42 schreef daReaper het volgende:
Hoe importeer ik een utf-8 tekstbestand in mysql?
als ik "mysql -u xxx -p db < file.sql" doe, dan verdubbelt ie als het ware de utf-8, waardoor er niets van leesbaar is
"mysql -u xxx -p db --default-character-set=utf8 < file.sql" levert alleen maar heel veel vraagtekens op, in plaats van de gewenste teksten.
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 | class woei { public $test = 'woei'; function x() { $xs = new config(SYSTEM_PATH . "test.ini"); extract($xs->config['test'], EXTR_OVERWRITE); print_r($test); print_r($this->test); } function y() { print_r($this->test); } } echo'<pre>'; $i = new woei; $i->x(); $i->y(); ?> |
1 2 | test = 3 |
1 2 3 | $ini_array = parse_ini_file("sample.ini", true); ?> |
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 | class config { private function __construct() { $configfile = APP_PATH . DIRSEP . 'config' . DIRSEP . $this->ini_file; if(is_readable($configfile)) { $this->configvalues = parse_ini_file($configfile, TRUE); } else { throw new exception('could not load configfile: ' . $configfile); } //var_dump($this->configvalues); } public function __get($setting) { if(array_key_exists($setting, $this->configvalues)) { return $this->configvalues[$setting]; } else { foreach($this->configvalues as $section) { if(array_key_exists($setting, $section)) { return $section[$setting]; } } } } } ?> |
geloof niet dat extract dat kan. maar je kunt wel door je array loopen.quote:Op vrijdag 27 november 2009 18:26 schreef Chandler het volgende:
Goed dat kan idd ook, maar met extract kun je namelijk gewone variabelen laten zetten maar ik wil een manier vinden waarmee het ook in classes kan (tot op $this-> dus).
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 | class test { public $test; public $flap; public function __construct() { $array = array('test' => 'blaat', 'flap' => 'poop'); foreach($array as $key => $value) { $this->$key = $value; } } public function __get($key) { return $key; } } $test = new test; echo $test->flap; echo $test->test; ?> |
quote:Op vrijdag 27 november 2009 19:28 schreef hamkaastosti het volgende:
[..]
geloof niet dat extract dat kan. maar je kunt wel door je array loopen.
[ code verwijderd ]
maar of dat de beste oplossing is. stel je gaat de config uitbreiden plaats je dan ook netjes bovenaan de class public $nogeenvariabele; ?
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 48 49 50 | class Bla { protected $items = array(); public function __construct( $items ) { if( is_array( $items ) && count( $items ) > 0 ) { $this->items = $items; } } public function __get( $key ) { if( in_array( $key, $this->items ) ) { return $this->items[ $key ]; } return false; } public function __set( $key, $value ) { if( in_array( $key, $this->items ) ) { return $this->items[ $key ] = $value; } return false; } } $items = array( 'test' => 1); $obj = new Bla( $items ) ; print $obj->test; // of in een loop setten met foreach( $items As $key => $value ) { $obj->$key = $value; } ?> |
1 2 3 4 | FROM `events` WHERE `tijd` > '1259270391' ORDER BY `count` LIMIT 0 , 30 |
tx dat soort dingen vergeet ik af en toequote:
1 2 3 4 5 6 7 8 9 10 | RewriteEngine On RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?arg=$1/$2/$3/$4/$5/$6/$7&{QUERY_STRING} RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?arg=$1/$2/$3/$4/$5/$6&{QUERY_STRING} RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?arg=$1/$2/$3/$4/$5&{QUERY_STRING} RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ index.php?arg=$1/$2/$3/$4&{QUERY_STRING} RewriteRule ^([^/]+)/([^/]+)/([^/]+)$ index.php?arg=$1/$2/$3&{QUERY_STRING} RewriteRule ^([^/]+)/([^/]+)$ index.php?arg=$1/$2&{QUERY_STRING} RewriteRule ^([^/]+)$ index.php?arg=$1&{QUERY_STRING} |
1 2 3 4 5 6 7 | RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?arg=$1&{QUERY_STRING} [L,QSA] |
1 2 3 4 5 6 7 8 9 10 | RewriteEngine on RewriteCond $1 !^(layout) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?arg=$1&{QUERY_STRING} [L,QSA] |
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 | <tr> <th><font face="Arial, Helvetica, sans-serif">Name</font></th> <th><font face="Arial, Helvetica, sans-serif">Phone</font></th> <th><font face="Arial, Helvetica, sans-serif">Mobile</font></th> <th><font face="Arial, Helvetica, sans-serif">Fax</font></th> <th><font face="Arial, Helvetica, sans-serif">E-mail</font></th> <th><font face="Arial, Helvetica, sans-serif">Website</font></th> </tr> <? $i=0; while ($i < $num) { $first=mysql_result($result,$i,"first"); $last=mysql_result($result,$i,"last"); $phone=mysql_result($result,$i,"phone"); $mobile=mysql_result($result,$i,"mobile"); $fax=mysql_result($result,$i,"fax"); $email=mysql_result($result,$i,"email"); $web=mysql_result($result,$i,"web"); ?> <tr> <td><font face="Arial, Helvetica, sans-serif"><? echo $first." ".$last; ?></font></td> <td><font face="Arial, Helvetica, sans-serif"><? echo $phone; ?></font></td> <td><font face="Arial, Helvetica, sans-serif"><? echo $mobile; ?></font></td> <td><font face="Arial, Helvetica, sans-serif"><? echo $fax; ?></font></td> <td><font face="Arial, Helvetica, sans-serif"><a href="mailto:<? echo $email; ?>">E-mail</a></font></td> <td><font face="Arial, Helvetica, sans-serif"><a href="<? echo $web; ?>">Website</a></font></td> </tr> <? $i++; } echo "</table>"; |
1 2 3 4 5 6 7 8 9 10 | First Name: <input type="text" name="first"><br> Last Name: <input type="text" name="last"><br> Phone: <input type="text" name="phone"><br> Mobile: <input type="text" name="mobile"><br> Fax: <input type="text" name="fax"><br> E-mail: <input type="text" name="email"><br> Web: <input type="text" name="web"><br> <input type="Submit"> </form> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $username="username"; $password="password"; $database="your_database"; $first=$_POST['first']; $last=$_POST['last']; $phone=$_POST['phone']; $mobile=$_POST['mobile']; $fax=$_POST['fax']; $email=$_POST['email']; $web=$_POST['web']; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $query = "INSERT INTO contacts VALUES ('','$first','$last','$phone','$mobile','$fax','$email','$web')"; mysql_query($query); mysql_close(); ?> |
daar klopt bijzonder weinig van. wil je het in 1 pagina doen dan kan het bijvoorbeeld zo:quote:Op maandag 30 november 2009 15:20 schreef NoShitSherlock het volgende:
Ik wil de data van een database in een HTML tabel presenteren. Nu heb ik hiervoor de volgende code:
[
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 | //iemand heeft je form gesubmit. ding verwerken dus if(strtoupper($_SERVER['REQUEST_METHOD']) == "POST" && !empty($_POST['submit'])) { //validatie van de ingevulde velden //verbinding maken met je database mysql_query('INSERT INTO contacts (velden, hier, opnoemen) VALUES ($velden, $hier, $opnoemen'); } //geen form gesubmit. geef de pagina met resultaten weer else { <html> <head> </head> <table> //lijstje weergeven //verbinding maken met je database $result = mysql_query('SELECT * FROM contacts'); while($row = mysql_fetch_assoc($result)) { //mooie td's en tr's en zulks echo $row["velden"]; echo $row["hier"]; echo $row["opnoemen"]; } </table> <!-- formulier weergeven onder het lijstje --> <form action="index.php" method="post"> <!-- formulier weergeven onder het lijstje --> <input type="submit" name="submit" class="submit" value="verzenden"> </form> </html> } ?> |
Vind het zo frappant dat ze niet gewoon zaken afmaken ipv steeds uitbouwen maar goed.quote:Op maandag 30 november 2009 20:04 schreef hamkaastosti het volgende:
het is op fok! tijd voor zoveel echte dingen
Bij elke pageload opnieuw ophalen is veiliger, maar in een sessie opslaan zal wel weer een query schelen en dus sneller zijn. Het is een afweging tussen beveiliging en snelheid.quote:Op dinsdag 1 december 2009 18:48 schreef Chandler het volgende:
Ah natuurlijk ennuh is het handig om de geladen rechten op te slaan in een sessie? of per pagina lading alle rechten ophalen?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | switch($_SERVER['HTTP_HOST']){ case 'localhost' : $path = '/pikler'; ini_set ('error_reporting', E_ALL); break; case '83.98.245.150' : $path = '/pikler'; ini_set ('error_reporting', E_ALL); break; default : $path = ''; break; } |
Waarschijnlijk zul je het IP adres hoeven 83.98.245.150 veranderen naar het nieuwe adres. Dit stukje zelf doet an sich niet zo veel; het kijkt naar de waarde $_SERVER['HTTP_HOST'], als dit localhost of 83.98.245.150 is, dan word de PHP instelling 'error_reporting' op E_ALL gezet (dus alle fouten en waarschuwingen in PHP scripts zullen weergegeven worden) en word de variabele $path op '/pikler' gezet. Alles wat anders us, maakt het $path variabele leeg en stelt géén error_reporting in.quote:Op woensdag 2 december 2009 18:47 schreef Mirel het volgende:
Ik ben admin van een site (niet zelf gemaakt) en kreeg vandaag een mailtje van de vrouw achter de site. Ze kreeg melding dat de site verhuisd zal worden en het ip zal veranderen. Ik dacht, dat maakt niks uit, maar nu zie ik in de code van index.php dit staan:
[ code verwijderd ]
Ik neem aan dat ik dat dus zal moeten veranderen : (wat betekent de code eigenlijk?)
Opslaan maakt het rechtenbeheer niet echt onveiliger. Als jij je hele rechtenstructuur iedere keer moet bereken doet hij elke keer het zelfde. Aangezien je niet om de 5 dagen de rechten gaat aanpassen.quote:Op dinsdag 1 december 2009 19:03 schreef Sirolf het volgende:
[..]
Bij elke pageload opnieuw ophalen is veiliger, maar in een sessie opslaan zal wel weer een query schelen en dus sneller zijn. Het is een afweging tussen beveiliging en snelheid.
Je zou ook kunnen kiezen voor een tussenweg, zoals alleen opnieuw ophalen van rechten bij een POST, of een timestamp opslaan in de sessie en bijvoorbeeld 10 minuten na die tijd de rechten in ieder geval weer laten ophalen (zodat er geen langdurende sessies met de oude rechten actief blijven).
Natuurlijk wel. Als jij je rechten alleen maar sporadisch gaat opslaan, kan dat cruciale fouten veroorzaken. Wat als je net iemand betrapt op het verwijderen van records, en die persoon per direct zijn rechten wilt ontnemen?quote:Op woensdag 2 december 2009 19:25 schreef Pakspul het volgende:
[..]
Opslaan maakt het rechtenbeheer niet echt onveiliger.
Vertel mij stap voor stap dan eens hoe dat te werk gaat. Lees dan mijn verhaal nog eens door en zeg dan dat mijn verhaal toch nog correct is.quote:Op woensdag 2 december 2009 19:52 schreef Tuvai.net het volgende:
[..]
Natuurlijk wel. Als jij je rechten alleen maar sporadisch gaat opslaan, kan dat cruciale fouten veroorzaken. Wat als je net iemand betrapt op het verwijderen van records, en die persoon per direct zijn rechten wilt ontnemen?
Dat verklaard waarom windows dus ook alle rechten in een keer berekend en dan vast zet inplaats van ze steeds opnieuw te berekenen.quote:Als er iets belangrijk is in een (web)-applicatie, dan is het wel (actuele / realtime) beveiliging. Als je applicatie door één eenvoudig query`tje veiliger wordt, dan zou ik me vooral niet over dat (minieme performance-verlies van) query`tje druk gaan maken.
Efficiënter dan alles rechten ophalen deze helemaal laten berekenen. Als je een ingelogde user hebt haal je toch de informatie van hem op. In iedergeval zijn username, waarom dan ook niet even een extra kolom waar zijn rechten in staan ophalen.quote:Jouw oplossing om alles in één kolom te gooien is nou ook niet bepaald efficiënt.
Euh, wat snap je niet aan mijn voorbeeld? Als jij een kwaadwillge gebruiker betrapt in jouw systeem, hetgeen misschien wel iemand is die een account gekaapt/gehacked heeft, die van alles aan het verwijderen is, dan wil je die toch meteen zijn rechten kunnen ontnemen? Of wil je dan echt de rechten gaan ontnemen, en braaf gaan wachten tot die gebruiker opnieuw inlogt (of wat dan ook doet waardoor je jouw rechen-update triggert)?quote:Op woensdag 2 december 2009 20:00 schreef Pakspul het volgende:
Vertel mij stap voor stap dan eens hoe dat te werk gaat.
Windows? Hoezo appels en peren? Sowieso doet Windows dat maar tot een bepaald niveau, voornamelijk op lokaal/workstation niveau. Als ik bijvoorbeeld in een Active Directory een netwerkmap heb waarop ik instel dat een bepaalde groep gebruikers er niet meer in mag komen, dan wordt dat realtime toegepast hoor.quote:Dat verklaard waarom windows dus ook alle rechten in een keer berekend en dan vast zet inplaats van ze steeds opnieuw te berekenen.
Om te beginnen is een dergelijke kolom niet meer dan een overbodige rotzooi-kolom met, afhankelijk van hoe jij je rechten er in opslaat, waarschijnlijk een lap aan tekstuele data. En nogmaals, waar zit 'm het grote performance- en/of snelheidsverlies in een eenvoudige COUNT() query? Wil je echt zo omslachtig gaan doen om een nota bene onveiliger systeem over te houden, alleen om een simpel query`tje te besparen?quote:Efficiënter dan alles rechten ophalen deze helemaal laten berekenen. Als je een ingelogde user hebt haal je toch de informatie van hem op. In ieder geval zijn username, waarom dan ook niet even een extra kolom waar zijn rechten in staan ophalen.
Ik heb het nooit gehad over opnieuw inloggen, wanneer je site een pagina verder gaat zal die weer controleren of deze ingelogd is ja of nee en weer spul uit de database halen. Mits je afbent gestapt van het $_SESSION object. Dat kan misschien wat stof doen op waaien in deze discussie want ik haal bij iedere request de gegevens van de gebruiker opnieuw op zodat deze de laatste informatie heeft. Dus dan ziet die ook of de Rechten kolom is gevult ja of nee, als dit niet zo is dan bouwt hij deze opnieuw op en schrijft deze weer weg en dan gaat hij bij de actie die de gebruiker gaat uitvoeren deze weer checken. Zit 0,0 verschil in met real-time aanpassingen.quote:Op woensdag 2 december 2009 20:17 schreef Tuvai.net het volgende:
[..]
Euh, wat snap je niet aan mijn voorbeeld? Als jij een kwaadwillge gebruiker betrapt in jouw systeem, hetgeen misschien wel iemand is die een account gekaapt/gehacked heeft, die van alles aan het verwijderen is, dan wil je die toch meteen zijn rechten kunnen ontnemen? Of wil je dan echt de rechten gaan ontnemen, en braaf gaan wachten tot die gebruiker opnieuw inlogt (of wat dan ook doet waardoor je jouw rechen-update triggert)?
AD maakt een copy van de site (folder-systeem/netwerk schijf) in zijn database waar deze allemaal objecten opslaat met de daarbij horende rechten voor de group/gebruiker/etcquote:[..]
Windows? Hoezo appels en peren? Sowieso doet Windows dat maar tot een bepaald niveau, voornamelijk op lokaal/workstation niveau. Als ik bijvoorbeeld in een Active Directory een netwerkmap heb waarop ik instel dat een bepaalde groep gebruikers er niet meer in mag komen, dan wordt dat realtime toegepast hoor.
Ik maak gebruik van een rechten beheer waarbij je in verschillende groepen kunt zitten en de gebruiker zelf ook nog rechten kan geven. Dus je moet van alle groepen + gebruiker de rechten ophalen. Daarna gaat hij deze allemaal na om te kijken wat er na het hele overerving verhaal nog voor de gebruiker overblijft. Het resultaat hiervan is een array en de rechten van de gebruiker.quote:[..]
Om te beginnen is een dergelijke kolom niet meer dan een overbodige rotzooi-kolom met, afhankelijk van hoe jij je rechten er in opslaat, waarschijnlijk een lap aan tekstuele data. En nogmaals, waar zit 'm het grote performance- en/of snelheidsverlies in een eenvoudige COUNT() query? Wil je echt zo omslachtig gaan doen om een nota bene onveiliger systeem over te houden, alleen om een simpel query`tje te besparen?
Het kan aan mij liggen, maar als het op veiligheid aan komt, ga je niet 'zuinig' lopen doen.
Ik zie een tag <h2> als ik het met Chrome bekijkquote:Op donderdag 3 december 2009 18:36 schreef BaggerUser het volgende:
misschien niet helemaal PHP maar vooruit het is in php gemaakt dus..
Ik heb laatst een website gemaakt voor iemand, simpele portfolio met wat foto's er op. niks bijzonders.
Nu krijgt hij heel af en toe de opmerking dat de site niet goed wordt weergegeven. Volgens de omschrijving doelden ze op de alt text bij de foto's.
Nu zullen het allemaal wel mensen zijn die sinds ie6 hun browser nooit hebben geupdate, maar aangezien dat nou eenmaal de doelgroep is... vooruit laat ik er eens naar kijken. Maar nu besef ik me net pas dat ik helemaal geen ie6 hier heb (mac) en dus niet kan kijken naar het probleem.
iemand die voor mij een sneakpeak kan nemen en kan zeggen wat er mis is?
bvd!
(ps het gaat om de volgende site: http://www.hennyblaas.nl/?c=1 )
Als je in 1 keer alle rechten van een user opvraagt, kost je dat in principe 1 query per pageview. Als je per bewerking gaat opvragen, is het wel zo handig om te zorgen dat het je in ieder geval niet meer queries kost.quote:Op donderdag 3 december 2009 18:59 schreef Scorpie het volgende:
Ik snap niet wat de toegevoegde waarde is van bij elke request opnieuw de rechten ophalen van een gebruiker. Waarom niet bij elke bewerking checken of de bewerking mag worden uitgevoerd?
Dat doe ik omdat ik, voordat mijn gebruiker een handeling uit voert, ik ook wil laten zien dat de gebruiker de betreffende handeling niet mag uit voeren. Denk aan een melding, of het disablen van inputs, of iets in die trant. Als ik zelf ergens een hekel aan heb, dan is het wel om een heel formulier in te vullen, om vervolgens een "oeps, jij mag dit niet!" te krijgen wanneer ik het formulier submit.quote:Op donderdag 3 december 2009 18:59 schreef Scorpie het volgende:
Ik snap niet wat de toegevoegde waarde is van bij elke request opnieuw de rechten ophalen van een gebruiker. Waarom niet bij elke bewerking checken of de bewerking mag worden uitgevoerd?
Een bewerking kan vanalles zijn, ook het bekijken van posts in een forum.quote:Op donderdag 3 december 2009 22:10 schreef Chandler het volgende:
Waarom niet Scorpie? zie het als dit forum, je wilt opeens geen gebruiker meer hebben in KPD (direct, nu) dan is dat met een klik gebeurd ipv wachten totdat een user iets post oid?!
Tja, het is maar net hoe je de post wil lezen (bewerking zie ik niet als het lezen van een post)quote:Op donderdag 3 december 2009 22:17 schreef Light het volgende:
[..]
Een bewerking kan vanalles zijn, ook het bekijken van posts in een forum.
Maar je moet wel verschillende dingen controleren, je mag namelijk niet iedere post lezen.quote:Op donderdag 3 december 2009 22:24 schreef Chandler het volgende:
[..]
Tja, het is maar net hoe je de post wil lezen (bewerking zie ik niet als het lezen van een post)
hellup mij!quote:Op vrijdag 4 december 2009 01:30 schreef GuidooH het volgende:
Ik dacht; laat ik eens wat PHP noobs helpen, maar helaas...
@ Light: Ha ZCE'er! ZCE'ers ownen, en hard!
Minder zuipen en nog eens uitleggen wat je wilt als je weer nuchter bent.quote:Op vrijdag 4 december 2009 01:39 schreef VeJaderr het volgende:
[..]
hellup mij!
heb moie srcpt gedwonload, hij werkt wel, mar heele tijjd is allus weg of staan er links nara pr0n sitse ensow.. wat moet k doewn?
Ik denk dat ik dat naderhand ook eens d'r bji ga nemen, puur voor het hebben van 'bewijsmateriaal' dat ik verstand van PHP heb. Ik heb sinds kort een MCTS certificering (ASP.NET 3.5 application developer) en dat heeft tot nu toe behoorlijk in mijn voordeel gewerkt.quote:Op vrijdag 4 december 2009 01:30 schreef GuidooH het volgende:
Ik dacht; laat ik eens wat PHP noobs helpen, maar helaas...
@ Light: Ha ZCE'er! ZCE'ers ownen, en hard!
Cursus? Welke cursus? Ik heb gewoon een boekje gekocht, dat doorgewerkt, en toen examen gedaan. Was wel ZCE PHP4 in die tijd, ZCE PHP5 heb ik niet en daarmee kan ik dus ook niet vergelijken.quote:Op vrijdag 4 december 2009 12:16 schreef Tuvai.net het volgende:
Voor de ZCE`ers: Heeft zo'n Zend certificaat veel waarde op 'de markt'? Was de cursus een beetje te doen? Heb je profijt gehad van het worden van ZCE?
Oke thnx, maar waar plak ik nu die code in dan?quote:Op maandag 30 november 2009 18:58 schreef hamkaastosti het volgende:
[..]
daar klopt bijzonder weinig van. wil je het in 1 pagina doen dan kan het bijvoorbeeld zo:
[ code verwijderd ]
je zult nog wel zelf eea moeten klussen
Ik heb het al gevonden. Je moet de volgende code bovenaan je php file zetten:quote:Op vrijdag 4 december 2009 17:32 schreef NoShitSherlock het volgende:
Kan iemand mij helpen met het volgende probleem?
Ik heb op mijn website een simpel formuliertje die wat gegevens naar een database verstuurd. Maar nu wil ik graag dat nadat de gebruiker de gegevens verstuurd heeft dat hij weer terug komt op de site waarvandaan hij de gegeven verstuurd en dat er dan ook staat weergegeven: Uw gegevens zijn met suc6 verstuurd.
Nu is het zo dat de gebruiker niks meer ziet. Hij laadt nu gewoon insert.php, die dus geen inhoud weergeeft.
1 2 3 4 | <?php header("Location: http://www.site.nl/"); /* Stuur de browser naar www.site.nl */ ?> |
Het enige "voordeel" voor mij was een sticker, certificaat, spam krijgen via de yellow pages en dat mijn werkgever een icoontje op de site mag zetten. . Heb zelf overigens ook geen cursus gedaan, alleen een ZCE-php5 boek besteld en doorgelezen.quote:Op vrijdag 4 december 2009 13:26 schreef Light het volgende:
[..]
Cursus? Welke cursus? Ik heb gewoon een boekje gekocht, dat doorgewerkt, en toen examen gedaan. Was wel ZCE PHP4 in die tijd, ZCE PHP5 heb ik niet en daarmee kan ik dus ook niet vergelijken.
Of het veel voordeel heeft op "de markt" weet ik niet. Ik heb niet het idee dat ik er heel veel aan heb gehad.
Volgende stap voor mij wordt SCJP, maar dat is wat lastiger. Kan ook komen omdat ik maar heel weinig doe met Java.
Hier al eens naar gekeken om te zien of je dan wel je js erin kan knallen: http://www.smarty.net/manual/id/language.function.literal.phpquote:Op zaterdag 5 december 2009 13:41 schreef wobbel het volgende:
Ik heb een Smarty als template parser, maar nu vroeg ik mij af of ik met smarty ook nog wat in een .js file kon replacen? Ik kan de JS code niet in het HTML bestand zelf zetten omdat Smarty daar niet goed mee overweg kan, maar in die JS moet ik wel steeds een variable aanpassen...
De scores van elke vote zitten in de db inderdaad, maar de gemiddelde scores niet.quote:Op zaterdag 5 december 2009 13:37 schreef hamkaastosti het volgende:
hoe sla je die scores op? in mysql? dan is het gewoon ORDER BY score in je query en dan met while() daar door heen loopen
Er van uit gaande dat je een tabel met votes / stemmen hebt, waar per record een score, en een afbeelding_id (oftewel, de afbeelding waar het over gaat) in staat:quote:Op zaterdag 5 december 2009 13:48 schreef Chanty87 het volgende:
[..]
De scores van elke vote zitten in de db inderdaad, maar de gemiddelde scores niet.
1 2 3 4 5 6 7 8 9 10 | AVG(score) AS gemiddelde, afbeelding_id FROM tabel_met_stemmen GROUP BY afbeelding_id ORDER BY gemiddelde DESC LIMIT 10 |
1 2 3 4 | bla_veld1 VARCHAR(50) bla_veld2 VARCHAR(50) enz. |
1 2 3 4 5 | bla_id BIGINT(20) INDEX wtf_veld1 VARCHAR(50) wtf_veld2 VARCHAR(50) enz. |
1 |
DOH. TabelB.bla_id stond inderdaad nog niet op unsigned.quote:Op zaterdag 5 december 2009 14:28 schreef GlowMouse het volgende:
Is een van de bigints toevallig unsigned en de ander niet?
Thanks Dat was idd wat ik nodig heb. Nu probeer ik het te echo'en maar ik krijg óf alleen "Resource id #116" of eenquote:Op zaterdag 5 december 2009 14:05 schreef Tuvai.net het volgende:
[..]
Er van uit gaande dat je een tabel met votes / stemmen hebt, waar per record een score, en een afbeelding_id (oftewel, de afbeelding waar het over gaat) in staat:
[ code verwijderd ]
(ik maak gebruik van Wordpress + ExecPHP plugin) error.quote:Catchable fatal error: Object of class stdClass could not be converted to string in /lalala/exec-php/includes/runtime.php(42) : eval()'d code on line 4
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |