mstx | maandag 31 december 2012 @ 11:44 | |||||
![]() Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt ![]() Zie ook: • PHP Dataverwerking • Officiële PHP website • PHP Documentatie • MySQL Reference Manual • Yet Another PHP Faq • PHP Cheat Sheet • PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc Tutorials: • W3Schools PHP • W3Schools SQL Succes heren met het volgende deeltje! | ||||||
henrivo | dinsdag 1 januari 2013 @ 11:02 | |||||
Devvy newyear! | ||||||
Pakspul | dinsdag 1 januari 2013 @ 15:13 | |||||
| ||||||
lhk | woensdag 2 januari 2013 @ 14:34 | |||||
Hey allemaal, ik ben momenteel bezig met een wordpress theme en - omdat ik er weinig verstand van heb - loop ik al direct vast. Heb hier al over gezocht via allerhande fora (oa wordpress zelf) maar niemand heeft tot nu toe het verlossende woord: Ik heb volgens mij een vrij eenvoudig theme met diverse pagina's, zoals contact, over mij enzovoort. Onder die pagina's wil ik nu subpagina's hangen. De navigatie wil ik in de sidebar hebben. Daarom wil ik in de sidebar van een pagina als contact een lijst toevoegen met de parent en de children van een specifieke pagina, als volgt: Contact (parent) Route (child) Formulier (child) In het kort komt het hier op neer: 1. Op de sidebar van een pagina die children heeft moet een linklijst komen met de parent en de children. 2. Op de sidebar van een childpagina moet diezelfde lijst komen. 3. Op de sidebar van een pagina zonder children, moet geen lijst komen. Ik heb nu deze code:
Dit werkt wel op de childpagina's, daar krijg je een mooie lijst met parent en children, maar op de parentpagina geeft hij alleen de children. Hoe kan ik dit aanpassen? Ik ben een echte php beginner, dus ik hoop dat iemand mij hiermee kan helpen! | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 00:03 | |||||
![]() Spot de 10 fouten. En dit is dan HBO niveau. [ Bericht 5% gewijzigd door #ANONIEM op 04-01-2013 00:05:41 ] | ||||||
Juicyhil | vrijdag 4 januari 2013 @ 00:09 | |||||
else bestaat helemaal niet in PHP! Wat dom zeg. | ||||||
Diabox | vrijdag 4 januari 2013 @ 00:10 | |||||
dollar tekens ook niet :S | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 00:11 | |||||
Mooiste is dat je dan met verbeteringen aankomt en je gewoon opmerkinge naar je hoofd krijgt als 'ik heb een hekel aan mensen die zich willen bewijzen' ![]() Is niet zo moeilijk om dat te doen met zulke crappy code he. | ||||||
Diabox | vrijdag 4 januari 2013 @ 00:11 | |||||
Wow, bedoel je dat dit afkomstig is van 'n docent? | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 00:12 | |||||
Nee joh, een student die zichzelf application developer/webdesigner noemt. | ||||||
Diabox | vrijdag 4 januari 2013 @ 00:13 | |||||
![]() | ||||||
Fusioxan | vrijdag 4 januari 2013 @ 00:17 | |||||
Ik heb er ook wel eens moeite mee hoor, dat ik C++ en PHP bijvoorbeeld door elkaar haal. Ben je een webpagina aan het schrijven, begin je met int counter = 0; etc. Toch even een vraagje over dat stukje code; vinden jullie dubbele quotes een fout of gewoon een no-go? Ik gebruik bij strings altijd enkele, omdat bij HTML altijd dubbele quotes moeten worden gebruikt. | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 00:17 | |||||
En ik quote: Ja sorry, ik ben allergisch voor kut code. Dan krijg ik spasmes en moet ik het proberen te herstellen. My bad. [ Bericht 5% gewijzigd door #ANONIEM op 04-01-2013 00:17:35 ] | ||||||
Boze_Appel | vrijdag 4 januari 2013 @ 00:18 | |||||
"Keep it for yourself." | ||||||
Diabox | vrijdag 4 januari 2013 @ 00:19 | |||||
Is niet je beste vriend neem ik aan. | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 00:19 | |||||
Dit was overigens ook een reactie:
| ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 00:19 | |||||
Nee niet echt. Ik noemde zijn code ook dramatisch, misschien dat dat er iets mee te maken heeft. | ||||||
Fusioxan | vrijdag 4 januari 2013 @ 00:24 | |||||
Heb ik ook een hekel aan, slordige code. Variabelen als $p en $u, verkeerde inspringingen, verkeerd commentaar blergh. Ik wil, dat ik aan de naam van de variabelen kan zien wat het kan/hoort te bevatten. Helaas zijn er wat medestudenten het oneens met mij... | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 00:27 | |||||
Human Readable Code ![]() | ||||||
StM | vrijdag 4 januari 2013 @ 04:38 | |||||
Bepaalde mensen moet gewoon verboden worden om te programmeren ![]() | ||||||
Juicyhil | vrijdag 4 januari 2013 @ 08:35 | |||||
Bespaart je wel geheugen en schijfruimte ![]() | ||||||
Maringo | vrijdag 4 januari 2013 @ 09:34 | |||||
zolang het geen globale variabele zijn, maar alleen een variabele binnen een functie, zie ik het probleem niet. Een gemiddeld mens kan best onthouden wat er in de variabele zit. Het is gewoon kansloos om elke variabele uit te schrijven waar het voor staat. Dat maakt je code alleen maar onoverzichtelijk en rommelig. Het hele idee Human Readable Code (of elke andere benaming ervoor) is ook ver over de top gegaan. Dat er standaarden zijn in de benamingen van functies ( fetchVariabels() of fetchVars() ipv fVar(), func38() of thx() ) dat kan ik helemaal begrijpen, maar dat het als 'fout' gezien wordt als je de else of elseif op een nieuwe regel begint ipv op dezelfde regel als de } van de vorige is gewoon onzin. | ||||||
Pakspul | vrijdag 4 januari 2013 @ 10:29 | |||||
Ja en nee, in sommige talen heeft de lengte van je variabel naam geen invloed op geheugen gebruik. Schijfruimte gebruik uiteraard wel, maar voor ontwikkeling is het wel handig dat je je eigen code kunt begrijpen. Daarnaast kun je er later obfuscator software overheen gooien die alle variabel- en functienamen. Bv $post_date_gmt = $wpt1 en wpt_mashup_create_answers_post = fwpt1. Je code die je uiteindelijk gaat gebruiken zal minder in schrijfruimte innemen en security through obscrutity is een bijkomend voordeel. | ||||||
StM | vrijdag 4 januari 2013 @ 13:57 | |||||
De code stijl (else wel of niet op een nieuwe regel) is wel iets heel anders als je variabele benaming. Wat mij betreft knal je er 10 enters tussen, zolang het maar consistent gebeurd volgens de afgesproken stijl. Dat je nu nog weet wat var $x betekend is leuk, maar weet je collega of jijzelf het over een jaar of 2 jaar ook nog steeds? Je hebt duidelijk nooit gewerkt aan projecten van meer dan 100k LOC over duizenden bestanden. Je kan en wil dan echt niet meer na gaan moeten denken over wat iets doet en wat er in zou kunnen zitten. Dan wil je gewoon zien $oActiveUserCollection ipv $uc. Globale variabelen (op je superglobals na) zijn trouwens per definitie evil. | ||||||
Pakspul | vrijdag 4 januari 2013 @ 14:28 | |||||
Als je 100k LOC aan code hebt die niet object georiënteerd is, dan moet je het al per definitie weggooien. Daarnaast ben ik het wel met het punt eens dat je soms $temp variabelen kunt gebruiken die kwa naam weinig zeggen wat ze precies hebben, maar in hun context perfect duidelijk zijn. | ||||||
Fusioxan | vrijdag 4 januari 2013 @ 14:32 | |||||
Ja oké, daar ben ik het mee eens. In een simpele methode kan je wel een variabele als $x hebben. Maar als het over meerdere methodes gebruikt wordt wil ik gewoon zien wat het hoort te bevatten. Bijvoorbeels als je $uc hebt wat null bevat, terwijl het een object hoort te bevatten. Dat zie je echt niet aan de variabele. $userCollection is in dit geval vele male beter, dat moet je met me eens zijn. Het scheelt zoveel met het debuggen van een 'vreemd' script dat je weet wat de variabele hoort te bevatten. Dit geldt niet enkel voor PHP, maar voor alle programmeertalen. | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 14:34 | |||||
Human Readible Code is zoveel meer dan een if/else statement definitie. Leuk dat jij onthoudt dat $p staat voor Person en $u voor Unit, degene die over 3 jaar jouw code gaat updaten weet dat niet. | ||||||
Fusioxan | vrijdag 4 januari 2013 @ 14:39 | |||||
Wat ik me ook zo aan erger, engels en nederlands programmeren... Ik herinner me het net, want p staat in ons huidige programma voor positie (ja, oké, het is JAVA, maar dat moet van school). Dan beginnen ze weer over een klasse Rijden met als methodes: forward(), leftTurn(), rightTurn(), parkeren(), uitparkeren(). Om het netjes te zeggen, om van te kotsen... | ||||||
StM | vrijdag 4 januari 2013 @ 14:44 | |||||
Consistentie is imo vrijwel net zo belangrijk als duidelijk zijn in wat je doet. Dus ook je temp vars duidelijk defineren. Maar goed, ook ik heb zo mijn uitzonderingen (meestal $i, $k en $v). Echter zijn die uiteraard wel zeer beperkt in hun scope. Ook hier is consistent zijn weer belangrijk. Er kunnen wel degelijk redenen zijn om Nederlands jargon in je naamgeving te gebruiken. Vaak omdat domeinspecifiek taalgebruik heel lastig te vertalen kan zijn en dat eigenlijk niemand daarna nog weet wat het nu exact moet zijn. Maar NOOIT mixen (en voor iets als rijden is het taalgebruik zo algemeen dat dat imo nooit te verantwoorden valt om te vertalen ![]() | ||||||
Maringo | vrijdag 4 januari 2013 @ 14:48 | |||||
Ik heb het niet perse over 1 letterige variabele, ik bedoel meer dat het onnodig is om binnen een functie (dus niet je de vars die je over meerdere functies en/of classes gebruikt) variabelenaam te gebruiken als $ActiveUserCollection terwijl je het ook kan afkorten tot $ActUsrColl. En dat die Human Readable Code verder gaat dan if/else statements, dat begrijp ik ook wel, ik hoef toch niet overal een voorbeeld van te geven. Het is alleen dat er zat mensen zijn die die code zo erg hanteren dat het alsnog niet meer leesbaar is omdat het overdrijven of dat ze meteen in de aanval gaat als iets lames niet klopt. En ja, ik heb aan grote projecten gewerkt, vele malen groter dan 100k LOC. En het is zo vervelend als je steeds onnodig volledige woorden aan het tikken bent. Dat laatste doelde ik dus op. | ||||||
StM | vrijdag 4 januari 2013 @ 14:56 | |||||
Afkorten naar $ActUsrColl is toch ook prima? Als jullie dat maar afgesproken hebben. Ik ben zelf meer van het volledig uitschrijven maar ik zou ook zonder problemen switchen naar een project waar ze een kortere namen gebruiken die nog steeds beschrijven wat er in zit. Je reageerde alleen op een post met 1 letterige vars en die zijn een echte nogo imo net als de vele andere niets zeggende namen die je kan bedenken ![]() | ||||||
Pakspul | vrijdag 4 januari 2013 @ 14:59 | |||||
Terug komend op je consitentie punt van paar posts hier boven. Als je met je team/of jezelf afspreekt dat List altijd een lijst met bepaalde objecten is dan kun jet met gemak $userList, gebruiken. Bij afkortingen zou ik oppassen, als ze duidelijk zijn dan kun je er voor gaan, anders eerste definitie comment plaatsen. | ||||||
StM | vrijdag 4 januari 2013 @ 15:10 | |||||
Klopt ![]() | ||||||
Maringo | vrijdag 4 januari 2013 @ 15:21 | |||||
Dat ben ik met je eens. ![]() Het volledig uitschrijven kan ook overdreven worden. Ik weet nog dat ik aan een project verder moest werken waarin de variabele vaak ontzettend lange namen hadden. Waarvan ik oa deze twee nooit zal vergeten: $OrganizationalScheduleIdentificationCode $OrganizationalScheduleIdentificationName het ID en de naam van het rooster. Twee variabele die vaak terug kwamen in het programma... | ||||||
StM | vrijdag 4 januari 2013 @ 15:28 | |||||
Lang leve een goede IDE met fatsoenlijke completion ![]() De langste die ik zo snel zie in mn recente projecten is de $shopOrderBillingLocationCountryId... | ||||||
Qunix | vrijdag 4 januari 2013 @ 17:11 | |||||
Eens zien... $date wat een string is zou ik de variablename anders noemen. $d zou ik uiteraard anders noemen. De date functie is met een hoofdletter, moet volgens mij met een kleine "d". In de date functie mist een string. De letters moeten in een string staan. De letters in de date functie kloppen niet. Y is 4x een getal. De if statement is een vergelijking tussen een string en een date. Dit als programmeur zou ik niet doen. De if statement kan een === gebruiken. De "d" in de if statement mist een dollar teken. Aan gezien er niets onder de "}" in php, zou ik de "?>" weglaten. Dankzij kennis van Java en andere programmeertalen, zie je gewoon dat PHP echt lelijk is. Java is ook niet mooi. | ||||||
mstx | vrijdag 4 januari 2013 @ 17:18 | |||||
date() geeft gewoon een string terug en === heeft daar geen toegevoegde waarde. | ||||||
StM | vrijdag 4 januari 2013 @ 17:18 | |||||
Je mist de belangrijkste: Het hele concept is flawed aangezien je een datum string vergelijkt op gelijkheid waardoor je na de betreffende datum gewoon weer krijgt dat je kan leren. Wel waarschijnlijk in dat geval voor je hertentamen.... | ||||||
Qunix | vrijdag 4 januari 2013 @ 17:20 | |||||
Ik zou een class maken. Ware het niet dat PHP dat al doet: http://php.net/manual/en/book.datetime.php | ||||||
mstx | vrijdag 4 januari 2013 @ 17:24 | |||||
Overbodige code ![]() Ik zou het gewoon in één regel doen ![]()
| ||||||
Qunix | vrijdag 4 januari 2013 @ 17:25 | |||||
![]() | ||||||
StM | vrijdag 4 januari 2013 @ 17:28 | |||||
Die alleen vrijwel niemand gebruikt omdat nog steeds basis dingen als 2 datums met elkaar vergelijken niet kan... En dan heb ik het helemaal nog niet over zaken als een beetje fatsoenlijke tijdzone berekeningen. Je wil niet weten wat voor ongelooflijk vreselijke code ik daar niet voor heb moeten schrijven... (Application wide de tijdzone default veranderen, datum setten en dan restoren. yay! Er is wel een setTimezone functie maar die werkte dacht ik slechts 1 kant op.) *edit:* Vergelijken lijkt nu wel mogelijk te zijn, het is alleen niet gedocumenteerd dat het kan. Ook zo leuk. Naja ik gebruik Zend_Date maar tegenwoordig. | ||||||
KomtTijd... | vrijdag 4 januari 2013 @ 17:52 | |||||
http://php.net/manual/en/class.datetime.phpstaat er gewoon bij hoor ![]() PHP5.2.2, reden we toen nog op dinosaurussen of al op paarden? ![]() | ||||||
StM | vrijdag 4 januari 2013 @ 18:06 | |||||
Omg idd. En ik heb het zowaar ook in de changelog gevonden:Thats all wat er over staat... Echt weer typisch PHP met zijn vele uitzonderingen want volgens mij is DateTime de enigste die het kan? | ||||||
Juicyhil | vrijdag 4 januari 2013 @ 18:27 | |||||
Omzetten naar timestamp. Timestamp1-timestamp2=verschil | ||||||
StM | vrijdag 4 januari 2013 @ 18:30 | |||||
Ja, uiteraard. Maar dat heeft ook zo zijn nadelen. | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 18:33 | |||||
Datetime lijkt me het beste persoonlijk ![]() | ||||||
Juicyhil | vrijdag 4 januari 2013 @ 18:35 | |||||
op de achtergrond is het.allemaal timestamp... | ||||||
KomtTijd... | vrijdag 4 januari 2013 @ 18:39 | |||||
je gaat me niet met droge ogen vertellen dat je dat handiger vind dan datetime->diff() | ||||||
#ANONIEM | vrijdag 4 januari 2013 @ 18:42 | |||||
Idd, die gebruik ik vaak. | ||||||
Juicyhil | vrijdag 4 januari 2013 @ 19:16 | |||||
Waar zeg ik dat mijn manier handiger is? Ik gebruik zelf ook gewoon date_diff() als het kan hoor... Maar in bash scriptjes oid zou je het zo kunnen oplossen. En daarbij is date_diff vanaf 5.3. Daarvoor kon het niet eens. | ||||||
pascal08 | zondag 6 januari 2013 @ 05:15 | |||||
Hey, ik ben op zoek naar een oplossing voor het volgende probleem: Ik heb een enorme bak aan informatie. Deze informatie moet verwerkt worden via PHP. Zover ik weet zijn er 2 mogelijkheden: de data verwerken in arrays of de data verwerken in een SQL database. De data bestaat uit 2 kruistabellen, die samen een resultaat leveren. Eigenlijk kun je dit zien als een resultaat van 4 mogelijkheden. Ik zou dus alle mogelijkheden en uitkomsten in een database kunnen zetten, maar dat zou mij enorm veel tijd kosten (meer dan 50.000 entries heb je niet zo 1-2-3 handmatig ingevoerd volgens mij ![]() Ik heb al gegoogled naar kruistabellen via SQL, maar daarbij kwam ik niet verder dan de conclusie dat er gewoon 2 tabellen samengevoegd worden om een resultaat uit een andere tabel te halen. Ook niet echt de meest handige oplossing. Weten jullie misschien een manier om informatie van een ( in feite) 4-zijdige kruistabel in een database of PHP-bestand te krijgen? PS: de informatie moet je dus zien als een pincode, bestaande uit 4 cijfers die samen een resultaat opleveren. Ik hoop dat ik het duidelijk heb uitgelegd. ![]() | ||||||
#ANONIEM | zondag 6 januari 2013 @ 05:43 | |||||
Waar krijg je de info vandaan en in welk formaat? | ||||||
pascal08 | zondag 6 januari 2013 @ 13:27 | |||||
Het is gewoon lokale info, momenteel staat het in Excel, maar het is niet noodzakelijk dat het ook vanuit daar geďmporteerd wordt. De informatie bestaat uit korte strings en kleine getallen. Ik ga eens kijken of ik elke mogelijkheid via een script naar een SQL database kan schrijven. | ||||||
Juicyhil | zondag 6 januari 2013 @ 13:34 | |||||
Omzetten naar CSV en in PHP uitlezen. | ||||||
pascal08 | zondag 6 januari 2013 @ 13:35 | |||||
En dan gewoon alle combinaties als enkele rij naar SQL schrijven? Dat was ook het eerste dat in me opkwam als oplossing. ![]() | ||||||
Juicyhil | zondag 6 januari 2013 @ 13:38 | |||||
Check hier voor een library die CSV's kan parsen: http://stackoverflow.com/questions/5341219/csv-library-for-php En dan krijg je gewoon netjes alle rijen die je kan doorlopen en wegschrijven naar SQL. | ||||||
#ANONIEM | zondag 6 januari 2013 @ 13:40 | |||||
is de data per column verschillend? | ||||||
pascal08 | zondag 6 januari 2013 @ 13:41 | |||||
Hoe bedoel je? Het is ongeveer als volgt: 'JA' + 'NEE' + 3 + 8 = 4 'BAL' + 'HOK' + 1 + 2 = 5 'NET' + 'VIS' + 8 + 5 = 4 ... etc. De ene kruistabel geeft een resultaat met combinaties van strings en de andere met combinaties van getallen. Beide resultaten zijn getallen en die worden bij elkaar opgeteld. | ||||||
pascal08 | zondag 6 januari 2013 @ 13:45 | |||||
De database gaat wel minstens 11 keer per minuut per gebruiker aangeroepen worden. Is dit niet te intensief voor een SQL database? | ||||||
#ANONIEM | zondag 6 januari 2013 @ 13:54 | |||||
Gewoon 2 tabellen dus. Je kunt het letterlijk doen zoals het nu is. Per tabel 3 columns en je bent klaar. sql kan wel behoorlijk wat queries aan. Hoeveel gebruikers zijn er? [ Bericht 4% gewijzigd door #ANONIEM op 06-01-2013 13:55:42 ] | ||||||
Juicyhil | zondag 6 januari 2013 @ 13:59 | |||||
Je hoeft het toch maar 1 keer in te lezen vanuit Excel lijkt me? En anders een cron job maken om het 's nachts te doen. | ||||||
pascal08 | zondag 6 januari 2013 @ 14:01 | |||||
Een nieuwe berekening zegt mij dat het 829719 combinaties zijn. Is dit wel te doen? | ||||||
Juicyhil | zondag 6 januari 2013 @ 14:03 | |||||
Waarom niet? En anders het in batches doen. | ||||||
Arcee | zondag 6 januari 2013 @ 14:11 | |||||
FOK! draait ook op MySQL. ![]() Anyway, CSV-bestand maken (en uploaden naar je site) en doelbestand alvast aanmaken in MySQL. Data inlezen met LOAD DATA:
Load data gaat razendsnel, ook met 829.719 records.
| ||||||
GlowMouse | zondag 6 januari 2013 @ 14:25 | |||||
Het ligt er compleet aan wat voor queries je draait. Voor pascal08 zie ik twee PK-lookups en daar kan MySQL er best veel per seconde van aan. | ||||||
pascal08 | zondag 6 januari 2013 @ 14:34 | |||||
Ik ga het eens proberen. Bedankt voor de hulp allemaal! | ||||||
YazooW | maandag 7 januari 2013 @ 19:27 | |||||
Ik hoop dat dit het juiste topic is voor mijn vraag. Ik loop een beetje vast met het SEO gebeuren bij een php/mysql site. Ik zal even een denkbeeldige situatie schetsen om mijn vraag wat verduidelijken. Stel ik heb een database met daarin alle steden van Nederland, dingen die er in staan opgeslagen zijn bijvoorbeeld: Aantal inwoners, naam burgemeester, provincie. Elke stad zou ik zijn eigen pagina kunnen geven. Kom je op de pagina van Amsterdam dan zie je een simpel stukje tekst waarin staat hoeveel inwoners Amsterdam heeft, wie de burgemeester is en bij welke provincie het hoort. Zo'n pagina zou ik kunnen aanroepen met bijvoorbeeld: www.domein.nl/stad.php?stad=amsterdam, mijn vraag nu is hoe Google hier mee omgaat. Stel ik zet bijvoorbeeld een kolom aan de rechtkant van de pagina, de titel van de kolom is "Andere grote steden", met daaronder bijvoorbeeld Rotterdam, die weer linkt naar stad.php?stad=Rotterdam, Utrecht stad.php?stad=Utrecht etc etc. Ik neem aan dat bovenstaande links gewoon gecrawled worden door Google, maar wat doet Google met de pagina's/steden waar niet naar gelinkt wordt op mijn paginas maar die wel bestaan? Stel ik neem de stad Maastricht, nergens op mijn pagina's heb ik een link opgenomen naar de pagina van Maastricht, maar ik heb er wel een searchbox staan die steden kan opzoeken, vul ik in de searchbox Maastricht in dan wordt ik gelinkt naar stad.php?stad=Maastricht. De pagina van Maastricht bestaat, maar staat nergens gelinkt op mijn site, kan Google deze pagina nu wel of niet vinden? Ik hoop dat ik het een beetje duidelijk heb uitgelegd zo ![]() | ||||||
GlowMouse | maandag 7 januari 2013 @ 19:29 | |||||
Het ligt eraan of andere sites naar je gaan linken, maar anders vindt Google je alleen-via-de-zoekmachine-bereikbare pagina's niet. Wellicht dat via de Google Toolbar ook nieuwe urls worden ontdekt, maar dat vermoed ik niet om privacyredenen. | ||||||
mstx | maandag 7 januari 2013 @ 19:31 | |||||
Ik denk ook van niet. En doe iedereen een lol en maak een rewrite aan die je pagina's www.domein.nl/stad/amsterdam en www.domein.nl/stad/den-haag etc. noemt. | ||||||
rekenwonder | maandag 7 januari 2013 @ 19:51 | |||||
http://en.wikipedia.org/wiki/Deep_Web#Crawling_the_deep_Web Ergo: http://www.sitemaps.org/ | ||||||
Swetsenegger | maandag 7 januari 2013 @ 21:34 | |||||
Ik heb een probleem waar ik even niet uit kom. Ik heb een applicatie waar men 1 tot 3 foto's kan uploaden. Minimaal 1 foto is verplicht.
Nu wil ik serverside controleren of er wel minimaal 1 foto is geupload
Het lullige... ook zonder geuploade file geeft de count 3 terug. Ik krijg immers een array met 3 key's zonder value. Enig idee hoe ik makkelijk kan checken of er minimaal 1 foto is geupload? | ||||||
Juicyhil | maandag 7 januari 2013 @ 21:37 | |||||
tmp_name geeft een string, je moet op $_FILES['foto'] de count doen | ||||||
Swetsenegger | maandag 7 januari 2013 @ 21:43 | |||||
Dat geef altijd 5 ![]() Logisch, $_FILES['foto'] geeft een multi dimensionale array van de elementen name, error, tmp_name, type en size. 5 elementen dus. | ||||||
Juicyhil | maandag 7 januari 2013 @ 21:44 | |||||
Doe eens var_dump($_FILES) en post dat es | ||||||
mstx | maandag 7 januari 2013 @ 21:45 | |||||
http://php.net/manual/en/features.file-upload.multiple.php
| ||||||
Swetsenegger | maandag 7 januari 2013 @ 21:48 | |||||
Ja DAT begrijp ik. ALS ik een upload heb moet ik die dmv een loop uit de array gaan vissen. Maar EERST moet ik weten of er uberhaupt een foto is geupload en dat mijn array niet gewoon uit 3 keys zonder value bestaat. | ||||||
#ANONIEM | maandag 7 januari 2013 @ 21:51 | |||||
Dan loop je toch met een foreach eroverheen en kijk je of de value niet leeg is ? Zet je een vlaggetje waarin je bijhoudt of er een file aanwezig is en zo ja, ga door met processen. | ||||||
Swetsenegger | maandag 7 januari 2013 @ 21:52 | |||||
print_r geeft
| ||||||
Juicyhil | maandag 7 januari 2013 @ 21:52 | |||||
Blijkbaar gaat het uploaden mis: UPLOAD_ERR_NO_FILE Value: 4; No file was uploaded. | ||||||
Swetsenegger | maandag 7 januari 2013 @ 21:53 | |||||
Ja dat had ik ook al bedacht, maar dat is best weer een hoop meuk voor zoiets relatief simpels. | ||||||
mstx | maandag 7 januari 2013 @ 21:53 | |||||
[ Bericht 0% gewijzigd door mstx op 07-01-2013 21:57:17 (break) ] | ||||||
GlowMouse | maandag 7 januari 2013 @ 21:53 | |||||
break; | ||||||
Swetsenegger | maandag 7 januari 2013 @ 21:54 | |||||
Eh ja, dat was de originele vraag. Ik heb minimaal 1 foto nodig. Als de gebruiker GEEN foto upload wil ik een foutmelding geven. Maar count geeft dus altijd een value terug, want ik krijg 3 key's zonder value. | ||||||
mstx | maandag 7 januari 2013 @ 21:54 | |||||
Dat is het meest nette inderdaad | ||||||
Swetsenegger | maandag 7 januari 2013 @ 21:56 | |||||
Elegant ![]() | ||||||
mstx | dinsdag 8 januari 2013 @ 11:58 | |||||
Ben ik in een project van een collega bezig, blijkt dat hij nergens in de database indexes heeft gedefinieerd. Query zonder indexes: 26.4 sec., met indexes: 0.09 sec. (zonder cache), maakt toch best wel verschil. ![]() | ||||||
GlowMouse | dinsdag 8 januari 2013 @ 12:01 | |||||
Het blijft een trage query. | ||||||
mstx | dinsdag 8 januari 2013 @ 12:04 | |||||
't is dan ook niet bepaald een kleine. ![]() En optimaliseren ga ik al helemaal niet aan beginnen, ben het liefst zo snel mogelijk van dit project af. ![]() | ||||||
StM | dinsdag 8 januari 2013 @ 16:44 | |||||
Waarom snap ik dat volledig ![]() | ||||||
StM | woensdag 9 januari 2013 @ 16:12 | |||||
Naar aanleiding van de RoR exploit ben ik me er wat meer in gaan verdiepen en er blijkt een vergelijkbaar probleem in PHP te zitten! Wel is het noodzakelijk dat de programmeur een domme fout maakt in tegenstelling tot RoR maar ik denk dat de meesten zich deze nog niet realiseren. http://www.suspekt.org/do(...)nPHPExploitation.pdf Ik was er (theoretisch) vatbaar voor iig ![]() Te weinig validatie op de url encoder die ik gebruik om bv aan de inlogpagina de redirect etc mee te geven | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 21:33 | |||||
Is het mogelijk een getal via regex bij een ander getal op te tellen? Hoe kan ik bijvoorbeeld dit: "Kat.156" omzetten in "Kat.489"? Ik dacht zelf aan: " Kat.( [1-9]* ) => Kat.\1 " , maar hoe tel ik 333 bij 156 op? Ik wil het trouwens het liefst gewoon via de replace-functie van Notepad++ doen. ![]() | ||||||
Juicyhil | woensdag 9 januari 2013 @ 21:35 | |||||
Voor zover ik weet niet. Maar ik kan me eerlijk gezegd geen scenario bedenken waarbij je dat niet in PHP zelf kan oplossen. Regex is daar ook niet voor bedoeld. | ||||||
Pakspul | woensdag 9 januari 2013 @ 21:36 | |||||
Eerst alle getallen in een string preg_match_all doen, pattern zal iets zijn van "/([0-9]+)/" en dan de output array in array_sum gooien. | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 21:36 | |||||
Hoe doe ik dat dan? ![]() | ||||||
GlowMouse | woensdag 9 januari 2013 @ 21:36 | |||||
het kan gewoon met http://nl3.php.net/manual/en/function.preg-replace-callback.php | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 21:37 | |||||
Oké, duidelijk. Stel dit was een CSS-file, wat dan? | ||||||
Pakspul | woensdag 9 januari 2013 @ 21:38 | |||||
Hoe gaat callback om met vooruitkijken in string en bijhouden van tijdelijke variabelen? Global gebruiken? Tosti, werkt mijn antwoord niet? | ||||||
GlowMouse | woensdag 9 januari 2013 @ 21:38 | |||||
dan kan het ook met http://nl3.php.net/manual/en/function.preg-replace-callback.php | ||||||
GlowMouse | woensdag 9 januari 2013 @ 21:40 | |||||
Hij werkt op de gematchte elementen, dus je hoeft bij 'Kat.156' niet alleen een '1' te verwachten, je krijgt '156' bij de juiste regexp. | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 21:40 | |||||
Sorry, hoor, ben echt een n00bie. Is het gewoon een kwestie van deze code runnen en dan wordt de code permanent veranderd? Hoe run ik dit dan is een CSS-file? Gewoon <?php?> tags erom heen? ![]() ![]() | ||||||
Pakspul | woensdag 9 januari 2013 @ 21:43 | |||||
Dus per getal een callback waar je dan eigenlijk het volgende doet
heerlijk Nederlands en Engels door elkaar heen ![]() | ||||||
Pakspul | woensdag 9 januari 2013 @ 21:44 | |||||
Nee je moet het bestand inlezen, dan kun je gaat optellen of wat je ook eigenlijk wilt en dan kun je het resultaat wel weer uitpoepen. | ||||||
GlowMouse | woensdag 9 januari 2013 @ 21:44 | |||||
waar heb je $totaal dan voor nodig? | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 21:45 | |||||
Oké. Hmmm, dan is het misschien handiger om het handmatig te doen. Het zijn ongeveer 200 getallen, dus dat is te overzien. ![]() | ||||||
Swetsenegger | woensdag 9 januari 2013 @ 21:46 | |||||
Ik begrijp blijkbaar het hele vraagstuk niet... wat is er mis met CTRL-R of CTRL-H (afhankelijk van je ontwikkelomgeving) | ||||||
Pakspul | woensdag 9 januari 2013 @ 21:46 | |||||
Hoe wil je anders het totaal bijhouden, zoals Tosti al aangeeft wil hij meerdere bij elkaar optellen. Of krijg je dan direct een array met alle waardes terug? | ||||||
Pakspul | woensdag 9 januari 2013 @ 21:47 | |||||
Als je niet kunt programmeren is dat handiger ja. | ||||||
GlowMouse | woensdag 9 januari 2013 @ 21:49 | |||||
333 is CONST, of hij is wel heel raar met zijn vraag. | ||||||
Pakspul | woensdag 9 januari 2013 @ 21:51 | |||||
ah, kleine lees fout van mijn kant ![]() Voor Tosti, aangezien het om layout gaat zal je een paar waardes hebben die vaker voorkomen en deze kun je gewoon vervangen door het nieuwe getal. | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 21:54 | |||||
Nah, ik ben geen pro inderdaad. Soms is het voor mij dus sneller om dingen handmatig te doen, zoals dit. Bedankt voor jullie hulp though. | ||||||
Arcee | woensdag 9 januari 2013 @ 22:22 | |||||
Hoe zien die andere 200 er ongeveer uit? ![]() | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 22:45 | |||||
Het is zijn allemaal CSS-attributen top:###px; en left:###px;. Die in het PHP-script stonden waren er niet zoveel, dus die heb ik nu al handmatig gedaan. | ||||||
KomtTijd... | woensdag 9 januari 2013 @ 22:57 | |||||
Niet om het één of ander, maar had je dat niet beter op kunnen lossen met een wrapper-div met een margin van 333px? | ||||||
Light | woensdag 9 januari 2013 @ 23:01 | |||||
Dat zou vast te simpel zijn ![]() | ||||||
Pakspul | woensdag 9 januari 2013 @ 23:02 | |||||
Lelijke oplossingen FTW? ![]() | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 23:03 | |||||
Zou wel kunnen ja, maar ik ben dan wel weer zo dat ik liever 200 waardes ga vervangen, die dat ik weer een extra div'je erbij heb. ![]() | ||||||
Tostiapparaatje2 | woensdag 9 januari 2013 @ 23:03 | |||||
Maar wel snel. ![]() | ||||||
KomtTijd... | woensdag 9 januari 2013 @ 23:05 | |||||
Als je een website hebt met 200 gepositioneerde elementen waarvan de positie ook nog eens aangepast moet worden op een nieuwe situatie (groter scherm?), hoef je je daar niet bepaald druk meer om te maken lijkt me ![]() | ||||||
Drommelsch85 | vrijdag 11 januari 2013 @ 00:28 | |||||
Domme PHP vraag.. Ik heb nu de volgende code, ik wil 6 plaatjes weergeven uit een directory van 12. De 6 moeten random worden getoond, geen nummer (1.jpg ~ 12.jpg) mag herhaald worden.
Mijn output is nu dat alle 6 de plaatjes hetzelfde zijn, hoe los ik dit op? Ik wil ze in een array zetten maar weet niet hoe. Ze zijn trouwens inderdaad wel random na iedere refresh, maar ik krijg dus 6x hetzelfde random nummer. | ||||||
Diabox | vrijdag 11 januari 2013 @ 00:35 | |||||
| ||||||
Drommelsch85 | vrijdag 11 januari 2013 @ 00:48 | |||||
Deze spuugt er 12 uit, terwijl hij van de 12 er maar 6 moet uitkiezen, liefst met 6 aparte strings. | ||||||
Diabox | vrijdag 11 januari 2013 @ 00:49 | |||||
Voeg een if-statement toe, i.v.m. dat ik geen idee heb wat voor indices shuffle uitpoept m.b.t. 'n for loop, test het uit zou ik zeggen. (als ie gewoon als keys 0 t/m 11 hanteert gebruik je 'n for loop) | ||||||
Drommelsch85 | vrijdag 11 januari 2013 @ 00:55 | |||||
Die 6 mogen gewoon random, maar ik bedoel dus ongeveer: Totaal = 12 Kiezen = 6 (random) output: echo random($bla), random($bla), random($bla), random($bla), random($bla), random($bla) Die laatste regel omdat het anders niet werkt met afsluitende komma die ik met de rest wel mee-echo. | ||||||
Diabox | vrijdag 11 januari 2013 @ 01:04 | |||||
Je snapt dat range(1,12) een array geeft met de getallen 1 t/m 12, en dat shuffle deze willekeurig door elkaar haalt, en dat je hier vervolgens precies mee kan doen wat jij wil...? | ||||||
Drommelsch85 | vrijdag 11 januari 2013 @ 01:17 | |||||
Jazeker, maar niet hoe ik verder moet. Dit is een mooi voorbeeld zoals ik het wil, alleen wordt hier [Array =1,] enz weergegeven. Ik wil alleen de output van de nummers hebben.
| ||||||
GlowMouse | vrijdag 11 januari 2013 @ 01:37 | |||||
kiezen(0, 1e6; 1); | ||||||
KomtTijd... | vrijdag 11 januari 2013 @ 01:37 | |||||
Als je nou eens niet 6x 'backgrounds/$imagename' neerzet, maar gewoon één keer, en dan een loopje maakt? En je rand() natuurlijk ook binnen die loop houden. | ||||||
Drommelsch85 | vrijdag 11 januari 2013 @ 02:41 | |||||
Komt dit uit Array ( [0] => 764612 ) Dan zit ik met het feit dat 'bla', 'bla', (..) 'bla', in beeld komt, terwijl die laatste komma weg moet. | ||||||
Maringo | vrijdag 11 januari 2013 @ 07:20 | |||||
Simpele oplossing:
| ||||||
boem-dikkie | vrijdag 11 januari 2013 @ 08:45 | |||||
Is het mogelijk om met een sql query twee records met een bepaalde waarde altijd als eerste én laatste te laten zien? Ik heb dus bijvoorbeeld 1, 2, 3, 4, 5, 6. En ik wil met mijn query dat 6 altijd boven aanstaat, 3 altijd onderaan en wat daar tussen valt aan records op alfabetische volgorde wordt gesorteerd. Kan wel 't één en ander vinden over records bovenaan maar de combinatie wordt voor mij wat vaag. | ||||||
mstx | vrijdag 11 januari 2013 @ 08:52 | |||||
| ||||||
Juicyhil | vrijdag 11 januari 2013 @ 08:54 | |||||
![]()
| ||||||
mstx | vrijdag 11 januari 2013 @ 08:57 | |||||
Bij jouw query komen zowel rij 6 als 3 onderaan te staan? | ||||||
Juicyhil | vrijdag 11 januari 2013 @ 08:58 | |||||
dan wordt field(kolom, 6,3,1,2,4,5) same shit | ||||||
Juicyhil | vrijdag 11 januari 2013 @ 09:01 | |||||
maar het gaat erom dat het makkelijker kan dan met een case when | ||||||
mstx | vrijdag 11 januari 2013 @ 09:02 | |||||
Jouw oplossing werkt alleen als je een vast aantal rijen en id's hebt. "1,2,3,4,5,6" was slechts een voorbeeld dus misschien heeft boem-dikkie wel 100.000 rijen, dan wordt het wat lastig om zelf al die id's in te vullen. | ||||||
Juicyhil | vrijdag 11 januari 2013 @ 09:04 | |||||
En hoe ga je dat doen met jouw oplossing dan? ![]() | ||||||
mstx | vrijdag 11 januari 2013 @ 09:06 | |||||
Gewoon zoals het er staat, mijn query hoeft daar niet voor aangepast te worden. 6 komt altijd bovenaan en 3 altijd onderaan en de rest wordt gesorteerd, ongeacht hoeveel rijen er in de tabel staan. | ||||||
Juicyhil | vrijdag 11 januari 2013 @ 09:08 | |||||
Met field() kun je hetzelfde doen hoor. Ik gebruik het vaak genoeg, ook voor 1.000.000 rijen ja | ||||||
mstx | vrijdag 11 januari 2013 @ 09:22 | |||||
Voorbeeld? | ||||||
boem-dikkie | vrijdag 11 januari 2013 @ 09:24 | |||||
1, 2, 3, 4, 5, 6 was inderdaad een voorbeeld. Maar ik kom er zo wel uit denk ik! Thanks voor het meedenken. | ||||||
GlowMouse | vrijdag 11 januari 2013 @ 10:47 | |||||
traag, gebruik UNION ook traag | ||||||
boem-dikkie | vrijdag 11 januari 2013 @ 13:55 | |||||
Ook traag op een tabel met max. 40 rijen? | ||||||
GlowMouse | vrijdag 11 januari 2013 @ 14:02 | |||||
ja | ||||||
Olment | maandag 14 januari 2013 @ 10:43 | |||||
Beste mede fokkers, Kan ik hier ook terecht met een vraag over Joomla, of is er een ander topic over? | ||||||
ursel | maandag 14 januari 2013 @ 10:56 | |||||
Volgens mij is er geen Joomla topic. Wel WordPress. Zou het denk ik maar eerst hier proberen ja. | ||||||
Olment | maandag 14 januari 2013 @ 11:00 | |||||
Dan brand ik maar los. Voor meer informatie gewoon vragen. Werk aan mijn site met joomla 2.5.8. Nu wil ik een page maken waarop mensen dmv invulvelden gegevens kunnen invullen. (een reparatieformulier invullen) Alleen krijg ik de plain text van mijn html of joomla script in de site, en niet een mooi invulveldje. <FORM METHOD="post" ACTION="bestemming"> <I>Vul hier je naam in:</I> <INPUT TYPE="text" NAME="naam" SIZE="20" MAXLENGTH="30"> </FORM> Gebruik is als html zijnde en <field name="test1" label ="Test Field" type="editor" width="300" filter="safehtml" /> Als joomla code, maar ik bijf de text zien en geen veldje. Iemand enig idee? | ||||||
Chandler | maandag 14 januari 2013 @ 11:02 | |||||
textarea heb je voor een groot tekst veld nodig! hoop dat je dat bedoeld. | ||||||
Olment | maandag 14 januari 2013 @ 11:03 | |||||
Ja mijn idee is een pagina waarop mensen hun: Naam, adres, reparatie type en een klachtomschrijving kunnen typen | ||||||
ursel | maandag 14 januari 2013 @ 11:12 | |||||
Joomla heeft toch wel een plugin om formulieren te maken? Wat moet er met de gegevens gebeuren als ze ingevuld zijn? Opgeslagen? Gemailed? | ||||||
Olment | maandag 14 januari 2013 @ 11:19 | |||||
Ik kan qua plugin alleen een inlog form en een registratieform vinden. Ze moeten in een mysql database komen en de gegevens moeten worden gemailed. | ||||||
Olment | maandag 14 januari 2013 @ 11:34 | |||||
Nou, ik heb gevodnen hoe ik plugins kan installeren ![]() Chronoform gevonden als formulier maker,, alleen voor betalen xD Nog ff speuren voor een gratis. | ||||||
Darkomen | maandag 14 januari 2013 @ 11:44 | |||||
Probeer deze Howto eens? Ps, tip, dit soort simpele vragen kan je heel goed in google invullen. | ||||||
Devolution | maandag 14 januari 2013 @ 11:49 | |||||
Ik vermoed dat het met de 'safehtml' filter in je code te maken heeft. Waarschijnlijk wordt daardoor alleen opmaakHTML toegestaan zoals <b> en <i>. Overige HTML tags worden dan gewoon als plaintext in de browser getoond. | ||||||
Olment | maandag 14 januari 2013 @ 15:38 | |||||
Thanks allen. Heb een formulier op mijn site gekregen ![]() Edit: heb een plugin van Chronoforms erin gezet en deze laat mij de formulieren maken [ Bericht 24% gewijzigd door Olment op 14-01-2013 15:44:36 ] | ||||||
Chandler | zondag 20 januari 2013 @ 09:44 | |||||
Heeft iemand een idee hoe je de transparantie van een geanimeerde gif kunt behouden en deze kunt gebruiken voor het maken van een thumbnail? heb al verschillende manieren geprobeerd maar op een of andere manier krijg ik geen juiste waarde van de transparantie kleur bij geanimeerde plaatjes (wel bij niet geanimeerd!!!).
dit gebruik ik alleen bij gifs en png's oplossing onderstaand... via: http://ellislab.com/forums/viewthread/62955/
[ Bericht 51% gewijzigd door Chandler op 20-01-2013 10:03:21 ] | ||||||
Chandler | maandag 21 januari 2013 @ 09:54 | |||||
Even een idee, hoe hier mee om te gaan? Ik heb een berg met afbeeldingen (zo'n 100.000) daarvan is ongeveer 1/5 geanimeerd en de rest niet. Deze wil ik zichtbaar maken op een website echter zit ik met een probleem. De afbeeldingen op de site mogen maximaal 116x116px zijn, waarbij grote afbeeldingen automatisch geresized worden naar 116x116px eventueel met behulp van een crop functie waardoor niet de hele afbeelding zichtbaar is maar toch een leuke thumbnail tevoorschijn komt. Echter heb ik ook animaties die langer of breeder zijn dan 116px maar niet even breed/lang. Nu worden deze geresized op de hoogste waarde waardoor afbeeldingen af en toe er niet uit zien. ![]() Hoe zouden jullie dit aanpakken? oh en ook afbeeldingen die kleiner zijn dan 116x116 (zowel lengte als hoogte) worden niet mooi.... Graag jullie idee hier over! | ||||||
KomtTijd... | maandag 21 januari 2013 @ 10:08 | |||||
centreren, lege ruimte vullen met een standaard background kleur. | ||||||
#ANONIEM | maandag 21 januari 2013 @ 10:08 | |||||
Ik snap het probleem niet helemaal. Je resized dan toch gewoon relatief, en je houdt rekening met een max van 116x116 ?En dat dus. [ Bericht 67% gewijzigd door #ANONIEM op 21-01-2013 10:08:59 ] | ||||||
Tijn | maandag 21 januari 2013 @ 10:13 | |||||
Of je doet helemaal niks serverside en gooit ze gewoon allemaal als achtergrondplaatje in een div met "background-size: cover" ![]() | ||||||
Chandler | maandag 21 januari 2013 @ 10:46 | |||||
Maar dit alles geeft geen antwoord op de plaatjes die te lang of te breed zijn, en nee ga ze niet als background gebruiken ![]() | ||||||
KomtTijd... | maandag 21 januari 2013 @ 11:07 | |||||
1) verklein (indien nodig) de afbeelding tot één van de maten 116px of kleiner is 2) crop (indien nodig) de andere maat tot 116 px check ook dit scriptje even: http://shiftingpixel.com/2008/03/03/smart-image-resizer/ | ||||||
Chandler | maandag 21 januari 2013 @ 11:23 | |||||
Tnx KomtTijd ![]() ![]() | ||||||
Chandler | maandag 21 januari 2013 @ 15:35 | |||||
Andere vraag; stel ik doe een zoek actie op een tabel met LIKE '%en%' dan zou ik het liefst eerst de resultaten willen zien die beginnen met 'en' en daarna pas resultaten waar 'en' in voorkomt. Nu mijn vraag? hoe krijg ik dit voor elkaar? ![]() ![]() | ||||||
Tijn | maandag 21 januari 2013 @ 15:55 | |||||
| ||||||
Chandler | maandag 21 januari 2013 @ 16:08 | |||||
op zich goed, alleen verplaatst deze het naar het eind van de array? kalkoen|kalkoen kalkoenen|kalkoenen koeien|koeien koekjes|koekjes koelkasten|koelkasten koerier|koerier koetsier|koetsier is als uitkomst van
natuurlijk eerst met desc geprobeerd! | ||||||
Tijn | maandag 21 januari 2013 @ 16:13 | |||||
Ik begrijp niet wat je bedoelt. Hoe komt er sowieso opeens een array bij, we hebben het toch over MySQL? Ik begrijp je output niet. Zijn dat de rijen ofzo? Wat staat er in je tabel en wat wil je eruit hebben? | ||||||
Chandler | maandag 21 januari 2013 @ 16:15 | |||||
Ik wil het gebruiken voor een auto complete in een formulier. Ik roep middels ajax een scriptje aan en die gebruikt bovenstaande query om in een database/tabel te zoeken naar categorieën die voldoen aan de gegeven input.. in dit geval koe waarbij ik graag eerst alle woorden wil zien die beginnen met KOE en daarna eventueel woorden waarin het stukje tekst 'koe' voorkomt. Snap je? | ||||||
Tijn | maandag 21 januari 2013 @ 16:26 | |||||
Dat is precies wat mijn voorbeeld doet. Als je "en" vervangt door "koe", krijg je eerst de resultaten die beginnen met "koe" en daarna andere resultaten waar "koe" in voorkomt. Stel je hebt deze tabel die "test" heet:
Als je daar deze query op draait:
... dan komt daar dit uit:
Je sorteert hier op de boolean uitkomst van de conditie (`value` LIKE "koe%"). Daar komt 1 uit als dat waar is en 0 als dat niet waar is. Als je de waardes bovenaan wilt hebben waarvoor de conditie geldt, dan moet je DESC als volgorde gebruiken. Als je de resultaten die voldoen aan de conditie juist onderaan wilt hebben, sorteer je op ASC. | ||||||
Chandler | maandag 21 januari 2013 @ 16:31 | |||||
Je hebt helemaal gelijk Tijn.... op een of andere manier was mijn script blijkbaar aan't cachen?! shift F5 zorgde er voor dat ik met een 'desc' in het order by verhaal de juist waarden vooraan kreeg. Bedankt Tijn! ![]() | ||||||
Tijn | maandag 21 januari 2013 @ 16:32 | |||||
Als je het wil gebruiken als hulp bij het zoeken en je hebt een tabel vol met dubbele waarden, dan wil je waarschijnlijk sorteren op hoe vaak de resultaten voorkomen. In dat geval zou ik er zoiets van maken:
Dan krijg je eerst de waarden die beginnen met koe, en daarbinnen de resultaten die het vaakst voorkomen. Daarna krijg je de andere resultaten, ook op volgorde van hoe vaak deze voorkomen. | ||||||
Chandler | maandag 21 januari 2013 @ 16:33 | |||||
Tnx Tijn maar dat was niet de bedoeling ![]() ![]() | ||||||
Sitethief | dinsdag 22 januari 2013 @ 13:48 | |||||
Waarom werkt dit niet? (PHP Version 5.3.13)
$extraObject en $obj zijn objecten (StdClass) en de andere drie variabelen zijn strings. Waarom geeft dit een Parse Error (Attempt to assign property of non-object)? Je kunt toch gewoon dynamische de namen uit variabelen trekken door {} erom heen te zetten? (zonder zelfs ook geloof ik). het werkt ook niet als ik eerst probeer
| ||||||
Sitethief | dinsdag 22 januari 2013 @ 14:06 | |||||
Oh wacht, obj moet ik wel als object ophalen dan en niet als array ![]() ![]() ![]() ![]() | ||||||
boem-dikkie | dinsdag 22 januari 2013 @ 14:13 | |||||
Enig idee wat ik er aan kan doen als mijn mail() niet werkt op een server? Script werkt op mijn eigen server prima maar op een andere server wordt niks verstuurd. | ||||||
#ANONIEM | dinsdag 22 januari 2013 @ 14:18 | |||||
Je config nalopen, logfiles checken, debuggen. | ||||||
Intrepidity | dinsdag 22 januari 2013 @ 14:20 | |||||
Wellicht niet juist ingesteld binnen php.ini. Wat de mail()-functie precies doet om zijn mail te versturen (via een smtp server, via een binary, etc), moet juist ingesteld staan. | ||||||
YazooW | dinsdag 22 januari 2013 @ 16:36 | |||||
Ik loop een beetje vast met een sql query. Ik heb een simpele testtabel met daarin de kolommen "naam", "nummer" en "total". Nu wil ik naam en nummer samenvoegen en in de kolom "total" opslaan. Als "naam" = piet en "nummer" = 12 dan is "total" = piet12. Met deze query lukt het ook:
Het probleem is alleen dat hij met deze query een nieuwe rij aanmaakt en dan alleen "total" vult. Dit is mijn resultaat: Rij 1: naam: piet / nummer: 12 / total: (leeg) Rij 2: naam: (leeg) / nummer (leeg) / totaal: piet12 Wat ik als resultaat wil hebben is gewoon 1 rij die er zo uit ziet: Rij 1: naam: piet / nummer: 12 / total: piet12 Hoe fix ik dit? | ||||||
GlowMouse | dinsdag 22 januari 2013 @ 16:38 | |||||
Gebruik geen INSERT maar UPDATE. | ||||||
YazooW | dinsdag 22 januari 2013 @ 16:42 | |||||
Hoe komt mijn query er dan uit te zien? INSERT INTO simpelweg wijzigen door UPDATE geeft een error. | ||||||
#ANONIEM | dinsdag 22 januari 2013 @ 16:44 | |||||
UPDATE tablename SET columnName1 = value .... WHERE id = <id> | ||||||
YazooW | dinsdag 22 januari 2013 @ 16:48 | |||||
Ik heb wel eens eerder gewerkt met UPDATE, alleen nog nooit in combinatie met een SELECT CONCAT. SET columnName1 = value. Maar hoe zet ik er dan dat value gelijk is aan kolom "naam" EN kolom "nummer". | ||||||
#ANONIEM | dinsdag 22 januari 2013 @ 16:49 | |||||
UPDATE recepten SET titel = 'titel' WHERE id = 1 AND nummer = 2 Of UPDATE recepten SET titel = 'titel' WHERE titel = 'Aapje' OR titel = 'Boefje' OR nummer = 2 [ Bericht 48% gewijzigd door #ANONIEM op 22-01-2013 16:49:43 ] | ||||||
Tijn | dinsdag 22 januari 2013 @ 16:51 | |||||
Waarom zou je de waardes van twee kolommen samenvoegen in een derde kolom? | ||||||
YazooW | dinsdag 22 januari 2013 @ 20:00 | |||||
Inmiddels is het gelukt met de volgende query:
Heb 2 csv files gedumpt in 2 tabellen. De ene csv heeft als unieke waarde naam00, de andere csv heeft dat niet maar heeft wel 2 losse kolommen naam en 00. Dus om ook die tweede csv uniek te maken heb ik nu naam en nummer samengevoegd zodat de unieke waarde gelijk is aan de unieke waarde van de eerste csv. | ||||||
KomtTijd... | dinsdag 22 januari 2013 @ 22:30 | |||||
Je weet dat je ook indexes kunt maken over meerdere kolommen heh? | ||||||
Aap1000 | donderdag 24 januari 2013 @ 10:23 | |||||
Hallo, stel ik moet een MySQL query uitvoeren waarin ik zoek naar werknemers die tussen 10 en 20 jaar in dienst is. Hoe ziet deze query er dan uit? In mijn fictieve systeem kan niemand ontslagen worden en werkt dus tot de dag van vandaag. Ik heb een veld in mijn database met datum wanneer een werknemer in dienst is gekomen. Wie kan mij een duwtje de goeie richting op geven, of natuurlijk een hapklare query presenteren. Bij voorbaat dank! [ Bericht 2% gewijzigd door Aap1000 op 24-01-2013 10:31:49 (Typo) ] | ||||||
Tijn | donderdag 24 januari 2013 @ 10:25 | |||||
msql? Bedoel je MS SQL of MySQL? En wat voor veld is je datum? Een datetime, een timestamp, iets anders? | ||||||
Aap1000 | donderdag 24 januari 2013 @ 10:27 | |||||
Oh pardon, een typfout zie ik. Het is inderdaad MySQL. Het datumveld is gewoon date | ||||||
mstx | donderdag 24 januari 2013 @ 10:40 | |||||
SELECT * FROM werknemers WHERE datumveld BETWEEN DATE_SUB(CURDATE(), INTERVAL 20 YEAR) AND DATE_SUB(CURDATE(), INTERVAL 10 YEAR) Zoiets? | ||||||
Aap1000 | donderdag 24 januari 2013 @ 10:42 | |||||
Erg bedankt, maar ik had net zelf al een oplossing gevonden. Sorry voor de moeite die je hebt moeten doen. Mijn oplossing: SELECT *,YEAR( CURDATE( ) ) - YEAR( datum_in_dienst) as year FROM werknemer WHERE YEAR( CURDATE( ) ) - YEAR( datum_in_dienst) BETWEEN 10 AND 24 | ||||||
mstx | donderdag 24 januari 2013 @ 10:58 | |||||
Dat klopt alleen niet want dan zou iemand die op 15-12-2003 is begonnen ook 10 jaar in dienst zijn. ![]() | ||||||
Aap1000 | vrijdag 25 januari 2013 @ 10:17 | |||||
Hmm, ja natuurlijk. Bedankt ![]() | ||||||
Pakspul | vrijdag 25 januari 2013 @ 11:53 | |||||
Waarom gebruik je de functie datediff niet. Reaultaat is in dagen en dat deel je dan door 365.25. | ||||||
GlowMouse | vrijdag 25 januari 2013 @ 11:57 | |||||
Omdat niet elk jaar 365.25 dagen heeft. Mstx heeft de mooiste oplossing. | ||||||
rekenwonder | zondag 27 januari 2013 @ 20:36 | |||||
Sterker: geen enkel aards jaar heeft een lengte van 365.25 dagen. Nog wat aannames: http://infiniteundo.com/p(...)s-believe-about-time | ||||||
MrNiles | maandag 28 januari 2013 @ 23:30 | |||||
ineens heb ik in elk mapje op een site een default.php bestand, hierin staat <?php eval(gzinflate(base64_decode("een hele hoop karakters hier"))); ?> site gehackt? kreeg ook een redirect naar een of andere darwin...... .fr ligt het aan mij...of kan het ook aan mijn hostingprovider liggen, dat die gehackt is. Of is het totaal iets anders? | ||||||
mschol | maandag 28 januari 2013 @ 23:49 | |||||
ik zou zeggen dat je site gehackt is ![]() | ||||||
GlowMouse | maandag 28 januari 2013 @ 23:50 | |||||
ik zeg ftp account gehackt; iemand heeft de ftp-gegevens op zijn pc opgeslagen en diegene heeft een virus | ||||||
MrNiles | dinsdag 29 januari 2013 @ 00:00 | |||||
aha..gelukkig..of niet..maar dan ligt het niet aan mij, maar aan de admin ![]() als het dat is...nu hopen dat er een recente backup ergens is ben al aan het fixen geweest maar in al de js files staat ook een document rewrite ![]() | ||||||
Pakspul | dinsdag 29 januari 2013 @ 08:55 | |||||
Haal die eval en gzinflate functie er eens omheen en maak het volgende er van:
Dit soort acties zijn ideaal om verdere uitbreiding van een script te realiseren. Heb er zelf ook al een keertje aangewerkt namelijk ![]() | ||||||
Darkomen | dinsdag 29 januari 2013 @ 09:11 | |||||
Hoewel GlowMouse eigenlijk altijd gelijk heeft vind ik het een beetje kort door de bocht om te zeggen dat de ftp account gehacked is. Dit kan net zo goed zijn gebeurd via bugs of security holes in the server software of de webapplicaties die geinstalleerd zijn. Basic rule: zorg dat alles up to date is. [ Bericht 0% gewijzigd door Darkomen op 29-01-2013 12:03:35 (dt fail) ] | ||||||
GlowMouse | dinsdag 29 januari 2013 @ 12:02 | |||||
'vind ik' Als je het zeker wilt weten moet je contact opnemen met de hoster, want dit kan inderdaad ook door andere dingen komen. Die kan de logfiles napluizen waar jij niet bij kunt. Maar dat ftp accounts gehackt worden en zulke code toegevoegd, gebeurt al zeker 3 jaar. | ||||||
The_Terminator | dinsdag 29 januari 2013 @ 12:39 | |||||
Als je wil weten wat de code is die uitgevoerd wordt moet je natuurlijk de gzinflate functie wel laten staan, als je dat niet doet krijg je nog steeds een hoop garbage als output aangezien het is gecomprimeerd. | ||||||
MrNiles | woensdag 30 januari 2013 @ 09:07 | |||||
Hoster denkt dat het Gumblar is. Niet zo fijn als ik de verhalen op internet allemaal moet geloven | ||||||
Darkomen | woensdag 30 januari 2013 @ 10:24 | |||||
Heeft Glowmouse toch weer gelijk ! ![]() | ||||||
#ANONIEM | woensdag 30 januari 2013 @ 10:40 | |||||
Glowmouse aka God. [ Bericht 0% gewijzigd door #ANONIEM op 30-01-2013 10:40:59 ] | ||||||
Swetsenegger | donderdag 31 januari 2013 @ 15:54 | |||||
Korte vraag, Ik heb een internet kassa die het resultaat van een betaling automatisch dmv POST doorgeeft aan een door mij ingestelde URL. Daar heb ik een php script welke het resultaat verwerkt, zoals de order table updaten met het resultaat van de betaling, klant mailen met de gegevens van de bestelling, etc. En daarbij wil ik ook direct de sessie van het winkelwagentje resetten, maar... dat lukt niet. Mijn $_SESSION['cart'] wordt niet geleegd. Ik heb nu op die pagina $_SESSION naar een txt file gedumpt dmv de volgende code
Dit geeft als resultaat NULL. De sessie bestaat op desbetreffende pagina blijkbaar helemaal niet? Gebruik ik namelijk dezelfde code op de pagina waar de internetkassa de gebruiker heen stuurt (manual response) krijg ik
Waarom heeft de automatic response pagina geen sessie informatie ![]() -edit- Opgelost, op de automatic response pagina had ik geen sessie id, want geen cookie info uiteraard. Nu sessie id in de url van de automatic response geparsed en daarmee de sessie op die pagina gestart. [ Bericht 3% gewijzigd door Swetsenegger op 31-01-2013 16:38:56 ] | ||||||
Chandler | donderdag 31 januari 2013 @ 17:06 | |||||
Ik hoop wel dat je die sessie op een of andere manier beveiligd hebt ![]() | ||||||
Swetsenegger | donderdag 31 januari 2013 @ 17:10 | |||||
Ander vraagje dan maar ![]() Is er een algemene stelregel voor welke kolommen een index zouden moeten hebben? Bijvoorbeeld altijd op kolommen die je gebruikt in JOINS of iets dergelijks? | ||||||
Swetsenegger | donderdag 31 januari 2013 @ 17:10 | |||||
Leg uit wat je bedoelt. | ||||||
Chandler | donderdag 31 januari 2013 @ 17:14 | |||||
Het veld van de 'op tellende' waarde? en verder lijkt mij niet dat er een stelregel is oid... maar logisch gezien pak je de velden die voor je applicatie het meest belangrijke zijn (dus waarmee je zoekt). en de links tussen bepaalde velden die waarde hebben.. ben geen expert zoals glowmouse.. Je roept een externe url aan met allerlei post gegevens, dan neem ik aan dat de connectie tussen beide systeem een bepaalde controle uitvoert? | ||||||
Swetsenegger | donderdag 31 januari 2013 @ 17:18 | |||||
Omnikassa van de rabobank. Je post allerlei gegevens zoals return url (nu dus met sessie info), totaalbedrag,merchant ID, etc etc en die wordt gehashed met een secret key. Lijkt me voldoende toch? Of moet ik nog wat met die sessie ID voor de verbinding van kassa -> webshop? | ||||||
Chandler | donderdag 31 januari 2013 @ 17:28 | |||||
Nee, lijkt mij voldoende, vroeg mij alleen op opzet even af. | ||||||
GlowMouse | donderdag 31 januari 2013 @ 18:45 | |||||
Het hangt volledig van de queries uit, lees bv. het boek over High Performance MySQL over uitleg over indices. | ||||||
Boze_Appel | donderdag 31 januari 2013 @ 19:25 | |||||
Je kan in MySQL de slow query log aanzetten en configgen om te checken welke queries eventueel vertraging opleveren in je applicatie of laten aangeven welke queries geen gebruik maken van indexes. Als je een website maakt voor een lokale bakkerij zou ik er geen tijd in steken en gewoon je auto increment een primary geven. Het kan leuk zijn voor een oefening, maar de tijdswinst is zo marginaal bij kleine low traffic sites dat het de moeite niet loont om complexe indexes op te zetten. | ||||||
papernote | donderdag 31 januari 2013 @ 19:48 | |||||
Het meesturen van het sessie-ID naar de rabobank vind ik raar. De sessie is iets tussen jou en de bezoeker en daar heeft de rabobank niets mee te maken. Zodra de bezoeker terug komt op jouw website (door een redirect vanaf de rabobank) zou de browser van je bezoeker automatisch het sessie-cookie weer mee moeten sturen. | ||||||
Swetsenegger | donderdag 31 januari 2013 @ 20:24 | |||||
De rabobank heeft er ook niets mee te maken, maar de pagina die de bestelling verwerkt wel. De kassa heeft 2 return url's. Een URL waar de klant komt als die in de kassa op "klaar" klikt (normalReturnUrl), en 1 waar altijd een response heen gePOST wordt (automaticResponsUrl). Het probleem van de eerste is dat je nooit zeker kan weten DAT de klant terug komt en is dus onbetrouwbaar voor het updaten van je order. Dat doe je dus op de automaticResponseUrl. Wil ik op DIE pagina ook bij een geslaagde betaling de sessie van de winkelwagen 'unsetten' moet ik het sessieid wel in de automaticResponseUrl meesturen. Maar ik heb nu voor de zekerheid de sessieID maar ge-mcrypt_encrypt voor hij naar de kassa gaat en hij wordt gedecrypt in de automaticResponseUrl. Dat lijkt me meer dan veilig genoeg ![]() | ||||||
mstx | donderdag 31 januari 2013 @ 23:06 | |||||
De winkelwagen kun je al legen op de pagina waar het formulier (die je doorstuurt naar omnikassa) opgebouwd wordt. Als het goed is is op dat moment je winkelwagen al omgezet naar een order en heb je die dus niet meer nodig. | ||||||
Chandler | vrijdag 1 februari 2013 @ 07:31 | |||||
Swets heeft wel gelijk want stel de betaling gaat niet goed, dan is het handig dat de winkelwagen nog gevuld is toch? | ||||||
mstx | vrijdag 1 februari 2013 @ 08:19 | |||||
Nee. Dan heb je in je account een onbetaalde order staan met een betaalknopje om het nog een keer te proberen. Maar goed, dat ligt natuurlijk ook aan hoe je systeem werkt maar dit vind ik de meest logische manier. | ||||||
Swetsenegger | vrijdag 1 februari 2013 @ 08:28 | |||||
Ik heb nu dat wanneer de betaling niet gelukt is, de items nog in de winkelwagen staan. Kan de klant direct een nieuwe order insturen. Eh ja, dan staat er dus 1 niet geactiveerde order en 1 wel geactiveerde order (als de 2e betaling lukt). Wat is precies het probleem? Zie ik wat over het hoofd? | ||||||
mstx | vrijdag 1 februari 2013 @ 08:35 | |||||
"Probleem" is een groot woord, maar ik zou het fijner vinden als er in totaal maar 1 betaalde order bij mijn bestellingen staat als de betaling bij de 3e keer pas lukt, in plaats van 1 betaalde en 2 niet-betaalde. ![]() | ||||||
Swetsenegger | vrijdag 1 februari 2013 @ 08:39 | |||||
Maar die niet betaalde toon ik uiteraard niet aan de klant, alleen de 'geactiveerde'. Ik had inderdaad ook gewoon een 'mijn orders' pagina kunnen maken met een 'probeer opnieuw' knopje. Mijn ervaring is wel dat voor veel mensen webshops nog steeds 'eng' zijn en ze nog een keer door een bekende betaalstraat heen loodsen misschien sneller geprobeerd wordt. Nou ja, het was een keuze. Achteraf met wat haken en ogen. | ||||||
papernote | zaterdag 2 februari 2013 @ 11:18 | |||||
Persoonlijk vind ik het beter om één order te hebben, waar dan [0, n] (nul of meer) betalingen aan hangen. Als mensen een iDeal betaling annuleren omdat ze toch liever een overschrijving doen, dan lijkt het me raar als je daarvoor een nieuwe order aan maakt? | ||||||
Swetsenegger | zaterdag 2 februari 2013 @ 18:07 | |||||
Waarom? Het is gewoon een andere order. Ik ga toch niet dezelfde order 0 of meer keer laten afrekenen? Dat vind ik onlogisch. Een order kan WEL of NIET betaald worden dus er zeker geen n relatie mbt betalen. Daarnaast zijn er allerlei terugkoppelingen van de internet kassa, onder andere: "Authorization limit exceeded" "Authorization refused" "Invalid card number or invalid Card Security Code" "Fraud suspicion" "Security breach detected, transaction stopped" "The number of attempts to enter the card number has been exceeded" Die wil ik eigenlijk wel opgeslagen hebben bij desbetreffende orders. [ Bericht 13% gewijzigd door Swetsenegger op 02-02-2013 18:13:12 ] | ||||||
mstx | zaterdag 2 februari 2013 @ 18:20 | |||||
Zo doe ik het inderdaad ook. En die codes die hierboven worden genoemd worden dan bij de betaling/transactie opgeslagen. | ||||||
papernote | zaterdag 2 februari 2013 @ 18:21 | |||||
Iemand kan toch één order betalen met een cadeaubon en het restant met iDeal? Dan heb je twee betalingen. Wellicht niet in je huidige opzet, maar wie weet ga je ooit nog cadeaubonnen uitgeven, de vvv-cadeaubon accepteren, enz... Terugkoppelingen sla je ook op als een betaling, maar dan met een andere (mislukte) status. Zo kun je bij één order de historie van betalingen terugzien. Een order is pas volledig betaald als de som van alle betalingen met de status "succesvol" gelijk is aan het totaal van de order. Ik zou niet zeggen dat het een andere order is. De klant is nog steeds met dezelfde order bezig en vanuit zijn opzicht is het natuurlijk wel gewoon dezelfde order. Het lijkt me ook verwarrend voor de klant als zijn betaling mislukt hij een nieuw ordernummer krijgt voor hetzelfde. | ||||||
Swetsenegger | zaterdag 2 februari 2013 @ 18:28 | |||||
Nee ![]() In een webshop? Hoe wil je dat doen? Tja, ik heb er voor gekozen dat het een nieuwe order word. Overigens net als elke internet kassa ook verlangt. Ik moet bij elke order een transactie reference meesturen die uniek moet zijn. Nee, want de kassaomgeving is anders dan de webshop omgeving en het is heel duidelijk wanneer je betaling niet slaagt. Hoe dan ook, ik vind dit het meest logisch en handig. | ||||||
Swetsenegger | zaterdag 2 februari 2013 @ 19:01 | |||||
Overigens zou ik eventuele korting/tegoedbonnen eerder opnemen in de order als product met een negatief bedrag waardoor je simpelweg een lager totaalbedrag gaat afrekenen. Ik zou nooit 1 order in "2 delen" (laten) afrekenen. Maar dat terzijde. | ||||||
papernote | zondag 3 februari 2013 @ 09:58 | |||||
Hey Swets, het is niet dat ik je probeer te overtuigen hoor. Ik heb de software geschreven voor een webshop die in Nederland alleen al 1.000+ iDeal betalingen per dag via de Rabobank verwerkte en in het buitenland vanalles via Ogone. Vanuit die ervaring vertel ik je hoe ik het heb opgelost, hoe je het zelf doet mag je natuurlijk zelf weten. Op mijn keuzes zal ook genoeg aan te merken zijn. Cadeaubonnen werden bij ons digitaal ingeleverd en als deelbetaling ingevoerd. VVV-bonnen werden per post opgestuurd. Het unieke transactie-id dat je bij elke betaling moet meegeven is dus niet gelijk aan het order-id. Maar de betalingen-tabel werkt als koppel-tabel tussen betaling-id en order-id. Elke nieuwe betaling krijgt een nieuw id en wordt aan een order gekoppeld. Het voordeel hiervan is dat je bij één order ook overzicht krijgt van mislukte betalingen, je een klant kunt benaderen als er problemen zijn en de betaling voor een order alsnog compleet krijgen. Ikzelf heb iDeal Professional (heet dat nog zo?) geďmplementeerd, waarbij webshop en kassa één geheel zijn. Omnikassa lijkt iets anders te werken, omdat ze de iDeal implementatie al voor je gedaan hebben. | ||||||
webbyplus | dinsdag 5 februari 2013 @ 09:18 | |||||
Vraagje; Voor school moet ik regelmatig Word/Excel-documenten maken/aanpassen. Kent iemand een soort van "repository"/opslag tooltje in PHP waarmee ik op mijn site makkelijk documenten kan uploaden en bewerken? | ||||||
Tijn | dinsdag 5 februari 2013 @ 09:23 | |||||
Google Docs? | ||||||
KomtTijd... | dinsdag 5 februari 2013 @ 09:27 | |||||
dropbox? mega.co.nz? | ||||||
webbyplus | dinsdag 5 februari 2013 @ 09:28 | |||||
Ken ik, maar wil alles graag in eigen beheer hebben... | ||||||
Swetsenegger | dinsdag 5 februari 2013 @ 09:31 | |||||
Korte vraag, Zijn 2500 tot 6000 queries per seconden als "ernstig veel" te classificeren voor een SQL server? En indien ja, hoe kan je dat aantal verminderen zonder het obvious "minder queries per pageview gebruiken"? Ik bedoel dus cache oid? | ||||||
mstx | dinsdag 5 februari 2013 @ 09:37 | |||||
Geen idee of dat ernstig veel is, maar door dingen met APC/memcached dingen te cachen kun je dat aantal in de meeste gevallen wel drastisch verlagen. | ||||||
Tijn | dinsdag 5 februari 2013 @ 09:39 | |||||
Dus je wil zelf Word en Excel gaan nabouwen in PHP? | ||||||
webbyplus | dinsdag 5 februari 2013 @ 09:40 | |||||
Nee, dat gaat misschien te ver ;-) Ik wil een bestand kunnen uploaden, downloaden, eventueel de status "uitgecheckt" kunnen geven als ik hem bewerk. De bewerking van de bestanden doe ik gewoon lokaal. | ||||||
Tijn | dinsdag 5 februari 2013 @ 09:45 | |||||
Ah zo. Geen idee of er zoiets bestaat, maar zelf maken is niet erg ingewikkeld lijkt me ![]() | ||||||
webbyplus | dinsdag 5 februari 2013 @ 09:45 | |||||
Alsof je gedachten kunt lezen; ik dacht al bij mezelf, waarom niet zelf maken... Weer een hobbyprojectje er bij ![]() | ||||||
rekenwonder | dinsdag 5 februari 2013 @ 10:26 | |||||
Ligt maar net aan de complexiteit van de queries. Meten = weten :-) | ||||||
Swetsenegger | dinsdag 5 februari 2013 @ 10:27 | |||||
Ja dat begrijp ik, maar in het algemeen bedoelde ik. We hebben hier een performance probleem en ICT roept elke keer een andere reden. Nu dus weer het aantal queries. | ||||||
rekenwonder | dinsdag 5 februari 2013 @ 14:41 | |||||
Wel, dat is het lastige. Er valt niets algemeens over te zeggen. Er hoeft maar één query tussen te zitten die een seconde lang een table gelockt heeft en je bent de sjaak (gechargeerd). Wat gisteren bij een bepaald aantal queries/sec goed performde, doet dat vandaag bijvoorbeeld niet omdat er een bepaalde threshold overschreden is. Wat voor bak is het? Wat zegt de profiler? | ||||||
wobbel | dinsdag 5 februari 2013 @ 15:53 | |||||
Er zijn allemaal manieren voor, maar wat is nou de beste manier om bepaalde waardes te zoeken in een array? Ik heb de volgende waardes, en wil alles selecteren wat begint met "VD20130130", en de rest hoeft hij niet weer te geven. VD201301281628.jpg VD201301281630.jpg VD201301281632.jpg VD201301281634.jpg VD201301301020.jpg VD201301301044.jpg VD201301301146.jpg | ||||||
KomtTijd... | dinsdag 5 februari 2013 @ 15:55 | |||||
preg_match? preg_grep | ||||||
Tijn | dinsdag 5 februari 2013 @ 16:01 | |||||
Ik zou een regex proberen te vermijden als het niet hoeft. In dit geval kun je ook met strpos wel uit de voeten. | ||||||
papernote | dinsdag 5 februari 2013 @ 17:54 | |||||
array_filter | ||||||
rekenwonder | dinsdag 5 februari 2013 @ 18:08 | |||||
Je kan natuurlijk ook filteren bij de bron. Gebruik je glob() om de lijst van - naar ik aanneem - bestanden op te halen? Dan kan je daar al een pattern opgeven. | ||||||
Tijn | dinsdag 5 februari 2013 @ 18:51 | |||||
Ja, glob() is cool. | ||||||
#ANONIEM | dinsdag 5 februari 2013 @ 18:53 | |||||
Glob ![]() | ||||||
ursel | maandag 11 februari 2013 @ 02:47 | |||||
Enige tijd geleden kwam ik ergens (geen flauw idee meer waar, volgens mij via twitter ![]() Nu raad je het al, blijkbaar geen bookmark hierop gezet en niet meer terug te vinden in mijn favorieten. ![]() Iemand hier toevallig bekend mee welke ik bedoel? | ||||||
Maringo | maandag 11 februari 2013 @ 05:54 | |||||
HybridAuth? http://sourceforge.net/projects/hybridauth/ | ||||||
ursel | maandag 11 februari 2013 @ 09:56 | |||||
Kwam die idd ook nog tegen hierna. Tis niet degene die ik zocht eigenlijk, maar volgens mij doet die ook zo goed als hetzelfde. Ga er even mee stoeien. Bedankt in ieder geval | ||||||
mschol | dinsdag 12 februari 2013 @ 17:16 | |||||
even een vraagje: ik probeer php een plaatje uit te laten poepen, wat op de ene manier wel werkt en de andere niet... ik heb de volgende, sterk versimpelde, code:
als ik het op bovenstaande manier doe krijg ik allemaal gibberish in IE9, op chrome gaat het goed als ik imagejpeg en imagecreatefromjpeg (met een jpeg variant van het plaatje) doe, dan werkt het wel correct doe ik wat verkeerd? zit er een rare quirck in IE9 + imagepng() functie? | ||||||
GlowMouse | dinsdag 12 februari 2013 @ 17:26 | |||||
heb je een url? Waarom gebruik je geen readfile? Spatie voor image/png? Type met een hoofdletter? | ||||||
mschol | dinsdag 12 februari 2013 @ 17:29 | |||||
ik heb geen live test url ik wil er tekst in plaatsen met GD, maar gezien hij zo raar deed heb ik het even vereenvoudigd.. de spatie had ik juist weggehaald (in de hoop dat het dan wel werkte ![]() nouja... schiet mij maar lek, nu doettie ut wel.. en dan heb ik niks veranderd.. ![]() ![]() | ||||||
KomtTijd... | dinsdag 12 februari 2013 @ 17:33 | |||||
ctrl+f5 doen als je met zulke output bezig bent. Images worden automatisch gecached. | ||||||
mschol | dinsdag 12 februari 2013 @ 17:35 | |||||
ga ik zeker (nog vaker) doen.. (al kwam er geen plaatje maar echt rauwe tekst, incl png header) | ||||||
Chandler | vrijdag 15 februari 2013 @ 19:20 | |||||
Weet iemand ook een script/methode om video's te checken zonder ffmpeg (deze extensie is niet geďnstalleerd op de webserver en wordt door de hoster ook niet ondersteund/geďnstalleerd! En dan doel ik natuurlijk niet op de content type ![]() [edit] Gevonden getID3 werkt perfect, nu nog kijken welke filmpjes hij allemaal kan detecteren! http://getid3.sourceforge.net/ ![]() [ Bericht 31% gewijzigd door Chandler op 15-02-2013 23:24:30 ] | ||||||
#ANONIEM | zaterdag 16 februari 2013 @ 12:28 | |||||
Mysql doet eigenwijs. Ik heb een tabel die er zo uit ziet
maar nu als ik daar wat ingooi met
dan klopt het veldje 'time' in de tabel user_statics niet. Ik wil dat er een unix timestamp in komt (wat ook hoort dacht ik?) Maar hij zet er heel leuk 2013-02-16 12:28:22 neer ![]() [ Bericht 0% gewijzigd door #ANONIEM op 16-02-2013 12:29:27 ] | ||||||
GlowMouse | zaterdag 16 februari 2013 @ 12:50 | |||||
SELECT UNIX_TIMESTAMP(time) FROM user_statics | ||||||
Farenji | zaterdag 16 februari 2013 @ 12:58 | |||||
Er komt gewoon een timestamp in maar mysql converteert die bij ophalen automatisch van UTC naar een leesbare datum volgens de tijdzone-instellingen van de server. En bij opslaan converteert ie de meegegeven datum op dezelfde manier naar UTC. Gevolg is dus ook dat mocht je de tijdzone van de server veranderen, de tijden in de database meeveranderen. Dat kan zijn wat je wil, maar vaak wil je dat niet. Als je zeker wil dat er altijd dezelfde datum/tijd in blijft staan die je erin hebt gestopt dan moet je een datetime ipv timestamp gebruiken. Omrekenen naar een echte timestamp is voor beide kolomtypes hetzelfde, zoals glowmouse zegt. | ||||||
#ANONIEM | zaterdag 16 februari 2013 @ 13:21 | |||||
![]() | ||||||
GlowMouse | zaterdag 16 februari 2013 @ 13:26 | |||||
En lees wat Farenji zegt. | ||||||
#ANONIEM | zaterdag 16 februari 2013 @ 15:21 | |||||
timezone veranderen, is dat ook als er zomertijd / wintertijd ingaat, of ziet mysql dat zo? | ||||||
Wooninck | donderdag 21 februari 2013 @ 16:01 | |||||
Vraagje.. ik probeer momenteel een PHP script met MySQL database te installeren, maar hij blijft maar een Failed opening required error aangeven, terwijl de path goed is, en het mapje gewoon bestaat. Iemand enig idee hoe ik dit op kan lossen?
index.php:
| ||||||
Tijn | donderdag 21 februari 2013 @ 16:14 | |||||
Wat krijg je hieruit?
en
| ||||||
Wooninck | donderdag 21 februari 2013 @ 16:34 | |||||
Ik ben niet bepaald een PHP ster, waar wil je dat ik dit invoer? ![]() | ||||||
Tijn | donderdag 21 februari 2013 @ 16:50 | |||||
Ik zou gewoon een bestandje maken op de plek waar je nu index.php ook hebt staan en vervolgens dat bestandje opvragen. Het lijkt er namelijk op dat __DIR__ niet wordt gevuld, aangezien er wordt geprobeerd om "/app/config/boot.php" te includen. Daar zou nog iets voor moeten staan (namelijk de plek op je schijf waar dit allemaal staat). Ik neem ten minste aan dat je webapplicatie niet in de root van je partitie staat, wel? | ||||||
Wooninck | donderdag 21 februari 2013 @ 17:01 | |||||
Correct, hij staat op een subdomein. Het is overigens nog niet gelukt. | ||||||
mschol | vrijdag 22 februari 2013 @ 12:21 | |||||
ik ben eens wat aan het proberen met classes (OOP is nooit echt mijn ding geweest) en vraag mij af of de basis opzet correct is:
| ||||||
rekenwonder | vrijdag 22 februari 2013 @ 14:55 | |||||
In wezen wel. De grote vraag van mijn kant is: wat is het voor een object? Dan kan je er functioneel of architectuur-technisch pas iets zinnigs over zeggen. Paar opmerkingen: • Member variabelen maak je over het algemeen private of protected (data-hiding in OOP) • Ik zou de methods (functies) expliciet van een visibility scope voorzien. Dus in dit geval waarschijnlijk public. • Check even het hoofdstukje in de PHP manual over naming conventions van methods en variabelen. | ||||||
mschol | vrijdag 22 februari 2013 @ 15:10 | |||||
dit is voor mij puur een zeer simpel probeerseltje, waarmee ik dan een gebruiker (b.v. van een site) kan aanmaken, informatie kan tonen en weer kan verwijderen... dat de data niet in een database staat maakt voor dit voorbeeld niet uit, gaat mij puur even om het princiepe. Ik wil wel proberen in OOP dingen te gaan doen (al is dat niet professioneel) maar ik wil voor mijzelf wat concrete en simpele voorbeelden hebben van waaruit ik verder kan gaan Ik ga het doornemen.., bedankt iig ![]() ooit in een grijs verleden is het mij wel uitgelegd (wat ik dan wel snapte), maar in de praktijk brengen lukte mij toen niet.. tevens moesten we toen ook het MVC model erbij betrekken, en ik vermoed dat ik daarmee in de knoop raakte ofzo.. (ik vond het onlogisch en omslachtig ![]() | ||||||
papernote | zaterdag 23 februari 2013 @ 13:03 | |||||
Wat opmerkingen: - addUser is feitelijk gewoon de constructor, dus die functie moet weg. Vervang hem door __construct() - delUser is overbodig - editUser zou ik weghalen en vervangen door set-methoden (setRealFirstName(), setRealLastName, enz...) - ik mis de get-functies voor firstname en lastname - let op de benaming van alles (consistent gebruik van hoofdletters). Ik vind het zelf mooier als functies en variabelen lowerCamelCase zijn en classes UpperCamelCase. - gebruik public/private/protected
| ||||||
raptorix | zondag 24 februari 2013 @ 10:48 | |||||
Weet niet of er een PHP library is, maar de c# library heb ik laatst gebruikt, en dat ging best fijn. | ||||||
raptorix | zondag 24 februari 2013 @ 10:50 | |||||
Ja dat is behoorlijk veel, klinkt als een slechte loop ergens in de software. | ||||||
raptorix | zondag 24 februari 2013 @ 10:55 | |||||
Eens, ook zou ik de Get prefix niet gebruiken als het om een property gaat, get zou ik hooguit gebruiken wanneer er een speciale operatie zou moeten plaatsvinden die nog eens een extra handeling doet om iets buiten het object op te halen. | ||||||
TwenteFC | maandag 25 februari 2013 @ 00:30 | |||||
Ligt er aan natuurlijk, als dit gebeurt wanneer er 5 mensen actief zijn op de website, dan wel natuurlijk. | ||||||
raptorix | maandag 25 februari 2013 @ 08:34 | |||||
Uiteraard, maar dan nog zijn duizenden queries per seconde idioot hoog, ik zit naast de funda beheerders, kan wel eens vragen hoeveel queries per seconde het db cluster pakt, hoewel tegenwoordig veel gebruik gemaakt word van SOLR indexes. | ||||||
webbyplus | dinsdag 26 februari 2013 @ 12:24 | |||||
Hallo, zie bijgaande tabel mappen;![]() Nu wil ik in alfabetische volgorde van mapname een boomstructuur opbouwen waarbij wordt ingesprongen met 5 x spatie per niveau. ID --> Unieke naam Mapname --> Omschrijving Parentmap --> Geeft aan welke ID de parent is van deze map Haschildren --> Geeft aan of de betreffende ID children heeft Level --> Geeft aan op welk niveau de map zich bevind Dit met de wetenschap dat het aantal niveau's theoretisch gezien tot 20 zou kunnen uitlopen. De uitvoer zou er obv deze tabel zo uitzien; ----- school ---------- AV1 --------------- kjhkj ---------- AV2 ---------- AV3 ---------- jkl ---------- mno ---------- pqr ----- werk ---------- def --------------- test ---------- ghi ---------- stu ---------- vwx ---------- yz Iemand zin in deze uitdaging? | ||||||
stefanhaan | dinsdag 26 februari 2013 @ 12:28 | |||||
het is een hulptopic, geen topic waar anderen jouw code geheel voor jou schrijven. | ||||||
webbyplus | dinsdag 26 februari 2013 @ 12:30 | |||||
dat vraag ik ook niet ![]() | ||||||
Tijn | dinsdag 26 februari 2013 @ 12:30 | |||||
Wat is je vraag, webbyplus? Wat heb je al? Waar loop je tegenaan? | ||||||
stefanhaan | dinsdag 26 februari 2013 @ 12:30 | |||||
dan moet je ook een daadwerkelijke vraag stellen, of zeggen wat je probleem is. Zoals tijn aangeeft.
| ||||||
Rockfire | dinsdag 26 februari 2013 @ 12:38 | |||||
Waarom heb je een kolom haschildren en level? Dat kun je toch allemaal afleiden uit de kolom parent? | ||||||
Tijn | dinsdag 26 februari 2013 @ 12:39 | |||||
Overigens heb je "haschildren" en "level" natuurlijk helemaal niet nodig. Aan het id van de parent heb je genoeg om deze structuur te maken. | ||||||
Tijn | dinsdag 26 februari 2013 @ 12:39 | |||||
Ja, dat zeg ik ![]() | ||||||
Rockfire | dinsdag 26 februari 2013 @ 12:40 | |||||
gmta ![]() | ||||||
Tijn | dinsdag 26 februari 2013 @ 12:42 | |||||
Ik zou denk ik een functie maken om alle mappen van een bepaalde parent op te halen. Dan begin je met alle mappen die parent null hebben en daarna loop je door je resultaten en haal je steeds de submappen bij elke parent op. Dat zorgt misschien wel voor een hoop queries. Simpele queries, maar toch. Het kan vast ook met 1 geniale query die alles combineert, maar zo'n held met SQL ben ik niet. | ||||||
KomtTijd... | dinsdag 26 februari 2013 @ 13:26 | |||||
Ik zou `id` left-joinen op `parentmap` om erachter te komen of een map children heeft. En als dat het geval is, voor die map de query herhalen met where `parentid` = thisid | ||||||
The_Terminator | dinsdag 26 februari 2013 @ 13:32 | |||||
Een enkele query is lastig aangzien de boom ergens in de PHP code opgebouwd zou moeten worden. Zoiets als dit is het beste te realiseren dmv een recursieve functie die steeds een stap dieper gaat. | ||||||
Chandler | dinsdag 26 februari 2013 @ 13:41 | |||||
En dan is het misschien handig zeker bij grote boom structuren om te gaan cachen ![]() | ||||||
The_Terminator | dinsdag 26 februari 2013 @ 14:01 | |||||
Onderstaande heb ik niet getest. Zal theoretisch hetzelfde als je voorbeeld moeten outputten.
| ||||||
KomtTijd... | dinsdag 26 februari 2013 @ 14:07 | |||||
| ||||||
The_Terminator | dinsdag 26 februari 2013 @ 14:07 | |||||
Dikke boei. Het is maar een voorbeeld. | ||||||
Crutch | dinsdag 26 februari 2013 @ 14:22 | |||||
Lekker voorbeeld dan. | ||||||
The_Terminator | dinsdag 26 februari 2013 @ 15:21 | |||||
Dan post je maar een betere. | ||||||
Maringo | dinsdag 26 februari 2013 @ 15:30 | |||||
http://php.net/manual/en/function.mysql-db-query.php | ||||||
The_Terminator | dinsdag 26 februari 2013 @ 15:47 | |||||
Ik weet het, ik gebruik zelf MySQLi. Ik heb gewoon een beetje genoeg van dat gezeik over dat stuk code wat ik heb gepost. Het doet wat het moet doen, als webbyplus besluit het te gebruiken dan moet hij het maar naar wens aanpassen, de blauwdruk is er, de rest kan hij zelf wel naar wens aanpassen mag ik hopen. Maargoed, lekker zelf weten, ik post hier geen regel code meer. |