Dat dacht ik ook maar als ik het verander naar bijv: vakken.vaknaam dan laat hij de cijfers weer niet goed zien.quote:
quote:Op donderdag 7 april 2011 20:35 schreef PiRANiA het volgende:
Ik zoek een standalone colorpicker. Wie heeft een tip?
quote:
1 | $query = "select avg(cijfer), vaknaam from vakken left join cijfer on vakken.id = cijfers.vak_id group by vaknaam"; |
Heet die tweede tabel cijfer of cijfers? Bij de join ga je uit van het eerste, bij de ON erna van het tweede. Dat gaat niet werken.quote:Op vrijdag 8 april 2011 09:44 schreef -Datdus- het volgende:
[..]
[ code verwijderd ]
Ik krijgt trouwens te zien undefined index 'cijfers'.
Waarom helemaal met een SUM? Je kunt toch gewoon sorteren op 'flighttime'?quote:Op zondag 10 april 2011 23:10 schreef KomtTijd... het volgende:
Ik heb een tabel met: pilot_id, flighttime
Nu wil ik een soort van ranglijst maken, met welke piloot de meeste vlieguren heeft. Dus voor iedere pilot_id moet een SUM(flighttime) uitgevoerd worden, en dan moeten de pilot_id's op volgorde van SUM(flighttime) weergegeven worden...
Schudt iemand zo'n query zo uit zijn mouw?
Waarschijnlijk is het een tabel waar een piloot meerder vlieguren(vluchten) kan maken.quote:Op zondag 10 april 2011 23:11 schreef boem-dikkie het volgende:
[..]
Waarom helemaal met een SUM? Je kunt toch gewoon sorteren op 'flighttime'?
Uit mijn mouw komt dan:quote:Op zondag 10 april 2011 23:10 schreef KomtTijd... het volgende:
Ik heb een tabel met: pilot_id, flighttime
Nu wil ik een soort van ranglijst maken, met welke piloot de meeste vlieguren heeft. Dus voor iedere pilot_id moet een SUM(flighttime) uitgevoerd worden, en dan moeten de pilot_id's op volgorde van SUM(flighttime) weergegeven worden...
Schudt iemand zo'n query zo uit zijn mouw?
1 2 3 4 | SELECT pilot_id, SUM(flighttime) AS sum_flighttime FROM table GROUP BY pilot_id ORDER BY sum_flighttime ASC |
een preg_match in een while of for loop?quote:Op maandag 11 april 2011 15:03 schreef erikkll het volgende:
Vraagje! Ik heb een waardes in een array. Een voorbeeldwaarde is:
Dit is een test [[klantnaam]]
Wat is de makkelijkste manier om alle klantnamen te achterhalen? Ze staan dus altijd in blokhaakjes. Iets van een filtermethode?
ah! Dat lijkt me een goeie. Ga ik mee experimenteren!quote:Op maandag 11 april 2011 15:05 schreef GlowMouse het volgende:
preg_match_all met regexp /\[\[(.*)\]\]/U
Als je gewoon aangeeft welk probleem je ermee hebt, krijg je vast sneller een oplossing dan wanneer je alleen vraagt of iemand er verstand van heeft.quote:
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 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 | <?php error_reporting(0); $map = 'fotoalbum'; $afbeeldingen = array(); $hoogte_klein = 100; $breedte_klein = 150; $hoogte_groot = 400; $breedte_groot = 600; $perpagina = 6; if(isset($_GET['album']) && !empty($_GET['album'])) { $tmp = explode('/',$_GET['album']); if($tmp[0] == $map) { $map = str_replace(array('.', '\\', ':'), '', $_GET['album']); } } if(isset($_GET['paginanr']) && !empty($_GET['paginanr']) && ctype_digit($_GET['paginanr'])) { $paginanr = $_GET['paginanr']; }else{ $paginanr = 1; } if(isset($_GET['afbeelding']) && !empty($_GET['afbeelding'])) { $afbeelding = $_GET['afbeelding']; }else{ $afbeelding = NULL; } function thumbnail($afbeelding, $type) { $map = $afbeelding['dirname']; $bestandsnaam = $afbeelding['basename']; list($type, $hoogte, $breedte) = $type; list($breedte_origineel, $hoogte_origineel, $extensie) = getimagesize($map.'/'.$bestandsnaam); if(!is_dir($map.'/thumbs/')) { mkdir($map.'/thumbs/', 0777); chmod($map.'/thumbs/', 0777); } if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte)) { $breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel; }else{ $hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel; } $afbeelding = imagecreatetruecolor($breedte, $hoogte); switch($extensie) { case 1: //gif $afbeelding_origineel = imagecreatefromgif($map.'/'.$bestandsnaam); imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel); imagegif($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam); break; case 2: //jpg $afbeelding_origineel = imagecreatefromjpeg($map.'/'.$bestandsnaam); imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel); imagejpeg($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam, 80); break; case 3: //png $afbeelding_origineel = imagecreatefrompng($map.'/'.$bestandsnaam); $background = imagecolorallocate($afbeelding, 0, 0, 0); imagecolortransparent($afbeelding, $background); // make the new temp image all transparent imagealphablending($afbeelding, false); // turn off the alpha blending to keep the alpha channel imagesavealpha($afbeelding, true); imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel); imagepng($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam); break; } chmod($map.'/thumbs/'.$type.'_'.$bestandsnaam, 0777); return TRUE; } $tmp = NULL; foreach(explode('/',$map) as $tmp2) { echo ' <a href="?pagina=fotoalbum&album='.$tmp.$tmp2.'">'.ucfirst($tmp2).'</a> '; $tmp = $tmp.$tmp2.'/'; } echo '<br><br>'.PHP_EOL; if(!$bestanden = glob($map.'/*.*')) { $bestanden = array(); } foreach($bestanden as $bestand) { $gegevens = getimagesize($bestand); $extensie = $gegevens['mime']; if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png') { $afbeeldingen[] = $bestand; } } $aantalfotos = count($afbeeldingen); if(isset($afbeelding)) { foreach($afbeeldingen as $id => $naam) { if(basename($naam) == $afbeelding) { $fotonr = $id; } } if(isset($fotonr)) { $afbeelding = pathinfo($afbeeldingen[$fotonr]); if($fotonr > 0) { $vorige_afbeelding = pathinfo($afbeeldingen[$fotonr-1]); echo '<a href="?pagina=fotoalbum&album='.$map.'&afbeelding='.$vorige_afbeelding['basename'].'" title="Ga naar foto '.$vorige_afbeelding['basename'].'"><< Vorige</a>'; }else{ echo '<< Vorige'; } echo ' Foto '.($fotonr +1).' van '.$aantalfotos.' '; if($fotonr < $aantalfotos -1) { $volgende_afbeelding = pathinfo($afbeeldingen[$fotonr+1]); echo '<a href="?pagina=fotoalbum&album='.$map.'&afbeelding='.$volgende_afbeelding['basename'].'" title="Ga naar foto '.$volgende_afbeelding['basename'].'">Volgende >></a><br>'; }else{ echo 'Volgende >><br>'.PHP_EOL; } if(!file_exists($afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'])) { if(thumbnail($afbeelding, array('groot', $hoogte_groot, $breedte_groot))) { echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL; } }else{ echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL; } }else{ echo '<p>Sorry, deze foto bestaat niet!</p>'; } }else{ if(!$mappen = glob($map.'/*', GLOB_ONLYDIR)) { $mappen = array(); } foreach($mappen as $album) { if(basename($album) != 'thumbs') { echo '<a href="?pagina=fotoalbum&album='.$album.'">'.ucfirst(basename($album)).'</a><br>'.PHP_EOL; } } if($aantalfotos > $perpagina) { if ($paginanr > 1) { echo '<a href="?pagina=fotoalbum&album='.$map.'&paginanr='.($paginanr - 1).'" title="Ga naar pagina '.($paginanr - 1).'"><< Vorige</a>'; }else{ echo '<< Vorige'; } echo ' Pagina '.$paginanr.' van '.ceil($aantalfotos/$perpagina).' '; if ($paginanr < ceil(($aantalfotos)/$perpagina)) { echo '<a href="?pagina=fotoalbum&album='.$map.'&paginanr='.($paginanr + 1).'" title="Ga naar pagina '.($paginanr + 1).'">Volgende >></a><br>'; }else{ echo 'Volgende >><br>'.PHP_EOL; } } for($fotonr = (($paginanr -1) * $perpagina); $fotonr <= ((($paginanr -1) * $perpagina) + ($perpagina - 1)) && $fotonr < count($bestanden); $fotonr += 1) { $afbeelding = pathinfo($afbeeldingen[$fotonr]); if(!file_exists($afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'])) { if(thumbnail($afbeelding, array('klein', $hoogte_klein, $breedte_klein))) { echo '<a href="?pagina=fotoalbum&album='.$map.'&afbeelding='.$afbeelding['basename'].'"><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL; } }else{ echo '<a href="?pagina=fotoalbum&album='.$map.'&afbeelding='.$afbeelding['basename'].'"><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL; } } } ?> |
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 | set TABLES; set DAYS; set PERSONS; var location{p in PERSONS, t in TABLES, d in DAYS}, binary; var peoplemeet{p1 in PERSONS, p2 in PERSONS, t in TABLES, d in DAYS}, binary; minimize find_feasible: 1; subject to nevermorethantwiceatsameplace{p in PERSONS, t in TABLES}: sum{d in DAYS} location[p,t,d] <= 2; subject to alwaysatoneplace{p in PERSONS, d in DAYS}: sum{t in TABLES} location[p,t,d] = 1; subject to meeting{p1 in PERSONS, p2 in PERSONS, d in DAYS, t in TABLES : p1<p2}: 2*peoplemeet[p1,p2,t,d] <= location[p1,t,d]+location[p2,t,d]; subject to everybodymeets{p1 in PERSONS, p2 in PERSONS : p1<p2}: sum{t in TABLES, d in DAYS} peoplemeet[p1,p2,t,d] >= 1; subject to maxtablesize{d in DAYS, t in TABLES}: sum{p in PERSONS} location[p,t,d] = 2; solve; for{p in PERSONS} { for{d in DAYS} { for{t in TABLES : location[p,t,d] == 1} { printf "Persoon %s op dag %s aan tafel %s\n", p, d, t; } } } data; set TABLES := 1 2 3 4; set DAYS := 1 2 3 4 5 6 7; set PERSONS := 1 2 3 4 5 6 7 8; end; |
1 | C:\glpk\bin>glpsol.exe --math file.txt |
Ik ben het aan het proberen, hopelijk komt er iets moois uit. Wat is 'even'?quote:Op woensdag 13 april 2011 19:44 schreef GlowMouse het volgende:
Deze post heb ik eerder eens gemaakt voor een vergelijkbaar probleem:
Het model zet je in een tekstbestand (zeg file.txt)
[ code verwijderd ]
Daarna krijg je met dit commando na een tijdje of er een dergelijk eetschema bestaat. Kan even duren overigens
[ code verwijderd ]
Dan speelt niet iedereen tegen iedereen.quote:
Ik denk niet dat je lang hoeft te wachten.quote:Op woensdag 13 april 2011 19:51 schreef Habork het volgende:
[..]
Ik ben het aan het proberen, hopelijk komt er iets moois uit. Wat is 'even'?
Hij draait nu, 300.0 secs. Heb de tijd nog dus. Als ik zo naar de code kijk begrijp ik dat het algoritme gewoon blijft proberen totdat hij een goed schema heeft?quote:Op woensdag 13 april 2011 19:57 schreef GlowMouse het volgende:
[..]
Dan speelt niet iedereen tegen iedereen.
[..]
Ik denk niet dat je lang hoeft te wachten.
Dezelfde als jij gegeven hebt alleen het aantal tafels aangepast:quote:Op woensdag 13 april 2011 20:04 schreef GlowMouse het volgende:
Hij doet het wel iets slimmer; de theorie staat oa. in http://www.rpi.edu/~mitchj/papers/mitche2.pdf
Welke inputfile heb je gemaakt?
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 | set TABLES; set DAYS; set PERSONS; var location{p in PERSONS, t in TABLES, d in DAYS}, binary; var peoplemeet{p1 in PERSONS, p2 in PERSONS, t in TABLES, d in DAYS}, binary; minimize find_feasible: 1; subject to nevermorethantwiceatsameplace{p in PERSONS, t in TABLES}: sum{d in DAYS} location[p,t,d] <= 2; subject to alwaysatoneplace{p in PERSONS, d in DAYS}: sum{t in TABLES} location[p,t,d] = 1; subject to meeting{p1 in PERSONS, p2 in PERSONS, d in DAYS, t in TABLES : p1<p2}: 2*peoplemeet[p1,p2,t,d] <= location[p1,t,d]+location[p2,t,d]; subject to everybodymeets{p1 in PERSONS, p2 in PERSONS : p1<p2}: sum{t in TABLES, d in DAYS} peoplemeet[p1,p2,t,d] >= 1; subject to maxtablesize{d in DAYS, t in TABLES}: sum{p in PERSONS} location[p,t,d] = 2; solve; for{p in PERSONS} { for{d in DAYS} { for{t in TABLES : location[p,t,d] == 1} { printf "Persoon %s op dag %s aan tafel %s\n", p, d, t; } } } data; set TABLES := 1 2 3 4 5 6 7; set DAYS := 1 2 3 4 5 6 7; set PERSONS := 1 2 3 4 5 6 7 8; end; |
In de 8e speelronde speelt ieder team tegen een team waar ze al een keer tegen gespeeld hebben. Ik begreep uit de constraints dat dit geen mogelijkheid is dus dat kan ik er zelf naderhand makkelijk bij verzinnen.quote:Op woensdag 13 april 2011 20:30 schreef GlowMouse het volgende:
even de vertaling maken:
-8 teams PERSONS
-8 speelrondes DAYS
-8 verschillende spellen TABLES
Voor de overzichtelijkheid hernoem je alles. Ik snap niet waarom je TABLES en DAYS maar tot 7 laat lopen.
En nu de constraints aflopen:
subject to nevermorethantwiceatsameplace{p in PERSONS, t in TABLES}:
sum{d in DAYS} location[p,t,d] <= 2;
dit zou =1 moeten zijn.
Je eist nu dat ze in de eerste 7 rondes telkens tegen iemand anders spelen. Dat is een sterkere eis dan aanvankelijk gesteld.quote:In de 8e speelronde speelt ieder team tegen een team waar ze al een keer tegen gespeeld hebben.
if ($_SESSION['G_name']=="empty") { ???quote:if(iets wat waar is als iemand niet is ingelogd) {
include('file.inc.php');
}
Eh, wat snap je niet aan wat hij zei?quote:Op woensdag 13 april 2011 20:55 schreef MrNiles het volgende:
[..]
if ($_SESSION['G_name']=="empty") { ???
zoiets maar dan goed
Ergen op je pagina bepaal je of iemand is ingelogd de ja of de nee. Waarschijnlijk komt daar een boolean uitgerold. Bijvoorbeeld $loginquote:Op woensdag 13 april 2011 20:55 schreef MrNiles het volgende:
[..]
if ($_SESSION['G_name']=="empty") { ???
zoiets maar dan goed
iets wat waar is, is dat $_session['G_name'] empty isquote:Op woensdag 13 april 2011 20:57 schreef Tegan het volgende:
[..]
Eh, wat snap je niet aan wat hij zei?
http://lmgtfy.com?q=php+emptyquote:Op woensdag 13 april 2011 20:59 schreef MrNiles het volgende:
[..]
iets wat waar is, is dat $_session['G_name'] empty is
maar hoe schrijf ik dat op dat php dat snapt
if(!(isset($_SESSION['G_name'])))quote:Op woensdag 13 april 2011 20:59 schreef MrNiles het volgende:
[..]
iets wat waar is, is dat $_session['G_name'] empty is
maar hoe schrijf ik dat op dat php dat snapt
?? Ik programmeer net 'n weekje in PHP dus ben hier niet bekend mee. Heb je 'n paar linkjes/zoektermen voor me?quote:Op woensdag 13 april 2011 21:15 schreef GlowMouse het volgende:
Gevaarlijk bij shared hosting, waar het niet moeilijk is om sessie-vars in te stellen.
En waar staat een session in?quote:
Hoe weet de server bij een volgende request welke sessie bij jou hoort?quote:
1 2 3 4 5 6 7 8 9 | $query = mysql_query($sql); $items = mysql_num_rows($query); for ($x = 0; $x < $items; $x++) { $list = mysql_fetch_assoc($query); mysql_query("UPDATE tabel SET xx = xx +1 WHERE id = '" . $list['id'] . "' LIMIT 1"); } |
Dat kan.quote:Op donderdag 14 april 2011 17:11 schreef Chandler het volgende:
Snelle vraag,
Stel ik voer een query uit die 100 items uit de database leest en wil per item een actie uitvoeren en deze updaten, kan ik dan de update ook in de loop verwerken?
vb;
[ code verwijderd ]heb even geen webserver ter beschikking om het te testen, even een hersen spinsel
1 2 3 | <?php mysql_query("UPDATE tabel SET xx = xx +1 WHERE id IN (".$sql.")"); ?> |
1 2 3 4 5 6 | : Uncaught exception 'ImagickException' with message 'unable to open file `/tmp/magick-RldtNfqg': @ error/constitute.c/ReadImage/571' in /xxx.nl/public_html/mtest/test.php:23 Stack trace: #0 /xxx.nl/public_html/mtest/test.php(23): Imagick->readimage('../imgbase/2008...') #1 /xxx.nl/public_html/mtest/test.php(108): compressImageToMax('../imgbase/2008...', '5082-1302778679') #2 {main} thrown in |
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 | <table> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <?php include("database.php"); $speelronde = $_POST['speelronde']; $sql = ("SELECT * FROM Wedstrijden WHERE WSpeelronde='".$speelronde."' ORDER BY WWedstrijdID"); $uitvoer = mysql_query($sql) or die (mysql_error()); while($result = mysql_fetch_array($uitvoer)){ ?> <tr> <td><?php print $result['WThuisploeg']; ?><input name="WThuisploeg" value="<?php print $result['WThuisploeg']; ?>" size="1" type="hidden"/></td> <td>-</td> <td><?php print $result['WUitploeg']; ?><input name="WUitploeg" value="<?php print $result['WUitploeg']; ?>" size="1" type="hidden"/></td> <td><input name="ScoreThuis" size="1" /></td> <td>-</td> <td><input name="ScoreUit" size="1" /></td></tr> <?php } ?> <tr><td><input type="submit" value="Invoeren" /></td></tr></form></table> <?php if($_SERVER['REQUEST_METHOD'] == 'POST'){ $WScoreThuis = $_POST['ScoreThuis']; $WScoreUit = $_POST['ScoreUit']; $WThuisploeg = $_POST['WThuisploeg']; $WUitploeg = $_POST['WUitploeg']; $sql1 = ("UPDATE Wedstrijden SET WScoreThuis='".$WScoreThuis."', WScoreUit='".$WScoreUit."' WHERE WThuisploeg='".$WThuisploeg."' AND WUitploeg='".$WUitploeg."' "); $invoer = mysql_query($sql1) or die (mysql_error()); } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |