1 2 3 4 5 6 7 | <?php $cmd = '"c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe -metric PSNR d:\photos\snapshots\20140228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL:"'; // $cmd = str_replace("\\", "/", $cmd); echo exec('%SystemRoot%\system32\cmd.exe ' . $cmd, $output, $err); echo exec($cmd); exit; ?> |
Correct, dat idd niet, maar als ik het zo aanpas.quote:Op donderdag 6 maart 2014 10:34 schreef KomtTijd... het volgende:
En die dubbele aanhalingstekens? Horen er ook bij? Sorry ik heb echt de ballen verstand van windows hoor.
1 | "c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe" -metric PSNR d:\photos\snapshots\20140228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL: |
Dat dacht ik eerst ook, maar geeft totaal geen verschilquote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $cmd = 'echo "c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe" -metric PSNR d:\photos\snapshots\20140228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL:'; $cmd = str_replace("\\", "\\\\", $cmd); echo exec('%SystemRoot%\system32\cmd.exe ' . $cmd, $output, $err); echo exec($cmd); foreach ($output as $item){ print_r($item); } echo '<hr>'; foreach ($err as $item){ print_r($item); } ?> |
1 2 3 | D:\www>"c:\\Program Files\\ImageMagick-6.8.8-Q16\\compare.exe" -metric PSNR d:\\photos\\snapshots\\20140228\\snapshot-20140228225510-152.jpg d:\\photos\\snapshots\\20140228\\snapshot-20140228225500-152.jpg NULL:Microsoft Windows [versie 6.1.7601]Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.D:\www> Warning: Invalid argument supplied for foreach() in D:\www\exectest.php on line 11 <!-- ignore :P |
1 2 3 | D:\www>Microsoft Windows [versie 6.1.7601]Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.D:\www> Warning: Invalid argument supplied for foreach() in D:\www\exectest.php on line 11 |
1 2 3 | <?php echo exec('"c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe" -metric PSNR d:\photos\snapshots\20140228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL: >2&1'); ?> |
Wil je dan niet liever: http://www.php.net/manual/en/function.realpath.php gebruiken? Maak je geen fouten enzo.. vet kek!!quote:
1 | $test = "voorbeeld"; |
1 2 3 4 5 6 7 | class Person { var $name; function __construct($init_name) { $this->name = $init_name; } |
1 | $init_name = $this->name; |
1 2 3 4 5 | <?php function getInitName(){ return $this->name; } ?> |
Je draait daar de assignment om? Nu wijs je de (lege) inhoud van de class property toe aan een lokale variabele. In php is $this altijd nodig als je binnen de class één van zijn properties wil wijzigen. In andere talen zoals C++ of Java is de this pointer alleen noodzakelijk als een lokale variabele dezelfde naam heeft als de property.quote:Op donderdag 6 maart 2014 15:38 schreef Robuustheid het volgende:
Waarom kan het dan niet zo als volgt?
[ code verwijderd ]
Klopt, daar heb ik ook al even naar gekeken maar dacht eerst maar eens de system call proberenquote:Op donderdag 6 maart 2014 12:35 schreef slacker_nl het volgende:
[..]
Wil je dan niet liever: http://www.php.net/manual/en/function.realpath.php gebruiken? Maak je geen fouten enzo.. vet kek!!
En je hebt ook:
http://www.php.net/manual/en/imagick.compareimagechannels.php
http://www.php.net/manual/en/imagick.compareimagelayers.php
http://www.php.net/manual/en/imagick.compareimages.php
Heb je geen system calls voor nodig.
Waarom zou het beter zijn om een expliciete visibility er aan te geven?quote:Op donderdag 6 maart 2014 16:30 schreef zoem het volgende:
Btw: de class properties kun je beter een expliciete visibility geven (public, protected, private) ipv 'var' (=public). Var stamt nog uit de tijd van php 4.
$this verwijst naar eigenschappen van het object, en met :: verwijs je naar eigenschappen van de class. Het grote verschil is dat je voor dat laatste geen instance van de class nodig hebt.quote:Op donderdag 6 maart 2014 21:11 schreef Robuustheid het volgende:
Nog een vraag. Waarom worden erScope resolution operator gebruikt in plaats van een pointer als $this-> ?
De scope resolution operator (::) refereert dus naar constanten en statics. Maar waarom kan dat niet gewoon met $this?
Dit is makkelijker te overzien als je de code plaatstquote:Op donderdag 6 maart 2014 22:38 schreef Andijvie_ het volgende:
Hallo ik heb een site gemaakt waar ik een tabel had welke de waarde liet zien welke ingevoerd werd door de gebruiker en na bevestiging te zien is in een tabel, alleen heb ik een nieuw ''map' aangemaakt en de bestanden gekopieerd en geplakt en de database gegevens veranderd, waar eigenlijk alle ingevoerde waarden dus al verwijderd moeten zijn en dus alles op 0 staat en fris eruit moet zien (nieuw), echter zie ik in 1 tabel op een specifiek pagina nog steeds de waarden van wat er in het verleden is ingevoerd. Als ik naar de SQL bestanden kijk in phpmyadmin dan zijn er 0 waarden ingevoerd...
hoe kan ik dit oplossen?
P.S; als ik op een waarde klik (de waarde bevat een link naar de pagina met de gegevens van de waarde) dan krijg ik ''ID in de URL komt niet overeen met onze database''' wat echter correct is, maar de oude database waarden worden echter wel in de vorige pagina getoond van een andere map in htdocs (bijv test1, terwijl de nieuwe site in test2 zit), terwijl dat niet eens de bedoeling is
quote:Op donderdag 6 maart 2014 22:40 schreef totalvamp het volgende:
[..]
Dit is makkelijker te overzien als je de code plaatst
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 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 | <?php include './init.php'; if (empty($_GET['markt'])){ } else { $markt_id = $_GET['markt']; } if (empty($_GET['zoeken'])){ } else { $zoeken = $_GET['zoeken']; header("Location: zoeken.php?zoeken=$zoeken"); } if (empty($_POST) === false) { $required_fields = array('cijfer','reactie'); foreach($_POST as $key=>$value){ if (empty($value) && in_array($key, $required_fields) == true){ $errors[] = 'Alle velden zijn verplicht!'; break 1; } } if (empty($errors) === true) { $user_data_name = $user_data["user_username"]; if (check_name_reacties($user_data_name) === true) { $errors[] = 'Je mag maar 1X reageeren per markt'; } if (logged_in() === false) { $errors[] = 'Login om een reactie te plaatsen'; } if (strlen($_POST['reactie']) < 20) { $errors[] = 'De reactie moet minimaal 20 tekens lang zijn'; } if (strlen($_POST['reactie']) > 250) { $errors[] = 'De reactie mag niet langer zijn dan 250 tekens'; } if (empty($_POST) === false && empty($errors) === true) { $date = date("d-m-Y"); $reactie = $_POST['reactie']; $reactie = nl2br($reactie); $reactie = stripslashes($reactie); $reactie_data = array( 'reactie_voor' => $markt_id, 'reactie_user' => $user_data["user_username"], 'reactie_inhoud' => $reactie, 'reactie_tijd' => $date, 'reactie_voor_naam' => $markt_data["markten_naam"] ); reactie_post($reactie_data); } } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Marktreview.nl</title> <!-- css --> <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet"> <link rel="stylesheet" href="css/custom.css"> <!-- /css --> </head> <body> <nav class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Open navigatiebalk</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="./index.php" style="width: 250px; height: 25px;"> <img src='./images/logo.png' height="32"> </a> </div> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class='nav navbar-nav'> <li> <a href='index.php'> <i class="fa fa-home"></i> Startpagina </a> </li> <li class="active"> <a href='./markt.php'> <i class="fa fa-calendar"></i> Alle markten </a> </li> <li class='dropdown'> <a href='/shop'> <i class="fa fa-envelope"></i> Contact </a> </li> <li> <a href='./disclaimer.php'> <i class="fa fa-calendar"></i> Disclaimer </a> </li> </ul> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"> <?php if (logged_in() === false) { echo '<a data-toggle="dropdown"><i class="fa fa-user"></i> <b class="caret"></b></a> <ul class="dropdown-menu" role="menu" aria-labelledby="Acc"> <li><a href="./login.php">Login</a></li> <li><a href="./register.php">Register</a></li> </ul>'; } else { echo '<a data-toggle="dropdown"><i class="fa fa-user"></i> <b class="caret"></b></a> <ul class="dropdown-menu" role="menu" aria-labelledby="Acc"> <li><a href="#">change password</a></li> <li><a href="./logout.php">logout</a></li> </ul>'; }?> </li> </ul> </div> </div> </nav> <div class="row"> <div class="col-md-1 fixed"> <center> <div class="well well-sm" style="background-color: rgba(255,255,255,0.4); border: rgba(255,255,255,0.4); box-shadow: 10px 10px 5px #610000;"> <a href="http://www.fb.com" style="color:#3B5998;"><i class="fa fa-facebook fa-4x"></a></i><br> <a href="http://www.twitter.com" style="color:#1BB2E9;"><i class="fa fa-twitter fa-4x"></a></i> </div> </center> </div> </div> <div class="container"> <?php if (empty($errors) === false) { echo output_errors($errors); }?> <div class="row"> <div class="col-md-8"> <div class="well well-sm"> <?php if (empty($_GET['markt'])){ echo ' <form class="form-inline" action"zoeken.php" methode="post"> <div class="form-group has-error"> <input type="text" class="col-xs-2 form-control" id="zoeken" name="zoeken" placeholder="zoek"> <button type="submit" class="btn btn-danger">zoek</button> <a href="./markt.php?filter=naam" type="button" class="btn btn-danger">filter op naam</a> <a href="./markt.php?filter=provincie" type="button" class="btn btn-danger">filter op provincie</a> <a href="./markt.php?filter=stad" type="button" class="btn btn-danger">filter op stad</a> <a href="./markt.php" type="button" class="btn btn-danger">geen filter</a><br><br> </div> </form> <table class="table table-striped table-bordered"> <thead> <tr> <td>Naam</td> <td>Provincie</td> <td>Stad</td> <td>Organisator</td> <td>Type</td> </tr> </thead> <tbody> <tr>'; if (empty($_GET["filter"])){ include 'list_nofilter.php'; } else { $filter_input = $_GET["filter"]; $filter_1 = 'naam'; $filter_2 = 'provincie'; $filter_3 = 'stad'; if(strpos($filter_input, $filter_1) !== false){ include 'list_name.php'; } if(strpos($filter_input, $filter_2) !== false){ include 'list_provincie.php'; } if(strpos($filter_input, $filter_3) !== false){ include 'list_stad.php'; } } echo ' </tr> </tbody> </table> </div>'; } else { if (markt_exists($markt_id) === true) { echo' <h2> ' . $markt_data["markten_naam"] . ' - ' . $cijfer_data["cijfer_totaal"] . ' </h2> naam:<b> ' . $markt_data["markten_naam"] . '</b><br> provincie:<b> ' . $markt_data["markten_provincie"] . '</b><br> stad:<b> ' . $markt_data["markten_stad"] . '</b><br> dagen aanwezig:<b> ' . $markt_data["markten_dag1"] . ', ' . $markt_data["markten_dag2"] . '</b><br> type markt:<b> ' . $markt_data["markten_type"] . '</b> <h2> Cijfers </h2> Totaal:<b> ' . $cijfer_data["cijfer_totaal"] . '</b><br> Algemeen:<b> ' . $cijfer_data["cijfer_algemeen"] . '</b><br> Klantvriendelijkheid:<b> ' . $cijfer_data["cijfer_klantvriendelijkheid"] . '</b><br> service:<b> ' . $cijfer_data["cijfer_service"] . '</b><br> prijs:<b> ' . $cijfer_data["cijfer_prijs"] . '</b><br> kwaliteit:<b> ' . $cijfer_data["cijfer_kwaliteit"] . '</b><br> hygiene:<b> ' . $cijfer_data["cijfer_hygiene"] . '</b><br> presentatie:<b> ' . $cijfer_data["cijfer_presentatie"] . '</b><br> product:<b> ' . $cijfer_data["cijfer_product"] . '</b><br> <a href="http://localhost/update/cijfer.php?markt=' . $markt_id . '">geef een cijfer</a> </div> <div class="well well-sm"> <h2> Reviews </h2> <hr> '; $result = mysql_query("SELECT * FROM site_reacties WHERE reactie_voor = '$markt_id'"); if ($result) { if (mysql_num_rows($result) == 0){ echo 'er zijn nog geen reacties geplaatst! <hr>'; } else { while($row = mysql_fetch_array($result)){ echo '<div style="background-color:#E6E6E6;><p class="text-left">reactie door:' . $row["reactie_user"] . '</p><p class="text-center">' . $row["reactie_inhoud"] . '</p><p class="text-right">geplaatst op: ' . $row["reactie_tijd"] . '</p></div><hr>'; } } } echo ' <form role="forum" method="post" action"">'; $reactie_voor = $markt_id; $reactie_user = $user_data["id"]; echo ' <textarea class="form-control" id="reactie" name="reactie" rows="3" maxlength="250" placeholder="Geef een revieuw over deze markt"></textarea><br> <br><button type="submit" class="btn btn-danger">plaats</button> </form> </div>'; } else { echo'Markt ID in de URL komt niet overeen met een markt in onze database </div>'; } } ?> </div> <div class="col-md-4"> <?php if (logged_in() === false) { echo ' <div class="well well-sm"> <form role="form" method="post" action="login_pc.php"> <div class="form-group"> <input type="text" class="form-control" id="username" name="username" placeholder="Voer hier uw gebruikersnaam in"> </div> <div class="form-group"> <input type="password" class="form-control" id="password" name="password" placeholder="Voer hier uw wachtwoord in"> </div> <div class="form-group"> <button type="submit" class="btn btn-default">Inloggen</button> </div> </form> <hr> <a href="./register.php">Nog geen lid?</a> <br> <a href="./changepassword.php?type=Offline">wachtwoord vergeten</a><br> <a href="./markttoevoegen.php">Markt toevoegen</a> <br> </div>'; } else { echo ' <div class="well well-sm"> <p> welkom, ' . $user_data["user_name"] . '.<br> </p> <hr> log uit <br> <a href="./markttoevoegen.php">Markt toevoegen</a><br> </div>'; }?> </div> </div> </div> <!-- JS --> <script data-src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" style="visibility:hidden;"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> <!-- /js --> </body> </html> |
Succesquote:Op donderdag 6 maart 2014 22:40 schreef totalvamp het volgende:
[..]
Dit is makkelijker te overzien als je de code plaatst
quote:Op donderdag 6 maart 2014 22:40 schreef totalvamp het volgende:
[..]
Dit is makkelijker te overzien als je de code plaatst
Nou het probleem is als volgt;quote:Op donderdag 6 maart 2014 22:39 schreef ludicrous_monk het volgende:
Ik snap geen fuck van je OP. Over wat voor map en bestanden heb je het?
Ik weiger tijd te steken in code waar de programmeur duidelijk ook geen tijd in heeft gestoken.quote:
Hier kan ik niks in terugvinden over de database verbindingen.quote:
quote:donderdag 6 maart 2014 22:46 schreef CrashO het volgende:[/b]
[..]
Ik weiger tijd te steken in code waar de programmeur duidelijk ook geen tijd in heeft gestoken.
De helft is voorzien van tabs en de andere helft is getabt als een randdebiel. Copy pastes van code blokken?En zie ik daar een regelmatig een echo van 20 regels?
En dat hele gedoe is nog een ranzige crosspost ook
![]()
Dan heb je nog nooit ergens gewerkt waar ze het concept OOP nog niet kenden...quote:Op donderdag 6 maart 2014 22:57 schreef zoem het volgende:
De lap code is zo groot en onduidelijk dat het ondoenlijk is om het te debuggen. Twee keer knipperen met je ogen en je bent een uur verder.
Wordpress?quote:Op donderdag 6 maart 2014 22:58 schreef totalvamp het volgende:
Dan heb je nog nooit ergens gewerkt waar ze het concept OOP nog niet kenden...
Duizenden regels binnen dezelfde file is wel treurig inderdaad. Dan wordt het tijd voor een stevige refactorquote:Op donderdag 6 maart 2014 22:58 schreef totalvamp het volgende:
Dan heb je nog nooit ergens gewerkt waar ze het concept OOP nog niet kenden...
een keer een index.php gezien van ongeveer 3000 regels aan code, dit is niks vergeleken dat xD
Deze code is alleen nutteloos om te een oplossing te komen, aangezien we niet zien waar de data vandaan komt.
Neequote:
Dit, vandaar ook dat ik ernaar vroeg.quote:Op donderdag 6 maart 2014 23:05 schreef CrashO het volgende:
Btw.
Om toch OT te blijven (en zonder die crap code van Andijvie_ door te lezen) Wanneer je de database gevens aangepast hebt (en een schone tabel... ) is het gewoon onmogelijk om oude gevens te krijgen. Of je hebt de db info niet aangepast, of het komt niet uit de tabel, of je hebt gewoon de oude tabel gekopieërd en laat die info zien.
Dus los van eventuele code.
Andijvie is momenteel actief in zijn crosspost topic. Waar hij al 2x gereageert heeft (sinds de laatste 9 replies in dit topic)quote:Op donderdag 6 maart 2014 23:07 schreef totalvamp het volgende:
Ik zou andijvie ook aanraden met classes te leren werken
Misschien kan het slecht tegen kritiek. Maar zonder het complete script kunnen we sowieso niet helpen.quote:Op donderdag 6 maart 2014 23:10 schreef CrashO het volgende:
[..]
Andijvie is momenteel actief in zijn crosspost topic. Waar hij al 2x gereageert heeft (sinds de laatste 9 replies in dit topic)
Helaas wel... Als ik code van mezelf van 4 jaar terug bekijk schaam ik me ervoor. Uiteindelijk ga ik het wel herbouwen maar kost gewoon erg veel tijd en blijft daardoor lang liggen.quote:
Hmm. Als ik een simpele form action heb dan ga ik echt niet alle klassen autoloaden. Dan doe ik alleen de benodigde klassen.quote:Op donderdag 6 maart 2014 23:03 schreef zoem het volgende:
Tegenwoordig zou handmatig includen amper meer nodig hoeven te zijn met een (psr-0) autoloader. Mijn handen gaat altijd jeuken als ik spaghetti zie. Ach ja, iedereen is zo begonnen.
Met een autoloader laadt je sowieso nooit meer dan nodig, dat is het voordeel ervan.quote:Op zaterdag 8 maart 2014 18:15 schreef robin007bond het volgende:
[..]
Hmm. Als ik een simpele form action heb dan ga ik echt niet alle klassen autoloaden. Dan doe ik alleen de benodigde klassen.
Oh, dat wist ik eerlijk gezegd niet. Mooi.quote:Op zaterdag 8 maart 2014 18:17 schreef totalvamp het volgende:
[..]
Met een autoloader laadt je sowieso nooit meer dan nodig, dat is het voordeel ervan.
Zo heb ik 10 jaar geleden voor mijn sportvereniging een wedstrijdprogramma geschreven voor het jaarlijkse toernooi, ik heb in een overeenkomst laten vastleggen dat het niet mag worden verspreid. Puur omdat ik niet wil dat anderen die code zienquote:Op zaterdag 8 maart 2014 17:36 schreef bondage het volgende:
[..]
Helaas wel... Als ik code van mezelf van 4 jaar terug bekijk schaam ik me ervoor. Uiteindelijk ga ik het wel herbouwen maar kost gewoon erg veel tijd en blijft daardoor lang liggen.
Om het moment dat een object wordt gecreëerd en php de class niet kan vinden wordt de autoloader-functie aangesproken. Je kunt daar je eigen functie(s) aan koppelen die op basis van de classnaam de juiste file opzoekt en deze include. Op deze manier worden dus alleen de bestanden geinclude die daadwerkelijk nodig zijn. De term psr-0 slaat op de autloader-standaard, zodat niet iedereen zijn eigen constructie gaat bedenken.quote:Op zaterdag 8 maart 2014 18:24 schreef robin007bond het volgende:
[..]
Oh, dat wist ik eerlijk gezegd niet. Mooi.
Helder. Ik heb het al even doorgenomen. Erg handig.quote:Op zaterdag 8 maart 2014 19:39 schreef zoem het volgende:
[..]
Om het moment dat een object wordt gecreëerd en php de class niet kan vinden wordt de autoloader-functie aangesproken. Je kunt daar je eigen functie(s) aan koppelen die op basis van de classnaam de juiste file opzoekt en deze include. Op deze manier worden dus alleen de bestanden geinclude die daadwerkelijk nodig zijn. De term psr-0 slaat op de autloader-standaard, zodat niet iedereen zijn eigen constructie gaat bedenken.
http://www.php-fig.org/psr/psr-0/quote:Op zaterdag 8 maart 2014 20:06 schreef robin007bond het volgende:
[..]
Helder. Ik heb het al even doorgenomen. Erg handig.
Thanks.quote:Op zaterdag 8 maart 2014 20:15 schreef Boze_Appel het volgende:
[..]
http://www.php-fig.org/psr/psr-0/
Beter dan die github-link. (want meteen linkjes naar de andere psr's)
Zo even snel uit mijn hoofd:quote:Op maandag 10 maart 2014 13:04 schreef DannyDeko het volgende:
Ik heb weer een vraagstukje waar ik niet uit kom:
Ik wil een lijst maken met daarin alle spelers die in een bepaalde tijd voor slechts 1 club hebben gespeeld, en ook hoeveel wedstrijden ze voor die club hebben gespeeld.
De tabel "participation" is opgebouwd uit de volgende kolommen: "gameID,clubID,playerID,minuteIn,minuteOut"
Naar mijn idee zou ik dus voor elke speler het aantal clubs waar die voor gespeeld heeft moeten tellen en daarna een WHERE ....... < 2 er in gooien zodat enkel de spelers overblijven die slechts voor 1 club gespeeld hebben.
Maar ik krijg het simpelweg niet voor elkaar om per playerID het aantal clubs weer te geven.
Hier een voorbeeld van een speler die dus voor meerdere clubs heeft gespeeld:
(gameID,clubID,playerID,minuteIn,minuteOut)
570,20,1317,78,90,8
1225,2,1317,1,90,8
Hoop dat iemand me een zetje in de goede richting kan geven
1 2 3 4 | SELECT playerID FROM participation GROUP BY playerID HAVING COUNT(clubID) < 2 |
Edit: Werkt toch niet helaas. Die query telt welke playerID's slechts 1 wedstrijd gespeeld hebben, ipv hoeveel wedstrijd voor slechts 1 club.quote:Op maandag 10 maart 2014 13:08 schreef Rockfire het volgende:
[..]
Zo even snel uit mijn hoofd:
[ code verwijderd ]
1 2 3 4 | SELECT p.name, count(p.name) AS games, part.clubID, count(DISTINCT clubID) AS clubs FROM person p JOIN participation part ON part.playerID = p.personID GROUP BY p.name |
quote:Op maandag 10 maart 2014 13:19 schreef DannyDeko het volgende:
[..]
Edit: Werkt toch niet helaas. Die query telt welke playerID's slechts 1 wedstrijd gespeeld hebben, ipv hoeveel wedstrijd voor slechts 1 club.
1 2 3 4 | SELECT playerID FROM participation GROUP BY playerID HAVING COUNT(DISTINCT(clubID)) < 2 |
Je kunt geen aggregate functie zoals COUNT combineren met WHERE. Daarvoor is HAVING uitgevonden.quote:Op maandag 10 maart 2014 13:19 schreef DannyDeko het volgende:
Edit 2:
Met de volgende code heb ik kunnen tellen voor hoeveel clubs ze hebben gespeeld, alleen nu het selecteren van alleen diegene die bij "clubs" 1 hebben.
"WHERE count(DISTINCT clubID) = 1" mag helaas niet :p
Ik mis tests en ik ben zeker geen fan van je shell execution in je PHP script, volgens mij heb je daar al dingen voor. Verder zou ik je mimetype anders opvragen:quote:Op maandag 10 maart 2014 07:58 schreef Chandler het volgende:
Iemand ervaring met het uitzoeken van verschillen in afbeeldingen (motion detection) m.b.v. php ?
Ik ben nu meerdere classes aan het testen (gevonden op't internet) en imagemagick maar moet zeggen dat ik op dit moment nog niet echt heel tevreden ben met de resultaten dus zou ik willen weten of hier er al mensen mee hebben gespeeld?
Classes:
http://www.phpclasses.org(...)hey-are-similar.html
http://www.robert-lerner.com/imagecompare.php
Mijn gecombineerde versie:
http://pastebin.com/x6sZ1YFU
Resultaten
http://pastebin.com/VSdQUtLJ (nog niet klaar, draait nog steeds). (Je kunt er weinig mee aangezien ik zelf de plaatjes wel kan zien en het zo kan vergelijken.. of de waarden juist zijn.). Tot nu toe is de waarde 4 het meest accuraat (exec met imagemagick) maar als script doet de 2e functie anders ook goed zijn werk (resultaat vs snelheid)
Anyone?
1 2 3 4 | SELECT p.name, average(SUM(part.minuteOut-part.minuteIn),count(*)) FROM person p JOIN participation part ON p.personID = part.playerID GROUP BY p.name |
Average is geen kolomnaam maar een functie.quote:Op maandag 10 maart 2014 16:23 schreef DannyDeko het volgende:
Weer een vraagje (:
Ik heb de volgende code waar ik weer een constraint aan wil meegeven, namelijk dat enkel diegene "average" > 45 hebben worden geselecteerd.
[ code verwijderd ]
Met zowel HAVING count(average) en WHERE average krijg ik te zien dat average geen kolom is in die clause.
1 2 3 4 5 | SELECT p.name, average(SUM(part.minuteOut-part.minuteIn),count(*)) avg FROM person p JOIN participation part ON p.personID = part.playerID GROUP BY p.name HAVING avg > 10 |
1 | $result = $mysqli->query('SELECT id, rack, temperature, recordtime FROM temperatures WHERE rack = "O8" AND DATE(recordtime) = DATE(NOW())'); |
1 | foreach($result as $r) { |
http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html#10quote:Op dinsdag 11 maart 2014 15:01 schreef xaban06 het volgende:
Ik heb PHP geleerd in de tijd van PHP 4 en heb daarna jaren lang niks meer gedaan. Er is een hoop veranderd, vooral ook de mysql functies.
Ik heb laatst een script gedownload.
Daarin heb ik:
[ code verwijderd ]
Iets verder op gebruik ik $result:
[ code verwijderd ]
Ik wil in de query WHERE rack = "O8" veranderen naar WHERE rack = $rack. Dus in plaats van een statisch waarde, wil ik een $random waarde in de query.
Met de huidige code kan dat niet. Volgens mij moet ik met prepare statement werken, maar daar heb ik geen kaas van gegeten. Heb het een en ander geprobeerd, maar ik kom er niet uit.
Wie kan mij erbij helpen?
Dat is weer PDO en moet ik het script deels ombouwen.quote:Op dinsdag 11 maart 2014 15:04 schreef Maringo het volgende:
[..]
http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html#10
Probeer die eens.
1 2 3 4 5 6 7 | $rackname = $_GET['rack']; $stmt = $mysqli->prepare("SELECT id, rack, temperature, recordtime FROM temperatures WHERE rack = ? AND DATE(recordtime) = DATE(NOW())"); $stmt->bind_param("s", $rackname); $stmt->execute(); $result = $stmt->fetch(); foreach($result as $r) { |
1 | PHP Warning: Invalid argument supplied for foreach() in /var/www/x.php on line 100, referer: http://x/x.php |
http://codex.wordpress.or(...)eference/the_contentquote:Op dinsdag 11 maart 2014 15:33 schreef boskameel het volgende:
Is het mogelijk om in wordpress voordat de pagina geoutput wordt bepaalde strings te vervangen? Ik heb een aantal plugins en wil daarin woorden veranderen/ weghalen.
var_dump($result); en kijk wat er terug komt uit de database. Misschien ligt het aan je query zelf.quote:Op dinsdag 11 maart 2014 15:25 schreef xaban06 het volgende:
[..]
Dat is weer PDO en moet ik het script deels ombouwen.
Ik heb het volgende gepuzzeld, maar werkt nog niet helemaal:
[ code verwijderd ]
[ code verwijderd ]
Wanneer ik geen $var gebruik in de query, werkt het gewoon, dus de query klopt gewoon.quote:Op dinsdag 11 maart 2014 16:22 schreef Maringo het volgende:
[..]
var_dump($result); en kijk wat er terug komt uit de database. Misschien ligt het aan je query zelf.
...en dat maakt het somehow een minder goed idee om even te debuggen en wat foutmeldingen danwel variabelen te outputten?quote:Op dinsdag 11 maart 2014 17:13 schreef xaban06 het volgende:
[..]
Wanneer ik geen $var gebruik in de query, werkt het gewoon, dus de query klopt gewoon.
Sorry hoor..quote:Op dinsdag 11 maart 2014 17:34 schreef KomtTijd... het volgende:
[..]
...en dat maakt het somehow een minder goed idee om even te debuggen en wat foutmeldingen danwel variabelen te outputten?
Veel uitproberen en php.net raadplegen. Daarnaast kun je simpele tutorials volgen om een beetje op weg te raken.quote:Op dinsdag 11 maart 2014 18:45 schreef BroodjeKebab het volgende:
Ik heb deze reeks een doorgespit. Hoe zijn jullie zo'n PHP/MySQL freaks geworden? Ik wil zou het ook dolgraag willen...
Hoe hebben jullie PHP/MySQL geleerd als ik vragen mag?
quote:Op dinsdag 11 maart 2014 18:50 schreef totalvamp het volgende:
[..]
Veel uitproberen en php.net raadplegen. Daarnaast kun je simpele tutorials volgen om een beetje op weg te raken.
En veel geduld hebben
Ja joh? Php.net? Zijn daar losse tuts gewoon? Ik dacht dat er een boek voor nodig was joh ! Zelfs op school werd me boeken aangeraden, maar die zijn meestal heel dik (minimaal 500 pagina's)quote:Op dinsdag 11 maart 2014 19:01 schreef KomtTijd... het volgende:
Met iets eenvoudigs beginnen en steeds meer proberen. Php docs erbij, docs van je cms/framework erbij, google erbij, dit topic erbij...
Eerst leren programmeren (maakt niet zoveel uit in welke taal, het gaat om de concepten) en daarna gewoon de documentatie van PHP en MySQL lezen. Daar staat alles in dat je nodig hebt.quote:Op dinsdag 11 maart 2014 18:45 schreef BroodjeKebab het volgende:
Ik heb deze reeks een doorgespit. Hoe zijn jullie zo'n PHP/MySQL freaks geworden? Ik wil zou het ook dolgraag willen...
Hoe hebben jullie PHP/MySQL geleerd als ik vragen mag?
Gedaan, ik kom er niet uitquote:Op dinsdag 11 maart 2014 17:49 schreef KomtTijd... het volgende:
Oh mij heb je er niet mee hoor, ik dacht dat je zelf een oplossing zocht..
Zo te zien mag je nog even terug de documentatie in want je gebruikt fetch verkeerd:
www.php.net/manual/en/mysqli-stmt.fetch.php
Zie procedural example
Ik had er wel aan gedacht om hier hulp te vragen of iig te vragen om een duwtje in de goede richting te krijgen voor bepaalde zaken, maar ik weet niet of deze reeks hiervoor bedoelt is?quote:Op dinsdag 11 maart 2014 19:11 schreef KomtTijd... het volgende:
De examples op php.net zijn zeer duidelijk. Echt tutorials volgen is leuk als je nog in het "hello world" stadium zit, maar daarna moet je het toch echt hebben van je eigen inzicht, de juiste dingen googlen om antwoorden te vinden op je vragen en de docs van de software waar je mee bezig bent uitpluizen om de juiste handvatten te vinden.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |