Waarom niet gewoon XAMPP installeren, ben je in 1x klaar.quote:Op woensdag 2 april 2014 20:47 schreef Modus het volgende:
Geïnstalleerd, maar 'Deze toepassing kan niet worden gestart omdat php_mbstring.dll niet kan worden gevonden. Opnieuw installeren van deze toepassing kan dit probleem oplossen'.
Nog een keer installeren helpt niet. In die zip van PHP.net zit wel een bestand met die naam, is neem ik aan hetzelfde, maar waar moet ik het dan heen kopiëren?
-edit
ik geloof dat ik hem nu toch aan de praat heb
Tering dat ga je toch niet menen? Windows kan geen PHP5.5 draaien? 5.2 is al jaren uit de support en 5.3 binnenkort ook.quote:Op woensdag 2 april 2014 19:01 schreef Modus het volgende:
"If PHP is used with IIS then choose PHP 5.3 VC9 Non Thread Safe or PHP 5.2 VC6 Non Thread Safe;"
quote:Op donderdag 3 april 2014 01:54 schreef totalvamp het volgende:
[..]
Waarom niet gewoon XAMPP installeren, ben je in 1x klaar.
Omdat ik de ballen verstand heb van het hele technische aspect eromheen, ik wil eerst alleen maar een beetje de taal leren, dan moet je nu eenmaal een webservertje hebben. De Wampserverversie die ik nu heb geïnstalleerd, heeft PHP 5.4.16.quote:Op donderdag 3 april 2014 10:16 schreef KomtTijd... het volgende:
[..]
Tering dat ga je toch niet menen? Windows kan geen PHP5.5 draaien? 5.2 is al jaren uit de support en 5.3 binnenkort ook.
Ms heb ik op dit moment wel geen geld voor een upgrade?quote:Op donderdag 3 april 2014 14:15 schreef slacker_nl het volgende:
http://windows.php.net/ zou gewoon 5.5 moeten kunnen gebruiken..
Aha, hij gebruikt XP (unsupported) en wilt dan PHP gaan gebruiken. Makkelijk doen is zo 2012
Als je wil ontwikkelen met PHP zou ik zeggen: installeer Ubuntu. Kost niks en het is veel makkelijker alles aan de praat te krijgen en up-to-date te houden dan Windows.quote:Op donderdag 3 april 2014 14:31 schreef Modus het volgende:
[..]
Ms heb ik op dit moment wel geen geld voor een upgrade?
Ben overigens wel aan het kijken wat de mogelijkheden zijn, want helemaal niks veranderen lijkt me ook niet slim.
Ik moet nog uitzoeken of ik met wellicht een paar reepjes extra geheugen kan upgraden naar Win7, dat zou ik wel doen dan. Zoals mijn PC (uit 2006) nu is, draait dat anders ws niet of zeer traag.quote:Op donderdag 3 april 2014 14:59 schreef Tijn het volgende:
[..]
Als je wil ontwikkelen met PHP zou ik zeggen: installeer Ubuntu. Kost niks en het is veel makkelijker alles aan de praat te krijgen en up-to-date te houden dan Windows.
Waarom geen wampservertje op windows voor dev doeleinden installeren?quote:Op donderdag 3 april 2014 14:59 schreef Tijn het volgende:
[..]
Als je wil ontwikkelen met PHP zou ik zeggen: installeer Ubuntu. Kost niks en het is veel makkelijker alles aan de praat te krijgen en up-to-date te houden dan Windows.
Ja, dat kan natuurlijk ook. Maar als je op XP zit en geen geld hebt om te upgraden en je computer voornamelijk gebruikt voor webdevelopment zou ik zeggen: ga voor Ubuntu.quote:Op donderdag 3 april 2014 15:16 schreef Scorpie het volgende:
[..]
Waarom geen wampservertje op windows voor dev doeleinden installeren?
Belangrijk detail: het is ook gewoon de PC die op internet zit aangesloten.quote:Op donderdag 3 april 2014 15:31 schreef Tijn het volgende:
[..]
Ja, dat kan natuurlijk ook. Maar als je op XP zit en geen geld hebt om te upgraden en je computer voornamelijk gebruikt voor webdevelopment zou ik zeggen: ga voor Ubuntu.
Wat zijn "reguliere" programma's? Je hebt hartstikke veel software voor Ubuntu, maar als de vraag is "kan ik Windows-software in Ubuntu draaien?" dan is het antwoord over het algemeen nee. Maar zoiets als Apache, PHP en MySQL is geïnstalleerd in een handomdraai.quote:Op donderdag 3 april 2014 15:14 schreef Modus het volgende:
[..]
Ik ben een beetje 'huiverig' voor zo'n heel ander OS als Ubuntu (draaien reguliere programma's daar ook allemaal onder?)
Dat zal toch niet? Ik heb al jaren geen Windows meer gebruikt, maar ik neem aan dat je toch wel gewoon van XP naar Windows 7 kunt upgraden met behoud van je applicaties en instellingen?quote:en heb weinig zin in weer een kale install (half jaartje geleden nog gedaan) maar als ik het goed begrepen heb, gebeurt dat bij een Windows upgrade dus ook.
Waarom is dat een belangrijk detail? Natuurlijk zit je computer op internet aangesloten, ik begrijp niet wat je wilt zeggen met deze opmerkingquote:Op donderdag 3 april 2014 15:35 schreef Modus het volgende:
[..]
Belangrijk detail: het is ook gewoon de PC die op internet zit aangesloten..
Gewoon de standaard dingen als Winamp, Word, Firefox.quote:Op donderdag 3 april 2014 15:38 schreef Tijn het volgende:
[..]
Wat zijn "reguliere" programma's? Je hebt hartstikke veel software voor Ubuntu, maar als de vraag is "kan ik Windows-software in Ubuntu draaien?" dan is het antwoord over het algemeen nee. Maar zoiets als Apache, PHP en MySQL is geïnstalleerd in een handomdraai.
Ik weet het ook niet zeker.quote:Dat zal toch niet? Ik heb al jaren geen Windows meer gebruikt, maar ik neem aan dat je toch wel gewoon van XP naar Windows 7 kunt upgraden met behoud van je applicaties en instellingen?
Alleen een beetje ontwikkelen kan natuurlijk prima zonder internet. Maar met XP straks het internet nog op wordt toch als grootste risicofactor aangegeven?quote:Op donderdag 3 april 2014 15:39 schreef Tijn het volgende:
[..]
Waarom is dat een belangrijk detail? Natuurlijk zit je computer op internet aangesloten, ik begrijp niet wat je wilt zeggen met deze opmerking
Tja, geen idee of diegene affiniteit met linux heeft, anders is het nog wel een drastische wijzigingquote:Op donderdag 3 april 2014 15:31 schreef Tijn het volgende:
[..]
Ja, dat kan natuurlijk ook. Maar als je op XP zit en geen geld hebt om te upgraden en je computer voornamelijk gebruikt voor webdevelopment zou ik zeggen: ga voor Ubuntu.
Ach welnee.quote:Op donderdag 3 april 2014 15:45 schreef Modus het volgende:
Alleen een beetje ontwikkelen kan natuurlijk prima zonder internet. Maar met XP straks het internet nog op wordt toch als grootste risicofactor aangegeven?
Firefox is er ook voor Linux. Winamp en Word niet. Maar dat wil niet zeggen dat je in Ubuntu geen muziek kunt luisteren of brieven kunt typen.quote:Op donderdag 3 april 2014 15:45 schreef Modus het volgende:
[..]
Gewoon de standaard dingen als Winamp, Word, Firefox.
Het lijkt me bijzonder sterk dat er geen upgradepath van XP naar 7 is zonder dataverlies.quote:Ik weet het ook niet zeker.
Het is natuurlijk moeilijk in te schatten wat er gaat gebeuren, omdat niemand weet wat voor onveiligheden er nog in XP blijken te zitten. Maar je zou zeggen dat de grootste gaten er na 13 jaar wel uit zijn, toch? Bovendien houdt je router/firewall ook al een hoop aanvallen tegen. Ik zou zeggen dat als je niet al te rare software installeert en een beetje oppast met waar je op klikt, je niet zoveel kan gebeuren.quote:Alleen een beetje ontwikkelen kan natuurlijk prima zonder internet. Maar met XP straks het internet nog op wordt toch als grootste risicofactor aangegeven?
Ik vind dat je een beetje flexibiliteit van geest wel mag verwachten van een ontwikkelaar. Zo raar is het niet als je een handjevol programmeertalen en besturingssystemen beheerst, toch?quote:Op donderdag 3 april 2014 15:55 schreef Scorpie het volgende:
[..]
Tja, geen idee of diegene affiniteit met linux heeft, anders is het nog wel een drastische wijziging
Ik heb het een half jaartje geprobeerd, maar ik ben een lui mens zodra ik thuis kom. Dus als ik dan iets wou doen was dat altijd lastiger dan dat dat onder mijn windhoos was. Ik had en heb geen behoefte een compleet nieuw OS van haver tot gort te leren kennen alleen maar om de correcte browserversie te kunnen installeren. Ik wil gewoon een werkend systeem hebben waar ik mijn zooi kan doen.quote:Op donderdag 3 april 2014 16:07 schreef Tijn het volgende:
[..]
Ik vind dat je een beetje flexibiliteit van geest wel mag verwachten van een ontwikkelaar. Zo raar is het niet als je een handjevol programmeertalen en besturingssystemen beheerst, toch?
Een kale install op unix bestaat niet (nouja, hij bestaat, maar dan heb je een cli voor je snufferd en dan kan je gaan installen). Een gangbare distro heeft gelijk alles voor je geinstalleerd wat je als gangbare gebruiker kan gebruiken. En anders heb je altijd nog de live versies die je vanaf USB/CD kan bekijken zonder te installen (en je kan dan ook nog eens packages installen en devven als je wilt).quote:Op donderdag 3 april 2014 15:14 schreef Modus het volgende:
[..]
Ik moet nog uitzoeken of ik met wellicht een paar reepjes extra geheugen kan upgraden naar Win7, dat zou ik wel doen dan. Zoals mijn PC (uit 2006) nu is, draait dat anders ws niet of zeer traag.
Ik ben een beetje 'huiverig' voor zo'n heel ander OS als Ubuntu (draaien reguliere programma's daar ook allemaal onder?) en heb weinig zin in weer een kale install (half jaartje geleden nog gedaan) maar als ik het goed begrepen heb, gebeurt dat bij een Windows upgrade dus ook.
Ik zou ook heus wel een keer overstappen maar nu zou het gewoon even slecht uitkomen. Verder heb ik het idee dat ik wel iets meer dan gemiddeld weet waar wel en niet op te klikken. Het probleem is idd een beetje dat niemand weet hoe en wat; dan is overstappen op een wel ondersteund systeem op zich geen rare stap natuurlijk.quote:Op donderdag 3 april 2014 16:06 schreef Tijn het volgende:
Het is natuurlijk moeilijk in te schatten wat er gaat gebeuren, omdat niemand weet wat voor onveiligheden er nog in XP blijken te zitten. Maar je zou zeggen dat de grootste gaten er na 13 jaar wel uit zijn, toch? Bovendien houdt je router/firewall ook al een hoop aanvallen tegen. Ik zou zeggen dat als je niet al te rare software installeert en een beetje oppast met waar je op klikt, je niet zoveel kan gebeuren.
Het grootste probleem waar je tegenaan gaat lopen als je op XP blijft hangen is dat er op een gegeven moment helemaal geen software meer uitkomt die je kunt draaien.
Ik snap de gedachtengang wel, maar ik zou mezelf (nog) bepaald geen ontwikkelaar willen noemen. Klein beginnen. C:\mijneerstephppagina.php met "Hello World".quote:Op donderdag 3 april 2014 16:07 schreef Tijn het volgende:
[..]
Ik vind dat je een beetje flexibiliteit van geest wel mag verwachten van een ontwikkelaar. Zo raar is het niet als je een handjevol programmeertalen en besturingssystemen beheerst, toch?
Ongetwijfeld goed bedoeld, maar ik snap weinig van wat je zegt. Zoals ik al zei, klein beginnen. "Linux-bak", hoor en zie die kreet zo vaak langskomen maar ik heb geen idee wat het nou precies is, en is volgens mij ook niet bijster relevant voor wat ik nu wil gaan doen. Correct me if I'm wrong.quote:Op donderdag 3 april 2014 19:06 schreef slacker_nl het volgende:
[..]
Een kale install op unix bestaat niet (nouja, hij bestaat, maar dan heb je een cli voor je snufferd en dan kan je gaan installen). Een gangbare distro heeft gelijk alles voor je geinstalleerd wat je als gangbare gebruiker kan gebruiken. En anders heb je altijd nog de live versies die je vanaf USB/CD kan bekijken zonder te installen (en je kan dan ook nog eens packages installen en devven als je wilt).
Wat je mogelijk zou kunnen proberen:
http://www.vagrantup.com/
Devven op een linux doosje, binnen je Windows machine.
Nee, was slechts een voorbeeld. Heb nog helemaal geen webroot aangemaakt. Ook dat moet ik nog uitzoeken, want eik weet ik niet eens waarom dat dan fout/onverstandig zou zijn.quote:Op donderdag 3 april 2014 19:16 schreef KomtTijd... het volgende:
Je hebt toch niet je C:-partitie je webroot gemaakt he?
Ik trek mn handen hiervan af, succes!quote:Op donderdag 3 april 2014 19:17 schreef Modus het volgende:
[..]
Ongetwijfeld goed bedoeld, maar ik snap weinig van wat je zegt. Zoals ik al zei, klein beginnen. "Linux-bak", hoor en zie die kreet zo vaak langskomen maar ik heb geen idee wat het nou precies is, en is volgens mij ook niet bijster relevant voor wat ik nu wil gaan doen. Correct me if I'm wrong.
Het was even pielen maar met nog wat hulp heb ik de eerste scriptjes werkend kunnen krijgen, met die Wampserver dus. Thanks.quote:Op vrijdag 4 april 2014 00:58 schreef terdege het volgende:
Hij wil gewoon kennis maken met PHP en jullie raden hem aan om van OS te veranderen? Modus ik zou gewoon XAMPP downloaden. Je installeert het, jet zet een aantal dingen aan in het menu, je zet je bestanden in de root directory (default is c/xampp/htdocs) en dan kan je je website zien door localhost/websiteurl in je browser te typen. Volgens mij heb ik zo ongeveer alles verteld wat nodig is om te beginnen.
Ik denk niet dat je je hele harde schijf via HTTP beschikbaar wilt stellen aan de buitenwereldquote:Op donderdag 3 april 2014 19:19 schreef Modus het volgende:
[..]
Nee, was slechts een voorbeeld. Heb nog helemaal geen webroot aangemaakt. Ook dat moet ik nog uitzoeken, want eik weet ik niet eens waarom dat dan fout/onverstandig zou zijn.
Je kunt op zich prima op windows devven (mits je wel even Dejavu mono installeert natuurlijk) maar een webserver draaien op een linux machine is gewoon een stuk makkelijker. In het begin heb ik zelf altijd externe servers gebruikt om mijn scripts op te testen, dat werkt ook best prima. Scheelt je een hoop gedoe, maar het nadeel is natuurlijk dat je altijd online moet zijn.quote:Op vrijdag 4 april 2014 00:58 schreef terdege het volgende:
Hij wil gewoon kennis maken met PHP en jullie raden hem aan om van OS te veranderen? Modus ik zou gewoon XAMPP downloaden. Je installeert het, jet zet een aantal dingen aan in het menu, je zet je bestanden in de root directory (default is c/xampp/htdocs) en dan kan je je website zien door localhost/websiteurl in je browser te typen. Volgens mij heb ik zo ongeveer alles verteld wat nodig is om te beginnen.
En om het vervolgens nog een stapje eenvoudiger te maken kan je desnoods via PuPHPet aanklikken wat je wil hebben.quote:Op donderdag 3 april 2014 19:06 schreef slacker_nl het volgende:
[..]
Een kale install op unix bestaat niet (nouja, hij bestaat, maar dan heb je een cli voor je snufferd en dan kan je gaan installen). Een gangbare distro heeft gelijk alles voor je geinstalleerd wat je als gangbare gebruiker kan gebruiken. En anders heb je altijd nog de live versies die je vanaf USB/CD kan bekijken zonder te installen (en je kan dan ook nog eens packages installen en devven als je wilt).
Wat je mogelijk zou kunnen proberen:
http://www.vagrantup.com/
Devven op een linux doosje, binnen je Windows machine.
Toen ik dat nog deed, gebruikte ik ImageMagick via de command line vanuit PHP. Ik gebruikte als basis Thumbnail Party, maar dan volledig aangepast zodat het alleen ImageMagick gebruikte (geen GD), zelf caching ingebouwd, opties toegevoegd/veranderd.quote:Op donderdag 3 april 2014 14:18 schreef Chandler het volgende:
Is er ook eens php/apache/mysql distro met imagemagick?voor winhoos? want het installeren van imagemagick is mij tot op heden nog steeds niet gelukt (werkend krijgen onder php...)
Hoezo, bij een post zit de file in het geheugen en kan je daarmee aan de gang gaan, dan hoef je niks speciaals te doen?!quote:Op zaterdag 5 april 2014 15:40 schreef papernote het volgende:
Waarom?
Ik gebruikte het om door de bezoeker geüploade afbeeldingen te bewerken. Die staan op het file system en niet in het geheugen (geldt waarschijnlijk sowieso voor alle afbeeldingen). PHP is echt te gelimiteerd om serieuze beeldverwerking te doen. En dan ga je lopen klooien door een afbeelding in het geheugen te laden (loop je enorm snel tegen je PHP memory_limit aan) en dan via PHP met ImageMagick te bewerken? Ik kan er geen logische argumenten voor bedenken.
Wat bedoel je met "bij een post zit de file in het geheugen"?quote:Op zaterdag 5 april 2014 16:31 schreef slacker_nl het volgende:
[..]
Hoezo, bij een post zit de file in het geheugen en kan je daarmee aan de gang gaan, dan hoef je niks speciaals te doen?!
Totdat je de file opslaat heb je niks op disk. Dus zit alles in het geheugen. Of heb je bij php gelijk een filehandle waar je wat mee kan doen?quote:Op zaterdag 5 april 2014 17:01 schreef Tijn het volgende:
[..]
Wat bedoel je met "bij een post zit de file in het geheugen"?
1 2 3 | <?php $_FILES['userfile']['tmp_name'] ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | <?php /* Sessie starten */ session_start(); /* If/else afhandeling. Voorkomt fouten bij lege variabele */ if (isset($_SESSION['llnr'])) { $llnr = $_SESSION['llnr']; } else { $llnr = 220225; // echo "Leerlingnummer onbekend. Probeer opnieuw."; // exit(); } if (isset($_SESSION['Vak00'])) { $Vak00 = $_SESSION['Vak00']; } else { $Vak00 = null; } if (isset($_SESSION['Vak01'])) { $Vak01 = $_SESSION['Vak01']; } else { $Vak01 = null; } if (isset($_SESSION['Vak02'])) { $Vak02 = $_SESSION['Vak02']; } else { $Vak02 = null; } if (isset($_SESSION['Vak03'])) { $Vak03 = $_SESSION['Vak03']; } else { $Vak03 = null; } if (isset($_SESSION['Vak04'])) { $Vak04 = $_SESSION['Vak04']; } else { $Vak04 = null; } if (isset($_SESSION['Vak05'])) { $Vak05 = $_SESSION['Vak05']; } else { $Vak05 = null; } if (isset($_SESSION['Vak06'])) { $Vak06 = $_SESSION['Vak06']; } else { $Vak06 = null; } if (isset($_SESSION['Vak07'])) { $Vak07 = $_SESSION['Vak07']; } else { $Vak07 = null; } if (isset($_SESSION['Vak08'])) { $Vak08 = $_SESSION['Vak08']; } else { $Vak08 = null; } if (isset($_SESSION['Vak08'])) { $Vak08 = $_SESSION['Vak08']; } else { $Vak08 = null; } if (isset($_SESSION['Vak08'])) { $Vak09 = $_SESSION['Vak09']; } else { $Vak09 = null; } if (isset($_SESSION['Vak10'])) { $Vak10 = $_SESSION['Vak10']; } else { $Vak10 = null; } if (isset($_SESSION['Vak11'])) { $Vak11 = $_SESSION['Vak11']; } else { $Vak11 = null; } if (isset($_SESSION['Vak12'])) { $Vak12 = $_SESSION['Vak12']; } else { $Vak12 = null; } if (isset($_SESSION['Vak13'])) { $Vak13 = $_SESSION['Vak13']; } else { $Vak13 = null; } if (isset($_SESSION['Vak14'])) { $Vak14 = $_SESSION['Vak14']; } else { $Vak14 = null; } if (isset($_SESSION['Vak15'])) { $Vak15 = $_SESSION['Vak15']; } else { $Vak15 = null; } if (isset($_SESSION['Vak16'])) { $Vak16 = $_SESSION['Vak16']; } else { $Vak16 = null; } if (isset($_SESSION['Vak17'])) { $Vak17 = $_SESSION['Vak17']; } else { $Vak17 = null; } if (isset($_SESSION['Vak18'])) { $Vak18 = $_SESSION['Vak18']; } else { $Vak18 = null; } if (isset($_SESSION['Keuze1'])) { $Keuze1 = $_SESSION['Keuze1']; } else { $Keuze1 = null; } if (isset($_SESSION['Keuze2'])) { $Keuze2 = $_SESSION['Keuze2']; } else { $Keuze2 = null; } if (isset($_SESSION['Opmerkingen'])) { $Opmerkingen = $_SESSION['Opmerkingen']; } else { $Opmerkingen = null; } /* Controleer verbinding */ $link = mysqli_connect("localhost", "root", "usbw", "profielkeuze"); if (mysqli_connect_errno()) { printf("Fout bij verbinden met de database: %s\n", mysqli_connect_error()); exit(); } else { echo "Je profielkeuze is doorgegeven. Je mag de pagina sluiten."; } /* Query naar database */ $query = "INSERT INTO keuzes (llnr, Vak00, Vak01, Vak02, Vak03, Vak04, Vak05, Vak06, Vak07, Vak08, Vak09, Vak10, Vak11, Vak12, Vak13, Vak14, Vak15, Vak16, Vak17, Vak18, Keuze1, Keuze2, Opmerkingen) VALUES ('$llnr', '$Vak00', '$Vak01', '$Vak02', '$Vak03', '$Vak04, '$Vak05', '$Vak06', '$Vak07', '$Vak08', '$Vak09', '$Vak10', '$Vak11', '$Vak12', '$Vak13', '$Vak14', '$Vak15', '$Vak16', '$Vak17', '$Vak18', '$Keuze1', '$Keuze2', '$Opmerkingen')"; mysqli_query($link, $query); /* TEST QUERY */ //$query2 = "INSERT INTO keuzes (llnr, Vak04) VALUES (224, 'Geschiedenis')"; //mysqli_query($link, $query2); /* Sluit verbinding */ mysqli_close($link); /* Sessie in de kliko */ //session_destroy(); ?> |
1 2 | if("".($_POST["value1"]+0) != $_POST["value1"]) $message="<font color=#FF0000>Value 1 must be a number</font><script>document.forms[0].value1.focus();</script>"; |
1 2 3 | $test=0+"a"; echo $test; if($test==0){echo "gelukt";} |
Ik zou de code eerst maar veranderen. De sessie hoort een array te zijn, met daarin alle vakken. Dit is gewoon niet goed gedaan.quote:Op zondag 6 april 2014 03:09 schreef DrNick het volgende:
Ik krijg wat variabelen door via de sessie en die moeten naar de database worden gestuurd. Zijn ze leeg wordt het null, anders behouden ze hun waarde. In beide gevallen wordt het een "lokale" variabele. Het probleem is echter dat er niets in de database komt. De testquery onderaan werkt wel, dus de verbinding is er. Weet iemand hoe dat komt?
n.b. Regel 9 is er omdat de leerlingnummers hier niet werkzaam waren. Dit nummer is hier het leerlingnummer.
[ code verwijderd ]
Ik snap je rare constructie niet.quote:Op zondag 6 april 2014 03:13 schreef Robuustheid het volgende:
[ code verwijderd ]
De waarde uit value1 in principe een cijfer. Bij een cijfer, gaat dat samen met de 0, dus 1+0 = 1. Bij een karakter, wordt het bijv. a0. Dus niet gelijk aan de value1.
Als je iets anders dan een cijfer invoert, dan wordt bovenstaande melding uit variabele $message weergegeven.
Maar wat ik niet begrijp...
[ code verwijderd ]
In de echo, krijg ik alleen de 0 te zien, zonder 'a'. Als ik dit test, is er ook alleen 0 aan de variabele $test toegekend, zonder de letter 'a'. Hoe kan PHP in eerste code dan valideren of er een karakter aanwezig is?
Het aantal vakken blijft hetzelfde, dat is geen probleem. Wat is het eigenlijke probleem dan eigenlijk?quote:Op zondag 6 april 2014 03:21 schreef totalvamp het volgende:
[..]
Ik zou de code eerst maar veranderen. De sessie hoort een array te zijn, met daarin alle vakken. Dit is gewoon niet goed gedaan.
Als je nu meer vakken krijgt moet je alles aanpassen.
Daarnaast de tabel aanpassen naar een betere standaard. Je kunt hier het beste 2 of 3 tabellen gebruiken.
Vakken:
id vak leerlingnr
Omdat een SYSTEM call veel langer duurt dan een niet SYSTEM call... uit ervaring.. vandaar.. En dat m.b.t. het geheugen, dat is zowel een probleem met of zonder SYSTEM call aangezien je toch de afbeelding wil bewerken en dat kost een berg met geheugen!quote:Op zaterdag 5 april 2014 15:40 schreef papernote het volgende:
Waarom?
Ik gebruikte het om door de bezoeker geüploade afbeeldingen te bewerken. Die staan op het file system en niet in het geheugen (geldt waarschijnlijk sowieso voor alle afbeeldingen). PHP is echt te gelimiteerd om serieuze beeldverwerking te doen. En dan ga je lopen klooien door een afbeelding in het geheugen te laden (loop je enorm snel tegen je PHP memory_limit aan) en dan via PHP met ImageMagick te bewerken? Ik kan er geen logische argumenten voor bedenken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php # Jouw $_SESSION $GEKOZEN = array( 'Vak00' => 'Nederlands', 'Keuze1' => '' ); # Hier zet je wat je wilt hebben $keuzes = array('Vak00', 'Vak01', 'Keuze1'); # Hierin prop je het nieuwe resultaat. $gekozen; # Doe 139 regels code in 3 foreach ($keuzes as $v) { $gekozen[$v] = isset($GEKOZEN[$v]) ? $GEKOZEN[$v] : null; } # Je resultaat print_r($gekozen); ?> |
Het is ook niet m'n constructie. Als de 0+"a" een 0 oplevert, waarom ziet de interpreter dat anders als hij het met de 0 vergelijkt, en als false evalueert? Dat is mijn vraag namelijk..quote:Op zondag 6 april 2014 03:24 schreef totalvamp het volgende:
[..]
Ik snap je rare constructie niet.
Wat is er mis met is_int() of ctype_digit()?
daarnaast is "a" 0 in je constructie. Wat er gebeurd is dit: 0 + (int) "a" = 0
als je strings wilt samenvoegen doe je dat met . 0."a"
Misschien heb je hier wat aan:quote:Op zondag 6 april 2014 11:09 schreef Robuustheid het volgende:
[..]
Het is ook niet m'n constructie. Als de 0+"a" een 0 oplevert, waarom ziet de interpreter dat anders als hij het met de 0 vergelijkt, en als false evalueert? Dat is mijn vraag namelijk..
Dat snap ik, maar mijn vraag staat nog steeds open......quote:Op zondag 6 april 2014 11:17 schreef slacker_nl het volgende:
[..]
Misschien heb je hier wat aan:
http://www.php.net/manual(...)es.string.conversion
$test + "10 varkens" wordt namelijk 10.
Dat kan wel, want zoals je ziet is 0 + "een willekeurig iets" 0. Wat false is.quote:Op zondag 6 april 2014 11:55 schreef Robuustheid het volgende:
[..]
Dat snap ik, maar mijn vraag staat nog steeds open......
Mijn vraag: waarom kan-ie het als false evalueren, aangezien 0+a met uitkomst 0 volgens PHP niet gelijk staat aan 0?
1 2 3 4 5 6 7 | <?php # uit de docs $foo = 1 + "bob3"; // $foo is integer (1) # jouw voorbeeld $test = 0 + 'a'; // $test is dus 0 ?> |
Maar wat probeer je nou te doen dan? Ik snap niet waarom je die vergelijking wilt doen.quote:Op zondag 6 april 2014 12:32 schreef Robuustheid het volgende:
Volgens mij praten we langs elkaar heen.
Je zegt van wel, maar PHP zegt van niet. Dat probeer ik dus te begrijpen.
Met strlen() kun je de lengte van een string opvragen. Als die 0 is, is de string leeg en zijn er dus geen karakters aanwezig.quote:Op zondag 6 april 2014 03:13 schreef Robuustheid het volgende:
Hoe kan PHP in eerste code dan valideren of er een karakter aanwezig is?
1 2 3 4 5 6 | <?php $string = '0'; if (empty($string) && strlen($string) > 0) { echo 'Leeg maar toch ook niet'; } ?> |
Dat wel jaquote:Op zondag 6 april 2014 09:02 schreef slacker_nl het volgende:
@DrNick
Had je niet het idee, dat je heel veel hetzelfde aan het doen was?
[ code verwijderd ]
Je kan nu je query gaan opbouwen, hoe? Dat laat ik aan jou over, maar het is ongeveer hetzelfde. En tip: prepared statements.
Nogmaals: ik heb de vergelijking niet gemaakt. Dit is door iemand anders opgesteld, en ik vraag mij af waarom hij werkt. Inmiddels heb ik het opgelost.quote:Op zondag 6 april 2014 12:37 schreef totalvamp het volgende:
[..]
Maar wat probeer je nou te doen dan? Ik snap niet waarom je die vergelijking wilt doen.
Dat kan ook, bedankt voor je aanvulling. Maar dat vroeg ik mij niet af. Evengoed bedankt.quote:Op zondag 6 april 2014 12:44 schreef Light het volgende:
[..]
Met strlen() kun je de lengte van een string opvragen. Als die 0 is, is de string leeg en zijn er dus geen karakters aanwezig.
Verder kun je met empty() ook kijken of een variabele leeg is. Maar dan moet je er wel op letten dat het in PHP mogelijk is dat een lege string toch 1 teken bevat.
[ code verwijderd ]
Ook. Ik vind ze icm named parameters erg fijn.quote:Op zondag 6 april 2014 12:48 schreef DrNick het volgende:
[..]
Dat wel ja
Tof, ik ga het eens proberen. Die prepared statements zijn in verband met sql injecties toch?
Wat een raar iets dan, ik hoop niet dat de code vol bagger staat als ditquote:Op zondag 6 april 2014 13:02 schreef Robuustheid het volgende:
[..]
Nogmaals: ik heb de vergelijking niet gemaakt. Dit is door iemand anders opgesteld, en ik vraag mij af waarom hij werkt. Inmiddels heb ik het opgelost.
Als je een "a" invoert, en dat optelt met 0, levert het een 0 op. Dat staat niet gelijk aan de invoer met "a".
[..]
Dat kan ook, bedankt voor je aanvulling. Maar dat vroeg ik mij niet af. Evengoed bedankt.
Nou voorruit, voor jou dan:quote:Op zondag 6 april 2014 13:14 schreef totalvamp het volgende:
[..]
Wat een raar iets dan, ik hoop niet dat de code vol bagger staat als ditdat kan namelijk niet veel goed betekenen xD
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Je mag het raar vinden, maar het a+0 en vervolgens vergelijken of het gelijk staat aan a, vind ik erg slim bedacht.![]()
Is het in dit geval niet beter om het op onderstaande manier te doen?quote:Op zondag 6 april 2014 12:44 schreef Light het volgende:
[..]
Met strlen() kun je de lengte van een string opvragen. Als die 0 is, is de string leeg en zijn er dus geen karakters aanwezig.
Verder kun je met empty() ook kijken of een variabele leeg is. Maar dan moet je er wel op letten dat het in PHP mogelijk is dat een lege string toch 1 teken bevat.
[ code verwijderd ]
1 2 3 4 5 6 | <?php $string = '0'; if (empty($string) && $string != '') { echo 'Leeg maar toch ook niet'; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | <?php /* Sessie starten */ session_start(); /* If/else afhandeling. Voorkomt fouten bij lege variabele */ if (isset($_SESSION['llnr'])) { $llnr = $_SESSION['llnr']; } else { // $llnr = 220225; echo "Leerlingnummer onbekend. Probeer opnieuw."; exit(); } if (isset($_SESSION['Vak00'])) { $Vak00 = $_SESSION['Vak00']; } else { $Vak00 = null; } if (isset($_SESSION['Vak01'])) { $Vak01 = $_SESSION['Vak01']; } else { $Vak01 = null; } #etcetera /* Controleer verbinding */ $link = mysqli_connect("localhost", "root", "usbw", "profielkeuze"); if (mysqli_connect_errno()) { printf("Fout bij verbinden met de database: %s\n", mysqli_connect_error()); exit(); } else { echo "Je profielkeuze is doorgegeven. Je mag de pagina sluiten."; } echo $llnr; echo $Vak00; echo $Vak01; echo $Vak02; echo $Vak03; echo $Vak04; echo $Vak05; echo $Vak06; echo $Vak07; echo $Vak08; echo $Vak09; echo $Vak10; echo $Vak11; echo $Vak12; echo $Vak13; echo $Keuze1; echo $Keuze2; echo $Opmerkingen; /* Query naar database */ $query = "INSERT INTO keuzes (llnr, Vak00, Vak01, Vak02, Vak03, Vak04, Vak05, Vak06, Vak07, Vak08, Vak09, Vak10, Vak11, Vak12, Vak13, Keuze1, Keuze2, Opmerkingen) VALUES ('$llnr', '$Vak00', '$Vak01', '$Vak02', '$Vak03', '$Vak04', '$Vak05', '$Vak06', '$Vak07', '$Vak08', '$Vak09', '$Vak10', '$Vak11', '$Vak12', '$Vak13', '$Keuze1', '$Keuze2', '$Opmerkingen')"; mysqli_query($link, $query); /* TEST QUERY */ //$query2 = "INSERT INTO keuzes (llnr, Vak04) VALUES (224, 'Geschiedenis')"; //mysqli_query($link, $query2); /* Sluit verbinding */ mysqli_close($link); /* Sessie in de kliko */ //session_destroy(); ?> |
Da's ook nog een mogelijkheidquote:Op zondag 6 april 2014 14:14 schreef bondage het volgende:
[..]
Is het in dit geval niet beter om het op onderstaande manier te doen?
[ code verwijderd ]
Ik doe het altijd zo omdat het imo resources kost om die strlen functie aan te roepen terwijl je eigenlijk alleen wilt weten of de string leeg is.
Dan moet je dus kijken wat er mis gaat. Er zijn functies die je dat kunnen vertellen, maar dan moet je ze wel gebruiken. Bijvoorbeeld:quote:Op zondag 6 april 2014 15:26 schreef DrNick het volgende:
[ code verwijderd ]
Ondanks eerdere tips wil ik het eigenlijk zo doen. Het probleem is nog steeds aanwezig, namelijk dat de variabelen niet in de database komen. Met de variabelen is niets mis want bij het echoen verschijnen ze op het beeld. De test query werkt ook dus de databaseverbinding is er.
1 2 3 4 5 6 7 8 9 | <?php /* Query naar database */ $query = "INSERT INTO keuzes (llnr, Vak00, Vak01, Vak02, Vak03, Vak04, Vak05, Vak06, Vak07, Vak08, Vak09, Vak10, Vak11, Vak12, Vak13, Keuze1, Keuze2, Opmerkingen) VALUES ('$llnr', '$Vak00', '$Vak01', '$Vak02', '$Vak03', '$Vak04, '$Vak05', '$Vak06', '$Vak07', '$Vak08', '$Vak09', '$Vak10', '$Vak11', '$Vak12', '$Vak13', '$Keuze1', '$Keuze2', '$Opmerkingen')"; mysqli_query($link, $query); if (mysqli_errno($link)) { echo mysqli_error($link); } ?> |
Als ik die gebruik krijg ik geen error of iets dergelijks.quote:Op zondag 6 april 2014 15:39 schreef Light het volgende:
[..]
Dan moet je dus kijken wat er mis gaat. Er zijn functies die je dat kunnen vertellen, maar dan moet je ze wel gebruiken. Bijvoorbeeld:
[ code verwijderd ]
1 2 3 4 5 | <tr> <td> <?php echo $_SESSION['Vak10']; ?> </td> <td> <input type="radio" name="Keuze1" value="<?php echo $_SESSION['Vak10']; ?>" / > </td> <td> <input type="radio" name="Keuze2" value="<?php echo $_SESSION['Vak10']; ?>" / > </td> </tr> |
$_SESSION['Keuze1'] = $row['keuze1']quote:Op zondag 6 april 2014 16:13 schreef DrNick het volgende:
Nu heb ik dit: Keuze1 en Keuze2, welke worden gekozen uit een table, moeten toegewezen worden aan resp. $_SESSION['Keuze1'] en $_SESSION['Keuze2']. Hoe is dit te bewerkstelligen?
Waar moet ik die plaatsen? Ik heb onder de table geprobeerd, maar dan krijg ik deze melding:quote:Op zondag 6 april 2014 16:17 schreef bondage het volgende:
[..]
$_SESSION['Keuze1'] = $row['keuze1']
$_SESSION['Keuze2'] = $row['keuze2']
Ik neem aan dat je dan voorderest geen PHP meer gaat programmeren? Je script is zo lek als een mandje.quote:Op zondag 6 april 2014 15:26 schreef DrNick het volgende:
[ code verwijderd ]
Ondanks eerdere tips wil ik het eigenlijk zo doen. Het probleem is nog steeds aanwezig, namelijk dat de variabelen niet in de database komen. Met de variabelen is niets mis want bij het echoen verschijnen ze op het beeld. De test query werkt ook dus de databaseverbinding is er.
$row['veldnaam'] was puur gekozen als voorbeeld. Je moet de resultaten uit de DB halen en daarmee de sessie vullen. Hoe dit gaat hangt af van de lib die je gebruikt om de query uit te voeren etc.quote:Op zondag 6 april 2014 16:20 schreef DrNick het volgende:
[..]
Waar moet ik die plaatsen? Ik heb onder de table geprobeerd, maar dan krijg ik deze melding:
Notice: Undefined variable: row in C:\*\root\Keuze.php on line 136
Notice: Undefined variable: row in C:\*\root\Keuze.php on line 137
1 2 3 4 5 6 7 8 | <?php $query = "SELECT keuze, waarde FROM tabel where..."; $result = $mysqli->query($query); while($row = $result->fetch_array()) { $_SESSION[$row['keuze']] = $row['waarde']; } ?> |
Die resultaten zaten nog niet in de databasequote:Op zondag 6 april 2014 16:28 schreef bondage het volgende:
[..]
$row['veldnaam'] was puur gekozen als voorbeeld. Je moet de resultaten uit de DB halen en daarmee de sessie vullen. Hoe dit gaat hangt af van de lib die je gebruikt om de query uit te voeren etc.
Als je mysqli gebruikt krijg je zoiets:
[ code verwijderd ]
Hierna ben ik er voor de rest van mijn leven klaar meequote:Op zondag 6 april 2014 16:28 schreef totalvamp het volgende:
[..]
Ik neem aan dat je dan voorderest geen PHP meer gaat programmeren? Je script is zo lek als een mandje.
Ah, zo. Vergeet overigens niet de waarden ff door htmlentities te halen voordat ze worden verwerkt in de HTML.quote:Op zondag 6 april 2014 16:34 schreef DrNick het volgende:
[..]
Die resultaten zaten nog niet in de database
Het werkt inmiddels
Nee het is niet slim, het is gewoon niet nodig. Je hebt standaard functies in PHP die kunnen kijken of iets een waarde is. Daarnaast staat je HTML vol met fouten.quote:Op zondag 6 april 2014 13:55 schreef Robuustheid het volgende:
[..]
Nou voorruit, voor jou dan:
Je mag het raar vinden, maar het a+0 en vervolgens vergelijken of het gelijk staat aan a, vind ik erg slim bedacht.
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 | <html> <head><title>PHP Web Calc</title></head></html> <body> <?php if(!isset($_POST["value1"])) $_POST["value1"]=0; if(!isset($_POST["value2"])) $_POST["value2"]=0; if(!is_int($_POST['value1'])) { $message="<font color=#FF0000>Value 1 must be a number</font><script>document.forms[0].value1.focus();</script>"; } else if(!is_int($_POST['value2'])) { $message="<font color=#FF0000>Value 2 must be a number</font><script>document.forms[0].value2.focus();</script>"; } if(isset($_POST["oper"]) && !isset($message)) { switch($_POST["oper"]) { case "+": $message=$_POST["value1"]+$_POST["value2"]; break; case "-": $message=$_POST["value1"]-$_POST["value2"]; break; case "*": $message=$_POST["value1"]*$_POST["value2"]; break; case "/": if((int)$_POST["value2"] === 0) { $message="<font color=#FF0000>Division by 0 is impossible...</font><script>document.forms[0].value2.focus();</script>"; } else $message=$_POST["value1"]/$_POST["value2"]; break; default: break; } } else { $message="Enter 2 numbers and press 1 operation button."; } ?> <form action="test.php" method="post"> <table border="0"> <tr><td>Value 1</td><td><input type="text" name="value1" value="<?php echo $_POST["value1"]; ?>"></td> <td>Value 2</td><td><input type="text" name="value2" value="<?php echo $_POST["value2"]; ?>"></td></tr> <tr><td align="center" colspan="4"> <input type="submit" name="oper" value="+"/> <input type="submit" name="oper" value="-" /> <input type="submit" name="oper" value="*"/> <input type="submit" name="oper" value="/" /> </td></tr> <tr><td colspan="4" align="right">$message</td></tr> </table> </form> </body> |
Inderdaad prepared statementsquote:Op zondag 6 april 2014 16:35 schreef DrNick het volgende:
[..]
Wat adviseer je? Dan zal ik daar nog wel naar kijken. Prepared statements in ieder geval, en wat nog?
Ik had overigens naar jouw scriptje gekeken, alleen dat kreeg ik niet werkend. Ik vind dit het prettigst en duidelijkst.
Zal ik ook eens naar kijken.quote:Op zondag 6 april 2014 16:36 schreef bondage het volgende:
[..]
Ah, zo. Vergeet overigens niet de waarden ff door htmlentities te halen voordat ze worden verwerkt in de HTML.
Zal ik doenquote:Op zondag 6 april 2014 16:37 schreef totalvamp het volgende:
Inderdaad prepared statements
Maar wat ik al zei, je script is nu nooit meer goed aan te passen. Daarnaast is het van belang dat je leert omgaan met arrays aangezien je 90% van de tijd data daarin krijgt aangeleverd.
Ook is het handig je code zo netjes mogelijk te maken en als je dingen moet kopieren en plakken weet je dat er iets verkeerd is met je code. (zelfde met col1 col2 col3 in databases).
Zoek op relationele databases, dan zul je zien dat het voor jezelf ook een stuk makkelijker is uiteindelijk
Het is slim gevonden. En dat lijkt mij ook?quote:Op zondag 6 april 2014 16:37 schreef totalvamp het volgende:
[..]
Nee het is niet slim, het is gewoon niet nodig. Je hebt standaard functies in PHP die kunnen kijken of iets een waarde is. Daarnaast staat je HTML vol met fouten.
[ code verwijderd ]
Nee, het is gewoon een gecompliceerde manier om iets te doen wat stukken makkelijker kan. Wat mij meer van toepassing lijkt, is dat de programmeur van het script niet goed wist wat hij deed en zelf ook nog een beginner is.quote:Op zondag 6 april 2014 21:30 schreef Robuustheid het volgende:
[..]
Het is slim gevonden. En dat lijkt mij ook?
En ja ik ben op de hoogte van de functie in PHP om op integers te zoeken, maar daar ging het mij niet om. Het ging mij om dat iemand zoiets creatiefs bedacht heeft.
En wellicht heb je moeite met lezen... Nogmaals: ik heb het niet (er staat niet) gemaakt. Dus het is niet mijn html. Hoezo zitten er fouten in? Het werkt anders prima bij mij.
1 2 3 4 5 6 7 8 9 | <?php //Dit is sowieso een rare manier voor een echo, je gebruikt namelijk altijd ' op een echo te openen dit vanwege het feit dat PHP alles tussen "" parsed op variabelen. echo "<tr><td>Value 1</td><td><input type=text name=value1 value=\"".$_POST["value1"]."\"></td>"; echo '<tr><td>Value 1</td><td><input type="text" name="value1" value="'.$_POST["value1"].'" /></td>'; //Dit zou nooit nodig moeten zijn, omdat je de waarden van te voren controleert. $message=($_POST["value1"]+0)/($_POST["value2"]+0); ?> |
Ik begrijp je opmerking niet zo goed.quote://Dit is sowieso een rare manier voor een echo, je gebruikt namelijk altijd ' op een echo te openen dit vanwege het feit dat PHP alles tussen "" parsed op variabelen.
1 2 3 4 5 | //Onderstaand regel is volgens je dus verkeerd? echo "voorbeeld"; //En onderstaand regel is dus juist? echo 'voorbeeld'; //Waarom is eerste voorbeeld verkeerd dan? Je uitleg over parsen is mij nog vaag. |
Wat moet ik mij daarbij voorstellen?quote://Dit zou nooit nodig moeten zijn, omdat je de waarden van te voren controleert.
Wat zou je anders gaan doen dan?quote:Op zondag 6 april 2014 21:58 schreef Scorpie het volgende:
Sowieso een table echoën met input elementen en shit
Ik zie wel isset staan?quote:
Gewoon even php sluiten? Als je nou 1 dingetje moet doen alè, gewoon in een echo.quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php echo "<tr><td>Value 1</td><td><input type=text name=value1 value=\"".$_POST["value1"]."\"></td>"; // zo moet het dus niet ?> <tr> <td> Value 1 </td> <td> <input type="text" name="value1" value="<?php echo $_POST['value1']; ?>" /> </td> </tr> <?php // .. |
Alles wat tussen "hier" staat wordt bekeken of er een variabele bij staat "hier $een $var"quote:Op zondag 6 april 2014 22:03 schreef Robuustheid het volgende:
[..]
Ik begrijp je opmerking niet zo goed.
[ code verwijderd ]
quote:Wat moet ik mij daarbij voorstellen?
En als de font niet gebruikt wordt, dan zie ik niet in hoe je de letters in dit voorbeeld een kleur kunt geven zonder CSS in dit
voorbeeld.
1 | <p style="color:#FF0000">rode text</p> |
2010, die code is sowieso niet meer echt relevant.quote:Ik heb de bovenstaande code daarvandaan. De auteur is ook nog Zend PHP gecertificeerd.
Dat is tegenwoordig geen issue meer.quote:Op zondag 6 april 2014 22:21 schreef totalvamp het volgende:
[..]
Alles wat tussen "hier" staat wordt bekeken of er een variabele bij staat "hier $een $var"
Dat duurt dus langer om op het scherm te tonen.
Hmm, latere versies hebben dit dus verholpenquote:
1 2 3 4 5 6 7 8 9 10 11 12 | begin tran if exists (select * from table with (updlock,serializable) where key = @key) begin update table set ... where key = @key end else begin insert table (key, ...) values (@key, ...) end commit tran |
<?php ?> tags gebruiken.quote:Op maandag 7 april 2014 19:08 schreef DrNick het volgende:
Wellicht dat jullie hier ook kunnen helpen:
Ons programma werkt nu bijna helemaal. Het laatste wat eigenlijk moet gebeuren nu is ervoor zorgen dat de record geüpdate wordt wanneer een leerling met llnr x nogmaals een keuze maakt. Nu zou zo'n leerling namelijk een error krijgen, vanwege de duplicaten. Nu heb ik wel reeds een stukje code gevonden, maar dit is slechts de SQL versie. Hoe doe ik dit in php?
[ code verwijderd ]
http://www.php.net/manual/en/book.pdo.phpquote:Op maandag 7 april 2014 19:19 schreef DrNick het volgende:
[..]
Dus in plaats van de insert query die er nu staat deze gebruiken?
quote:Op zondag 6 april 2014 22:18 schreef CrashO het volgende:
[..]
Gewoon even php sluiten? Als je nou 1 dingetje moet doen alè, gewoon in een echo.
Maar voor zoiets als dit
Krijg je dus zoiets
[ code verwijderd ]
Hmm, ik snap er nog niet veel van, maar is dit wat er moet gebeuren?quote:Op maandag 7 april 2014 19:23 schreef TwenteFC het volgende:
[..]
http://www.php.net/manual/en/book.pdo.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php PDO { public __construct(database,root,usbw); public beginTransaction(); if exists (select * from profielkeuze with (updlock,serializable) where llnr = $llnr) begin update table set profielkeuze where llnr = $llnr end else begin insert into profielkeuze(llnr, Vak00, ...) values ('$llnr', '$Vak00', ...); end public commit(); } ?> |
Hij gebruikt al mysqli, dus laten we dat zo houden... Al ben ik het met je eens dat PDO rocks en cool is en iedereen die het niet gebruikt afgeschoten moet worden.quote:Op maandag 7 april 2014 19:23 schreef TwenteFC het volgende:
[..]
http://www.php.net/manual/en/book.pdo.php
Dus mijn INSERT INTO vervangen door dat zou al afdoende moeten zijn?quote:Op maandag 7 april 2014 19:47 schreef slacker_nl het volgende:
[..]
Hij gebruikt al mysqli, dus laten we dat zo houden... Al ben ik het met je eens dat PDO rocks en cool is en iedereen die het niet gebruikt afgeschoten moet worden.
Overigens kent MySQL een INSERT INTO ON DUPLICATE KEY UPDATE syntax.
Ik heb nu dit geprobeerd, enkel krijg ik deze foutmelding:quote:INSERT INTO table (id,a,b,c,d,e,f,g) VALUES (1,2,3,4,5,6,7,8)
ON DUPLICATE KEY UPDATE a=VALUES(a),b=VALUES(b),c=VALUES(c),d=VALUES(d),e=VALUES(e),f=VALUES(f),g=VALUES(g)
Waarom dat 'a=values(a)' en dergelijke? Ik ken die ON DUPLICATE KEY UPDATE niet maar de syntaxis ziet er een beetje vreemd uit.quote:Op maandag 7 april 2014 20:42 schreef DrNick het volgende:
[..]
Ik heb nu dit geprobeerd, enkel krijg ik deze foutmelding:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Vak00=VALUES(Vak00),Vak01=VALUES(Vak01),Vak02=VALUES(Vak02),Vak03=VALUES(Vak03),' at line 3
Die heb ik overgenomen uit de syntax beschreven in de link 2 posts terug.quote:Op maandag 7 april 2014 20:55 schreef robin007bond het volgende:
[..]
Waarom dat 'a=values(a)' en dergelijke? Ik ken die ON DUPLICATE KEY UPDATE niet maar de syntaxis ziet er een beetje vreemd uit.
1 2 3 | $query = "INSERT INTO keuzes (llnr, Vak00, Vak01, Vak02, Vak03, Vak04, Vak05, Vak06, Vak07, Vak08, Vak09, Vak10, Vak11, Vak12, Vak13, Keuze1, Keuze2, Opmerkingen) VALUES ('$llnr', '$Vak00', '$Vak01', '$Vak02', '$Vak03', '$Vak04', '$Vak05', '$Vak06', '$Vak07', '$Vak08', '$Vak09', '$Vak10', '$Vak11', '$Vak12', '$Vak13', '$Keuze1', '$Keuze2', '$Opmerking') ON DUPLICATE KEY Vak00='Vak00', Vak01='Vak01', Vak02='Vak02', Vak03='Vak03', Vak04='Vak04', Vak05='Vak05', Vak06='Vak06', Vak07='Vak07', Vak08='Vak08', Vak09='Vak09', Vak10='Vak10', Vak11='Vak11', Vak12='Vak12', Vak13='Vak13', Keuze1='Keuze1', Keuze2='Keuze2', Opmerkingen='Opmerkingen'"; |
1 2 3 4 5 6 | INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr [, col_name=expr] ... ] |
Dus die extra regel moet er nog bij?quote:Op maandag 7 april 2014 21:52 schreef slacker_nl het volgende:
Volgens mij is het:
INSERT INTO table (id, a, b, c) VALUES (iets, 1,2,3) ON DUPLICATE KEY UPDATE a = 1, b = 2, c = 3;
Eigenlijk dezelfde syntax als de update zelf:
UPDATE table SET a = 1, b = 2, c = 3 WHERE ID = iets;
Je mist UPDATE na ON DUPLICATE KEY.quote:
Je zag hem gelijk met mijquote:Op maandag 7 april 2014 21:57 schreef slacker_nl het volgende:
[..]
Je mist UPDATE na ON DUPLICATE KEY.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |