1 2 3 4 5 6 7 | <script language="javascript" type="text/javascript"> function resizeIframe(obj) { obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px'; obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px'; } </script> |
Ok dan stel ik de vraag anders, hoe kan ik in php ervoor zorgen dat iframes automatische hoogtes krijgen zonder te scrollen. Dus alleen een scrollbar van de site zelf? En dus niet dubbel.. zowel de iframe als de website...quote:Op maandag 24 oktober 2011 11:57 schreef KomtTijd... het volgende:
Eh, dat is javascript, client-side code. Dat heeft niets in PHP te zoeken.
[html, css, js] voor dummies #18
Niet. Dat moet je met CSS, Javascript en HTML doen.quote:Op maandag 24 oktober 2011 11:59 schreef Dizer het volgende:
[..]
Ok dan stel ik de vraag anders, hoe kan ik in php ervoor zorgen dat iframes automatische hoogtes krijgen zonder te scrollen. Dus alleen een scrollbar van de site zelf? En dus niet dubbel.. zowel de iframe als de website...
Dat is ook iets voor de client. PHP gaat alleen over de server.quote:Op maandag 24 oktober 2011 11:59 schreef Dizer het volgende:
[..]
Ok dan stel ik de vraag anders, hoe kan ik in php ervoor zorgen dat iframes automatische hoogtes krijgen zonder te scrollen. Dus alleen een scrollbar van de site zelf? En dus niet dubbel.. zowel de iframe als de website...
Ik denk dat je je moet gaan afvragen waarom je met uberhaupt iframes wilt werken...quote:Op maandag 24 oktober 2011 11:59 schreef Dizer het volgende:
[..]
Ok dan stel ik de vraag anders, hoe kan ik in php ervoor zorgen dat iframes automatische hoogtes krijgen zonder te scrollen. Dus alleen een scrollbar van de site zelf? En dus niet dubbel.. zowel de iframe als de website...
ach help die knul gewoon ff man.quote:Op maandag 24 oktober 2011 11:57 schreef KomtTijd... het volgende:
Eh, dat is javascript, client-side code. Dat heeft niets in PHP te zoeken.
[html, css, js] voor dummies #18
1 2 3 4 5 6 7 | $javascript = "<script language='javascript' type='text/javascript'>"; $javascript .= "function resizeIframe(obj) {"; $javascript .= "obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';"; $javascript .= "obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';"; $javascript .= "} </script>"; print $javascript; |
quote:Op maandag 24 oktober 2011 12:12 schreef _GdR_ het volgende:
[..]
ach help die knul gewoon ff man.
[ code verwijderd ]
1 2 3 4 5 6 | <?php $html = file_get_html($url); foreach($html->find('table#speler td[class="naam"] a[href]') as $all) echo $all->getAttribute('href') . '<br>'; ?> |
1 2 3 4 5 6 | <?php $html = file_get_html($url); foreach($html->find('dd') as $all) echo $all->innertext . '<br>'; ?> |
Enkel script:quote:Op maandag 24 oktober 2011 17:36 schreef YazooW het volgende:
Sorry dat ik jullie hier weer moet lastig vallen maar mijn scriptje heeft mij nu alweer enkele uren hoofdpijn bezorgd en ik kom er maar niet uit... 1 script haalt alle urls op, 2e script moet uitgevoerd worden op alle urls die ik uit mijn eerste script haal.
haalt url's op
[ code verwijderd ]
haalt info speler op
[ code verwijderd ]
Ik weet (denk ik) hoe ik het kan oplossen, ik schiet alleen totaal niet op in de uitvoering omdat ik vrij onbekend ben met php.
Output van het eerste script is een lijst met Url's, die moeten opslagen worden in een array. Vervolgens moet ik op de 1 of andere manier in het tweede script de file_get_html vullen met die array.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $url_array = array(); $html = file_get_html($url); foreach($html->find('table#speler td[class="naam"] a[href]') as $all) { $url_array[] = $all->getAttribute('href'); } foreach($url_array as $get_url) { $html = file_get_html( $get_url); foreach($html->find('dd') as $all) { echo $all->innertext . '<br>'; } } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php session_start(); $url_array = array(); $html = file_get_html($url); foreach($html->find('table#speler td[class="naam"] a[href]') as $all) { $url_array[] = $all->getAttribute('href'); } $_SESSION['url_array'] = $url_array; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php session_start(); $url_array = $_SESSION['url_array']; foreach($url_array as $get_url) { $html = file_get_html($get_url); foreach($html->find('dd') as $all) { echo $all->innertext . '<br>'; } } ?> |
1 2 3 4 | <?php foreach($html->find('dd') as $all) { echo $all->innertext . '<br>'; ?> |
Nu wil ik dus elk van die regels gaan opslaan in een eigen variabele, waarna ik vervolgens die variabelen op kan nemen in mijn sql query. Dus ik wil een variable $voornaam, $achternaam, $land, $geboordedatum, etc etc, toekennen aan de juiste regel, hoe ga ik dit doen?quote:Daniel
Sturridge
England
1 September 1989
22
England
Birmingham
Attacker
188 cm
76 kg
En als ik [faq=123][b]Test[/b][/faq] probeer, gaat dat dan ook goed?quote:Op maandag 24 oktober 2011 08:51 schreef Pakspul het volgende:
[..]
[ code verwijderd ]
Niet in één preg_replace, maar ik denk dat je de oplossing niet verkeerd zal vinden.
wat je kunt doen is een array definieren, dan natuurlijk wel in de volgorde die je krijgt uit je script.quote:Op maandag 24 oktober 2011 18:30 schreef YazooW het volgende:
Na er een kwartier lang over gedaan te hebben om erachter te komen dat de DOM niet included was in het bovenstaande voorbeeld van The_Terminator heb ik hem dus eindelijk werkend gekregen nu Krijg nu precies de data die ik nodig heb, hartelijk bedankt hiervoor!
Nu kom ik bij het verhaal dat alles naar mijn database geschreven moet worden, en ga ik jullie ook mijn allerlaatste vraag stellen voordat ik jullie met rust laat
[ code verwijderd ]
Bovenstaande stukje code geeft mij deze output:
[..]
Nu wil ik dus elk van die regels gaan opslaan in een eigen variabele, waarna ik vervolgens die variabelen op kan nemen in mijn sql query. Dus ik wil een variable $voornaam, $achternaam, $land, $geboordedatum, etc etc, toekennen aan de juiste regel, hoe ga ik dit doen?
1 2 3 4 5 6 7 8 9 10 | <?php $array = array('name', 'surname','city', 'etc'); $output = array(); foreach($html->find('dd') as $all) { $output[] = $all->innertext; } array_merge($array, $output); ?> |
Hier zat ik zelf ook mee, ik heb een bepaalde tabel voor bv vangsten (van visjes ja) en daaraan wil ik best veel gegevens kunnen koppelen dan kan ik daarvoor het zelfde tabel gebruiken en die steeds aanpassen qua structuur door het toevoegen van velden maar nog gemakkelijker is een extra tabel om al deze 'opties' te kunnen koppelen.quote:Op maandag 24 oktober 2011 08:36 schreef Intrepidity het volgende:
[..]
Waarschijnlijk omdat zijn properties variabel zijn. Hoe wil je dit formuleren in 1 tabel?
Het ruikt hier overigens naar NoSQL, maar ik neem gemakshalve maar even aan dat dat geen optie is.
Ik sla nu mijn data op in een array, vervolgens stuur ik het naar de database, en dan leeg ik de array zodat hij weer opnieuw gevuld kan worden.quote:Op maandag 24 oktober 2011 20:23 schreef totalvamp het volgende:
[..]
wat je kunt doen is een array definieren, dan natuurlijk wel in de volgorde die je krijgt uit je script.
[ code verwijderd ]
iets in deze trant dus.
1 2 3 | <?php mysql_query("INSERT INTO spelers (voornaam, achternaam, land, geboortedatum, leeftijd, land2, geboorteplaats, positie, lengte, gewicht) VALUES ("$info_array[0]", "$info_array[1]", "$info_array[2]", "$info_array[3]", "$info_array[4]", "$info_array[5]", "$info_array[6]", "$info_array[7]", "$info_array[8]", "$info_array[9]")" ; ?> |
1 2 3 4 5 6 | <?php print_r $info_array[0]; print_r $info_array[1]; print_r $info_array[2]; etc etc ?> |
Dus je bedoelt die dubbele quotes weghalen? Dat werkt namelijk ook niet.quote:Op dinsdag 25 oktober 2011 00:52 schreef KomtTijd... het volgende:
Wat dacht je ervan om koppeltekens tussen je strings te gebruiken?
Of, aangezien je dubbele quotes gebruikt, gewoon de variables in de sting zetten zonder 'm iedere keer te sluiten (dus de quotes voor en na de variables gewoon weg te laten)
Dan kan je zo koppelenquote:Op dinsdag 25 oktober 2011 01:00 schreef YazooW het volgende:
[..]
Dus je bedoelt die dubbele quotes weghalen? Dat werkt namelijk ook niet.
1 2 3 4 5 6 7 8 | <?php //Manier 1: Concateneren(koppelen) van strings via . $string1 = "abc"; $string2 = "def"; $string3 = $string1." ".$string2." Hello World"; //$string3 = "abc def Hello World"; ?> |
1 2 3 4 5 6 7 8 | <?php //Manier 2: Concateneren(koppelen) van strings via andere manier $string1 = "abc"; $string2 = "def"; $string3 = "$string1 $string2 Hello World"; //$string3 = "abc def Hello World"; ?> |
Ik zou, indien mogelijk, PDO gebruiken.quote:Op dinsdag 25 oktober 2011 01:03 schreef KomtTijd... het volgende:
Weird, it should.
Maar ik zou sowieso gewoon enkele qoutes gebruiken en een punt ertussen zetten, vind ik persoonlijk (meestal) overzichtelijker.
Wat heeft dat te maken met dat hij niet weet hoe een string op te bouwen ... en sowieso PDO voor mysql, nah.quote:Op dinsdag 25 oktober 2011 07:14 schreef Light het volgende:
[..]
Ik zou, indien mogelijk, PDO gebruiken.
Als je array uit niet meer dan die waardes bestaat (en in de juiste volgorde) kan je ook implode gebruiken.quote:Op dinsdag 25 oktober 2011 00:45 schreef YazooW het volgende:
[..]
Ik sla nu mijn data op in een array, vervolgens stuur ik het naar de database, en dan leeg ik de array zodat hij weer opnieuw gevuld kan worden.
Ik krijg nu een een foutmelding ( unexpected T_VARIABLE ) op deze regel:
[ code verwijderd ]
[ code verwijderd ]
Als ik in plaats van het te versturen, de arrays uitlees met print_r (zie code hierboven), dan kloppen de waardes wel gewoon wat dus betekent dat er geen fout zit in mijn array. Wat doe ik fout?
1 2 3 | <?php mysql_query("INSERT INTO spelers (voornaam, achternaam, land, geboortedatum, leeftijd, land2, geboorteplaats, positie, lengte, gewicht) VALUES (".implode(',',$info_array).")" ; ?> |
Hoezo "Nah"?quote:Op dinsdag 25 oktober 2011 11:02 schreef baaart het volgende:
Wat heeft dat te maken met dat hij niet weet hoe een string op te bouwen ... en sowieso PDO voor mysql, nah.
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 | <?php // urls ophalen en in array plaatsen // url's plaatsen in de file_get_html foreach($url_array as $get_url) { $html = file_get_html( $get_url); // data ophalen en in array zetten foreach($html->find('dd') as $output) { $info_array[] = $output->innertext; } // arrayitems koppelen aan een variabele $voornaam = $info_array[0]; $achternaam = $info_array[1]; $land = $info_array[2]; $geboortedatum = $info_array[3]; $leeftijd = $info_array[4]; $land2 = $info_array[5]; $geboorteplaats = $info_array[6]; $positie = $info_array[7]; $lengte = $info_array[8]; $gewicht = $info_array[9]; // variabelen printen om te checken of data goed is doorgekomen print_r ($voornaam); print_r ($achternaam); print_r ($land); print_r ($geboortedatum); print_r ($leeftijd); print_r ($land2); print_r ($geboorteplaats); print_r ($positie); print_r ($lengte); print_r ($gewicht); // databaseverbinding en query verzenden naar tabel // $query ff in een commentline gezet omdat het toch niet werkt... $con = mysql_connect("localhost","root","") or die("Geen verbinding met mysql");; $selected = mysql_select_db("vbal") or die("Geen verbinding met database"); // $query = "INSERT INTO spelers (voornaam, achternaam, land, geboortedatum, leeftijd, land2, geboorteplaats, positie, lengte, gewicht) VALUES (".implode(',',$info_array).")" ; // $query = "INSERT INTO spelers (voornaam, achternaam, land, geboortedatum, leeftijd, land2, geboorteplaats, positie, lengte, gewicht) VALUES ('$voornaam', '$achternaam', '$and', '$geboortedatum', '$leeftijd', '$land2', '$geboorteplaats', '$positie', '$lengte', '$gewicht')" ; mysql_query($query); //alles leeg maken zodat het weer gebruikt kan worden voor de volgende url unset($info_array); unset($voornaam); unset($achternaam); unset($land); unset($geboortedatum); unset($leeftijd); unset($land2); unset($geboorteplaats); unset($positie); unset($lengte); unset($gewicht); } // mysql_close(); ?> |
1 2 3 4 5 | <?php mysql_query($query) or die(mysql_error() . ' Error nr:' . mysql_errno()); ?> |
Hij weet niet wat er misgaat blijkbaar. Voorgaande tip is een goede tip om in het vervolg je fouten te controleren.quote:Op dinsdag 25 oktober 2011 15:59 schreef Catbert het volgende:
Print de query en de errormessage eens. Je geeft gewoon niet aan wat er misgaat en niemand hier heeft een glazen bol.
(en mensen raken geirriteerd door dit soort vragen)
ik heb ff die query met die implode uit de commenttags gehaald en daar de print_r op los gelaten:quote:Array ( [0] => Ross [1] => Turnbull [2] => England [3] => 4 January 1985 [4] => 26 [5] => England [6] => Bishop Auckland [7] => Goalkeeper [8] => 193 cm [9] => 85 kg )
quote:INSERT INTO spelers (voornaam, achternaam, land, geboortedatum, leeftijd, land2, geboorteplaats, positie, lengte, gewicht) VALUES (Ross,Turnbull,England,4 January 1985,26,England,Bishop Auckland,Goalkeeper,193 cm,85 kg)
Kan ik begrijpen, ben ik misschien niet helemaal duidelijk over geweest. Er komt dus geen fout, het script runt, en als hij klaar is kijk ik in mijn phpmyadmin en zie ik dat er niks is gebeurd. Heb ook al in het script ipv die variabelen bij de VALUES gewoon een handmatige invoer geprobeerd, wat wel gewoon werkte.quote:Op dinsdag 25 oktober 2011 15:59 schreef Catbert het volgende:
Print de query en de errormessage eens. Je geeft gewoon niet aan wat er misgaat en niemand hier heeft een glazen bol.
(en mensen raken geirriteerd door dit soort vragen)
Daar zat ik zelf dus ook al meteen aan te denken toen ik het hier ging postenquote:Op dinsdag 25 oktober 2011 16:03 schreef Crutch het volgende:
moeten je values niet tussen ''-jes staan?
Dat is toch niet perse nodig?quote:
1 2 3 | <?php VALUES (".implode(',',$info_array).")" ; ?> |
Niet perse nodig inderdaad (wel netjes !!). Vervang de implode met hetvolgende om alles tussen enkele quotes te krijgen:quote:Op dinsdag 25 oktober 2011 16:04 schreef YazooW het volgende:
[..]
Daar zat ik zelf dus ook al meteen aan te denken toen ik het hier ging posten
Ga het eens even uitproberen.
[..]
Dat is toch niet perse nodig?
1 2 3 | <?php $query = "'" . implode('\',\'', $array) . "'"; ?> |
Excuus, ze stonden 1tje te ver naar buitenquote:Op dinsdag 25 oktober 2011 16:13 schreef YazooW het volgende:
Je pastebin oplossing gebruikt, returnt: unexpected T_CONSTANT_ENCAPSED_STRING
Return nog steeds een foute query:quote:Op dinsdag 25 oktober 2011 16:16 schreef baaart het volgende:
[..]
Excuus, ze stonden 1tje te ver naar buiten
http://pastebin.com/si9QEmsP
Ik heb er nu helaas geen tijd meer voor, werk wacht. Ik ga vanavond weer verder.quote:VALUES ('".implode(\'',\'',)."')Array ( [0] => Ross [1] => Turnbull [2] => England [3] => 4 January 1985 [4] => 26 [5] => England [6] => Bishop Auckland [7] => Goalkeeper [8] => 193 cm [9] => 85 kg )
Huh? M'n laatste werkt gewoon. Print je query nog eens inclusief de error en error nummer.quote:Op dinsdag 25 oktober 2011 16:18 schreef YazooW het volgende:
[..]
Return nog steeds een foute query:
[..]
Ik heb er nu helaas geen tijd meer voor, werk wacht. Ik ga vanavond weer verder.
Nogmaals bedankt iedereen!
edit. nu copy ik de print_r op de oplossing van Crutch, die ook weggeedit is nu.
oplossing van baaart gaf hetzelfde op het gedeelte van ('".implode(\'',\'',)."') achter VALUES na.
je verwart ` met '.quote:Op dinsdag 25 oktober 2011 16:37 schreef Luchtkoker het volgende:
`` is niet per se nodig bij tabel namen, kolomnamen, etc, maar string quotes zijn wel zeker nodig.
1 2 3 4 5 6 7 8 9 | <?php while(true) { if(time() % 3 == 0) { // doe hier elke 3 seconden iets } } ?> |
Mijn dank is grootquote:
Als je PDO gebruikt, hoef je veel minder moeite te doen bij het maken van de querystring. Je hoeft parameters dan niet te escapen, dat wordt voor je gedaanquote:Op dinsdag 25 oktober 2011 11:02 schreef baaart het volgende:
[..]
Wat heeft dat te maken met dat hij niet weet hoe een string op te bouwen ... en sowieso PDO voor mysql, nah.
dat werkt niet, draai maar met echo 'hoi'; op regel 3.quote:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php while(true) { $starttime = microtime(true); // doe hier elke 3 seconden iets, wat minder dan 3 seconden duurt echo time(); usleep( 3e6 - (microtime(true) - $starttime) ); } ?> |
lolwut?quote:
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 | <?php $query = 'INSERT INTO table (row1, row2,row3,row4,etc) VALUES ("'. implode('",""', $infoarray).'")'; echo $query; // dit zou dus een goede query terug moeten geven als je zeker weet dat de data geldig is. // mijn functie (lichtelijk aangepast aangezien deze in mijn script is geintegreerd) // $data moet er als volgt uit zien // array('naam' => 'naamhier', 'achternaam' => 'blabla', 'etc' => 'jesnaptmijnpunt') function insert($table, $data = array()) { if(count($data) > 0) { $sql = 'INSERT INTO '.$table.' '; foreach($data as $key => $value) { $keys .= ' '.$key.','; $values .= ' "'.mysql_real_escape_string($value).'",'; } $keys = substr($keys, 0, -1); $values = substr($values, 0, -1); $sql .= '('.$keys.') VALUES ('.$values.')'; $result = mysql_query($sql); if(mysql_affected_rows($result) > 0) { return true; } else { echo mysql_error(); return false; } } |
dat zeker ja. Dit is ook mijn functie en ik weet 100% zeker dat mijn input goed is. Dit omdat ik een model heb van elke tabel met daarin aangegeven wat de primary key is en welke rows aagepast mogen worden door het script.quote:Op dinsdag 25 oktober 2011 19:23 schreef GlowMouse het volgende:
Je moet nu nog opletten waar de keys vandaan komen.
Een oplossing met array_map, implode, array_keys en array_values kan de leesbaarheid vergroten, evenals verplaatsen van regel 15 naar regel 22.
Ah, inderdaad. Hij doet iets meer cycles dan 1 per seconde natuurlijkquote:Op dinsdag 25 oktober 2011 18:42 schreef GlowMouse het volgende:
[..]
dat werkt niet, draai maar met echo 'hoi'; op regel 3.
Cronjobs werken op hele minuten.quote:Op dinsdag 25 oktober 2011 19:57 schreef Tijn het volgende:
[..]
Ah, inderdaad. Hij doet iets meer cycles dan 1 per seconde natuurlijk
Even 3 seconden sleepen lijkt me dan idd ook de beste oplossing. Of anders helemaal geen loop in je script en het gewoon elke 3 seconden aanroepen via een cronjob ofzo.
Je hebt gelijk, hij werkt gewoon. Denk dat ik een klein foutje heb gemaakt met jou code kopiëren.quote:Op dinsdag 25 oktober 2011 16:21 schreef baaart het volgende:
[..]
Huh? M'n laatste werkt gewoon. Print je query nog eens inclusief de error en error nummer.
Ach, inderdaad. Ik faal weer lekkerquote:Op dinsdag 25 oktober 2011 19:57 schreef GlowMouse het volgende:
[..]
Cronjobs werken op hele minuten.
Het is ook niet logisch, komt denk ik nog uit de tijd dat het bekijken wélke cronjob nou precies gedraaid moet worden nog niet was geoptimaliseerd, en het zo tijdrovend was dat het niet elke seconde gedraaid kon worden (van elke user werd de cronfile elke keer ingelezen; tegenwoordig - overigens al tientallen jaren - houdt cron bij wat de volgende job zal zijn).quote:
1 2 3 4 5 6 7 8 | <?php function echo2($data){ echo('<pre style="border:1px solid black; padding:5px;width:50%;background-color:lightgrey;">'); print_r($data); echo("</pre>"); } ?> |
ik zou gewoon de prijzen in een array douwen en in PHP oplossen.quote:Op woensdag 26 oktober 2011 10:59 schreef mcf het volgende:
Dus stel 2 mensen hebben menu 1 besteld, 1 persoon heeft menu 3 besteld en menu4 blijft leeg.
Hoe krijg ik dan de prijzen bij elkaar opgeteld en in bestelling_detail opgeslagen?
Ik vraag hier niet om een script o.i.d. maar een suggestie voor een oplossing
Bij voorbaat dank.
bestelling_detailquote:Op woensdag 26 oktober 2011 10:59 schreef mcf het volgende:
Hallo,
ik loop tegen een probleem met mysql.
Ik heb dus een reservering systeem gebouwd. En alles goed en wel, maar nu wil ik de prijs van
de bestelling berekenen.
De prijs is gedefinieerd in de tabel 'menus':
id (auto increment)
Naam (varchar)
prijs (INT)
opmerking (Varchar)
De bestelling wordt opgeslagen in 'bestelling'
id
bestelling
datum
begintijd
eindtijd
klantid (relatie aan naw (klantid))
De details worden opgeslagen in 'bestelling_detail'
bestellingid (relatie aan bestelling (id))
prijs (!Hier moet de prijs in komen te staan!!)
bij menu1t/m4 komen de id's van de bestelde menu's per persoonMax 4 personen voor 1 bestellingen
menu1 (relatie aan menus(id)) (dus bijv. 1)
menu2( '' )
menu3
menu4
Dus stel 2 mensen hebben menu 1 besteld, 1 persoon heeft menu 3 besteld en menu4 blijft leeg.
Hoe krijg ik dan de prijzen bij elkaar opgeteld en in bestelling_detail opgeslagen?
Ik vraag hier niet om een script o.i.d. maar een suggestie voor een oplossing
Bij voorbaat dank.
Hmm, frapant. Ik vond mijn post overzichtelijk en duidelijk:quote:Op woensdag 26 oktober 2011 11:48 schreef KomtTijd... het volgende:
[..]
ik zou gewoon de prijzen in een array douwen en in PHP oplossen.
Oh en kudo's voor de onduidelijkste post van het topic.
Groet hoeft niet, inleiding is altijd fijn, maar minimaal, database samenstelling is goed anders wordt het voor ons een groot gok proces, probleem mist geprobeerde oplossingen en je verkeerd bepaalde relaties aan te geven wat mij idee geeft dat je wat in elkaar hebt gebouwd, maar nog niet precies weet wat je doet.quote:Op woensdag 26 oktober 2011 12:38 schreef mcf het volgende:
[..]
Hmm, frapant. Ik vond mijn post overzichtelijk en duidelijk:
-Groet
-Inleiding
-Database samenvatting
-Probleem
Natuurlijk was het probleem een beetje raar omschreven maar dat komt omdat ik al een hele poos met die code bezig ben en voor mij lijkt het een redelijk normale zaak.
Ok, ik ben een beetje mysql noob, dus verbeter mij waar het fout gaat:quote:Op woensdag 26 oktober 2011 12:40 schreef Pakspul het volgende:
[..]
Groet hoeft niet, inleiding is altijd fijn, maar minimaal, database samenstelling is goed anders wordt het voor ons een groot gok proces, probleem mist geprobeerde oplossingen en je verkeerd bepaalde relaties aan te geven wat mij idee geeft dat je wat in elkaar hebt gebouwd, maar nog niet precies weet wat je doet.
Maar heb je wat aan mijn oplossing?
Die foutmelding moet voldoende zeggen lijkt mij? Maar deze moet gaan naar de kolom prijs in de bestelling_detail kolom. Ik weet niet hoe die tabel er nu uitziet?quote:Op woensdag 26 oktober 2011 12:56 schreef mcf het volgende:
[..]
Ok, ik ben een beetje mysql noob, dus verbeter mij waar het fout gaat:
SELECT SUM(bestelling_detail)
FROM bestelling_detail WHERE bestellingID = 3
Ik doe dit, in deze bestelling zitten 1x menuid(1) 2x menuid(3) 1xniks
Dus daar wil ik de prijs van berekenen, maar ik krijg de volgende error
#1054 - Unknown column 'bestelling_detail' in 'field list'
Hier leer ik juist sql van.quote:Op woensdag 26 oktober 2011 12:57 schreef Pakspul het volgende:
[..]
Die foutmelding moet voldoende zeggen lijkt mij? Maar deze moet gaan naar de kolom prijs in de bestelling_detail kolom. Ik weet niet hoe die tabel er nu uitziet?
Tevens als je al problemen hebt met SQL hoe gaat je het dan toepassing in een applicatie?
werken die ook allemaal op een oracle database? Ik ga eens googlenquote:Op woensdag 26 oktober 2011 13:39 schreef GI het volgende:
http://dev.mysql.com/doc/(...)-time-functions.html
Jij wilt dus de volgende database opstelling, dit is even het stuk waar het omgaat:quote:Op woensdag 26 oktober 2011 13:20 schreef mcf het volgende:
[..]
Hier leer ik juist sql van.
Bij bestelling_detail is prijs leeg die wil ik dan veranderen met alter table en de prijs van de menu's in zetten zodat ik later op een pagina met een query de bestelling tonen voor elke klant. Dit gaat allemaal goed maar nu wil ik de prijs ook nog via query uit de db halen maar ik weet niet hoe ik in sql de prijs kan optellen van de menu's.
Menu1
1 relatie aan menus(id(bijvoorbeeld 1)) menus(id, naam, prijs)(1, pasta, 10)
Menu2 .............. ......................................................................................................., 15
Menu3 x
Menu4 x
Ik vermoed dat ik misschien iets met left join zou kunnen doen maar weet niet hoe ik dit moet aanpakken.
Ik hoop dat dit een beetje duidelijk is
1 2 3 4 5 6 7 8 9 10 11 12 13 | SELECT Bestelling.ID, Bestelling.KlantID, Klant.Naam, SUM(Bestelling_detail.Prijs * Bestelling_detail.Aantal) As Totaalprijs FROM Bestelling INNER JOIN Klant ON Bestelling.KlantID = Klant.ID LEFT JOIN Bestelling_detail Bestelling.ID = Bestelling_detail.BestellingID WHERE Bestelling.ID = X |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | SELECT Bestelling_detail.ID, Bestelling_detail.MenuID, Menu.Naam, Menu.Opmerking, Bestelling_detail.Prijs, Bestelling_detail.Aantal Bestelling_detail.Prijs * Bestelling_detail.Aantal As TotaalPrijs FROM Bestelling_detail INNER JOIN Menu ON Bestelling_detail.MenuID = Menu.ID WHERE Bestelling_detail.BestellingID = X |
voor oracle zal de syntax best eens anders kunnen zijn: http://psoug.org/reference/date_func.htmlquote:Op woensdag 26 oktober 2011 13:43 schreef Cue_ het volgende:
[..]
werken die ook allemaal op een oracle database? Ik ga eens googlen
Tnx!
1 2 3 4 5 6 7 | <?php $a xor $b TRUE if either $a or $b is TRUE, but not both.[php] Maa ik zoek [php]$a operator $b TRUE if either $a or $b is TRUE, or both, but not none. ?> |
Unique Constraints.quote:Op donderdag 27 oktober 2011 12:59 schreef 7leintje93 het volgende:
Hey guys,
Ik heb hier een bijzonder simpele vraag maar hoe zorg ik ervoor dat een combinatie van velden in een tabel uniek is? Ik kan het niet vinden. Ik moet een soort tussentabelletje maken waarbij ProjectId en CategoryId samengebracht worden. Een project kan in meerdere categoriën vallen, maar omdat ik dacht dat in PHPMyAdmin een primary key altijd één veld moest zijn heb ik een extra tabelId toegevoegd, maar nu moet ik nog wel zorgen dat er geen dubbele combinaties ontstaan....
Ik gebruik overigens Navicat Lite om mijn tabellen te maken/aan te passen maar ik kan ook wel een beetje overweg met PMA zelf.
Groetjes
Dan kun je hem zelf ook wel oplossen, als je er iets meer werk instopt.quote:Op donderdag 27 oktober 2011 12:59 schreef 7leintje93 het volgende:
Hey guys,
Ik heb hier een bijzonder simpele vraag
Zo mooi hoe mensen er altijd vanuit gaan dat je lui bent als je om hulp vraagt.quote:Op donderdag 27 oktober 2011 13:04 schreef Pakspul het volgende:
[..]
Dan kun je hem zelf ook wel oplossen, als je er iets meer werk instopt.
Thanks a lot!quote:Op donderdag 27 oktober 2011 13:02 schreef Scorpie het volgende:
[..]
Unique Constraints.
http://www.w3schools.com/sql/sql_unique.asp
Dat is niet zo, je kunt beter een goede tabel aanmaken.quote:Op donderdag 27 oktober 2011 12:59 schreef 7leintje93 het volgende:
omdat ik dacht dat in PHPMyAdmin een primary key altijd één veld moest zijn heb ik een extra tabelId toegevoegd
Wat bedoel je daarmee?quote:Op donderdag 27 oktober 2011 13:14 schreef GlowMouse het volgende:
[..]
Dat is niet zo, je kunt beter een goede tabel aanmaken.
Dat die extra tabelid overbodig is.quote:
Een key kan prima samengesteld worden uit verschillende kolommen. Het is doornormaal dat in koppeltabellen bijvoorbeeld 2 id's wijzende naar andere tabellen samen een key vormen.quote:
Het is inmiddels veranderd Weer wat geleerd!quote:Op donderdag 27 oktober 2011 13:42 schreef Catbert het volgende:
[..]
Een key kan prima samengesteld worden uit verschillende kolommen. Het is doornormaal dat in koppeltabellen bijvoorbeeld 2 id's wijzende naar andere tabellen samen een key vormen.
1 | $array = str_replace (" ", "", $array); |
Mijn max_execution_time in de php.ini staat op 90...quote:Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\DOM\simple_html_dom.php on line 1180
1 2 3 | <?php echo "<a href=\"includes/prikbord/posters/1.jpg\" />Klik hier voor de poster</a>"; ?> |
1 2 3 | <?php echo "<a href=\"includes/prikbord/posters/".$array['P_poster']."\" />Klik hier voor de poster</a>"; ?> |
in $array[P_Poster] staat de hele html code?quote:Op vrijdag 28 oktober 2011 13:33 schreef MrNiles het volgende:
waarom gaat dit goed
[ code verwijderd ]
en krijg ik hier een ongeveel de hele htmlcode dubbel heb
[ code verwijderd ]
quote:Op vrijdag 28 oktober 2011 13:36 schreef mschol het volgende:
[..]
in $array[P_Poster] staat de hele html code?
Order by erbij gooienquote:Op zaterdag 29 oktober 2011 11:11 schreef ikke_ook het volgende:
[ afbeelding ]
Ik probeer met 1 query informatie uit een aantal gejoinde tabellen te halen, ik loop alleen op het laatste stukje vast. Ik heb het gereduceerd tot een eenvoudig probleem met 1 tabel, als ik dat weet snap ik het hopelijk ook voor de totale query.
Hoe krijg ik uit bovenstaande tabel voor alle gebruikers zijn eerst gekochte product? (in 1 query) Ik dacht iets in de trend van GROUP BY Customer, maar dan pakt hij het product met de laagste O_id, en dat hoeft niet per se het eerst gekochte product te zijn.
Thankjoeee!!quote:Op maandag 24 oktober 2011 08:51 schreef Pakspul het volgende:
[..]
[ code verwijderd ]
Niet in één preg_replace, maar ik denk dat je de oplossing niet verkeerd zal vinden.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php echo '<form method="post" action="add_category.php"> <select name="category_name">'; $result=mysql_query("SELECT * FROM category"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){ echo '<option value="'.$row[CategoryId].'">'.$row[Name].'</option>'; } echo '</select><br /><br /> <input type="submit" value="Voeg categorie toe"> </form>'; ?> |
Wat wil je precies doen, want ik snap je verhaal niet helemaal.quote:Op zondag 30 oktober 2011 13:36 schreef 7leintje93 het volgende:
Hoi allemaal
Ik heb een tabelletje genaamd category, met twee kolommen CategoryId en Name. Ik heb het volgende formuliertje:
[ code verwijderd ]
Als ik dan in add_category.php $_POST['category_name'] probeer te echoën lukt dat niet, terwijl als ik $row[Name] bij value zet word de naam wel keurig geëchood (geëcho'd? ge-echood?). CategoryId is een int, misschien dat het daarin zit, maar ik krijg het in ieder geval niet aan de praat. Kan iemand mij helpen?
Groetjes Marjolein
Goed idee om naar de bron te kijken. Heb ik zelf niet aan gedacht -.-' Ik vraag me echt af waarom niet. Fail.quote:Op zondag 30 oktober 2011 13:44 schreef GlowMouse het volgende:
kijk eens naar de html die bovenstaand script genereert. En zet je error reporting hoger.
Ik wil CategoryId bij value zetten, en die in add_category.php verwerken (om te testen even echoën).quote:Op zondag 30 oktober 2011 13:45 schreef boem-dikkie het volgende:
[..]
Wat wil je precies doen, want ik snap je verhaal niet helemaal.
Zet in dit stukje: $row[CategoryId] de key CategoryId tussen quotes, dus: $row['CategoryId'], check ook of de hoofd/kleine letters hetzelfde zijn.quote:Op zondag 30 oktober 2011 13:49 schreef 7leintje93 het volgende:
[..]
Goed idee om naar de bron te kijken. Heb ik zelf niet aan gedacht -.-' Ik vraag me echt af waarom niet. Fail.
Bij de value staat in de bron een lege string. Weet je misschien hoe dit kan? Want in de db staat wel een waarde..
1 2 3 4 5 | <?php $html = file_get_html("document.html"); ?> |
1 2 3 4 5 | <?php $html = file_get_html("document.html")->plaintext; ?> |
quote:
1 2 3 4 5 | <?php $html = file_get_html("document.html")->plaintext; ?> |
Jup. Het werkte ook prima totdat ik er ->plaintext; achter zette.quote:
oh doe eens ->plaintext();quote:Op zondag 30 oktober 2011 14:52 schreef Faux. het volgende:
[..]
Jup. Het werkte ook prima totdat ik er ->plaintext; achter zette.
Werkt helaas niet:quote:Op zondag 30 oktober 2011 14:53 schreef U.N.K.L.E. het volgende:
[..]
oh doe eens ->plaintext();
dus met haakjes
1 2 3 4 5 6 7 | <?php include('simple_html_dom.php'); $plaintext = file_get_html('http://google.nl')->plaintext; echo $plaintext; ?> |
Dan zou file_get_html('document.html') geen object opleveren. Bestaat het bestand document.html wel en staat het op de plaats waar je zoekt?quote:Op zondag 30 oktober 2011 14:55 schreef Faux. het volgende:
[..]
Werkt helaas niet:
Fatal error: Call to a member function plaintext() on a non-object in html.php on line 14
Hier raar genoeg nietquote:Op zondag 30 oktober 2011 15:09 schreef BBQSausage het volgende:
ik weet niet hoe jij het dan doet, maar als ik simpelweg de simple_html_dom.php file download, op m'n server zet, er een file bij maak, en daarin het volgende zet:
[ code verwijderd ]
Dan werkt het hier prima hoor.
var_dump laat m'n browser crashen in dit geval, en ik ga er vanuit dat hij het bestand vindt aangezien hij dat voorheen ook deedquote:Op zondag 30 oktober 2011 15:10 schreef Pakspul het volgende:
var_dump $html eens om te kijken of file_get_html uberhaupt wel het bestand vind en een klasse terug geeft.
Jup, want hij deed het voordat ik er ->plaintext; achter zette wel.quote:Op zondag 30 oktober 2011 15:11 schreef Light het volgende:
[..]
Dan zou file_get_html('document.html') geen object opleveren. Bestaat het bestand document.html wel en staat het op de plaats waar je zoekt?
Ik kom er niet uit. Ik beschrijf wel even de hele situatie, misschien dat iemand met dan wat verder kan helpen.quote:Op zaterdag 29 oktober 2011 13:22 schreef GlowMouse het volgende:
http://explainextended.co(...)-on-a-unique-column/
1 2 3 4 5 6 7 8 9 10 11 | <?php SELECT Vogelnamen.naam, Excursies.datum FROM Waarnemingen RIGHT JOIN (Excursies RIGHT JOIN Locaties ON Excursies.locatie_ID = Locatie.ID) ON Excursies.ID=Waarnemingen.excursie_ID RIGHT JOIN Vogelnamen ON Vogelnamen.ID=Waarnemingen.vogel_ID WHERE (Waarnemingen.user_ID=$user_ID AND Locaties.land=$land) GROUP BY Waarnemingen.vogel_ID ORDER BY Vogelnamen.volgorde ?> |
Ahhh, natuurlijk! Ik zat veel te moeilijk te denken! Bedankt!quote:Op zondag 30 oktober 2011 17:27 schreef GlowMouse het volgende:
Verander Excursies.datum in MIN(Excursies.datum)
GET is toch bedoeld om data van de ene pagina mee te nemen naar de andere? GET pakt trouwens toch ook alleen de stukjes achter het vraagteken, vb: index.php?voorbeeld=blabla. Waarna je vervolgens GET loslaat op voorbeeld en je output blabla is.quote:Op maandag 31 oktober 2011 21:33 schreef KomtTijd... het volgende:
weleens van een GET variable gehoord?
Dit is slechts een gedeelte van wat ik zoek, als het zo is dat ik met GET de bestandsnaam kan uitlezen dan weet ik in ieder geval al in grote lijnen hoe mijn select query eruit komt te zien.quote:Op maandag 31 oktober 2011 21:38 schreef KomtTijd... het volgende:
Ja, juist.
Dat is toch wat je zoekt?
Of wou je serieus voor iedere mogelijke query een apart script gaan maken? Dan kun je net zo goed je database wegflikkeren en gewoon statische tekstbestandjes maken.
Nu wil ik dat er van die 100 records 100 .php pagina's gemaakt worden, de vraag die ik nu heb is hoe ik automatisch .php bestanden kan aanmaken, hoe kan ik meegeven welke code er in die bestanden komt (deze code is voor elke pagina hetzelfde), en als ik weet hoe ik automatisch pagina's kan aanmaken moet ik op de 1 of andere manier ook kunnen bepalen wat de bestandsnamen gaan worden van die .php bestanden, en de vraag is dan; hoe ga ik die bestanden noemen. Als ik bijvoorbeeld van bovenstaand voorbeeldtabel de volgens bestanden maak:quote:ID, voornaam, achternaam
1, Jan, Jansen
2, Kees, Bakker
3. Piet, Vermeulen
etc
etc
Als ik nu vervolgens dmv de bestandsnaam (GET?) mijn database aanroep, dan kan mijn database bijvoorbeeld geen JanJansen vinden omdat JanJansen samengevoegd is uit Jan en Jansen.quote:JanJansen.php
KeesBakker.php
PietVermeulen.php
Ik snap wat je bedoeld, het is ook totaal onlogisch om met zoveel bestanden te werken. Maar het gaat hier om een schoolopdracht, we moeten een site maken in XHTML (php mag ook en levert ook een beter punt op) alleen blijven de eisen gebaseerd op een HTML uitwerking, er zit namelijk een eis in die stelt dat je minimaal 30 bestanden moet hebben...quote:Op maandag 31 oktober 2011 21:59 schreef Ouqz het volgende:
Je moet niet met aparte bestanden gaan werken, PHP is juist dynamisch. Wat jij wil is zulke URL's: /bestand.php?voornaam=x&achternaam=y
Met de superglobal $_GET, die automatisch gevuld wordt, kan je de URL data uitlezen, bv. $_GET['voornaam'], en deze gefilterd opnemen in je query.
SELECT `veld` FROM `tabel` WHERE `voornaam` = xyz AND `achternaam` = xyz
spijker op zijn kop!quote:Op maandag 31 oktober 2011 22:21 schreef KomtTijd... het volgende:
Er bestaat niet zoiets als een ".php pagina", een .php bestand is een script. En dat script kan bijvoorbeeld een internetpagina als uitvoer hebben.
Als jij een opdracht krijgt met een database dan zit daar onlosmakend PHP of een andere server-side scripttaal aan verbonden. Dat kan onmogelijk optioneel zijn. Als jij een opdracht krijgt om een site te maken in XHTML dan slaat dat op de uitvoer van het script. Een eis van 30 bestanden is compleet onzinnig.
Ik zou de opdracht nog maar eens goed doorlezen want waarschijnlijk staat er eerder "30 pagina's" ofzo.
Goed framework zul je dan hebben Voordat ik uberhaupt een regel code schrijf heb ik al minstens een paar duizend bestanden.quote:Op maandag 31 oktober 2011 23:05 schreef totalvamp het volgende:
In best grote projecten heb ik niet eens 30 bestanden Mijn basis is rond de 15 bestanden en daarmee kun je zat doen.
1000 bestanden is een overkill, of je maakt gebruik van een reeds bestaand framework waarvan je 90% niet gebruikt.quote:Op maandag 31 oktober 2011 23:41 schreef Intrepidity het volgende:
[..]
Goed framework zul je dan hebben Voordat ik uberhaupt een regel code schrijf heb ik al minstens een paar duizend bestanden.
Ik maak gebruik van symfony. En liever 90% niet gebruiken als voor die resterende 10% (en dat is een hoop!) continue het wiel opnieuw uitvinden, niet kunnen unit-testen door slecht gescheiden code, geen componenten kunnen hergebruiken, etcetera.quote:Op maandag 31 oktober 2011 23:42 schreef Pakspul het volgende:
[..]
1000 bestanden is een overkill, of je maakt gebruik van een reeds bestaand framework waarvan je 90% niet gebruikt.
het is mijn eigen kleine framework. Geen enkel ander werkt op de manier die ik het meest logisch vind. Ik heb ook niet al die andere zooi nodig die standaard bij een framework komt. Gewoon simpel database class, form class, page class, router etc. en voor elke pagina dan gewoon een controller.quote:Op maandag 31 oktober 2011 23:41 schreef Intrepidity het volgende:
[..]
Goed framework zul je dan hebben Voordat ik uberhaupt een regel code schrijf heb ik al minstens een paar duizend bestanden.
Je maakt dus gewoon HTML bestanden maar met de extensie PHP. Dat heeft met programmeren (en dus dit topic) niks te maken. Als je een debiele docent hebt die je extra punten geeft puur voor een extensie zou ik eens over een opleidingsswitch gaan denken.quote:Op maandag 31 oktober 2011 22:09 schreef YazooW het volgende:
Ik snap wat je bedoeld, het is ook totaal onlogisch om met zoveel bestanden te werken. Maar het gaat hier om een schoolopdracht, we moeten een site maken in XHTML (php mag ook en levert ook een beter punt op) alleen blijven de eisen gebaseerd op een HTML uitwerking, er zit namelijk een eis in die stelt dat je minimaal 30 bestanden moet hebben...
Leuk voor je eigen blog wellicht, maar je hebt het over 'best grote' projecten. Definieer best groot? Ik werk aan een systeem wat ongeveer 1.500.000 mails per dag naar buiten staat te stampen, en daar wil je een solide basis voor hebben.quote:Op maandag 31 oktober 2011 23:46 schreef totalvamp het volgende:
[..]
het is mijn eigen kleine framework. Geen enkel ander werkt op de manier die ik het meest logisch vind. Ik heb ook niet al die andere zooi nodig die standaard bij een framework komt. Gewoon simpel database class, form class, page class, router etc. en voor elke pagina dan gewoon een controller.
Idee van een framework is toch dat je hem niet opnieuw gaat uitvinden En het wiel is ook meerdere malen van niets opnieuw gebouwd, omdat mensen zag dat het beter kanquote:Op maandag 31 oktober 2011 23:43 schreef Intrepidity het volgende:
[..]
Ik maak gebruik van symfony. En liever 90% niet gebruiken als voor die resterende 10% (en dat is een hoop!) continue het wiel opnieuw uitvinden, niet kunnen unit-testen door slecht gescheiden code, geen componenten kunnen hergebruiken, etcetera.
Ik heb ook weleens zoiets gemaakt. Maar daarvoor begonnen we ook van begin af aan. Moesten 500.000 mensen tegelijk iets live kunnen volgen. Als je al een framework van top tot teen kent snap ik het zeker, maar ik heb over de jaren zoveel verschillende gezien, dat ik er niet bij 1 kan blijven hangen.quote:Op maandag 31 oktober 2011 23:48 schreef Intrepidity het volgende:
[..]
Leuk voor je eigen blog wellicht, maar je hebt het over 'best grote' projecten. Definieer best groot? Ik werk aan een systeem wat ongeveer 1.500.000 mails per dag naar buiten staat te stampen, en daar wil je een solide basis voor hebben.
1 2 3 4 5 6 7 8 | <?php INSERT INTO mla m SELECT b.ID, b.Name FROM bla b ?> |
1 | /* SQL Error (1136): Column count doesn't match value count at row 1 */ |
1 | /* SQL Error (1064): 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 ''0'' at line 12 */ |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php INSERT INTO `mla` ( ID, MName ) VALUES ( SELECT b.ID, b.Name FROM bla b) ?> |
quote:Op zondag 30 oktober 2011 17:03 schreef ikke_ook het volgende:
[..]
Ik kom er niet uit. Ik beschrijf wel even de hele situatie, misschien dat iemand met dan wat verder kan helpen.
Ik heb de volgende tabellen met onder andere deze velden
Wat ik wil hebben is een lijstje met vogels die een bepaalde user heeft gezien, en per vogel de datum dat die user hem als eerst heeft gezien, en dat voor een specifiek land.
Wat ik nu heb is
1 2 3 4 5 6 7 8 9 | <?php SELECT Vogelnamen.naam, Excursies.datum FROM Waarnemingen RIGHT JOIN (Excursies RIGHT JOIN Locaties ON Excursies.locatie_ID = Locatie.ID) ON Excursies.ID=Waarnemingen.excursie_ID RIGHT JOIN Vogelnamen ON Vogelnamen.ID=Waarnemingen.vogel_ID WHERE (Waarnemingen.user_ID=$user_ID AND Locaties.land=$land) GROUP BY Waarnemingen.vogel_ID ORDER BY Vogelnamen.volgorde ?> |
quote:Hier komt wel een goed lijstje uit, alleen de datum van de eerste waarneming klopt niet.... de GROUP BY resulteert in de waarnemingen met de laagste ID's.
Mijn kennis van mysql is echt te weinig om dit er op de juiste manier met 1 query uit te halen helaas....
Niemand met een idee?quote:Het is toch nog niet helemaal naar wens. Als ik nou in dezelfde query ook het ID van de excursie en van de waarneming opvraag dan kloppen deze niet met de datum die ik terug krijg...
Met andere woorden, die MIN(Excursies.datum) retourneert wel de laagste datum,maar heeft geen invloed op de rest van de query.
Er zijn zeker meer locaties met hetzelfde land. Maar het land is per locatie uniek, iedere locatie heeft maar 1 land..quote:Op woensdag 2 november 2011 21:40 schreef Light het volgende:
Is het land per locatie uniek of kunnen er meerdere locaties met hetzelfde land zijn?
probeer het zo eens:quote:Op woensdag 2 november 2011 21:42 schreef ikke_ook het volgende:
[..]
Er zijn zeker meer locaties met hetzelfde land. Maar het land is per locatie uniek, iedere locatie heeft maar 1 land..
1 2 3 4 5 6 7 | SELECT Vogelnamen.naam, MIN(Excursies.datum) as datum, Locaties.land FROM Waarnemingen INNER JOIN Vogelnamen ON Waarnemingen.vogel_ID = Vogelnamen.ID INNER JOIN Excursies ON Waarnemingen.excursie_ID = Excursies.ID INNER JOIN Locaties ON Excursies.locatie_ID = Locaties.ID GROUP BY Vogelnamen.naam, Locaties.land ORDER BY datum ASC |
quote:Op zaterdag 29 oktober 2011 13:22 schreef GlowMouse het volgende:
http://explainextended.co(...)-on-a-unique-column/
in mijn testje anders wel. Tenzij ik het verkeerd heb begrepen.quote:Op woensdag 2 november 2011 22:53 schreef GlowMouse het volgende:
Dat werkt niet. Dit is de oplossing.
[..]
Er komt wel een kloppend lijstje uit, maar niet de gevraagde lijst.quote:Op woensdag 2 november 2011 22:53 schreef totalvamp het volgende:
[..]
in mijn testje anders wel. Tenzij ik het verkeerd heb begrepen.
ik zie wat je bedoeld. Hmm unique kan dan de uitweg zijn. En anders is er niks mis met het maken van meerdere queries Soms is dat zelfs efficienterquote:Op woensdag 2 november 2011 22:55 schreef GlowMouse het volgende:
[..]
Er komt wel een kloppend lijstje uit, maar niet de gevraagde lijst.
Hoe ik inderdaad de grafiek en de waardes daar in krijg.quote:Op donderdag 3 november 2011 10:06 schreef Tijn het volgende:
Wat is je vraag? Hoe je de juiste tegevens krijgt of hoe je die gegevens in een grafiek toont?
gvd wat zijn die sexy zeg Google maakt echt zulke vette dingen en fijne is dat ze het delen met de gemeenschap, zodat wij geen extra tijd er in hoeven te steken.quote:
Dan pak je Sencha ExtJS, jQuery Charts, JS Plot of een ander JS plotting framework.quote:Op donderdag 3 november 2011 10:59 schreef ursel het volgende:
[..]
Die is alleen niet in offline beschikbaar.
Kun je niet gewoon de bestanden downloaden en kijken wat hij doet?quote:Op donderdag 3 november 2011 10:59 schreef ursel het volgende:
[..]
Die is alleen niet in offline beschikbaar.
Want de rest van je pagina is dat wel dan?quote:Op donderdag 3 november 2011 10:59 schreef ursel het volgende:
[..]
Die is alleen niet in offline beschikbaar.
ff snel door de FAQ heen gelopen en die zegt van niet nee.quote:Op donderdag 3 november 2011 11:03 schreef Pakspul het volgende:
[..]
Kun je niet gewoon de bestanden downloaden en kijken wat hij doet?
Wij bouwen niets dat afhankelijk is van online libraries.quote:Op donderdag 3 november 2011 11:04 schreef Tijn het volgende:
[..]
Want de rest van je pagina is dat wel dan?
Hm, voor online apps zou ik juist een CDN oplossing adviseren.quote:Op donderdag 3 november 2011 11:07 schreef ursel het volgende:
Wij bouwen niets dat afhankelijk is van online libraries.
Niet elke pagina hoeft online te staan.
Als je iets bouwt dat geen verbinding met het internet heeft, kun je zoiets als Google Chart niet gebruiken, nee. Maar dat is natuurlijk geen reden om het in andere gevallen ook niet te gebruiken.quote:Op donderdag 3 november 2011 11:07 schreef ursel het volgende:
[..]
Wij bouwen niets dat afhankelijk is van online libraries.
Niet elke pagina hoeft online te staan.
Mijn reactie stond verder ook los van de rest van de discussie.quote:Op donderdag 3 november 2011 11:19 schreef Tijn het volgende:
[..]
Als je iets bouwt dat geen verbinding met het internet heeft, kun je zoiets als Google Chart niet gebruiken, nee. Maar dat is natuurlijk geen reden om het in andere gevallen ook niet te gebruiken.
quote:Op donderdag 3 november 2011 11:02 schreef Scorpie het volgende:
[..]
Dan pak je Sencha ExtJS, jQuery Charts, JS Plot of een ander JS plotting framework.
Dit zijn clientside-frameworks, die op JSON basis grafieken plotten. Werkt stukken beter dan de server side belasten.quote:Op donderdag 3 november 2011 11:23 schreef ursel het volgende:
[..]
Mijn reactie stond verder ook los van de rest van de discussie.
Voor eigen gebruik heb ik er niets aan, wat ik wel jammer vindt.
Zal eens naar de opties van Scorpie kijken.
[..]
Ik zou in PHP een array met timestamps als key bouwen. Je kunt dan de data uit je query daarin plaatsen en voor de dagen dat je geen info hebt, blijft het dan leeg. Wanneer je timestamps gebruikt, maakt zo'n maandovergang niks uit.quote:Op donderdag 3 november 2011 11:23 schreef Cue_ het volgende:
Maak nu gebruik van jpgraph
Maar nu vraag ik me af mbt sql
In mijn qry haal ik nu twee gegevens op
Een datum met daarbij het gemiddelde aantal km.
Maar er zijn ook dagen dat er niet gereden worden. Is het mogelijk dat ik dan wel de tussenliggende datums krijg zonder waarde (of waarde 0).
(om geknooi in php met de datums/maandovergangen) niet te krijgen)
Heb je soort van voorbeeld van me? Want zit dan ook met met een extra ifje erin in mijn while loop van de qry?quote:Op donderdag 3 november 2011 12:05 schreef Tijn het volgende:
Ik zou in PHP een array met timestamps als key bouwen. Je kunt dan de data uit je query daarin plaatsen en voor de dagen dat je geen info hebt, blijft het dan leeg. Wanneer je timestamps gebruikt, maakt zo'n maandovergang niks uit.
Gewend, typt wat snellerquote:Op donderdag 3 november 2011 12:48 schreef Catbert het volgende:
Hoezo kort je query als qry af trouwens? Je spreekt query uit als kwe-rie en niet als ku-rie.
Al j somm woord afkor dn scheel da in tiep werkquote:Op donderdag 3 november 2011 12:48 schreef Catbert het volgende:
Hoezo kort je query als qry af trouwens? Je spreekt query uit als kwe-rie en niet als ku-rie.
Dat zou ik doen dus.quote:Op donderdag 3 november 2011 12:18 schreef Cue_ het volgende:
[..]
Want moet dan eerst alle datums liggende tussen de opgegeven begin/einddatum in een array stoppen.. en die dan weer vullen met de waardes van de qry mits de datum van de qry overenkomt met die van de array ?
Ik heb inderdaad het idee door.. en ben bijna bij de uitvoering. Maar ik zit een beetje te klote met de arrays en hoe die te matchen en de verschillende loopjes..quote:Op donderdag 3 november 2011 14:09 schreef Tijn het volgende:
[..]
Dat zou ik doen dus.
Misschien dat iemand anders een slimmere oplossing kan bedenken, maar dit werkt in elk geval wel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Array ( [0] => Array ( [DATUM] => 20-10-2011 [AVERAGE] => 172.33 ) [1] => Array ( [DATUM] => 19-10-2011 [AVERAGE] => 317 ) ) |
1 2 3 4 5 6 7 8 9 | ( [0] => 17-10-2011 [1] => 18-10-2011 [2] => 19-10-2011 [3] => 20-10-2011 [4] => 21-10-2011 [5] => 22-10-2011 [6] => 23-10-2011 ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 | foreach($d as $datum){ for ($i=0; $i <= $aantal ; $i++){ if ($ga[$i]['DATUM'] == $datum) { echo "av"; } else { echo "0"; } } } |
Daar kwam ik het weekend niet uit, maar dan zal ik er nog eens een keer naar kijken. En anders bekijken of het met losse queries lukt...quote:Op woensdag 2 november 2011 22:53 schreef GlowMouse het volgende:
Dat werkt niet. Dit is de oplossing.
[..]
Dat. En dan van de namen van de velden arrays maken (<input name="content[]">). Bij het afhandelen kun je dan door $_POST['content'] loopen en de bijbehorende velden met dezelfde keys ophalen.quote:
quote:
quote:Op vrijdag 4 november 2011 10:39 schreef mstx het volgende:
[..]
Dat. En dan van de namen van de velden arrays maken (<input name="content[]">). Bij het afhandelen kun je dan door $_POST['content'] loopen en de bijbehorende velden met dezelfde keys ophalen.
Dank jullie, dit was eigenlijk heel simpel! Ik reageer zo laat omdat ik natuurlijk meteen doorgingquote:Op vrijdag 4 november 2011 10:39 schreef GI het volgende:
Bouw je formulier op met de [] bij de namen, je moet dan alleen wel goed de $_POST daarna doorlopen om te zorgen dat je de juiste gegevens bij elkaar plakt.
Dezelfde machine als PHP?quote:Op vrijdag 4 november 2011 11:27 schreef Sitethief het volgende:
Heeft iemand ervaring met ftp_connect() ? Hij doet het niet, maar ik krijg ook geen foutmelding waar ik iets mee kan. Het maakt ook niet uit of ik wel of niet poort 21 defineer als poort. De FTP server waarmee ik connect doet het wel via Firefox en Filezilla (op dezelfde machine)
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 | <?php function countWallpapers() { $args = array( 'child_of' => $post->ID, 'title_li' => '', 'sort_order' => 'DESC', 'sort_column' => 'menu_order' ); $wallpapers = get_pages($args); $count = 0; foreach($wallpapers as $wallpaper){ if(has_post_thumbnail($wallpaper->ID)) { $count++; } } echo $count; } function showWallpapers() { $args = array( 'child_of' => $post->ID, 'title_li' => '', 'sort_order' => 'DESC', 'sort_column' => 'menu_order' ); $wallpapers = get_pages($args); $output = ''; foreach($wallpapers as $wallpaper){ if(has_post_thumbnail($wallpaper->ID)) { $thumb = get_the_post_thumbnail($wallpaper->ID, 'thumbnail', $attr = 'title='.$wallpaper->post_title); $link = get_page_link($wallpaper->ID); $output .= '<div class="wallpaper">' . "\n"; $output .= '<a href="' . $link . '" title="' . $wallpaper->post_title . '">' . $thumb . '</a>' . "\n"; $output .= '</div>' . "\n\n"; } } echo $output; } ?> |
1 2 3 4 | <div class="entry-content"> <p class="amount"><?php countWallpapers(); ?> wallpapers</p> <?php showWallpapers(); ?> </div><!-- .entry-content --> |
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 | <?php function getWallpaperdata() { $args = array( 'child_of' => $post->ID, 'title_li' => '', 'sort_order' => 'DESC', 'sort_column' => 'menu_order' ); $wallpapers = get_pages($args); $count = 0; $output = ''; foreach($wallpapers as $wallpaper){ if(has_post_thumbnail($wallpaper->ID)) { $count++; $thumb = get_the_post_thumbnail($wallpaper->ID, 'thumbnail', $attr = 'title='.$wallpaper->post_title); $link = get_page_link($wallpaper->ID); $output .= '<div class="wallpaper">' . "\n"; $output .= '<a href="' . $link . '" title="' . $wallpaper->post_title . '">' . $thumb . '</a>' . "\n"; $output .= '</div>' . "\n\n"; } } return array('count' => $count, 'html' => $output); } ?> |
1 2 3 4 | <div class="entry-content"> <p class="amount"><?php $wallpapers = getWallpaperdata(); echo $wallpapers['count']; ?> wallpapers</p> <?php echo $wallpapers['html']; ?> </div><!-- .entry-content --> |
Die methodes zijn volgens mij best wel zwaar, daar valt wel wat winst te behalen denk.quote:Op vrijdag 4 november 2011 14:22 schreef GlowMouse het volgende:
[ code verwijderd ]
[ code verwijderd ]
en opletten dat je in die foreach-loop niet de lelijkste queries uitvoert via get_the_post_thumbnail of get_page_link.
Thanks De values in een array gooien dus. Is het überhaupt mogelijk om aparte functies te maken van 2 values binnen een functie? Denk van niet aangezien mijn geGoogle niks opleverde maar ik vraag het toch evenquote:Op vrijdag 4 november 2011 14:22 schreef GlowMouse het volgende:
[ code verwijderd ]
[ code verwijderd ]
en opletten dat je in die foreach-loop niet de lelijkste queries uitvoert via get_the_post_thumbnail of get_page_link.
Functies van values maken snap ik niet helemaal?quote:Op vrijdag 4 november 2011 14:50 schreef Chanty87 het volgende:
[..]
Thanks De values in een array gooien dus. Is het überhaupt mogelijk om aparte functies te maken van 2 values binnen een functie? Denk van niet aangezien mijn geGoogle niks opleverde maar ik vraag het toch even
De methodes die je daar aanroept kunnen potentieel 'zwaar' zijn, dat wil zeggen dat ze lang duren, veel resources vreten of onnodig werk verrichten.quote:Wat bedoel je precies met het laatste? De foreach loop had ik als snippet ergens vandaan geplukt, is hoewel ik ook een voorbeeld met add_filter zag. Zitten daar bepaalde (grote) voordelen aan tov get_the_post_thumbnail?
Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaanquote:Op vrijdag 4 november 2011 14:54 schreef Scorpie het volgende:
[..]
Functies van values maken snap ik niet helemaal?
Ah zo. Dacht juist dat je met get_the_post_thumbnail meteen de thumb als resultaat krijgt zonder de hele post aan te roepen en de thumbnail eruit te vissen. Blijkbaar is het andersom dan?quote:Op vrijdag 4 november 2011 14:54 schreef Scorpie het volgende:
[..]
De methodes die je daar aanroept kunnen potentieel 'zwaar' zijn, dat wil zeggen dat ze lang duren, veel resources vreten of onnodig werk verrichten.
Niemand weerhoudt je ervan die code die GlowMouse inline zet, in een aparte functie te douwen.quote:Op vrijdag 4 november 2011 15:08 schreef Chanty87 het volgende:
[..]
Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaan
ik wil, ondingquote:Op vrijdag 4 november 2011 15:13 schreef KomtTijd... het volgende:
[..]
weleens van smarty gehoord trouwens?
Wat Glow heeft gedaan is het mooiste imo.quote:Op vrijdag 4 november 2011 15:08 schreef Chanty87 het volgende:
[..]
Zodat ik het ~netjes~ kan oproepen zoals ik eerst had gedaan
Geen idee wat daar in gebeurt, het is een custom functie die we niet in kunnen zien, aan jou de schone taak dat uit te zoekenquote:Ah zo. Dacht juist dat je met get_the_post_thumbnail meteen de thumb als resultaat krijgt zonder de hele post aan te roepen en de thumbnail eruit te vissen. Blijkbaar is het andersom dan?
Ik had al eerder (zonder succes dus) geprobeerd om functies van die values te maken maar dan zou je de values vanuit getWallpaperdata(); moeten halen en daarbuiten in een eigen functie zetten. Want als ik de functies IN getWallpaperdata(); zet dan moet eerst getWallpaperdata(); zelf aangeroepen zijn anders bestaan de nieuwe functies niet.quote:Op vrijdag 4 november 2011 15:23 schreef Scorpie het volgende:
[..]
Wat Glow heeft gedaan is het mooiste imo.
get_the_post_thumbnail is een Wordpress core functie, ziet er zo uit:quote:Op vrijdag 4 november 2011 15:23 schreef Scorpie het volgende:
[..]
Geen idee wat daar in gebeurt, het is een custom functie die we niet in kunnen zien, aan jou de schone taak dat uit te zoeken
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php function get_the_post_thumbnail( $post_id = null, $size = 'post-thumbnail', $attr = '' ) { $post_id = ( null === $post_id ) ? get_the_ID() : $post_id; $post_thumbnail_id = get_post_thumbnail_id( $post_id ); $size = apply_filters( 'post_thumbnail_size', $size ); if ( $post_thumbnail_id ) { do_action( 'begin_fetch_post_thumbnail_html', $post_id, $post_thumbnail_id, $size ); // for "Just In Time" filtering of all of wp_get_attachment_image()'s filters if ( in_the_loop() ) update_post_thumbnail_cache(); $html = wp_get_attachment_image( $post_thumbnail_id, $size, false, $attr ); do_action( 'end_fetch_post_thumbnail_html', $post_id, $post_thumbnail_id, $size ); } else { $html = ''; } return apply_filters( 'post_thumbnail_html', $html, $post_id, $post_thumbnail_id, $size, $attr ); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // Jquery. $('#maand_gegeven').change(function(){ alert($('#maand_gegeven').attr('value')); $.post("index.php", { maand : $('#maand_gegeven').attr('value'), jaar : $('#jaar_gegeven').attr('value') }); }); //html <select name='maand' id='maand_gegeven' style='width:150px;'> <option value='1'>Januari</option> </select> ?> |
1 2 3 4 5 6 7 8 9 10 11 | $('#maand_gegeven').change(function(){ alert($('#maand_gegeven').val()); $.post("index.php", { maand : $('#maand_gegeven').val(), jaar : $('#jaar_gegeven').val() }, function(data){ alert('succes!'); // doe iets nuttigs met data }); }); |
Om te testen had ik een echo var_dump($_POST); op de pagina gemaakt.quote:Op zaterdag 5 november 2011 06:47 schreef Light het volgende:
[ code verwijderd ]
En als je $.ajax() gebruikt, kun je ook een functie opgeven die moet afgaan als er een error is.
Verder kun je met de juiste tools (oa Firebug, of de ingebouwde developertools in Safari en Chrome) zien welke requests er gebeuren en welke antwoorden er door de server worden teruggestuurd. Anders moet je maar gokken wat er daadwerkelijk terug komt, en da's lastig met debuggen.
Verder heb ik geen idee wat je in php doet om te zien of je een POST of GET afhandelt, en wat je dan doet in die POST afhandeling.
Dit is mijn eerste keer dat ik het zo aanpak , ik heb firebug; maar snap niet waar ik moet kijken in firebug zelf.quote:Op zaterdag 5 november 2011 14:12 schreef Light het volgende:
Het resultaat van die var_dump() wordt niet vanzelf getoond, daar moet je moeite voor doen. Vandaar ook mijn tip om Firebug (of iets vergelijkbaars voor je browser) te gebruiken, dan kun je precies zien wat er teruggestuurd wordt naar de browser.
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $('#maand_gegeven').change(function(){ alert($('#maand_gegeven').val()); $.post("index.php?action=totalen", { maand : $('#maand_gegeven').val(), jaar : $('#jaar_gegeven').val() }, function(data){ $("#wrapper").html(data); }); }); ?> |
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 | //html <select name='maand' id='maand_gegeven' style='width:150px;'> <option value='1'>Januari</option> </select> //maincms.js $('#maand_gegeven').change(function(){ $.post("ajax_include.php?totaal", { maand : $('#maand_gegeven').val(), jaar : $('#jaar_gegeven').val() }, function(data){ $("#totalen").html(data); }); }); // Ajax_include.php <script src="js/jquery-1.6.3.min.js" type="text/javascript"></script> <script src="js/maincms.js" type="text/javascript"></script> <?php include("includes.php"); /** File to include modules for Ajax. Only the files who are called from Jquery are found here. */ if(isset($_GET['totaal'])) { include("./forms/overzicht_jaar_maand.php"); } ?> |
quote:Op zondag 6 november 2011 05:23 schreef cablegunmaster het volgende:
De reden dat ik de Javascript opnieuw include is omdat je anders het maar een enkele keer kan uitvoeren.
Zonder deed hij het niet als ik het de eerste keer aanpaste.quote:
Nou kijk het probleem is als volgt;quote:Op zondag 6 november 2011 15:20 schreef GlowMouse het volgende:
dan roep je na $("#totalen").html(data); de relevante functies in je javascriptfile aan, die ook aangeroepen worden als je pagina voor het eerst geladen is
1 2 3 4 5 6 7 8 9 10 11 | <?php $('#maand_gegeven').change(function(){ $.post("ajax_include.php?totaal", { maand : $('#maand_gegeven').val(), jaar : $('#jaar_gegeven').val() }, function(data){ $("#totalen").html(data); }); }); ?> |
1 2 3 | <?php echo "<a href=\"includes/admin/verwijderen_optreden.php?id=".$array['O_id']."\">Verwijderen </a>"; ?> |
1 2 3 | <?php <img src="http://myimglink.com/img.png\" border=0> ?> |
<a href=\"includes/admin/verwijderen_optreden.php?id=".$array['O_id']."\"><img data-src="http://myimglink.com/img.png\" style="visibility:hidden;" border=0></a> ?quote:Op maandag 7 november 2011 11:51 schreef MrNiles het volgende:
als ik deze code heb om een item te verwijderen
[ code verwijderd ]
wat moet ik veranderen zodat de tekst een image wordt?
waarschijnlijk met zoiets
[ code verwijderd ]
maar ik krijg unexpected T_LNUMBER
1 2 3 | <?php "<img src=\"http://myimglink.com/img.png\" border=\"0\" onclick=javascript:doSomething();>"; ?> |
Maar dan nog een extra \ bij src=".quote:Op maandag 7 november 2011 11:54 schreef remi1986 het volgende:
[..]
<a href=\"includes/admin/verwijderen_optreden.php?id=".$array['O_id']."\"><img data-src="http://myimglink.com/img.png\" style="visibility:hidden;" border=0></a> ?
1 2 3 4 5 6 7 8 9 10 11 12 | <?php echo '0 01 012 0123 01234 012345 0123456 01234567 012345678 0123456789'; ?> |
zet er een while omheen en zorg dat hij 1x uitgevoerd wordt, of kom met wat eleganters voor je huiswerkquote:Op maandag 7 november 2011 12:36 schreef vlam12 het volgende:
[..]
ja, maar hoe doe je dat met een while lus?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php $i = 1; while ( $i != 11 ) { $j = 0; while ( $j != $i ) { echo $j; $j++; } echo "<br />"; $i++; } ?> |
Ninja'dquote:Op maandag 7 november 2011 12:53 schreef Pakspul het volgende:
[ code verwijderd ]
Huiswerk af, snel naar de coffee shop voordat je handen gaan trillen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $max = 9; $loop = 0; while($loop <= $max) { $loop2 = 0; while($loop2 <= $loop) { echo $loop2; $loop2++; } echo "<br/>"; $loop++; } ?> |
1 2 3 4 5 6 7 8 9 | <?php $count = 0; $total = '0123456789'; while($count <= 9) { $count++; echo substr($total, 0, $count)."<br/>"; } ?> |
Brrrrrrr. Dat kan netter.quote:Op maandag 7 november 2011 12:53 schreef Pakspul het volgende:
[ code verwijderd ]
Huiswerk af, snel naar de coffee shop voordat je handen gaan trillen
1 2 3 4 5 6 7 8 9 | <?php $str; $i=0; while($i<10){ $str = $str.$i; echo $str; $i++; } ?> |
Ik vind het ook bijzonder knap van ze.quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Door ook maar een klein beetje programmeerinzicht te hebben?quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Inzicht, weten hoe je er door heen moet lopen + ervaring.quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Kan netter ja, maar kan ook nog velen malen uitgebreiderquote:
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 | <?php class ArrayList { private $_Index = -1; private $_InnerList; public function Add($value) { $this->_InnerList[] = $value; } public function Count() { return count($this->_InnerList); } public function Read() { $this->_Index++; if ( $this->_Index == $this->Count() ) { return false; } return true; } public function Item() { if ( $this->_Index < 0 ) { throw new Exception('List not started reading.'); } return $this->_InnerList[$this->_Index]; } } $lineList = new ArrayList(); while ( $lineList->Count() != 10 ) { $numberList = new ArrayList(); while ( $numberList->Count() != ($lineList->Count() + 1) ) { $numberList->Add($numberList->Count()); } $lineList->Add($numberList); } while ( $lineList->Read() ) { $numberList = $lineList->Item(); while ( $numberList->Read() ) { echo $numberList->Item(); } echo "<br />"; } ?> |
Dat kan uitgebreider, je kan bijv $lineList->Count()+1 ook weer in een aparte functie stoppen.quote:Op maandag 7 november 2011 13:23 schreef Pakspul het volgende:
[..]
Inzicht, weten hoe je er door heen moet lopen + ervaring.
[..]
Kan netter ja, maar kan ook nog velen malen uitgebreider
[ code verwijderd ]
Als het je huiswerk is, lever dit in
Nee, want dat heeft geen nut voor dit verhaal. Je gebruikt het alleen hier en de class zou je overal weer kunnen gebruiken (beetje OO denken).quote:Op maandag 7 november 2011 13:26 schreef Luchtkoker het volgende:
[..]
Dat kan uitgebreider, je kan bijv $lineList->Count()+1 ook weer in een aparte functie stoppen.
Kun je heel mooi gebruiken voor lijsten zo te zien?quote:Op maandag 7 november 2011 13:28 schreef GlowMouse het volgende:
jullie zijn bekend met de iterator? http://php.net/manual/en/class.iterator.php
Daar ging het niet om, voor dit verhaal heeft het ook weinig nut om allemaal classes te gaan gebruiken etc, het ging erom dat het uitgebreider kon.quote:Op maandag 7 november 2011 13:32 schreef Pakspul het volgende:
[..]
Nee, want dat heeft geen nut voor dit verhaal. Je gebruikt het alleen hier en de class zou je overal weer kunnen gebruiken (beetje OO denken).
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 | <?php class Console { private static $newLine = "<br />"; public static function Write($value) { echo $value; } public static function WriteLine($value = "") { echo $value; echo self::$newLine; } } class ArrayList { private $_Index = -1; private $_InnerList; public function Add($value) { $this->_InnerList[] = $value; } public function Count() { return count($this->_InnerList); } public function Read() { $this->_Index++; if ( $this->_Index == $this->Count() ) { return false; } return true; } public function Item() { if ( $this->_Index < 0 ) { throw new Exception('List not started reading.'); } return $this->_InnerList[$this->_Index]; } } $lineList = new ArrayList(); while ( $lineList->Count() != 10 ) { $numberList = new ArrayList(); while ( $numberList->Count() != ($lineList->Count() + 1) ) { $numberList->Add($numberList->Count()); } $lineList->Add($numberList); } while ( $lineList->Read() ) { $numberList = $lineList->Item(); while ( $numberList->Read() ) { Console::Write($numberList->Item()); } Console::WriteLine(); } ?> |
Nee, sorry ik vind het geen optiequote:Op maandag 7 november 2011 13:34 schreef Luchtkoker het volgende:
[..]
Daar ging het niet om, voor dit verhaal heeft het ook weinig nut om allemaal classes te gaan gebruiken etc, het ging erom dat het uitgebreider kon.
Wat is er niet netjes aan dan?quote:
Een onnodige loop.quote:
Het is geen kwestie van "de oplossing zien", het is een kwestie van een oplossing bedenken. Het is geen geheim waar je achter moet zien te komen ofzo, je moet gewoon verzinnen wat je voor instructies zou moeten geven om de gewenste output te krijgen. En aangezien het niet zo'n moeilijk probleem is, duurt het dus ook niet erg lang voordat je een geschikte oplossing hebt verzonnen.quote:Op maandag 7 november 2011 13:10 schreef vlam12 het volgende:
wow! hoe zien jullie zo snel wat de oplossing is?
Ik had denk ik een while(true) gebruikt icm met een for en een for each loop, gewoon, om hem te stangen.quote:Op maandag 7 november 2011 15:01 schreef Pakspul het volgende:
[..]
Als het om een bullshit opdracht gaat dan kun je nooit teveel onnodige loops hebben
1 2 3 4 5 | <?php foreach(range(1,9) as $i) { echo implode(range(1,$i))."\r\n"; } ?> |
quote:Op maandag 7 november 2011 16:07 schreef Scorpie het volgende:
[..]
Ik had denk ik een while(true) gebruikt icm met een for en een for each loop, gewoon, om hem te stangen.
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 $res = array( '0', '01', '012', '0123', '01234', '012345', '0123456', '01234567', '012345678', '0123456789', ); foreach ($res as $value) { echo $value . "<br />"; } // of! echo current($res); while ($value = next($res) ) { echo $value . "<br />"; } ?> |
quote:Op maandag 7 november 2011 15:01 schreef Pakspul het volgende:
[..]
Als het om een bullshit opdracht gaat dan kun je nooit teveel onnodige loops hebben
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 | <?php $i = 0; while($i != 123456790) { switch($i) { case 0: echo $i . "\n"; break; case 1: echo '0' . $i . "\n"; break; case 12: echo '0' . $i . "\n"; break; case 123: echo '0' . $i . "\n"; break; case 1234: echo '0' . $i . "\n"; break; case 12345: echo '0' . $i . "\n"; break; case 123456: echo '0' . $i . "\n"; break; case 1234567: echo '0' . $i . "\n"; break; case 12345678: echo '0' . $i . "\n"; break; case 123456789: echo '0' . $i . "\n"; break; } $i++; } ?> |
1 2 3 4 5 6 7 8 9 10 | 0 01 012 0123 01234 012345 0123456 01234567 012345678 0123456789 |
Denk niet dat de leraar het goed rekent.quote:
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 | <?php $res = array( '0', '01', '012', '0123', '01234', '012345', '0123456', '01234567', '012345678', '0123456789', ); echo current($res); // 0 echo next($res); //01 echo next($res); //012 echo next($res); //0123 echo next($res); //01234 echo next($res); //012345 echo next($res); //0123456 echo next($res); //01234567 echo next($res); //012345678 echo next($res); //0123456789 ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php while(1>2); echo '0 01 012 0123 01234 012345 0123456 01234567 012345678 0123456789'; ?> |
quote:Op maandag 7 november 2011 16:17 schreef Pakspul het volgende:
[..]
while(false); er zit inderdaad een while in
pff, maakt geen eens gebruik van classesquote:Op maandag 7 november 2011 16:20 schreef GlowMouse het volgende:
Die van The_Terminator is het beste.
Ik heb dus serieus een keer met zo'n soort code van iemand anders moeten werken, zag er ongeveer zo uit:quote:Op maandag 7 november 2011 16:20 schreef GlowMouse het volgende:
Die van The_Terminator is het beste.
1 2 3 4 5 6 7 8 9 10 11 | <?php if ( $_GET['actie']==1 ) { $query="SELECT * FROM tabel WHERE kolom=1"; } if ( $_GET['actie']==2 ) { $query="SELECT * FROM tabel WHERE kolom=2"; } if ( $_GET['actie']==3 ) { $query="SELECT * FROM tabel WHERE kolom=3"; } ?> |
Thanks!quote:Op maandag 7 november 2011 16:20 schreef GlowMouse het volgende:
Die van The_Terminator is het beste.
Maar wel meer dan 123 miljoen onnodige loopsquote:Op maandag 7 november 2011 16:22 schreef Pakspul het volgende:
[..]
pff, maakt geen eens gebruik van classes
quote:Op maandag 7 november 2011 16:26 schreef The_Terminator het volgende:
[..]
Thanks!
[..]
Maar wel meer dan 123 miljoen onnodige loops
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 | <?php $output = array(); while(true) { $randnr = rand(0, 123456789); switch ($randnr) { case 0: $first = true; $output[0] = $randnr; break; case 1: $second = true; $output[1] = '0' . $randnr; break; case 12: $third = true; $output[2] = '0' . $randnr; break; case 123: $fourth = true; $output[3] = '0' . $randnr; break; case 1234: $fifth = true; $output[4] = '0' . $randnr; break; case 12345: $sixth = true; $output[5] = '0' . $randnr; break; case 123456: $seventh = true; $output[6] = '0' . $randnr; break; case 1234567: $eighth = true; $output[7] = '0' . $randnr; break; case 12345678: $ninth = true; $output[8] = '0' . $randnr; break; case 123456789: $tenth = true; $output[9] = '0' . $randnr; break; } if ( $first == true && $second == true && $third == true && $fourth == true && $fifth == true && $sixth == true && $seventh == true && $eighth == true && $ninth == true && $tenth == true ) { break; } } echo current($output); // 0 echo next($output); //01 echo next($output); //012 echo next($output); //0123 echo next($output); //01234 echo next($output); //012345 echo next($output); //0123456 echo next($output); //01234567 echo next($output); //012345678 echo next($output); //0123456789 ?> |
Die van jou kan na 10 loops klaar zijn snap niet waarom je de argumenten van rand niet wat ruimer kiest ookquote:Op maandag 7 november 2011 16:36 schreef Pakspul het volgende:
[..]
[ code verwijderd ]
Minimaal 123456789 loopjes, maar ga er maar vanuit dat het er velen malen meer zullen zijn
kans 1 op 8.22526E+80 dat hij in 10 loops klaar isquote:Op maandag 7 november 2011 16:39 schreef GlowMouse het volgende:
[..]
Die van jou kan na 10 loops klaar zijn snap niet waarom je de argumenten van rand niet wat ruimer kiest ook
1 2 3 4 5 6 7 | <?php $_ = array(0); do { $_[] = end($_) . count($_); } while (count($_) <= 9); echo implode("\n", $_); ?> |
1 2 3 4 | <?php foreach(range(0,9) as $i) { echo '0'.implode(range(1,$i))."\r\n"; } |
Er zit ook geen while loop in.quote:Op maandag 7 november 2011 20:28 schreef Chandler het volgende:
Je zou voor de grap dit topic met http://gathering.tweakers.net/forum/list_messages/1315200 moeten mergen
Die van glowmouse is trouwens ook niet goed, range 1 t/m 9? waar is de 0 dan?
[ code verwijderd ]
Zo is hij wel goed dat ik glowmouse moet verbeteren
niet getest maar logischer wijs goed iets minder fout
oj de eerste van jou is nu '00', dat is ook niet goed.quote:Op maandag 7 november 2011 20:28 schreef Chandler het volgende:
Je zou voor de grap dit topic met http://gathering.tweakers.net/forum/list_messages/1315200 moeten mergen
Die van glowmouse is trouwens ook niet goed, range 1 t/m 9? waar is de 0 dan?
[ code verwijderd ]
Zo is hij wel goed dat ik glowmouse moet verbeteren
niet getest maar logischer wijs goed iets minder fout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $query_attach= " SELECT * FROM hkp_attachments WHERE status = 0 " ; $qry_att = QueryOra($db, $query_attach); QueryExe($qry_att, OCI_DEFAULT, $query_attach); while ($row_att = oci_fetch_array ($qry_att, OCI_ASSOC)) { $att_eaiexportid = $row_att['EAIEXPORTID']; $att_barcode = $row_att['BARCODE']; $att_filename = $row_att['FILENAME']; $att_act_id = $row_att['ACT_ID']; $att_status = $row_att['STATUS']; |
En verwijst dan naar deze regel:quote:Warning: oci_fetch_array(): ORA-24374: define not done before fetch or execute and fetch in /appl/www/scripts/da_status_omzetting.php
1 | while ($row_att = oci_fetch_array ($qry_att, OCI_ASSOC)) { |
Cause: The application did not define output variables forquote:Op dinsdag 8 november 2011 11:00 schreef Cue_ het volgende:
Oke nieuw vraagje
Mijn code:
[ code verwijderd ]
Hierna komt nog een tweede lus binnen de while loop die ook weer zo'n zelfde qry met while loop uitvoert.
Nu roep ik via Putty een .sh script aan die deze qry moet uitvoeren. Maar dan krijg ik deze foutmelding:
[..]
En verwijst dan naar deze regel:
[ code verwijderd ]
Maar snap niet echt wat ik dan moet veranderen. Iemand ideeen?
1 2 3 4 5 6 7 8 | <?php for ($i=1;$i==true;$i++){ $naam=$_POST["$i"]; echo " $naam "; } ?> |
Die for loop gaat door zolang $i true is, je zal hem dus ergens op false moeten zetten als je wil dat hij stopt. Maar wat een rare constructie trouwensquote:Op woensdag 9 november 2011 12:42 schreef vlam12 het volgende:
Ik zit weer vast
[ code verwijderd ]
Ik wil dat hij stopt met echoën als $naam=$_POST["$i"] een foutcode geeft, maar ik heb geen idee hoe ik dat moet oplossen.
1 2 3 4 5 6 7 8 | <?php $i = 0; while(! empty($_POST[$i])) { $naam=$_POST[$i]; echo " $naam "; $i++; } ?> |
1 2 3 | <?php echo " $naam "; ?> |
Ach, als je spaties voor en naam de variabele wil hebben kan je ookquote:Op woensdag 9 november 2011 13:04 schreef Sitethief het volgende:
[ code verwijderd ]
Ik zou dat nooit zo doen, altijd zonder "". Wat voor een nut heeft het om er " om heen te zetten? Als je simpelweg een variabele wil laten zien kan dat prima zonder "
1 2 3 | <?php echo (" ".$naam." "); ?> |
quote:Echo with commas, not periods. If you use periods, PHP has to concatenate the string before it outputs. If you use commas, it just outputs them in order with no extra processing.
1 2 3 4 5 6 7 | <?php <form method="POST" action="ontvangen3.php"> <input type="text" name="velden" size="20" maxlength="30" > <br> <input type="submit" name=keuzen value="Verzenden" action="ontvangen3.php"> </form> ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $waarde=$_POST['velden']; echo '<form method="POST" action="tabel.php">'; for ($iets=1; $iets<=$waarde; $iets++){ $tabel=' <input type="text" name="'.$iets.'" size="20" maxlength="30"> <br> '; echo $tabel; } echo' <p> <input type="hidden" name="'.$iets.'" value="'.$iets.'" action="tabel.php"> <input type="submit" name="namen" value="verzenden" action="tabel.php"> </form> '; ?> |
Hoeft niet persee name="voornaam_$index" zou voldoende kunnen zijn om ze later weer uit te lezen.quote:
Een foreach zou toch hetzelfde doen zonder dat je $i hoeft te gebruiken?quote:Op woensdag 9 november 2011 12:47 schreef GlowMouse het volgende:
je zult wel zoiets zoeken
[ code verwijderd ]
Waarom zou je in hemelsnaam spaties voor en achter een string willen hardcoden?quote:Op woensdag 9 november 2011 13:05 schreef GI het volgende:
[..]
Ach, als je spaties voor en naam de variabele wil hebben kan je ook
[ code verwijderd ]
doen maar dan vind ik dit beter leesbaar.
tot een user met vijf invulvakjes alleen de eerste drie invult wel jaquote:Op woensdag 9 november 2011 13:21 schreef KomtTijd... het volgende:
[..]
Een foreach zou toch hetzelfde doen zonder dat je $i hoeft te gebruiken?
Dit ja!quote:
1 2 3 4 5 | <?php for($iets = 1; $iets <= $waarde; $i++) { echo "<input type='text' name='names[]' size='20' maxlength='30'>"; } ?> |
Maar dan weet je nog niet hoeveel het er zijn. Moet je gaan exploden op "voornaam_". Dan is de input name met [] veel makkelijker, omdat je dan gewoon een array terugkrijgtquote:Op woensdag 9 november 2011 13:21 schreef Pakspul het volgende:
[..]
Hoeft niet persee name="voornaam_$index" zou voldoende kunnen zijn om ze later weer uit te lezen.
Ohja idd dat zou je dan in de loop nog moeten checken...quote:Op woensdag 9 november 2011 13:22 schreef GlowMouse het volgende:
[..]
tot een user met vijf invulvakjes alleen de eerste drie invult wel ja
het echte probleem is dat je met foreach alle postvelden krijgt; als je names[] gebruikt dan zou ik juist wel foreach gebruikenquote:Op woensdag 9 november 2011 13:24 schreef KomtTijd... het volgende:
[..]
Ohja idd dat zou je dan in de loop nog moeten checken...
Als je tien rijen bouwt dan krijg je met veldnaam[] er tien terug en voornaam_$index ook tien. En je hoeft niet te exploden want je kunt gewoon checken met $currentfield = "voornaam_" . $i; empty($currentfield); ....quote:Op woensdag 9 november 2011 13:24 schreef remi1986 het volgende:
[..]
Maar dan weet je nog niet hoeveel het er zijn. Moet je gaan exploden op "voornaam_". Dan is de input name met [] veel makkelijker, omdat je dan gewoon een array terugkrijgt
Arrays & loopsquote:Op woensdag 9 november 2011 13:33 schreef Pakspul het volgende:
[..]
Als je tien rijen bouwt dan krijg je met veldnaam[] er tien terug en voornaam_$index ook tien. En je hoeft niet te exploden want je kunt gewoon checken met $currentfield = "voornaam_" . $i; empty($currentfield); ....
hear, hearquote:Op woensdag 9 november 2011 13:36 schreef Scorpie het volgende:
[..]
Arrays & loops
Concatenatie en empty() checks
Als je al in een situatie zit waar je echo(" $naam "); gebruikt zit dan is een template engine wellicht te hoog gegrepenquote:Op woensdag 9 november 2011 13:21 schreef KomtTijd... het volgende:
[..]
Een foreach zou toch hetzelfde doen zonder dat je $i hoeft te gebruiken?
[..]
Waarom zou je in hemelsnaam spaties voor en achter een string willen hardcoden?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |