WHERE code >= 0 AND code <= 300 gebruiken? Dat pakt alle records waarvan code groter of gelijk is aan 0 en kleiner of gelijk aan 300.quote:Op donderdag 14 juli 2011 16:14 schreef Dokay het volgende:
Hallo Fokkertjes, hoop dat iemand mij hier uit de brand kan helpen;
Ik wil dit script laten loopen totdat het de laatste record uit de tabel CSVimport heeft verwerkt. De primary key is 'code'. Hij moet dus bij de WHERE statement dit van 1 tot 300 doen.. hoe krijg ik dit voor elkaar? Kom er niet uit.. :/
[ code verwijderd ]
Klopt, maar dan blijft het script dus hangen op het feit dat ik 300 records aanwijs ipv 1 specifiek record waarmee deze aan de slag moet. Ik wil dat ie bij 'code = 1' begint en herhaalt tot ie bij 'code = 300' (laatste rij) is aangekomen van de andere tabel waar de informatie vandaan komt...quote:Op donderdag 14 juli 2011 16:59 schreef QBay het volgende:
[..]
WHERE code >= 0 AND code <= 300 gebruiken? Dat pakt alle records waarvan code groter of gelijk is aan 0 en kleiner of gelijk aan 300.
In dit geval (als het toch de laatste rij is), hoef je toch helemaal geen WHERE ofzo te doen, dan pakt hij gewoon alles?quote:Op donderdag 14 juli 2011 17:12 schreef Dokay het volgende:
[..]
Klopt, maar dan blijft het script dus hangen op het feit dat ik 300 records aanwijs ipv 1 specifiek record waarmee deze aan de slag moet. Ik wil dat ie bij 'code = 1' begint en herhaalt tot ie bij 'code = 300' (laatste rij) is aangekomen van de andere tabel waar de informatie vandaan komt...
Ik zou dat lekker in PHP doen met een regex. Weet niet of dat best practice is maar dan weet ik wat er gebeurt.quote:Op vrijdag 15 juli 2011 11:07 schreef Dale. het volgende:
Vraagje...
Ik heb een tabel met een column waarin een pad staat... "C:\...\...\test.txt" Nu wil ik graag "test" als uitvoer hebben.
SELECT FUNCTION(TEST) AS var FROM <TABEL>
Nu moet die FUNCTION er dus voor zorgen dat alleen test wordt geretouneerd... Iemand een idee?
Die regex wordt door PHP al meegeleverd trouwens, zie bv pathinfo().quote:Op vrijdag 15 juli 2011 11:52 schreef KomtTijd... het volgende:
[..]
Ik zou dat lekker in PHP doen met een regex. Weet niet of dat best practice is maar dan weet ik wat er gebeurt.
php tracker?quote:Op zaterdag 16 juli 2011 16:07 schreef ursel het volgende:
Hoe kan ik me bij de PHP tracker afmelden?
huh? , Bedoel je bij de serie reeks van Fok zelf?quote:Op zaterdag 16 juli 2011 16:07 schreef ursel het volgende:
Hoe kan ik me bij de PHP tracker afmelden?
quote:Op zaterdag 16 juli 2011 17:16 schreef Luchtkoker het volgende:
MyAT en dan gewoon rechts op dat kruisje drukken.
Dankje , zat de hele tijd met een reekst in myAT die ik eruit wou , hij is nu weg Deze natuurlijk niet.quote:Op zaterdag 16 juli 2011 17:17 schreef Diabox het volgende:
Of op stop volgen boven- en onderaan dit topic.
Stuur WyriHaximus een privebericht.quote:Op zaterdag 16 juli 2011 17:27 schreef ursel het volgende:
Voordat FOK! reeksen had had je een topic tracker van wyrihaximus.net en kreeg je mailtje dat er een nieuw topic was. Dat is nu dus overbeodig, maar zit geen afmeld optie zover ik kan zien.
normaal gaat het over problemen met php /mysql maar die zijn ff weg. geen Php problemen op dit momentquote:Op zaterdag 16 juli 2011 17:34 schreef Diabox het volgende:
Hey hallo, dit gaat allemaal niet over PHP/MySQL jongens
Als je script errors geeft ga je ook niet je errors onderdrukken, maar ga je terug naar de sourcequote:Op zaterdag 16 juli 2011 17:28 schreef Luchtkoker het volgende:
Email adres blacklisten in je Spamfilter, done.
"De source"quote:Op zaterdag 16 juli 2011 18:10 schreef ursel het volgende:
[..]
Als je script errors geeft ga je ook niet je errors onderdrukken, maar ga je terug naar de source
quote:
intressant iets: als ik de taal b.v. aanpas, dan worden de wijzigingen wel opgeslagenquote:Fout: Unable to continue: Unable to write config file. CHMOD 777 the folders /data, /backups and their sub-folders and retry
Interessant ander feitje, als je meer informatie geeft zouden we je kunnen helpen .quote:Op zondag 17 juli 2011 22:58 schreef mschol het volgende:
intressant iets: als ik de taal b.v. aanpas, dan worden de wijzigingen wel opgeslagen
welke andere info valt er te geven..quote:Op zondag 17 juli 2011 23:25 schreef cablegunmaster het volgende:
[..]
Interessant ander feitje, als je meer informatie geeft zouden we je kunnen helpen .
Dan denk ik dat het iets specifieks voor het cms is. En omdat ik daar geen ervaring mee heb, kan ik je er niet mee helpen.quote:Op zondag 17 juli 2011 22:58 schreef mschol het volgende:
intressant iets: als ik de taal b.v. aanpas, dan worden de wijzigingen wel opgeslagen
oke, dat is jammerquote:Op maandag 18 juli 2011 00:15 schreef Light het volgende:
[..]
Dan denk ik dat het iets specifieks voor het cms is. En omdat ik daar geen ervaring mee heb, kan ik je er niet mee helpen.
1 | array(3) { [0]=> string(1) "4" [1]=> string(1) "9" [2]=> string(2) "13" } |
1 | foreach($children as $child) |
1 | echo $child['id'] |
register_globals off. zetten in je php.iniquote:Op woensdag 20 juli 2011 00:55 schreef Diabox het volgende:
Ik heb een array genaamd $children en dit is de var_dump:
[ code verwijderd ]
Ofwel een array met 3 indices, met respectievelijk de waarden '4', '9' en '13'. So far so good, want deze waarden kloppen.
Gelijk daarna begin ik een foreach loop als volgt:
[ code verwijderd ]
En hierin ging van alles mis, dus ik ben gaan uitzoeken wat, en het kwam door het volgende probleem. Als ik het volgende echo in de foreach:
[ code verwijderd ]
Dan echo'ed ie de waarden: 4, 9 en 1, dus niet 13. Bij alle strings met een lengte langer dan 1 echo'ed ie alleen de eerste character van de id. Dat is het dus het probleem, maar wat veroorzaakt dit probleem? En hoe los ik deze op? Ik voel me zo noob
Oh my god, helemaal over het hoofd gezien Inderdaad, heb het gelijk gefixed en alles werkt nu zoals het hoort, 1000 maal dank!quote:Op woensdag 20 juli 2011 01:48 schreef Tijn het volgende:
Hoe kom je erbij om $child['id'] te echo'en en niet gewoon $child? Uit de vardump blijkt iig niet dat de elementen van $children zelf ook arrays zijn.
Technische onderbouwing: 'id' geconverteerd naar een integer is 0. Als je dus $string['id'] doet gaat hij onderwater positie 0 van de string opvragen (want strings zijn ook benaderbaar als arrays).quote:Op woensdag 20 juli 2011 02:02 schreef Diabox het volgende:
[..]
Oh my god, helemaal over het hoofd gezien Inderdaad, heb het gelijk gefixed en alles werkt nu zoals het hoort, 1000 maal dank!
I know Zat al de hele dag te programmeren en dan zie je soms hele domme fouten niet (was ook al laat )quote:Op woensdag 20 juli 2011 08:30 schreef Intrepidity het volgende:
[..]
Technische onderbouwing: 'id' geconverteerd naar een integer is 0. Als je dus $string['id'] doet gaat hij onderwater positie 0 van de string opvragen (want strings zijn ook benaderbaar als arrays).
Misschien kun je hier wat meer mee ?quote:Op woensdag 20 juli 2011 09:32 schreef ursel het volgende:
Volgens mij vast al eens besproken, maar gooi hem toch maar weer eens omhoog.
Wat gebruiken jullie om PDF's te genereren?
Maak nu gebruik van FPDF. Gaat op zich wel goed, maar zit me mateloos te irriteren dat alles zo nauwkeurig gepositioneerd moet zijn. En kan gewoon met de huidige ontwikkeling van alle software nog niet echt geloven dat er geen betere pakketten/classes beschikbaar zijn die dat niet eenvoudiger kunnen.
We moeten een redelijk uitgebreide PDF generator hebben die ook eenvoudig grafieken kan opmaken.
daar had ik nog niet aan gedachtquote:Op woensdag 20 juli 2011 01:48 schreef Tijn het volgende:
Hoe kom je erbij om $child['id'] te echo'en en niet gewoon $child? Uit de vardump blijkt iig niet dat de elementen van $children zelf ook arrays zijn.
Zal er eens naar kijken. Tnx.quote:Op woensdag 20 juli 2011 16:13 schreef 1201Rick het volgende:
[..]
Misschien kun je hier wat meer mee ?
Ik kon er in ieder geval veel meer mee dan FPDF
http://code.google.com/p/dompdf/
weet niet of er ook iets inzit voor grafieken, maar dat moet je zelf maar ff kijken
1 2 3 4 5 6 7 8 | |---------------------------------------------------------| | Names | Count(Passed) | Count(Skipped) | Count(Failed) | |---------------------------------------------------------| | Naam_1 | 15 | 4 | 2 | | Naam_2 | 3 | 32 | 1 | | Naam_. | . | . | . | | Naam_N | 12 | 2 | 4 | ----------------------------------------------------------| |
1 | SELECT COUNT(*), NAAM, STATUS FROM tabel GROUP BY NAAM, STATUS; |
1 | SELECT Names, COUNT(Passed), COUNT(Skipped), COUNT(Failed) FROM tablename GROUP BY Names |
Dat komt omdat het STATUS is opgeslagen als een string wat dus passed, failed, skipped kan hebben en eventueel meer in de toekomst.quote:Op donderdag 21 juli 2011 11:14 schreef Pakspul het volgende:
[ code verwijderd ]
Hoe ziet je tabel er precies er uit? En waarom tel je in die tabel niet direct het aantal Passed op. Soort update waar Names = Naam_1 en dan Passed = Passed + 1
Maar als je de structuur van je tabel nog even post dan kan ik beter antwoord geven
1 2 3 4 5 6 | CREATE TABLE `tabel` ( `ID` char(38) NOT NULL, `NAAM` varchar(255) DEFAULT NULL, `STATUS` varchar(255) DEFAULT NULL, PRIMARY KEY (`ID`), ) ENGINE=InnoDB DEFAULT CHARSET=latin1$$ |
Retouneert hetzelfde als mijn eigen huidige queryquote:
Ja als het kan wel want dat scheelt me wat logica in de stap ernaquote:Op donderdag 21 juli 2011 11:41 schreef Pakspul het volgende:
Oh je wilt ook met 0 erbij dat had ik niet gezien, even overheen gelezen ;+
Geef me paar minuten en je hebt je query
1 2 3 4 5 6 7 8 9 10 | SELECT ID, Names, (SELECT COUNT(t2.ID) FROM `names` t2 WHERE t2.Names = t1.Names AND Status = 'Passed' ) as 'Passed', (SELECT COUNT(t2.ID) FROM `names` t2 WHERE t2.Names = t1.Names AND Status = 'Failed' ) as 'Failed', (SELECT COUNT(t2.ID) FROM `names` t2 WHERE t2.Names = t1.Names AND Status = 'Skipped' ) as 'Skipped' FROM `names` t1 GROUP BY t1.Names |
Heb al getest met 1 naam en hij doet het alleen voor 1 record doet ie al 4-5 secondequote:Op donderdag 21 juli 2011 12:15 schreef Pakspul het volgende:
Haal Skipped en failed er eens uit en voer hem nog eens uit en kijk eens of hij het wel doet?
1 | SELECT Names, Status, COUNT(ID) AS 'Count' FROM tabel GROUP BY Names, Status |
1 2 3 4 5 6 7 8 9 10 11 | <?php $array = array( 'naam_1' => array( 'Passed = 0, 'Skipped = 0, 'Failed' = 0, ), ); $array[$record['Names']]['Passed'] = $record['Count']; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $result = mysql_query('SELECT Names, Status, COUNT(ID) AS 'Count' FROM tabel GROUP BY Names, Status'); $outputArray = array(); while($record = mysql_fetch_assoc($result) { if ( isset($outputArray[$record['Names']]) === false ) { $outputArray[$record['Names']] = array( 'Passed' = 0, 'Skipped' = 0, 'Failed' = 0, ); } $outputArray[$record['Names']][$record['Status']] = $record['Count']; } ?> |
1 2 3 4 5 6 7 | <?php foreach ($outputArray as $naam => $info) { // voorbeeld output: 'Naam_1 (5,2,0) echo $naam . " (" . $info['Passed'] . "," . $info['Skipped'] . "," . $info['Failed'] . ")"; } ?> |
Zoiets?quote:Op maandag 25 juli 2011 12:50 schreef Cue_ het volgende:
Kort vraagje;
Ik wil een rij van de ene tabel naar de andere tabel queryen.
wat eigenlijk neer komt op :
insert into table1 values (select * from table 2 where iets = iets)
Maar letterlijk werkt ie zo niet, want hij ziet volgens mij die select als 1 value.Iemand ideeen?
tnx alvast!
1 2 3 | INSERT INTO target_table (col1, col2, col3, col4) SELECT (col1, col2, col3, col4) FROM source_table WHERE iets = iets; |
Ik zal dus echt alle kolomnamen moeten uitschrijven?quote:
Ja, maar dat is toch sowieso wel een goed idee? Anders faalt je query als je later ooit eens een kolom aan je tabel toevoegt.quote:Op maandag 25 juli 2011 12:58 schreef Cue_ het volgende:
[..]
Ik zal dus echt alle kolomnamen moeten uitschrijven?
de twee tabellen zullen identiek zijn, dus daar maak ik me geen zorgen over. Maar tnx hij werkt!quote:Op maandag 25 juli 2011 13:24 schreef Tijn het volgende:
Ja, maar dat is toch sowieso wel een goed idee? Anders faalt je query als je later ooit eens een kolom aan je tabel toevoegt.
Famous last wordsquote:
Ik ben wel benieuwd waarom je eigenlijk dubbele data wil opslaan in je database. Heb je niet genoeg aan gewoon het ID van de rij die je nodig hebt?quote:Maar tnx hij werkt!
Ik vermoed dat het iets van logging of archiving is dat Cue_ wil bewerkstelligen.quote:Op maandag 25 juli 2011 13:41 schreef Tijn het volgende:
[..]
Famous last words
[..]
Ik ben wel benieuwd waarom je eigenlijk dubbele data wil opslaan in je database. Heb je niet genoeg aan gewoon het ID van de rij die je nodig hebt?
Dat inderdaadquote:Op maandag 25 juli 2011 13:41 schreef Scorpie het volgende:
Ik vermoed dat het iets van logging of archiving is dat Cue_ wil bewerkstelligen.
1 2 3 4 5 6 | <?php $results[2010]['medewerker']['jan']['percentage'] = 10 $results[2010]['medewerker']['piet']['percentage'] = 20 $results[2011]['medewerker']['jan']['percentage'] = 15 $results[2011]['medewerker']['piet']['percentage'] = 20 ?> |
Data replicatie is niet altijd de beste manier. Kan je neit beter gewoon een indicator maken die aangeeft dat de record in kwestie is verwijderd/readonly/archived is ?quote:Op maandag 25 juli 2011 13:43 schreef Cue_ het volgende:
[..]
Dat inderdaad
Zijn waarschijnlijk nog wel meer methodes voor, maar deze is voor dit geval gekozen.
Het probleem is dat hij alle jaren moet sorteren naar de sortering van de meest recente. Maar volgens mij zit ik veel te moeilijk te denken. Ik kan natuurlijk met een foreach het meest recente jaar pakken en dan de waarden van $results[$year + 1) tonen. Dan heb ik niks nodig van een sortering.quote:Op maandag 25 juli 2011 13:48 schreef Tijn het volgende:
array_multisort() doet in grote lijnen toch wel wat je hebben wil? Misschien dat je er alleen even een functie omheen moet schrijven om te zorgen dat 'ie alleen het meest recente jaar sorteert. Of zie ik iets over het hoofd?
Waar haal je het vandaan? Want als je het uit een DB haalt dan kan het makkelijker opgelost worden. Anders zou ik eens gaan kijken naar je opbouw van je array, want daar kun je volgens mij ook nog een verbeterslag maken.quote:Op maandag 25 juli 2011 13:57 schreef remi1986 het volgende:
[..]
Het probleem is dat hij alle jaren moet sorteren naar de sortering van de meest recente. Maar volgens mij zit ik veel te moeilijk te denken. Ik kan natuurlijk met een foreach het meest recente jaar pakken en dan de waarden van $results[$year + 1) tonen. Dan heb ik niks nodig van een sortering.
EDIT: lang leve de maandag
het ligt allemaal iets ingewikkelder dan dit.quote:Op maandag 25 juli 2011 14:02 schreef A-mineur het volgende:
Waarom doe je allemaal zo moeilijk je kunt toch gewoon in je query orderen, ook op meerdere velden ORDER BY YEAR(date) ASC, name ASC, date desc iets in die trend, dan hoef je niet allemaal in PHP te gaan orderen wat voor PHP dus nietszeggende data is.
Tuurlijk wel, je berekend de resultaten toch, ik zou dit sowieso berekenen met de DB daar is hij nl. voor bedoeld.quote:Op maandag 25 juli 2011 14:08 schreef remi1986 het volgende:
[..]
het ligt allemaal iets ingewikkelder dan dit.
Gebruiker voert een start en eind jaar in.
Vervolgens ga ik met een query met allemaal joins naar andere tabellen de data ophalen die ik nodig heb. Met dit resultaat van die query, vul ik de $results array, omdat de percentages niet in de database staan, maar moeten worden berekend, kan ik daar niet in de query op ordenen.
Zoals in mijn reactie hierboven, staan de percentages niet in de database. Dat wat ik toonde van de $results array is maar een klein stukje. Het is een groot overzicht met allemaal statistieken. Met de ene keer een medewerker als uitgangspunt maar in een ander overzicht het hele bedrijf.quote:Op maandag 25 juli 2011 14:07 schreef Pakspul het volgende:
[..]
Waar haal je het vandaan? Want als je het uit een DB haalt dan kan het makkelijker opgelost worden. Anders zou ik eens gaan kijken naar je opbouw van je array, want daar kun je volgens mij ook nog een verbeterslag maken.
Hoe kan ik met MySQL een percentage berekenen dan? En dan moet het een percentage zijn over de SUM van een aantal kolommen.quote:Op maandag 25 juli 2011 14:11 schreef A-mineur het volgende:
[..]
Tuurlijk wel, je berekend de resultaten toch, ik zou dit sowieso berekenen met de DB daar is hij nl. voor bedoeld.
Tevens bespaart dit je een hoop onnodig rekenwerk in PHP en dataomzetting.
Schaduw array bijhouden waar je percentages aan personen koppelt en deze makkelijk kunt sorteren Die zou je nog kunnen opnemen onder $results[jaartal][percentage2medewerker] en dan een array alla: array('85' => 'mark', '98' => 'piet', '65' => 'jan');quote:Op maandag 25 juli 2011 14:11 schreef remi1986 het volgende:
[..]
Zoals in mijn reactie hierboven, staan de percentages niet in de database. Dat wat ik toonde van de $results array is maar een klein stukje. Het is een groot overzicht met allemaal statistieken. Met de ene keer een medewerker als uitgangspunt maar in een ander overzicht het hele bedrijf.
Deel / totaal * 100 (normale percentage berekening lijkt me?)quote:Op maandag 25 juli 2011 14:16 schreef remi1986 het volgende:
[..]
Hoe kan ik met MySQL een percentage berekenen dan? En dan moet het een percentage zijn over de SUM van een aantal kolommen.
Dit is ongeveer vergelijkbaar met de oplossing die ik zelf gaf met de foreach loop. Want als je de volgorde weet van het eerste jaar, kan je ze gewoon benaderen als je de naam weet.quote:Op maandag 25 juli 2011 14:16 schreef Pakspul het volgende:
[..]
Schaduw array bijhouden waar je percentages aan personen koppelt en deze makkelijk kunt sorteren Die zou je nog kunnen opnemen onder $results[jaartal][percentage2medewerker] en dan een array alla: array('85' => 'mark', '98' => 'piet', '65' => 'jan');
Ga eerst eens spelen met je database, want dit kun je perfect daaruit halen. Percentage berekening kun je gewoon in je ORDER statement gooien.quote:Op maandag 25 juli 2011 14:19 schreef remi1986 het volgende:
[..]
Dit is ongeveer vergelijkbaar met de oplossing die ik zelf gaf met de foreach loop. Want als je de volgorde weet van het eerste jaar, kan je ze gewoon benaderen als je de naam weet.
1 | SELECT * FROM `test` ORDER BY (Deel / Totaal) DESC |
Dat is toch niet zo'n probleem? Gewoon met SUM en COUNT de totalen berekenen en dan selecten en ordenen op de waarde / totaal * 100.quote:Op maandag 25 juli 2011 14:16 schreef remi1986 het volgende:
[..]
Hoe kan ik met MySQL een percentage berekenen dan? En dan moet het een percentage zijn over de SUM van een aantal kolommen.
1 2 3 4 5 6 7 8 9 10 11 | SELECT medewerker_naam SUM(getal1) AS getal1 SUM(getal2) AS getal2 SUM(getal3) AS getal3 FROM medewerkers INNER JOIN tabel 1 INNER JOIN tabel 2 INNER JOIN tabel 3 WHERE datum BETWEEN .... AND .. GROUP BY medewerker |
Wat dacht je vanquote:Op maandag 25 juli 2011 14:28 schreef remi1986 het volgende:
De resultaten komen uit koppeltabellen en worden met GROUP BY bij elkaar gevoegd (hiermee krijg ik dus totalen voor in dit geval de medewerker)
Onderstaand de query met Nederlandse namen (kolommen heten anders, maar dit gaat sneller),
[ code verwijderd ]
Om het percentage te berekenen moet ik eerst getal 1 en 2 optellen. Getal 3 / (getal 1+2) * 100 = percentage wat ik nodig heb. Hoe wil dit allemaal in MySQL
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT medewerker_naam SUM(getal1) AS getal1 SUM(getal2) AS getal2 SUM(getal3) AS getal3 AVG (getal1, getal2, getal3) AS gemiddeld FROM medewerkers INNER JOIN tabel 1 INNER JOIN tabel 2 INNER JOIN tabel 3 WHERE datum BETWEEN .... AND .. GROUP BY gemiddeld ASC, medewerker ASC |
1 2 3 4 5 6 7 8 9 10 11 12 | SELECT medewerker_naam SUM(getal1) AS getal1 SUM(getal2) AS getal2 SUM(getal3) AS getal3 getal3 / (getal1+2) * 100 AS percentage FROM medewerkers INNER JOIN tabel 1 INNER JOIN tabel 2 INNER JOIN tabel 3 WHERE datum BETWEEN .... AND .. GROUP BY medewerker |
1 2 | SELECT Naam, SUM(Deel) / SUM(Totaal) * 100 As Percentage FROM `test` GROUP BY Naam ORDER BY Percentage DESC |
quote:
ok dit snap ik. Maar ik moet de volgorde bepalen van de medewerkers hoe deze getoond worden (hoogste percentage in laatste jaar bovenaan). Die ORDER BY gaat dan alleen op als jaar 2011 is (in het eerste voorbeeld dat ik gaf)quote:
ORDER BY Jaartal DESC, Percentage DESCquote:Op maandag 25 juli 2011 14:35 schreef remi1986 het volgende:
[..]
[..]
ok dit snap ik. Maar ik moet de volgorde bepalen van de medewerkers hoe deze getoond worden (hoogste percentage in laatste jaar bovenaan). Die ORDER BY gaat dan alleen op als jaar 2011 is (in het eerste voorbeeld dat ik gaf)
haha je was me voor,quote:Op maandag 25 juli 2011 14:37 schreef Pakspul het volgende:
[..]
ORDER BY Jaartal DESC, Percentage DESC
Als je dingen specifiek tussen 2 jaartallen wilt hebben voeg je er gewoon op het einde aan toe: WHERE YEAR(datum) BETWEEN 2000 AND 2011.quote:Op maandag 25 juli 2011 14:46 schreef remi1986 het volgende:
hmm het zal wel aan de maandag liggen, dus wellicht nog een domme opmerking
Maar mijn uiteindelijke doel is een tabel met een overzicht van alle jaren naast elkaar (onderstaand 2011 en 2010, maar dit kunnen er 10 zijn (dus tot 2001 terug).
2011 2010
Jan (getal1+2), getal 3, percentage (getal1+2), getal 3, percentage
Klaas (getal1+2), getal 3, percentage (getal1+2), getal 3, percentage
Piet (getal1+2), getal 3, percentage (getal1+2), getal 3, percentage
Volgens mij gaat dat niet goedkomen, aangezien je dit niet kan doen zonder eerst een array voor een bepaald jaar te maken. Of zit ik nu weer helemaal verkeerd te denken?
EDIT: Zou een tabel moeten voorstellen maar de jaren komen elk dus boven (getal 1 +2 etc...)
Ja dat klopt, maar dan krijg ik de resultaten verticaal terug en niet horizontaal zoals dus zou moeten.quote:Op maandag 25 juli 2011 14:50 schreef A-mineur het volgende:
[..]
Als je dingen specifiek tussen 2 jaartallen wilt hebben voeg je er gewoon op het einde aan toe: WHERE YEAR(datum) BETWEEN 2000 AND 2011.
Als je ze horizontaal wil maken zul je dus de rijen per jaar jaar voor jaar ophalen.quote:Op maandag 25 juli 2011 14:51 schreef remi1986 het volgende:
[..]
Ja dat klopt, maar dan krijg ik de resultaten verticaal terug en niet horizontaal zoals dus zou moeten.
Klopt, dit doe ik ook.. En moet je alsnog alles uit elkaar trekken om de volgorde te bepalen. Want het percentage van het meest recente jaar bepaald deze.quote:Op maandag 25 juli 2011 14:57 schreef A-mineur het volgende:
[..]
Als je ze horizontaal wil maken zul je dus de rijen per jaar jaar voor jaar ophalen.
iets van;
<?php
endyear = 2011;
for($year1 = 2000; $year1 < $endyear; $year++){
// je query. en verwerking.
}
?>
Als je nu nog de volgorde moet bepalen dan heb je dus je query nog niet goed in elkaar zitten.quote:Op maandag 25 juli 2011 15:04 schreef remi1986 het volgende:
[..]
Klopt, dit doe ik ook.. En moet je alsnog alles uit elkaar trekken om de volgorde te bepalen. Want het percentage van het meest recente jaar bepaald deze.
De volgorde wordt in de query bepaald. Je krijgt dus voor elk jaartal een query waar je de waardes ophaalt voor dat jaartal.quote:Op maandag 25 juli 2011 15:13 schreef Pakspul het volgende:
[..]
Als je nu nog de volgorde moet bepalen dan heb je dus je query nog niet goed in elkaar zitten.
dat kan ook wel in één keer het opbouwen van je array moet daarna een eitje zijn, maar het is niet de bedoeling dat hij later nog een keer naar de volgorde moet kijken. Dan mist er namelijk nog iets in zijn query.quote:Op maandag 25 juli 2011 15:38 schreef A-mineur het volgende:
[..]
De volgorde wordt in de query bepaald. Je krijgt dus voor elk jaartal een query waar je de waardes ophaalt voor dat jaartal.
Dan order je alle volgende queries toch gewoon ook op de percentages van 2011?quote:Op maandag 25 juli 2011 15:04 schreef remi1986 het volgende:
[..]
Klopt, dit doe ik ook.. En moet je alsnog alles uit elkaar trekken om de volgorde te bepalen. Want het percentage van het meest recente jaar bepaald deze.
Deze snap ik niet helemaal?quote:Op maandag 25 juli 2011 16:13 schreef Tijn het volgende:
[..]
Dan order je alle volgende queries toch gewoon ook op de percentages van 2011?
Volgens mij is het probleem dat de andere jaren gesorteerd moeten worden op de percentages van het laatste jaar.quote:Op maandag 25 juli 2011 19:54 schreef A-mineur het volgende:
Als je zorgt dat de query voor 1 jaar goed is, is de rest piece of cake en loop je die gewoon, je hoeft het niet eens in een array te mikken, want dan moet je daarna weer gaan loopen om het er uit te poepen. Dubbele moeite dus.
http://nl.php.net/soapserverquote:Op dinsdag 26 juli 2011 07:40 schreef Keiichi het volgende:
Is SOAP door php eigenlijk wel officieel ondersteund?
Het lijkt er op dat elke willekeurige SOAP 'server' gemaakt in .NET , java o.i.d. per definitie niet door bv wsdl2php komt en als dit wel lukt dat belangrijke dingen gewoon ontbreken. (Heb nu een xsd met enumeratie waar ie geen raad mee weet om een concreet voorbeeld te pakken)
Eens even naar nuSoap kijken. de soapclient van php zelf laat voor kopellingen met SOAP servers van ERP paketten enzo wat te wensen over.quote:Op dinsdag 26 juli 2011 10:57 schreef A-mineur het volgende:
[..]
http://nl.php.net/soapserver
Gebruik het regelmatig, er zijn natuurlijk wat bugs maar als je die eenmaal kent werkt het prima. Er is trouwens ook nog zoiets als nuSOAP voor PHP wat vergelijkbaar doet, alleen dan in eigen implementatie.
Ik snap niet wat je wilt bereiken, maar als de kolom naam anders moet zijn kun je gewoon een alias gebruiken. Misschien handiger om je vraag wat te specificeren met een stukje code.quote:Op dinsdag 26 juli 2011 14:54 schreef Dokay het volgende:
Fokkertjes, is er een SQL held in de zaal?
Ik wil graag een woord in een kolom veranderen naar een ander woord. Voorbeeld van een kolomwaarde:
Kostenplaats <BR> Kostensoort <BR> Subnummer <BR> Kostendrager <BR> Project
Ik zou graag "Subnummer" willen veranderen naar "Dimensie 1" voor de hele tabel. Geen probleem want dat gebruik je de REPLACE functie zou je zeggen. Maar het komt weleens voor dat de term "Subnummers" (meervoud dus) wordt gehanteerd. Aangezien je bij de REPLACE functie alleen maar een vaste zoekwaarde zonder %wildcards% kan gebruiken zit ik een beetje met de handen in het haar omdat het hier om veel verschillende tabellen gaat. Dan zou ik voor elke tabel een aparte query in elkaar moeten peuteren... Iemand een idee?
PHP script schrijven, welke eerst alle tabellen doorloopt (tabel namen in een array gooien en foreach er door heen gaan) daarna ook met de woorden die je wil vervangen (tevens weer in een array en dan foreach er door heen)quote:Op dinsdag 26 juli 2011 14:54 schreef Dokay het volgende:
Fokkertjes, is er een SQL held in de zaal?
Ik wil graag een woord in een kolom veranderen naar een ander woord. Voorbeeld van een kolomwaarde:
Kostenplaats <BR> Kostensoort <BR> Subnummer <BR> Kostendrager <BR> Project
Ik zou graag "Subnummer" willen veranderen naar "Dimensie 1" voor de hele tabel. Geen probleem want dat gebruik je de REPLACE functie zou je zeggen. Maar het komt weleens voor dat de term "Subnummers" (meervoud dus) wordt gehanteerd. Aangezien je bij de REPLACE functie alleen maar een vaste zoekwaarde zonder %wildcards% kan gebruiken zit ik een beetje met de handen in het haar omdat het hier om veel verschillende tabellen gaat. Dan zou ik voor elke tabel een aparte query in elkaar moeten peuteren... Iemand een idee?
http://www.java2s.com/Code/SQL/Select-Clause/UsingAliases.htmquote:Op dinsdag 26 juli 2011 16:28 schreef Pakspul het volgende:
[..]
PHP script schrijven, welke eerst alle tabellen doorloopt (tabel namen in een array gooien en foreach er door heen gaan) daarna ook met de woorden die je wil vervangen (tevens weer in een array en dan foreach er door heen)
Dan heb je twee foreach loops in elkaar en op diepste niveau ga je de query schrijven. Dan voer je hem uit en tada klaar
In PHP? str_pad()quote:Op woensdag 27 juli 2011 12:50 schreef Cue_ het volgende:
Wat is eigenlijk het tegenovergestelde van trim?
Ik heb een variable bv : 2574 of 4 of 24.. in ieder geval een getal.
en nu wil ik dat deze aan de voorkant wordt verlengt tot 6 tekens (wordt weggeschreven als char)
sorry, idd php. Dat is idd wat ik zoek zoals ik nu ziequote:
Geloof dat het ook met sprintf kan, "%06d"quote:Op woensdag 27 juli 2011 12:55 schreef Cue_ het volgende:
[..]
sorry, idd php. Dat is idd wat ik zoek zoals ik nu zie
pff lees weer eens niet goed.quote:Op woensdag 27 juli 2011 12:58 schreef Cue_ het volgende:
Dan nog even een heel kleintje (ook php)
hoe split ik een variable (geen array) op.
Maar dan enkel alleen op de eerste spatie die hij tegenkomt. Dus latere spaties moet hij negeren.
Volgens mij wel explode hoor, en dan bij het 3e argument 1 gebruiken.quote:
ja inderdaad zag het ook later .. las ff niet goedquote:Op woensdag 27 juli 2011 13:00 schreef mstx het volgende:
[..]
Volgens mij wel explode hoor, en dan bij het 3e argument 1 gebruiken.
" " ja en dan wel een limit opgeven (derde argument)quote:Op woensdag 27 juli 2011 13:03 schreef Cue_ het volgende:
Een spatie kan je dan toch aangeven door " " ?
Want als ik die zo pak dan splitst hij na elk getal
Dat limiet werkt!quote:Op woensdag 27 juli 2011 13:03 schreef remi1986 het volgende:
" " ja en dan wel een limit opgeven (derde argument)
explode(" ", $naam, 1) ?quote:Op woensdag 27 juli 2011 13:06 schreef Cue_ het volgende:
[..]
Dat limiet werkt!
Maar alleen die seperator nog niet.
$naam = "5424 Naam"
wordt nu met limit van 3
[0] = 5
[1] = 4
[2] = 2
Yup die iddquote:
1 2 | $username = "5427 naam"; explode(" ",$username,3); |
Je moet wel $naam = explode doen.. anders verandert de variabele nietquote:Op woensdag 27 juli 2011 13:09 schreef Cue_ het volgende:
[..]
Yup die idd
[ code verwijderd ]
Met echo
echo $username[0];
echo 'd';
echo $username[1];
echo 'd';
echo $username[2];
uitkomst
5d4d2
tnxquote:Op woensdag 27 juli 2011 13:09 schreef remi1986 het volgende:
je
[..]
Je moet wel $naam = explode doen.. anders veranderd de variabele niet
1 2 3 4 5 | <?php $string = "12 username email@domein.nl"; list($id, $name, $email) = explode(" ", $string); ?> |
1 2 3 | <input type="radio" name="adr" value="1" style="width:20px" />Yes<br /> <input type="radio" name="adr" value="2" style="width:20px" />No <br /> <input type="radio" name="adr" value="-1" style="width:20px" />Unknown <br/> |
1 2 3 4 5 6 | $pagina = new Template('layout/framework.tpl'); $inhoud = new Template("layout/new_order_1.tpl"); $inhoud->set('fout', $fouttekst); $inhoud->set ('username', $username); $inhoud->set ('trailernr', $$trailernr); |
Geen idee hoe dat in dat template-systeem werkt, maar in php kan het zo:quote:Op donderdag 28 juli 2011 14:42 schreef Cue_ het volgende:
Was ik weer
Ik heb een formulier, met daarin verschillende radiobuttons.
bv
[ code verwijderd ]
nu is het zo dat als men het formulier submit dat er bepaalde velden verplicht gevuld moeten worden, gebeurd dit niet, komen ze terug in het formulier met de eerder opgegeven waardes natuurlijk nog ingevuld. Enkel lukt mij dit niet met de radiobuttons. Geen idee hoe ik dit moet oppakken.
De andere velden vul ik door:
[ code verwijderd ]
1 2 | <input type="radio" name="adr" value="1" style="width:20px"<?php echo $_POST['adr']==1?"checked='checked'":""?> />Yes<br /> |
1 | $inhoud->set("CHECKED", $_POST['adr']==1?"checked='checked'":""); |
1 | <input type="radio" {CHECKED}> |
Deze werktquote:Op donderdag 28 juli 2011 14:49 schreef mstx het volgende:
Geen idee hoe dat in dat template-systeem werkt, maar in php kan het zo:
[ code verwijderd ]
Beter is nog je hele $_POST door een functie te halen die dit soort dingen voor je afvangtquote:Op donderdag 28 juli 2011 16:04 schreef Chandler het volgende:
die werkt fout? of controlleer je ook of er een POST is gedaan? en of $_POST['adr'] wel bestaat?
Beter is
$inhoud->set('adr', (isset($_POST['adr']) ? $_POST['adr'] : ''));
Vrouwelijke PHP-ersquote:Op donderdag 28 juli 2011 16:16 schreef Cue_ het volgende:
Ik ben een beginneling en ben al blij dat het allemaal werkt
Iddquote:
Begrijpen hoeft ook niet altijd, als je maar snapt wat er moet gebeurenquote:Op donderdag 28 juli 2011 17:06 schreef Cue_ het volgende:
Ik ben goed in afkijken van degene die andere applicaties heeft gemaakt
Dus begrijpen doe ik ook nog niet alles, maar zolang het werkt (soms op een enorm omslachtige manier) dan vind ik het goed. En hoe meer je er mee bezig bent hoe meer je het leert en snapt en dus weer spul effencienter gaat maken. Maar het kost tijd. Ben pas een maand of 2 goed bezig hiermee nu en ach, het lukt redelijk
Google (en nu fok ook) is my best friend
Ik heb voor het afhandelen van de request variabelen een simpele class geschreven. De class handelt ook eventuele encodering en het escapen van de variabelen af.quote:Op donderdag 28 juli 2011 16:10 schreef Scorpie het volgende:
[..]
Beter is nog je hele $_POST door een functie te halen die dit soort dingen voor je afvangt
Voor kleine projecten met een minieme template ga ik echt geen template engine gebruiken. PHP in de HTML code ziet er inderdaad niet sjiek uit, echter wordt het wel heel snel uitgevoerd.quote:Op donderdag 28 juli 2011 16:57 schreef remi1986 het volgende:
[..]
Niks is lelijker dan PHP rechtstreeks in je HTML code
Ligt aan het template systeem. Smarty bijvoorbeeld parsed de template 1x en zet de code om naar pure PHP en slaat die ook zo op voor de volgende call. Er zit dan natuurlijk nog steeds een overhead in maar voor de overzichtelijkheid gebruik ik het ook gewoon voor kleine projectjes.quote:Op donderdag 28 juli 2011 20:11 schreef The_Terminator het volgende:
Voor kleine projecten met een minieme template ga ik echt geen template engine gebruiken. PHP in de HTML code ziet er inderdaad niet sjiek uit, echter wordt het wel heel snel uitgevoerd.
Een template engine moet moet namelijk de volledige template bij langs en waar nodig variabelen aanpassen, dat kost gewoon tijd.
1 2 3 4 | RewriteCond %{HTTP_HOST} ^[_a-zA-Z0-9]+\.fotos\.nl$ RewriteCond %{HTTP_HOST} !^www.fotos.nl$ # RewriteCond %{REQUEST_URI} !^/members/ RewriteRule (.*) /user.php?user=$1 |
Dus het heeft niet allen met de DNS wildcard ingesteld moeten worden maar ook nog een extra setting aanpassen in http.conf?quote:Op vrijdag 29 juli 2011 00:28 schreef GlowMouse het volgende:
Apache moet om te beginnen zo ingesteld zijn dat *.fotos.nl vanuit die map geserveerd wordt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // ophalen met welk registratienummer deze session nu bezig is $huidige_regnr = $_SESSION["registratienummer"]; // ophalen van de clearance level van de huidige session $clvl_huidige_regnr = mysql_query("SELECT functie FROM $tbl_name2 WHERE registratienummer='$huidige_regnr'"); //het juiste include file bij de juiste rechten zetten zodat het juistse menu verschijnt switch ($clvl_huidige_regnr) { case 'level1': include('menu/menu1.php'); break; case 'level2': include('menu/menu2.php'); break; } ?> |
httpd.conf, want in welke map zou hij een htaccess zoeken?quote:Op vrijdag 29 juli 2011 12:59 schreef Chandler het volgende:
LOL dan ga ik de hoster daarom vragen!
Ik heb trouwens wel de melding op een subdomain (Apache is functioning normally).
Dus moet ik dan nog die httpd.conf aanpassen of betreft het dan alleen htaccess?
http://www.php.net/manual/en/function.mysql-fetch-assoc.phpquote:Op vrijdag 29 juli 2011 13:11 schreef basmens het volgende:
[ code verwijderd ]
in mijn menu wil ik afhankelijk van het clearance level een specifiek menu tonen. Bovenstaande code geeft echter een blank scherm, terwijl menu1.php nu als test een echo heeft.
Verder ben ik er ook achter gekomen dat $clvl_huidige_regnr als output heeft: Resource id #5 . Dit terwijl ik hier als output verwacht level1
een van jullie een idee waar het misgaat?
haha thnx, wist ergens wel dat er iets fout ging in de basics, maar had geen idee wat. ga ermee verder!quote:Op vrijdag 29 juli 2011 13:13 schreef Chandler het volgende:
je doet een query maar je haalt de resultaten niet op?
mysql_query = query doen
mysql_fetch_assoc = query uitlezen
in jou geval zou ik zelfs mysql_result gebruiken
bv $res = mysql_result(mysql_query("JE QUERY), 0);
Have fun!
Zou kunnen dat DA dat zelf toevoegd oid? geen idee hoor?quote:Op vrijdag 29 juli 2011 13:14 schreef GlowMouse het volgende:
httpd.conf, want in welke map zou hij een htaccess zoeken?
1 2 | $velden = "ordernr,plangroup, username, customerid, customername, orderdate,ect "; $values = $ordernr.",".$_GET['pl'].",'".$_SESSION['username']."',".$nr. etc "; |
1 | $new = $no->addOrder($velden,$values) |
Volgens mij gaat dat prima.quote:Op vrijdag 29 juli 2011 13:30 schreef Cue_ het volgende:
Ik kan niet alle velden tussen aanhalingstekens zetten, want dan heeft ie een string die hij wil wegschrijven in een numeriek veld.
Lijkt me sowieso handig.quote:Is het enige wat mogelijk is om eerst alle velden af te vangen
Ligt aan de kolom, of deze 0 of NULL als waarde moet hebben.quote:en deze anders op null te zetten?
1 2 3 4 | <?php $velden = array('ordernr'=>$ordernr, 'plangroup'=>$_GET['pl']); //etc $new = $no->addOrder($velden) ?> |
dat dacht ik ook, maar hij gaat zeuren dat hij dus geen numerieke waarde heeft. Of dat komt doordat het dus enkel '' is en niet bv 'null'.quote:
null mag ook.quote:Ligt aan de kolom, of deze 0 of NULL als waarde moet hebben.
maar hoe gaat mijn qry er dan uitzien? die is nu namelijk :quote:En ik zou trouwens alles in 1 array zetten.
[ code verwijderd ]
1 2 3 4 5 | function addOrder($velden, $values){ $query_09 = "INSERT INTO orders ($velden) VALUES ($values)"; $sql_09 = QueryOra($query_09); QueryExe($sql_09, OCI_COMMIT_ON_SUCCESS, $query_09); } |
Zo te zien gebruik je geen MySQL? Andere databases zijn meestal wat strenger dus dan gaat dat inderdaad niet werken.quote:Op vrijdag 29 juli 2011 13:40 schreef Cue_ het volgende:
dat dacht ik ook, maar hij gaat zeuren dat hij dus geen numerieke waarde heeft. Of dat komt doordat het dus enkel '' is en niet bv 'null'.
Ik ben gewend om alle insert queries via een centrale functie te doen waar je alleen de tabelnaam + velden hoeft aan te geven, zoiets;quote:maar hoe gaat mijn qry er dan uitzien? die is nu namelijk :
[ code verwijderd ]
wordt dat dan gewoon insert into order ($velden) ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php function insertRow($table, $values){ foreach ( $values as $k => $v ) { $insertColums[]=$k; if ( $v===NULL ) { $insertValues[]="NULL"; } else { $insertValues[]="'".$v."'"; } } mysql_query("INSERT INTO `" . $table . "` (`" . implode("`, `", $insertColums) . "`) VALUES (" . implode(", ", $insertValues) . ")"); return mysql_insert_id(); } ?> |
1 2 3 | <?php insertRow('orders', $velden); ?> |
Ze hebben het regeltje toegevoegd en het werkt maar dan nu het volgende. Aangezien ik maar met 1 wildcard subdomein wil testen wil ik andere (niet bestaande) redirecten naar www. echter gaat dit op een of andere manier niet werken en laat deze de index zien van het hoofd domein.quote:
1 2 3 4 5 6 7 8 9 | RewriteCond %{HTTP_HOST} ^[_a-zA-Z0-9]+\mijndomen\.nl$ RewriteCond %{HTTP_HOST} !^www\.mijndomen\.nl RewriteCond %{HTTP_HOST} !^test\.mijndomen\.nl RewriteRule ^(.*) http://www.mijndomen.nl/$1 [r=301,L] # RewriteCond %{HTTP_HOST} ^[_a-zA-Z0-9]+\.mijndomen\.nl$ RewriteCond %{HTTP_HOST} ^test\.mijndomen\.nl$ RewriteCond %{HTTP_HOST} !^www\.mijndomen\.nl$ RewriteRule (.*) subdomain.php?user=$1 |
Het volgende probleem is dat ik sessies niet over alle subdomeinen kan laten lopen grrr moet weer een aanpassing vragenquote:Op vrijdag 29 juli 2011 17:14 schreef Chandler het volgende:
Zie, daar keek ik dus al een minuut of 5 naar maar zag het niet bedankt!
http://www.php.net/manual(...)ession.cookie-domainquote:Op vrijdag 29 juli 2011 17:52 schreef Chandler het volgende:
[..]
Het volgende probleem is dat ik sessies niet over alle subdomeinen kan laten lopen grrr moet weer een aanpassing vragen
Als de server dat natuurlijk toestaat, kon het stukje niet vinden met htaccess uitlegquote:Op vrijdag 29 juli 2011 17:55 schreef GlowMouse het volgende:
[..]
http://www.php.net/manual(...)ession.cookie-domain
kan via .htaccess
1 | $values = array("ordernr" => $ordernr, "plangroup" => $plangroup, |
quote:Op maandag 1 augustus 2011 10:49 schreef Cue_ het volgende:
En we gaan weer vrolijk verder
Ik heb mijn array:
[ code verwijderd ]
Echter wil ik hier afhankelijk van de knop die ze indrukken een extra waarde bij toevoegen.
Nu kom ik de array_push wel tegen, maar hierin kan ik alleen een bepaalde waarde meegeven en niet ook de key. (voor zover ik het online zie).
ik wil eigenlijk dat er nog
$status => 2 bij toe wordt gevoegd aan bovengenoemde array.
1 2 3 4 5 | <?php if ( $knopisingedrukt ) { $values['status']=2; } ?> |
Misschien heb je er iets aan, misschien niet, maar het zijn wat manieren om array's te gebruiken.quote:Op maandag 1 augustus 2011 10:49 schreef Cue_ het volgende:
En we gaan weer vrolijk verder
Ik heb mijn array:
[ code verwijderd ]
Echter wil ik hier afhankelijk van de knop die ze indrukken een extra waarde bij toevoegen.
Nu kom ik de array_push wel tegen, maar hierin kan ik alleen een bepaalde waarde meegeven en niet ook de key. (voor zover ik het online zie).
ik wil eigenlijk dat er nog
$status => 2 bij toe wordt gevoegd aan bovengenoemde array.
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 | <?php // zo wat letters $stack = array('a', 'b', 'c'); // paar toevoegen aan de array array_push($stack, "d", "e"); // doet zelfde als array_push $stack[] = "f"; // letters met ASCII nummer $stack = array( 'a' => 97, 'b' => 98, 'c' => 99, ); // paar letters toevoegen $stack['d'] = 100; $stack['e'] = 100; // nu letter D verwijderen unset($stack['d']); ?> |
tis een tabel uit een erp systeem, dus daar kan ik niets aan veranderen. En moet hem gebruiken in een scansysteem, die weer alleen datums kan lezen als je hier een to_char om heen zet :Squote:Op donderdag 4 augustus 2011 14:32 schreef GlowMouse het volgende:
Gebruik een UPDATE query met daarin een WHERE.
Waarom maak je de kolom niet NULLable?
.....Dit snap ik nietquote:Op donderdag 4 augustus 2011 15:11 schreef GlowMouse het volgende:
Met mod-rewrite:
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^news/(.*) index.php [L]
Elke url die met news/ begint komt bij index.php terecht. Daar kun je het nieuwtje erbijzoeken.
Thank you, captain Obvious. Ik ben allang bezig.quote:
Mooi, dan hoef je hier geen compleet 'brede' vragen te stellen en ook hier geen goede antwoorden meer niet te snappen!quote:Op donderdag 4 augustus 2011 15:20 schreef 7leintje93 het volgende:
[..]
Thank you, captain Obvious. Ik ben allang bezig.
In je schoolboeken staat inderdaad niet uitgelegd hoe je een portfoliowebsite maakt (of je moet al geluk hebben dat ze het als voorbeeld gebruiken).quote:Op donderdag 4 augustus 2011 15:17 schreef 7leintje93 het volgende:
[..]
.....Dit snap ik niet
Ik heb ook al gekeken in mijn schoolboeken voor volgend jaar maar daar stond niks in dat ik nodig had of nog niet wist..
Als er in de sticky post van dit topic staat dat ik veel mag vragen dan doe ik dat. En als je vindt dat het hier niet thuis hoort begin ik vrolijk een eigen topic.quote:Op vrijdag 5 augustus 2011 08:22 schreef GI het volgende:
[..]
Mooi, dan hoef je hier geen compleet 'brede' vragen te stellen en ook hier geen goede antwoorden meer niet te snappen!
Ik heb wel eens geprobeerd Wordpress te integreren in een website maar dat was geen succes. Joomla! ook niet. Ik zal CMS made simpel eens proberen, dan kan ik verder en als de website af is kan ik altijd nog kijken of ik zoiets zelf kan bouwen. Bedankt voor uw tip!quote:Op vrijdag 5 augustus 2011 09:53 schreef remi1986 het volgende:
[..]
In je schoolboeken staat inderdaad niet uitgelegd hoe je een portfoliowebsite maakt (of je moet al geluk hebben dat ze het als voorbeeld gebruiken).
Programmeren (of met PHP is het eigenlijk scripten), is het zien van de "stappen" die je moet doen om iets voor elkaar te krijgen).
De code die GlowMouse echter gaf is geen PHP, maar hoort thuis in een .htaccess bestand. Misschien is het handig(er) om voor dit eens een CMS te pakken (heb goede ervaringen met CMS Made Simple), die het hele url rewrite gebeuren al heeft.
Als je het toch helemaal zelf wil doen, kijk eens naar mod_rewrite.
Gebruik zelf eigenlijk alleen nog maar navicat ipv pma. Werkt imo net ff wat lekkerder .quote:
Worth a try! Thanks!quote:Op vrijdag 5 augustus 2011 15:59 schreef WyriHaximus het volgende:
[..]
Gebruik zelf eigenlijk alleen nog maar navicat ipv pma. Werkt imo net ff wat lekkerder .
Zeg maar jij .. anders voel ik me zo oudquote:
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 | <?php $maand_nu = date("m"); $maandweergeef = $maand_nu ; $srv = $_SERVER['index1.php?locatie=plan']; if(isset($_POST['volgende'])) { $maandweergeef++; // Volgende Maand } switch ($maandweergeef) { case '01': echo("januari"); break; case '02': echo("februari"); break; etc... } ?> <form action="<?php echo $srv; ?>" method="post"> <input type="submit" name="volgende" value=">>" /> </form> |
Nee, dat is omdat je $maandweergeef iedere keer dat het script draait op de huidige maand zet. In plaats van op de weergegeven maand.quote:Op zaterdag 6 augustus 2011 17:23 schreef basmens het volgende:
[ code verwijderd ] Het probleem is nu dat de pagina wel begint in augustus en met de knop verandert in september, maar als ik nogmaals op de knop volgende druk verandert september niet in oktober. Lijkt mij om dat post dan al een waarde heeft en dus niet nogmaals verhoogt.
thnx alvast
Waarom maak je een knopje voor elke keer volgende maand en niet een option set?quote:Op zaterdag 6 augustus 2011 17:23 schreef basmens het volgende:
[ code verwijderd ]
beste kenners. Ben nu bezig de code te schrijven om met een knop naar de andere maand te switchen en deze variabele $maandweergeeft daar ook in te gebruiken. Het probleem is nu dat de pagina wel begint in augustus en met de knop verandert in september, maar als ik nogmaals op de knop volgende druk verandert september niet in oktober. Lijkt mij om dat post dan al een waarde heeft en dus niet nogmaals verhoogt.
Ik heb deze code echter uit een voorbeeld van een kalender en daar werkte de code wel.
Mis ik iets of is er een meer practische oplossing?
thnx alvast
1 2 3 4 5 6 7 8 9 | <?php <select name='maand'> <option value='01'>Januari</option> <option value='02'>Februari</option> <option value='03'>Maart</option> <option value='04'>April</option> <!--- etc --!> </select> ?> |
1 2 3 | <?php error_reporting(E_ALL); ?> |
Dit werkt:quote:Op zaterdag 6 augustus 2011 17:23 schreef basmens het volgende:
[ code verwijderd ]
beste kenners. Ben nu bezig de code te schrijven om met een knop naar de andere maand te switchen en deze variabele $maandweergeeft daar ook in te gebruiken. Het probleem is nu dat de pagina wel begint in augustus en met de knop verandert in september, maar als ik nogmaals op de knop volgende druk verandert september niet in oktober. Lijkt mij om dat post dan al een waarde heeft en dus niet nogmaals verhoogt.
Ik heb deze code echter uit een voorbeeld van een kalender en daar werkte de code wel.
Mis ik iets of is er een meer practische oplossing?
thnx alvast
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $month_names = array(1 => "januari", 2 => "februari", 3 => "maart", 4 => "april", 5 => "mei", 6 => "juni", 7 => "juli", 8 => "augustus", 9 => "september", 10 => "oktober", 11 => "november", 12 => "december"); $sel_month = date("n"); if(isset($_POST['current_month']) && is_numeric($_POST['current_month']) && $_POST['current_month'] > 0) { $sel_month = $_POST['current_month']; } if(isset($_POST['volgende'])) { $sel_month = ($sel_month == 12) ? 1 : ($sel_month + 1); } echo 'geselecteerde maand: ' . $month_names[$sel_month]; ?> <form action="index.php" method="post"> <input type="hidden" id="current_month" name="current_month" value="<?php print is_numeric($sel_month) ? $sel_month : 0; ?>" /> <input type="submit" name="volgende" value=">" /> </form> |
Idd, slordig foutje, was niet de bedoeling. Post zojuist aangepast.quote:Op zaterdag 6 augustus 2011 18:06 schreef GlowMouse het volgende:
Regel 11 is niet zo mooi en de regelnummering ook niet nee; fixed; edit je post om je post te fixen
jewel..... waarom denk je dat?quote:Op zaterdag 6 augustus 2011 17:58 schreef GlowMouse het volgende:
$_SERVER['index1.php?locatie=plan'] zal ook niet bestaan.
Wat voor waarde heeft die variabele dan?quote:
De array $_SERVER bestaat wel, echter wat jij eruit wil halen niet. Zie ook: http://php.net/manual/en/reserved.variables.server.phpquote:Op zaterdag 6 augustus 2011 22:04 schreef basmens het volgende:
@komttijd: had ik ook even aan gedacht, maar toen ik die regel in een include_once zette maakte het geen verschil :s
[..]
jewel..... waarom denk je dat?
Echo is sneller (en minder typen) maar er zijn situaties waarin echo niet werkt en print wel.quote:Op zaterdag 6 augustus 2011 18:09 schreef cablegunmaster het volgende:
http://www.learnphponline.com/php-basics/php-echo-vs-print
Heerlijk nutteloos, echo vs print. 20% snelheids verschil? in grote loops .
1 2 3 4 5 6 7 8 | <?php $title = 'Demo'; $showTitle = true; $showTitle && echo 'Titel: ', $title; ?> |
quote:Op maandag 8 augustus 2011 16:00 schreef cablegunmaster het volgende:
kan ik de increment counter ook ophogen met een fixed aantal? want ik wil een Tabel ergens anders laten beginnen met aantal. omdat de boekhouding zo werkt .
Ik denk dat hij bedoelt ALTER TABLE blabla AUTO_INCREMENT = 1000quote:Op maandag 8 augustus 2011 16:10 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/(...)_increment_increment
Invulvakje niet gezien.quote:Op maandag 8 augustus 2011 16:35 schreef GlowMouse het volgende:
Ik denk t ook nu ik zijn post nog een keer leest. Dat is wel minder spannend, want zelfs in phpMyAdmin zit daar een invulvakje voor.
Jep Danke ! moest even op de naam komen van AUTO_INCREMENT.quote:Op maandag 8 augustus 2011 16:33 schreef Thomass het volgende:
Ik denk dat hij bedoelt ALTER TABLE blabla AUTO_INCREMENT = 1000
1 2 3 | select lpad(trim(debnr),6,' ') as id, nvl(naam, '-' ) as fullname, count(distinct(vlootnr)) as trucks , count(*) as activities from tabel left outer join ander_tabel on debnr = debnr group by debnr, naam |
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 | session_start(); function change_password() { $G_name=$_SESSION['G_name']; $result = mysql_query("SELECT * FROM gebruikers WHERE G_name='$G_name' "); while($row = mysql_fetch_array($result)) $G_id=$row['G_id']; //$G_id = $_SESSION['G_id']; // ga er ff vanuit dat deze ook bestaat if (count($_POST) > 0 ) // zo check ik altijd de post. { //eerst oude wachtwoord ophalen $query = mysql_query("SELECT wachtwoord FROM gebruikers WHERE G_id='".mysql_real_escape_string($G_id)."' "); if (mysql_num_rows($query) == 1) { //hier bestaat de gebruiker en heb je het wachtwoord $result = mysql_fetch_array($query); //controle of opgegeven "oude" wachtwoord gelijk is aan die in de database en de twee nieuwe wachtwoorden gelijk zijn if(($result['wachtwoord'] == md5($_POST['oud_wachtwoord'])) && ($_POST['wachtwoord'] == $_POST['wachtwoord_herh'])) { //alles is goed, we kunnen gaan updaten $query = mysql_query("UPDATE gebruikers SET wachtwoord='".md5(mysql_real_escape_string($_POST['wachtwoord']))."' WHERE G_id = '".mysql_real_escape_string($G_id)."' "); echo "Het wachtwoord is aangepast"; } else { echo "Opgegeven oud wachtwoord is niet goed, of de nieuwe komen niet met elkaar overeen"; } } else { echo "Gebruiker bestaat niet"; //Eigenlijk zou deze melding nooit hoeven, omdat je ingelogd bent, maar hackers kunnen een sessie kopieren of aanmaken of posten naar dit formulier, en dan bestaat G_id dus niet. } } ?> <form action=" " method="post">Oud wachtwoord:<br /> <input type="password" name="oud_wachtwoord" /><br /> Nieuw wachtwoord:<br /> <input type="password" name="wachtwoord" /><br />Nieuw wachtwoord herhalen:<br /> <input type="password" name="wachtwoord_herh" /><br /><br /> <input type="submit" value="Wachtwoord opslaan" /> </form> <?php } |
Zet dit eens aan het begin van het script en probeer het dan nog eens:quote:Op woensdag 10 augustus 2011 11:53 schreef MrNiles het volgende:
Ik heb van iemand een script gekregen om een wachtwoord te kunnen wijzigen.
Alleen werkt het niet en degene die het voor me heeft gemaakt krijg ik niet te pakken.
Zouden jullie me kunnen helpen om het te fixen.
Het script doet niets
krijg geen echo helemaal niets
zodra ik op de button wachtwoord opslaan druk dan krijg ik de index pagina
wat gaat er fout...want ik snap m niet
[ code verwijderd ]
Komt het niet omdat je nergens de wachtwoorden die je invult in je variabelen zet?quote:Op woensdag 10 augustus 2011 11:53 schreef MrNiles het volgende:
Ik heb van iemand een script gekregen om een wachtwoord te kunnen wijzigen.
Alleen werkt het niet en degene die het voor me heeft gemaakt krijg ik niet te pakken.
Zouden jullie me kunnen helpen om het te fixen.
Het script doet niets
krijg geen echo helemaal niets
zodra ik op de button wachtwoord opslaan druk dan krijg ik de index pagina
wat gaat er fout...want ik snap m niet
[ code verwijderd ]
Zo te zien komt dat direct uit de POST array. Natuurlijk geen goede manier van doen aangezien je niet eens weet of die variabelen wel bestaan. En 'if (count($_POST) > 0 ) // zo check ik altijd de post.' is geen manier om te checken of bepaalde variabelen bestaan, het triggert al zodra er nonsense wordt gepost.quote:Op woensdag 10 augustus 2011 12:15 schreef boem-dikkie het volgende:
[..]
Komt het niet omdat je nergens de wachtwoorden die je invult in je variabelen zet?
De form staat ook in de functie, en ik haal uit de post dat de form wel wordt weergegeven: 'zodra ik op de button wachtwoord opslaan druk dan krijg ik de index pagina'. Ik neem aan dat de functie wel ergens wordt aangeroepen.quote:Op woensdag 10 augustus 2011 12:21 schreef lifeblind het volgende:
Zo te zien wordt de functie change_password() niet eens aangeroepen, dan doet ie ook vrij weinig.
De functie kan initieel wel aangeroepen worden zodat het form zichtbaar is, maar nadat er op submit gedrukt is, moet het stukje script wat de verwerking doet, OOK die functie aanroepen omdat de verwerking verder namelijk in die functie staat...quote:Op woensdag 10 augustus 2011 12:27 schreef The_Terminator het volgende:
[..]
Zo te zien komt dat direct uit de POST array. Natuurlijk geen goede manier van doen aangezien je niet eens weet of die variabelen wel bestaan. En 'if (count($_POST) > 0 ) // zo check ik altijd de post.' is geen manier om te checken of bepaalde variabelen bestaan, het triggert al zodra er nonsense wordt gepost.
[..]
De form staat ook in de functie, en ik haal uit de post dat de form wel wordt weergegeven: 'zodra ik op de button wachtwoord opslaan druk dan krijg ik de index pagina'. Ik neem aan dat de functie wel ergens wordt aangeroepen.
De action is ook leeg. Misschien wordt naar hetzelfde bestand gepost, maar omdat de afhandeling in een functie staat en niet wordt aangeroepen, gebeurt er niks.quote:Op woensdag 10 augustus 2011 12:31 schreef lifeblind het volgende:
[..]
De functie kan initieel wel aangeroepen worden zodat het form zichtbaar is, maar nadat er op submit gedrukt is, moet het stukje script wat de verwerking doet, OOK die functie aanroepen omdat de verwerking verder namelijk in die functie staat...
Sowieso erg onhandig om het form in de functie te zetten die de verwerking doet...
Dat bedoel ik inderdaad. De action mag gewoon leeg zijn, dan post ie gewoon naar zichzelf. Maar zonder dat er iets met die post gedaan wordt, gebeurt er vrij weinig.quote:Op woensdag 10 augustus 2011 12:33 schreef remi1986 het volgende:
[..]
De action is ook leeg. Misschien wordt naar hetzelfde bestand gepost, maar omdat de afhandeling in een functie staat en niet wordt aangeroepen, gebeurt er niks.
Sinds wanneer? action moet wel in je form tag staan, maar hij mag gewoon leeg zijn hoor (leeg als in "", je had er zelf een spatie in staan in je voorbeeld.quote:Op woensdag 10 augustus 2011 16:03 schreef MrNiles het volgende:
met velen dank aan remi is het gelukt
zat m inderdaad in de form action, die mag voor IE niet leeg zijn
Volgens de specs mag dat inderdaad, maar IE pikt het niet. Zelf ook al eens meegemaakt.quote:Op woensdag 10 augustus 2011 16:31 schreef lifeblind het volgende:
[..]
Sinds wanneer? action moet wel in je form tag staan, maar hij mag gewoon leeg zijn hoor (leeg als in "", je had er zelf een spatie in staan in je voorbeeld.
Ah oke, nu je het zegt kan ik me er vaag wel iets van herinneren, maar goed, voor de zekerheid vul ik altijd wel gewoon de action in, dan weet ik zelf 100% zeker dat ie goed gaat.quote:Op woensdag 10 augustus 2011 16:33 schreef Intrepidity het volgende:
[..]
Volgens de specs mag dat inderdaad, maar IE pikt het niet. Zelf ook al eens meegemaakt.
quote:Op vrijdag 12 augustus 2011 08:27 schreef MrNiles het volgende:
waarschijnlijk een hele domme vraag..maar ik stel m toch maar
kan je database ook anders zijn dan localhost?
is het dus mogelijk om op 1 site een database te onderhouden en deze op een hele andere url weer uit te lezen?
Mits je provider dat toestaat . Sommige providers wilen hierover best moeilijk doen. blabla beveiliging en zulks zeiken ze dan over. hetgeen in mijn ogen ongegrond is .quote:Op vrijdag 12 augustus 2011 08:49 schreef Sitethief het volgende:
Ja, dan moet je gewoon het adres geven van de plek waar die database staat.
ok..das dan wel goed om rekening mee te houdenquote:Op vrijdag 12 augustus 2011 08:50 schreef cablegunmaster het volgende:
[..]
[..]
Mits je provider dat toestaat . Sommige providers wilen hierover best moeilijk doen. blabla beveiliging en zulks zeiken ze dan over. hetgeen in mijn ogen ongegrond is .
Lijkt me stug dat ze daar moeilijk over doen. Scheelt hun alleen maar servergebruikquote:Op vrijdag 12 augustus 2011 08:56 schreef MrNiles het volgende:
[..]
ok..das dan wel goed om rekening mee te houden
ik heb nu een cheap provider..die nogal wat dingen niet toelaat (geen cronjobs, geen unzip)
dus dikke kans dat dit ook niet mag...ff uitproberen
Goed, mijn wsdl zou niet goed zijn zegt die. Als ik de url http://localhost/LTFU/index.php/wsdl in de browser plak krijg ik wel netjes een XML te zien. En als ik hem door een online validator heen haal krijg ik als antwoord dat die perfect is.quote:PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost/LTFU/index.php/wsdl' : Premature end of data in tag html line 1
De WSDL wordt automatisch gegenereerd.quote:Op maandag 15 augustus 2011 11:26 schreef GlowMouse het volgende:
waarom laad je hem in via http:// en niet via het filesystem?
Niks ongegronds aan databaseservers niet van buiten benaderbaar te maken.quote:Op vrijdag 12 augustus 2011 08:50 schreef cablegunmaster het volgende:
Mits je provider dat toestaat . Sommige providers wilen hierover best moeilijk doen. blabla beveiliging en zulks zeiken ze dan over. hetgeen in mijn ogen ongegrond is .
En terecht.quote:Op vrijdag 12 augustus 2011 17:09 schreef KomtTijd... het volgende:
Lijkt me stug dat ze daar moeilijk over doen. Scheelt hun alleen maar servergebruik
De database van een goedkope hosting extern benaderen, daar doen ze vaak wel moeilijk over...
dus eigenlijk is het niet sowieso niet slim om het te proberenquote:Op maandag 15 augustus 2011 11:51 schreef Catbert het volgende:
[..]
Niks ongegronds aan databaseservers niet van buiten benaderbaar te maken.
[..]
En terecht.
Inderdaad. Onze database-servers zijn geen van allen van buiten benaderbaar. En als er dan toch van buitenaf gegevens nodig zijn komt er een webservice, geen directe DB-toegang.quote:Op maandag 15 augustus 2011 11:51 schreef Catbert het volgende:
[..]
Niks ongegronds aan databaseservers niet van buiten benaderbaar te maken.
Hoe bedoel je omzeilen met Curl? Je kunt gewoon niet van buitenaf bij die servers omdat er niks op die poort luistert.quote:Op maandag 15 augustus 2011 11:56 schreef MrNiles het volgende:
dus eigenlijk is het niet sowieso niet slim om het te proberen
maaruh kun je het niet omzeilen met curl?
Wat bedoel je met 'exacte locatie'? De database luistert over het algemeen alleen op localhost, of op een andere hostname, en die gegevens krijg je van je provider. Als het goed ingesteld staat is het niet te achterhalen waar de database fysiek staat, en je hebt er ook niks aan dat te weten.quote:maar of zelf wat uit te testen..kan ik ergens stukje code de exacte locatie van de database opvragen?
Het draait allebei op localhost (de werkende en niet werkende). De files staan alleen op die url zodat jullie ze kunnen bekijken.quote:Op maandag 15 augustus 2011 11:34 schreef GlowMouse het volgende:
op http://localhost kan dmv vhosts heel wat anders draaien dan op http://www.solutia.nl Dat zie je al aan "Premature end of data in tag html", want in jouw code zit helemaal geen html tag op regel 1 en bij een willekeurige andere pagina vaak wel.
probeer eens een php-script: echo file_get_contents('http://localhost/LTFU/index.php');
dynamisch genereren kan ook met include, dat scheelt je webserver weer werk.
variable isBusy opnemen? Wanneer die ziet dat die true is dan de query overslaan en anders uitvoeren?quote:Op woensdag 17 augustus 2011 14:15 schreef Dale. het volgende:
Vraagje...
Queued MySQL events? Ik heb namelijk een routine die om de 5 seconde wordt uitgevoerd. Het kan soms gebeuren dat deze routine langer dan 5 seconde duurt. Nu wil ik weten als de routine langer duurt dan 5 seconde queued MySQL dan het event? Of slaat hij het gewoon over?
Wanneer die queued... is het mogelijk om het event dan over te slaan?
Natuurlijk wordt er gequeued. Anders zou iedere website vastlopen als twee bezoekers tegelijk (of vlak na elkaar) een pagina opvragen.quote:Op woensdag 17 augustus 2011 14:15 schreef Dale. het volgende:
Vraagje...
Queued MySQL events? Ik heb namelijk een routine die om de 5 seconde wordt uitgevoerd. Het kan soms gebeuren dat deze routine langer dan 5 seconde duurt. Nu wil ik weten als de routine langer duurt dan 5 seconde queued MySQL dan het event? Of slaat hij het gewoon over?
Wanneer die queued... is het mogelijk om het event dan over te slaan?
1 2 3 4 5 6 7 8 9 10 11 | <?php $start = (float) array_sum(explode(' ',microtime())); //--code uitvoeren $end = (float) array_sum(explode(' ',microtime())); if($verschil<5){ //-sqlstatement } ?> |
queries worden niet gequeued hoorquote:Op woensdag 17 augustus 2011 14:41 schreef KomtTijd... het volgende:
[..]
Natuurlijk wordt er gequeued. Anders zou iedere website vastlopen als twee bezoekers tegelijk (of vlak na elkaar) een pagina opvragen.
Dan moet je je query wel asynchroon draaien, anders kom je al niet bij die code. Ik ben weinig scripts tegengekomen die queries asynchroon draaien.quote:Op woensdag 17 augustus 2011 14:43 schreef GI het volgende:
Je kan, in principe kijken hoe lang je script al loopt, en als het langer dan vijf seconden is dan niet het sql statement uitvoern ?
[ code verwijderd ]
User-defined variables are connection-specific.quote:Op woensdag 17 augustus 2011 14:31 schreef Pakspul het volgende:
[..]
variable isBusy opnemen? Wanneer die ziet dat die true is dan de query overslaan en anders uitvoeren?
Bij PHP werkt dat toch anders, als ik om de 100msec wil kijken hoelang het script loopt dan gaat mij dat liet lukken als ik een sleep(10) heb aangeroepen. Mooiste zou zijn als PHP threads and zogenaamde backgroundworkers kan laten runnen, maar dat is voor PHP niet echt bepaald nodig.quote:Op woensdag 17 augustus 2011 14:43 schreef GI het volgende:
Je kan, in principe kijken hoe lang je script al loopt, en als het langer dan vijf seconden is dan niet het sql statement uitvoern ?
[ code verwijderd ]
Ik ging er eigenlijk vanuit datquote:Op woensdag 17 augustus 2011 14:45 schreef GlowMouse het volgende:
Dan moet je je query wel asynchroon draaien, anders kom je al niet bij die code. Ik ben weinig scripts tegengekomen die queries asynchroon draaien.
een php routine zou zijn die hij om de zoveel tijd aanriep. Maar je kan het ook lezen als een mysql routine die getimed loopt. Indien dat het geval is dan heeft mijn code weinig nut.quote:Ik heb namelijk een routine
Kun je ook een settings tabel in je database voor gebruiken, dan sla je daar je variabel opquote:Op woensdag 17 augustus 2011 14:48 schreef Tijn het volgende:
Ik zou vanuit je script een bestandje aanmaken voordat de query wordt uitgevoerd en weer weghalen zodra de query voltooid is. Je kunt dan controleren of het bestandje bestaat en alleen als 'ie niet bestaat de query runnen.
Daar kun je beter een lockfile voor gebruiken.quote:Op woensdag 17 augustus 2011 14:48 schreef Tijn het volgende:
Ik zou vanuit je script een bestandje aanmaken voordat de query wordt uitgevoerd en weer weghalen zodra de query voltooid is. Je kunt dan controleren of het bestandje bestaat en alleen als 'ie niet bestaat de query runnen.
MySQL eventsquote:
Even mechanisme inbouwen dus...quote:An event performs a specific action according to a schedule. This action consists of an SQL statement, which can be a compound statement in a BEGIN ... END block if desired (see Section 12.7, “MySQL Compound-Statement Syntax”). An event's timing can be either one-time or recurrent. A one-time event executes one time only. A recurrent event repeats its action at a regular interval, and the schedule for a recurring event can be assigned a specific start day and time, end day and time, both, or neither. (By default, a recurring event's schedule begins as soon as it is created, and continues indefinitely, until it is disabled or dropped.)
If a repeating event does not terminate within its scheduling interval, the result may be multiple instances of the event executing simultaneously. If this is undesirable, you should institute a mechanism to prevent simultaneous instances. For example, you could use the GET_LOCK() function, or row or table locking.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php class Gastenboek { public $naam, $bericht; public function __construct ($naam, $bericht) { $this->Naam = $naam; $this->Bericht = $bericht; } public function Insert () { $sql = "INSERT INTO gastenboek (Naam, Bericht) VALUES ('" . mysql_real_escape_string($This->Naam) . "', '" . mysql_real_escape_string($This->Bericht) . "')"; if (!mysql_query($sql)) { $melding = "<p>Error.</p>"; } else { $melding = "<p>Bericht is succesvol toegevoegd.</p>"; } } } ?> |
1 | Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in *** on line 5 |
Ik heb helemaal geen verstand van OOP e.d. ik ben een YT-video aan het bekijken en zelf aan het proberen.quote:Op woensdag 17 augustus 2011 15:38 schreef GlowMouse het volgende:
boem: php4? En let op hoofdletters.
1 2 | <?php phpinfo(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php class Gastenboek { var $naam, $bericht; public function Gastenboek($naam, $bericht){ $this->Naam = $naam; $this->Bericht = $bericht; } public function Insert () { $sql = "INSERT INTO gastenboek (Naam, Bericht) VALUES ('" . mysql_real_escape_string($This->Naam) . "', '" . mysql_real_escape_string($This->Bericht) . "')"; if (!mysql_query($sql)) { $melding = "<p>Error.</p>"; } else { $melding = "<p>Bericht is succesvol toegevoegd.</p>"; } } } ?> |
Domme vraag: Kan ik gewoon mijn 'hosting-bedrijf' mailen met de vraag of ze dit voor me kunnen updaten? Kan ik niet zelf doen toch?quote:Op woensdag 17 augustus 2011 15:47 schreef U.N.K.L.E. het volgende:
OOP is niet leuk in php4 dus upgrade even naar 5.2 ofzo, dan kun je goed oefenen
ja dat moeten zij doen ja. Beetje vreemd wel dat ze nog op php4 draaien, misschien is dat een optie ofzo. In ieder geval moet dat server-side, dus bij hun, geregeld wordenquote:Op woensdag 17 augustus 2011 15:49 schreef boem-dikkie het volgende:
[..]
Domme vraag: Kan ik gewoon mijn 'hosting-bedrijf' mailen met de vraag of ze dit voor me kunnen updaten? Kan ik niet zelf doen toch?
Pleur error_reporting(E_ALL); ook nog even aan, want je definieert eerst variabelen zonder hoofdletter en roept dan met hoofdletter aan (zie regel: 6,7)quote:Op woensdag 17 augustus 2011 15:47 schreef boem-dikkie het volgende:
Ik heb het nu zo maar krijg dezelfde error als zonet.
[ code verwijderd ]
Je kon het kiezen. Ik ben daar al een tijd klant en mensen die voor een bepaalde datum al klant waren blijven PHP4 draaien tot je dat zelf aanpast.quote:Op woensdag 17 augustus 2011 16:06 schreef KomtTijd... het volgende:
Dat je je provider moet schoppen, als'ie nog steeds PHP4 draait.
Al gedaan, thanks. Ik had E_ALL ook al aan trouwens, die gaf over die variabelen geen fouten.quote:Op woensdag 17 augustus 2011 16:11 schreef Pakspul het volgende:
[..]
Pleur error_reporting(E_ALL); ook nog even aan, want je definieert eerst variabelen zonder hoofdletter en roept dan met hoofdletter aan (zie regel: 6,7)
Nee, stmmen met je voeten is weglopen naar een ander.quote:Op woensdag 17 augustus 2011 16:06 schreef KomtTijd... het volgende:
Dat je je provider moet schoppen, als'ie nog steeds PHP4 draait.
Krom, zou die wel moeten doen. Ander punt volgens mij is je klasse opbouw ook niet helemaal goed. Een gastenboek als class hebben betekent dat je meerdere gastenboeken hebt. Maar jij hebt een gastboek met daarin meerdere berichten. Dus je class moet GasteboekBericht heten o.i.d. In de gastenboek class komen dingen als AantalBerichten (totaal) en Berichten per pagina etc.quote:Op woensdag 17 augustus 2011 16:14 schreef boem-dikkie het volgende:
[..]
Al gedaan, thanks. Ik had E_ALL ook al aan trouwens, die gaf over die variabelen geen fouten.
Ja oké. Maar de namen hier zijn meer om even te testen of het werkt. Ben pas net aan het inlezen over OOP en het één en ander aan het proberen.quote:Op woensdag 17 augustus 2011 16:17 schreef Pakspul het volgende:
[..]
Krom, zou die wel moeten doen. Ander punt volgens mij is je klasse opbouw ook niet helemaal goed. Een gastenboek als class hebben betekent dat je meerdere gastenboeken hebt. Maar jij hebt een gastboek met daarin meerdere berichten. Dus je class moet GasteboekBericht heten o.i.d. In de gastenboek class komen dingen als AantalBerichten (totaal) en Berichten per pagina etc.
Dat is stemmen met je portemonneequote:Op woensdag 17 augustus 2011 16:15 schreef GlowMouse het volgende:
[..]
Nee, stmmen met je voeten is weglopen naar een ander.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $res = mysql_query($sql, $dbe); if ($res && mysql_num_rows($res) > 0) { $i = 0; while($row = mysql_fetch_array($res, MYSQL_ASSOC)){ foreach($row as $key => $value){ $output[$i][$key] = $value; } $i++; } } ?> |
Volgens mij heb je het al aardig minimalistisch.quote:Op woensdag 17 augustus 2011 16:44 schreef Sitethief het volgende:
[ code verwijderd ]
Kan dit performance wise sneller? Ik heb het gevoel dat ik iets verkeerd doe.....
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <?php $res = mysql_query($sql, $dbe); if ( is_resource($res) === true ) { if ( mysql_num_rows($res) > 0 ) { $outputArray = array(); while($row = mysql_fetch_assoc($res)) { $outputArray[] = $row; } } } else { die(mysql_error()); } ?> |
1 2 3 4 5 | <?php if (!mysql_query($sql)) {$this->melding = "<p>Error.</p>";} else {$this->melding = "<p>Bericht is succesvol toegevoegd.</p>";} } ?> |
1 | <?php if (!empty($Gastenboek->melding)) { echo $Gastenboek->melding; } ?> |
Als er iets misgaat bij invoeren van het bericht kun je ook een Exception gooien die je dan buiten de class kunt opvangen.quote:Op woensdag 17 augustus 2011 17:15 schreef boem-dikkie het volgende:
Om aan te geven of ik een error of een goedkeuring heb bij het toevoegen van een bericht heb ik dit stukje.
[ code verwijderd ]
Buiten de class spreek ik dit aan doormiddel van:
[ code verwijderd ]
Hij laat nu echter altijd "Bericht is succesvol toegevoegd" zien boven het formulier in plaats wanneer ik iets heb toegevoegd.
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 | <?php try { $gastboek->BerichtToevoegen(); // als alles is goed gegaan dan gaat hij hier verder } catch( Exception $ex) { echo "<h1>Er is iets heel ergs gebeurd!</h1>"; echo $ex->getMessage(); exit; } // in het gastenboek class Gastenboek { function BerichtToevoegen() { $result = mysql_query($query); if ( $result === false ) { throw new Exception(mysql_error()); } } } ?> |
Oké, maar dan alsnog vraag ik me af waarom hij mijn '!empty' niet pakt terwijl hij dat in mijn 'oude' code (niet OOP) wel gewoon doet.quote:Op woensdag 17 augustus 2011 17:31 schreef Pakspul het volgende:
[..]
Als er iets misgaat bij invoeren van het bericht kun je ook een Exception gooien die je dan buiten de class kunt opvangen.
[ code verwijderd ]
Hoe en waar heb je '$this->melding' gedeclareerd?quote:Op woensdag 17 augustus 2011 19:22 schreef boem-dikkie het volgende:
[..]
Oké, maar dan alsnog vraag ik me af waarom hij mijn '!empty' niet pakt terwijl hij dat in mijn 'oude' code (niet OOP) wel gewoon doet.
Gooi eens wat meer code hier neer, want doe je de formulier afhandeling (aanname <form action="post">) achter de volgende ifstatement.quote:Op woensdag 17 augustus 2011 19:22 schreef boem-dikkie het volgende:
[..]
Oké, maar dan alsnog vraag ik me af waarom hij mijn '!empty' niet pakt terwijl hij dat in mijn 'oude' code (niet OOP) wel gewoon doet.
1 2 3 4 5 6 | <?php if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) { // hier formulier afhandeling } ?> |
Met SimpleXMLElement kun je eenvoudig een XML bestand omzetten naar een array. Volgens mij moet het daarna een eitje zijn om je object te vullen.quote:Op woensdag 17 augustus 2011 21:31 schreef ursel het volgende:
Hoe kan ik een Soap XML het gemakkelijskte omzetten naar een Data object?
Ja, ik weet dat met een soap call je dit automatisch kan aanroepen, maar heb een aantal xml's per file toegestuurd gekregen
Ja, was daar ondertussen al half. Soms zit je gewoon ff in de verkeerde hoek te zoeken.quote:Op woensdag 17 augustus 2011 21:52 schreef Pakspul het volgende:
[..]
Met SimpleXMLElement kun je eenvoudig een XML bestand omzetten naar een array. Volgens mij moet het daarna een eitje zijn om je object te vullen.
Laatste tijd zelf met XML bezig geweest en kwam hier na een tijdje achter. Zat eerst dagen met XML reader/writers te kloten en dit is velen malen makkelijker aangezien ik het ook zo wilde hebbenquote:Op woensdag 17 augustus 2011 21:55 schreef ursel het volgende:
[..]
Ja, was daar ondertussen al half. Soms zit je gewoon ff in de verkeerde hoek te zoeken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | <?php final class DataBase { private static $_Instance; private $_ID; // hier komt de PDO class in te staan public $_onnectionString; protected function __construct { // niet public omdat dat nodig is in singleton pattern } public function ExecuteQuery($Query) { // hier wordt de SELECT query uitgevoerd } public function ExecuteNonQuery($Query) { // hier worden INSERT, UPDATE, DELETE queries uitgevoerd } public function Open() { // openen van de database connectie (moet je dus wel connection string hebben) } public function Close() { // spreekt voor zich } // kun je gebruiken bij ISERTR query om nieuwe ID nummer op te halen (a public function LastInsertID() { return (int) $this->_ID->lastInsertID(); } public function BeginTransaction() { $this->_ID->beginTransaction(); } public function Commit() { $this->_ID->Commit(); } public function Rollback() { $this->_ID->Rollback(); } final static public function GetInstance() { if ( self::$_Instance === null ) { self::$_Instance = new DataBase(); } return self::$_Instance; } final public function __Clone() { throw new Exception("Ain't allowed to clone this object"); } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php // ergens in het begin van je code $db = DataBase::GetInstance(); $db->ConnectionString = "localhost;balblablablabla"; $db->Open(); // om query uit te voeren $db = DataBase::GetInstance(); $db->ExecuteQuery("query hier invullen"); // afsluiter $db = DataBase::GetInstance(); $db->Close(); ?> |
Ahzo ik gebruik gewoon query, want een andere class bouwt deze queries op aan de hand van de models (classes die directe relatie hebben met tabellen in de database). Laatste tijd schrijf ik eigenlijk echt nooit meer een echte queryquote:Op donderdag 18 augustus 2011 11:30 schreef Sitethief het volgende:
PDO::prepare en PDO::exec bedoel ik dan hé.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |