Dat gezeik dat de jouwe korter is. I dont care. Als het maar doet wat het moet doen en duidelijk is.quote:
Lolquote:Op donderdag 27 augustus 2009 13:00 schreef GlowMouse het volgende:
Ha ha, nu moet jij een nieuwe aanmaken.
Zeikenquote:Op donderdag 27 augustus 2009 13:02 schreef Moozzie het volgende:
[..]
Dat gezeik dat de jouwe korter is.
Nou gelet op je overtrokken reactie blijkbaar wel.quote:I dont care.
Ja, ik heb volgens mij nergens a. een waarde oordeel aan het script gehangen of b. aanleiding gegeven om voor jou te denken dat ik er anders over denk.quote:Als het maar doet wat het moet doen en duidelijk is.
Ik kan wel een compact script schijven van 10 regels en dat nu begrijpen. Maar ik moet het over een jaar nog steeds begrijpen als ik het weer in zie omdat er iets aangepast moet worden. Dan schrijf ik liever een duidelijk script van 20 regels wat ik na een jaar meteen weer snap door de duidelijkheid en nodige comments
Doel je op de date_format? kun je eens meer info geven?quote:Op donderdag 27 augustus 2009 12:58 schreef GlowMouse het volgende:
[..]
Beter: je returnt de data die je nodig hebt voor de output. Serieus, als ik zo'n script tegenkom als het jouwe dan begin ik liever opnieuw.
En Chandler: voorkom toepassen van functies op kolomnamen omdat dat niet indexeerbaar is.
Het was geen kritiek hoor, het viel me op.quote:Op donderdag 27 augustus 2009 13:08 schreef Chandler het volgende:
@Swets; mijn class is bedoeld om de data uit te lezen en eventueel in te voeren, zo beknopt maar flexibel mogelijk. Meer heeft een poll eingelijk niet nodig.
Twitter gebruikt UTF-8 (iig voor de website). Dan zou je dus zonder problemen ¤ moeten kunnen gebruiken en heb je geen html entity nodig.quote:Op donderdag 27 augustus 2009 11:38 schreef Swetsenegger het volgende:
Ik heb een vraagje. Ik heb een site die wat tweets naar twitter verstuurt. En i9n die tweets staat een euro teken. Nu doe ik dat met & euro; zodat ik een crossplatform euroteken krijg. Maar.... voor twitter zijn ook allerlei desktop applicaties en die zijn in de regel NIET webbased. En in plaats van een mooi teken zie die nu dus de html entity.
Zend dan gewoon het euroteken daadwerkelijk mee, maar dan heb ik het probleem dat een ¤ er op bv OSX of Linux er als æ ofzo uitziet.
Hoe krijg ik een cross platform, cross applicatie euroteken?
Ja, maar desktop apps zijn niet altijd UTF-8. Dus krijg ik op OSX in een twitter app bv geen ¤ te zien. Ik vraag me af of ik niet wat in ASCII kan doen ofzo.quote:Op donderdag 27 augustus 2009 13:11 schreef Light het volgende:
[..]
Twitter gebruikt UTF-8 (iig voor de website). Dan zou je dus zonder problemen ¤ moeten kunnen gebruiken en heb je geen html entity nodig.
Der zijn wel een hoop dingen die ik anders zou doen.quote:Op donderdag 27 augustus 2009 10:34 schreef Chandler het volgende:
Mag ik commentaar op mijn class? wil nameljik leren en juist door te spelen leer ik dus.
PS ik gebruik mijn eigen mysql class, deze werkt nog niet middels PDO maar komt ooit nog
[ code verwijderd ]
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 | id (int) title (varchar * 64) comment (text) date_started (date) date_ended (date) answers (tinyint) votes (int) views (int) tinyPollAnswers id (int) pollID (int) answer (varchar * 64) votes (int) tinyPollVotesIp id (int) ip (varchar * 64) hostname (varchar * 128) tinyPollVotes ipID (int) pollID (int) answerID (int) votedate (date) |
1 2 3 4 5 6 7 8 9 10 | tinyPoll.id FROM tinyPoll LEFT JOIN tinyPollAnswers ON tinyPollAnswers.pollID = tinyPoll.id WHERE tinyPoll.id = '" . $this->db->escape($pollID) . "' AND tinyPollAnswers.id = '" . $this->db->escape($answerID) . "' AND UNIX_TIMESTAMP(date_ended) > NOW() LIMIT 1 |
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 | tpo_id tpo_title tpo_comment tpo_date_started tpo_date_ended tpo_answers tpo_votes tpo_views tiny_poll_answer tpa_id tpa_tpo_id tpa_answer tpa_votes tiny_poll_votes_ip tpi_id tpi_ip tpi_hostname tiny_poll_vote tpv_tpi_id tpv_tpo_id tpv_tpa_id tpv_votedate |
1 2 3 4 5 6 7 8 9 10 | tpo_id FROM tiny_poll LEFT JOIN tiny_poll_answer ON tpa_tpo_id = tpo_id WHERE tpa_tpo_id = '" . $this->db->escape($pollID) . "' AND tpa_id = '" . $this->db->escape($answerID) . "' AND UNIX_TIMESTAMP(tpo_date_ended) > NOW() LIMIT 1 |
Mwa dus totaal niet mee eens. Wij hebben hier tabellen met miljoenen records en hadden eerst varchar. De hele boel liep daarop vast omdat het dus dynamic tabellen werden. Door er fixt tabellen van te maken werd de tabel wel groter maar onwijs veel sneller.quote:Op donderdag 27 augustus 2009 13:43 schreef GlowMouse het volgende:
>> Zelf ben ik meer van de Char dan varchar (waar kan, in combinatie met een text veld gaat dat natuurlijk niet) Char is inderdaad groter in vele gevallen maar je tabel blijft wel fixt length. Waardoor het zoeken dus sneller gaat
En er minder in je geheugen past, waardoor het juist heel veel trager wordt.
1 |
Het went vanzelfquote:Op donderdag 27 augustus 2009 13:48 schreef Swetsenegger het volgende:
Zoals hier wel weer uit blijkt is het ook een kwestie van smaak, want ik krijg dus jeuk van dit soort benamingen
[ code verwijderd ]
Als we het er dan toch over hebben dat je over een jaar terug leest, snap je in eerste instantie van dit soort afkortingen ook niets meer. ID's per tabel benoemen is met het oog op joins inderdaad wel duidelijker.
Lol, ik gebruikte altijd unix_timestamp icm now() maar weet dat unix_timestamp nogal heerlijk sloom is qua functie...quote:Op donderdag 27 augustus 2009 13:10 schreef GlowMouse het volgende:
bv.
UNIX_TIMESTAMP(date_started) < ....
omschrijven naar
date_started < FROM_UNIXTIME(...)
en
UNIX_TIMESTAMP(date_started) < NOW()
klopt niet eens: NOW() is geen unix timestamp.
1 |
Eens.quote:Op donderdag 27 augustus 2009 13:48 schreef Swetsenegger het volgende:
Zoals hier wel weer uit blijkt is het ook een kwestie van smaak, want ik krijg dus jeuk van dit soort benamingen
[ code verwijderd ]
Nope het ging fout bij de selectsquote:Op donderdag 27 augustus 2009 14:29 schreef GlowMouse het volgende:
>> date_started =< FROM_UNIXTIME(NOW(), '%Y-%m-%d')
nee, het moet zijn date_started <= NOW()
>> Ook blijf ik kiezen voor varchar aangezien de velden die geinsert worden qua data niet veranderd gaan worden (ip,
ip kan (ipv6 buiten beschouwing latend) best in een int mbv INET_ATON
>> Wij hebben hier tabellen met miljoenen records en hadden eerst varchar. De hele boel liep daarop vast omdat het dus dynamic tabellen werden. Door er fixt tabellen van te maken werd de tabel wel groter maar onwijs veel sneller.
Had je een hoop updates? Het kan zijn dat je rijen gefragmenteerd werden. En als je varchar(255) gebruikte en nu char(100) omdat je wel op lengte let, maakt dat ook behoorlijk uit, bv als je in geheugen sorteert.
Nee de records werden niet geupdatequote:Op donderdag 27 augustus 2009 14:35 schreef GlowMouse het volgende:na updates gaat het fout bij selects ja, bij rij-fragmentatie.
Ik neem aan dat deze voor mij bedoeld was. Begrijp alleen even niet wat je bedoeldquote:Op woensdag 26 augustus 2009 10:11 schreef Swetsenegger het volgende:
Dan geef je toch een header('location:.'$_SERVER['PHP_SELF'].'); na het instellen van de sessie.
dat je de pagina een keer refreshed als je de sessie heb ingesteldquote:Op donderdag 27 augustus 2009 18:00 schreef uppie83 het volgende:
[..]
Ik neem aan dat deze voor mij bedoeld was. Begrijp alleen even niet wat je bedoeld
Dat is idd wel een oplossing, maar meer symptoombestrijding ipv probleemoplossend.quote:Op donderdag 27 augustus 2009 18:12 schreef Swetsenegger het volgende:
[..]
dat je de pagina een keer refreshed als je de sessie heb ingesteld
Nee dat is het niet. Cookies en Sessies (de laatste weet ik niet zeker) werken pas de volgende keer dat de pagina geladen wordt.quote:Op donderdag 27 augustus 2009 18:22 schreef uppie83 het volgende:
[..]
Dat is idd wel een oplossing, maar meer symptoombestrijding ipv probleemoplossend.
Hmm dat geeft weer ideeenquote:Op donderdag 27 augustus 2009 18:23 schreef Swetsenegger het volgende:
[..]
Nee dat is het niet. Cookies en Sessies (de laatste weet ik niet zeker) werken pas de volgende keer dat de pagina geladen wordt.
Bij sessies zeker niet; komt omdat je sessievars direct via de superglobal instelt.quote:Op donderdag 27 augustus 2009 18:23 schreef Swetsenegger het volgende:
[..]
Nee dat is het niet. Cookies en Sessies (de laatste weet ik niet zeker) werken pas de volgende keer dat de pagina geladen wordt.
Maar de eerste keer gaat het niet goed (heb nog geen tijd gehad om het een en ander naar index te verplaatsen, dus ik heb het nog over de oude situatie zoals die in de laatste post met code stond beschreven)... of komt dat doordat ik ook session_register nog een keer gebruik?quote:Op donderdag 27 augustus 2009 18:38 schreef GlowMouse het volgende:
session_register niet meer gebruiken, is niet nodig.
En de eerste keer zou het al goed moeten gaan.
[..]
Bij sessies zeker niet; komt omdat je sessievars direct via de superglobal instelt.
Sessies niet, die kun je direct gebruiken.quote:Op donderdag 27 augustus 2009 18:23 schreef Swetsenegger het volgende:
[..]
Nee dat is het niet. Cookies en Sessies (de laatste weet ik niet zeker) werken pas de volgende keer dat de pagina geladen wordt.
Je kunt het ook in het centrale 'ik ben zwanger'-topic posten natuurlijk, met dezelfde logica als dat je het hier postte.quote:Op donderdag 27 augustus 2009 22:49 schreef raaavi het volgende:
[..]
Eujahmoet ik mn eigen topic aanmaken dan?
Hij stuurt toch output? Session_write_close() heb ik echt nog nooit gezien ergens.quote:Op donderdag 27 augustus 2009 22:49 schreef Xcalibur het volgende:
[..]
Sessies niet, die kun je direct gebruiken.
Als je wilt dat ze als sessie bewaard blijven heb je wel output naar je browser nodig, anders gaan ze verloren. Gelukkig is daar session_write_close() voor, die kun je dus aanroepen voor een redirect, zodat je sessie bewaard blifjt
css voor dummies: [CSS] voor dummies - deel 12quote:Op donderdag 27 augustus 2009 22:49 schreef raaavi het volgende:
[..]
Eujahmoet ik mn eigen topic aanmaken dan?
Ja, dat zou hier het probleem niet moeten zijnquote:Op donderdag 27 augustus 2009 22:52 schreef GlowMouse het volgende:
Hij stuurt toch output? Session_write_close() heb ik echt nog nooit gezien ergens.
Je hoeft het niet allemaal te onthouden, je kan het makkelijk opzoeken.quote:Op vrijdag 28 augustus 2009 18:38 schreef Chandler het volgende:
@SuperRembo;
Ik zal het proberen te onthouden (alles over de dates)
Wat is er zo fijn aan 64 of 128quote:Ennuh jaik zal idd eens andere waarden gebruiken, maar 64/128 werkt zo fijn
Ben ik niet helemaal met je eens. Ik heb bijvoorbeeld heel vaak 'name', 'desc' en/of 'content' kolommen in verschillende tabellen. Als je deze tabellen gaat joinen dan moet je al gaan aliassen om de correcte kolom te kunnen benaderen in je code, of je moet in je daadwerkelijke query de hele tabelnaam als identifier mee gaan geven. Dan heb ik toch liever een kleine maar duidelijke prefix.quote:Op vrijdag 28 augustus 2009 17:30 schreef SuperRembo het volgende:
Het prefixen van kolomnamen met een afkorting van de tabelnaam vind ik onzinnig. Alleen voor een PK id kolom is 't wel handig om er de naam van de tabel in te verwerken, maar gebruik die dan ook voor lalle kolommen die er naar verwijzen.
ik heb dan weer een hekel aan luie programmeurs die de hele bende gaan afkortenquote:Op vrijdag 28 augustus 2009 21:36 schreef Tuvai.net het volgende:
Als je deze tabellen gaat joinen dan moet je al gaan aliassen om de correcte kolom te kunnen benaderen in je code, of je moet in je daadwerkelijke query de hele tabelnaam als identifier mee gaan geven. Dan heb ik toch liever een kleine maar duidelijke prefix.![]()
Ik kort helemaal niks af, ik zet juist overal een prefix voor.quote:Op vrijdag 28 augustus 2009 22:38 schreef Xcalibur het volgende:
[..]
ik heb dan weer een hekel aan luie programmeurs die de hele bende gaan afkorten![]()
geef mij maar fijne aliassen en overzichtelijke namen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | session_start(); require ("php/XXX/secFunctions.php"); $_SESSION['sessionString'] = randomString(5); session_write_close(); if(!IsSet($_POST['stage'])) { <form action=" echo $_SERVER["PHP_SELF"]; ?id=gbadd" method="POST"> . <img width="150" height="100" border="0" src="image.php?random='.microtime(true).'" alt=”secImage”> <br /> <input size="50" maxlength="60" type="text" name="sec"><br /> echo "session:"; Print_r ($_SESSION); <input type="hidden" name="stage" value=1> </form> } else { ?> |
1 2 3 4 5 6 7 8 9 10 11 | header( "Content-Type: image/png"); header( "Expires: Mon, 20 Dec 1998 01:00:00 GMT" ); header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" ); header( "Cache-Control: no-cache, must-revalidate" ); header( "Pragma: no-cache" ); session_start(); require ("php/XXX/secFunctions.php"); createSecImage(150, 100, 100, $_SESSION['sessionString']); ?> |
nope, draait helaasch intern. Is er iets dat je nodig hebt om de grote hamvraag die mij al dagen bezig houdt te kunnen beantwoorden, dan post ik dat echter graag.quote:
Heel goedquote:Op zaterdag 29 augustus 2009 01:40 schreef uppie83 het volgende:
Begrijp ik het goed dat je niet gelooft dat het niet werkt? :p
Beetje rare reactie. Ik zit niet voor niets al dagen te nagelbijten op dit probleem. Of denk je dat ik hier mensen voor jan met de korte achternaam laat zweten op een probleem dat eigenlijk al is opgelost?quote:
Ok verkeer begrepenquote:Op zaterdag 29 augustus 2009 01:48 schreef GlowMouse het volgende:
Als ik vergelijkbare code al vaak probleemloos heb toegepast, is het toch niet zo gek dat ik eerst wat wil zien voor ik het geloof?
De beste oplossing is om jezelf een tweedeling aan te leren: je voegt een regel /******************/ toe met daarboven geen html, en daaronder geen dataverwerking meer (zoals queries).quote:Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
De regel met de doctype-declaratie is output. Als je die gehad hebt, kun je geen headers meer aanpassen en geeft de functie header() zo'n foutmelding.quote:Op zaterdag 29 augustus 2009 13:02 schreef Lamzak_ het volgende:
Ik ben een echte newbie in php, maar kan iemand mij uitleggen waarom ik deze foutmelding krijg?:
Warning: Cannot modify header information - headers already sent by (output started at /index.php:2) in /index.php on line 35
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1 /DTD/xhtml1-transitional.dtd">
2 <?php
3 include("config.php");
4 $querytekst = "SELECT * FROM teksten";
.......
35 header('Location: ' . $_SERVER['REQUEST_URI']);
dus als ik die onder dat eerste stuk mysql->php zet, dan hoort het te functioneren?quote:Op zaterdag 29 augustus 2009 13:07 schreef Light het volgende:
[..]
De regel met de doctype-declaratie is output. Als je die gehad hebt, kun je geen headers meer aanpassen en geeft de functie header() zo'n foutmelding.
Het moet in ieder geval na alle header()-regels, dus sowieso na regel 35.quote:Op zaterdag 29 augustus 2009 13:10 schreef Lamzak_ het volgende:
[..]
dus als ik die onder dat eerste stuk mysql->php zet, dan hoort het te functioneren?
Die optie maakt een HTML element aan met de CSS eigenschap page-break-after. Dat wordt op z'n beurt weer gebruikt wanneer je bijvoorbeeld een webpagina gaat afdrukken.quote:Op zaterdag 29 augustus 2009 14:04 schreef Pizzahut het volgende:
Voor mijn CMS gebruik ik voor tekst fckeditor, werk er al een tijd mee een vind het heerlijk werken.
Alleen is er een mogelijkheid om een page-break in te voeren, nu neem ik aan dat dit een optie is om een pagina te halveren, alleen hoe werkt dit? Ik voeg een page-break in maar in de output zie ik vrij weinig van die page-break.
ah zo, thx!quote:Op zaterdag 29 augustus 2009 14:09 schreef Tuvai.net het volgende:
[..]
Die optie maakt een HTML element aan met de CSS eigenschap page-break-after. Dat wordt op z'n beurt weer gebruikt wanneer je bijvoorbeeld een webpagina gaat afdrukken.
Ej, toppertje, bedanktquote:Op zaterdag 29 augustus 2009 13:23 schreef Light het volgende:
[..]
Het moet in ieder geval na alle header()-regels, dus sowieso na regel 35.
1 2 3 4 5 | [0] => Fok is een [1] => bazige site heur, [2] => luitjes! ) |
Arrgh, reguliere expressies, noooes...quote:Op maandag 31 augustus 2009 20:42 schreef GlowMouse het volgende:
Probeer eens http://nl2.php.net/manual/en/function.preg-split.php
1 2 | print_r($zin); |
1 2 | print_r($zin); |
1 2 3 | explode(" ", $string); ?> |
1 2 3 4 5 6 7 8 | ( [0] => [1] => leenttje leerde lotje [2] => [3] => lopen langs de [4] => lange lindenlaan. ) |
Als dit jouw attentionspan is, stel ik voor dat je iets anders gaat doenquote:Op maandag 31 augustus 2009 21:24 schreef GSMboy het volgende:
Ik zit al 5 minuten te kloten ermee? Dus?
Ja, TV staat naast me. En nee SBS6 staat er niet op, campingzender.quote:Op maandag 31 augustus 2009 21:27 schreef Xcalibur het volgende:
[..]
Als dit jouw attentionspan is, stel ik voor dat je iets anders gaat doen
SBS6 kijken ofzo...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <body> <h1>Toevoegen Wedstrijdverloop </h1> <form action="3.1.3_controleWedstrijdVerloop.php" method="post"> <p>Team1: <select multiple="multiple" name="team1[]" size="20"> <?php $conn = mysql_connect("localhost", "root ","") or die(mysql_error()); $db = mysql_select_db("zaalvoetbal", $conn) or die(mysql_error()); $sql = 'SELECT spelers_achternaam, spelers_voornaam FROM `spelers`'; $result = mysql_query($sql) or die (mysql_error()); if(mysql_num_rows($result)) { while ($row = mysql_fetch_assoc($result)) { echo"<option>$row[spelers_voornaam] $row[spelers_achternaam]</option>"; } } ?> </select> <input type="submit" name="teamCheck" value="ControleTeam"</> </form> </body> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <body> <?php if($_POST['ControleTeam'] != "") { $teamLeden = $_POST['ControleTeam']; echo (count($teamLeden)); if(is_null($teamLeden)) { echo("GeenTeamleden"); } else { echo (count($teamLeden)); for($i=0; $i < count($teamLeden); $i++) { echo($teamLeden[$i] . " "); } echo("</p>"); } } ?> </body> </html> |
Ga dat eerst eens in praktijk brengen want je code is rotzooi.quote:Op zaterdag 29 augustus 2009 13:06 schreef GlowMouse het volgende:
[..]
De beste oplossing is om jezelf een tweedeling aan te leren: je voegt een regel /******************/ toe met daarboven geen html, en daaronder geen dataverwerking meer (zoals queries).
je bedoelt dat ik meer functies moet aanmaken?quote:Op maandag 31 augustus 2009 22:32 schreef GlowMouse het volgende:
[..]
Ga dat eerst eens in praktijk brengen want je code is rotzooi.
En ik snap je hele probleem niet.
Dat zou de volgende stap worden. En een database-class.quote:Op maandag 31 augustus 2009 22:48 schreef jakees het volgende:
[..]
je bedoelt dat ik meer functies moet aanmaken?
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 | $conn = mysql_connect("localhost", "root ","") or die(mysql_error()); $db = mysql_select_db("zaalvoetbal", $conn) or die(mysql_error()); $sql = 'SELECT spelers_achternaam, spelers_voornaam FROM `spelers`'; $result = mysql_query($sql) or die (mysql_error()); $spelers = array(); while ($row = mysql_fetch_assoc($result)) { $spelers[] = $row; } /************************************/ <html> <body> <h1>Toevoegen Wedstrijdverloop </h1> <form action="3.1.3_controleWedstrijdVerloop.php" method="post"> <p>Team1: <select multiple="multiple" name="team1[]" size="20"> foreach($spelers as $row) { echo"<option>$row[spelers_voornaam] $row[spelers_achternaam]</option>"; } </select> <input type="submit" name="teamCheck" value="ControleTeam"</> </form> </body> ?> |
ok thx.quote:Op maandag 31 augustus 2009 22:56 schreef GlowMouse het volgende:
[..]
Dat zou de volgende stap worden. En een database-class.
[ code verwijderd ]
de php sluit- en opentags staan niet goed in mijn post maar dit is het idee.
bedankt voor je reactie maar ik snap niet helemaal wat je zegt. Ik snap dat ik de variabele verkeerd gebruik en heb nu:quote:Op maandag 31 augustus 2009 23:03 schreef Trollface. het volgende:
Het moet $_POST['teamcheck'] != "" zijn ipv dat andere.
Also, vlak daarna $_POST['team1'] ipv $_POST['controleTeam'].
1 |
1 2 3 4 5 6 | if($_POST['teamcheck'] != "" ) { $teamLeden = $_POST['teamcheck']; echo (count($teamLeden)); .... |
Je gebruikt die functie nu wel, dus ervan afstappen zou een logische stap zijn.quote:Op dinsdag 1 september 2009 15:55 schreef Flaccid het volgende:
Ik zie dat deze functie niet in php 6 zit. Kan het op een andere manier?
Oh ik dacht dat ik m juist moet gebruiken. Ff googlen hoe ie uit gaat.quote:Op dinsdag 1 september 2009 15:56 schreef GlowMouse het volgende:
[..]
Je gebruikt die functie nu wel, dus ervan afstappen zou een logische stap zijn.
Die functie gooit juist quotes in je input (GET/POST/COOKIE) en dat wil je nietquote:Op dinsdag 1 september 2009 16:02 schreef Flaccid het volgende:
[..]
Oh ik dacht dat ik m juist moet gebruiken. Ff googlen hoe ie uit gaat.
Inderdaad, nu werkt t weer, via .htaccess uitgezet. Thanksquote:Op dinsdag 1 september 2009 16:04 schreef GlowMouse het volgende:
[..]
Die functie gooit juist quotes in je input (GET/POST/COOKIE) en dat wil je niet
SQL Server. Verkeerde topic.quote:Op woensdag 2 september 2009 08:00 schreef ReWout het volgende:
Ik heb even een vraagje over sql...
Ik zit met 't volgende probleem. Namelijk ik heb een tabel, laten we deze even y noemen. Deze heeft 2 velden.
id en naam. Nu kan een naam gekoppeld zijn aan 1 of meerdere andere namen in dezelfde tabel...
Dus gewoon een koppeltabel...
id_1 id_2
die beiden eigenlijk verwijzen naar de de eerste rij van de vorige tabel. Nu is mijn vraag.
Kan ik hier oor foreign key constraints op gebruiken? Ik probeer dit namelijk bij sql server maar lukt niet echt
Yup id in y is natuurlijk primary key. Mag ook geen null hebben en types zijn 't zelfde.quote:Op woensdag 2 september 2009 08:37 schreef Tuvai.net het volgende:
[..]
SQL Server. Verkeerde topic.
-> Het grote (?) .NET en MSSQL topic
Maar goed, wat gebruik je als ids? ints / bigints of uniqueidentifiers? De kolomtypes waar je de foreign key constraints op legt (dus de id kolom van je 'y' tabel en het betreffende id veld in je koppeltabel) dienen wel hetzelfde te zijn. Is het id veld van je 'y'-tabel wel primary key? Welke error krijg je overigens?
quote:Op woensdag 2 september 2009 08:37 schreef Tuvai.net het volgende:
Welke error krijg je overigens?
quote]quote:Op woensdag 2 september 2009 11:56 schreef ReWout het volgende:
nvm. heb 't al was een fout in 't schema.
1 2 3 4 5 | (id,bestelId,eigId,aantal,prijs) VALUES(0,'".$bestelId."','".$k."','".$v."',". SELECT prijs FROM eigenschappen WHERE id=$k .")"; |
Ja.quote:Op woensdag 2 september 2009 22:51 schreef Swetsenegger het volgende:
Kan je in een insert query een select subquery inbouwen?
voorbeeld
[ code verwijderd ]
Maar dan werkend
1 2 3 | (id, bestelId, eigId, aantal, prijs) VALUES(0, '".$bestelId."', '".$k."', '".$v."', (SELECT prijs FROM eigenschappen WHERE id=".$k.")) |
Handig spulquote:Op donderdag 3 september 2009 10:19 schreef Chandler het volgende:
vanaf welke versie (mysql) werken subqueries eingelijk?
Er zijn genoeg situaties waarin een subquery sneller is dan dezelfde data ophalen zonder subquery.quote:Op donderdag 3 september 2009 11:28 schreef Mordreth het volgende:
[..]
Handig spul. Vertraagdt de boel wel flink.
Dat dus.quote:Op donderdag 3 september 2009 12:43 schreef GlowMouse het volgende:
[..]
Er zijn genoeg situaties waarin een subquery sneller is dan dezelfde data ophalen zonder subquery.
Ook bij SELECTs kan een subquery sneller zijn.quote:Op donderdag 3 september 2009 12:45 schreef Tuvai.net het volgende:
[..]
Dat dus.
Om actuele data uit een andere tabel/record op te halen is een subquery ideaal bij een insert/update. Sowieso sneller dan de data zonder subquery ergens ophalen (en nog erger, dat IN je applicatie doen, buiten je database) en dan weer verwerken.
quote:Op donderdag 3 september 2009 18:57 schreef Darkomen het volgende:
Oke, ook ik zit met een mysql datum probleempje.
Ik probeer te checken of er al een afspraak is op een bepaalde tijdstip op een dag.
Na diverse opties geprobeerd te hebben dacht ik een werkende te hebben, maar na 2 weken niks gedaan te hebben (cursus) werkt de check ineens niet meer?
$sql = "SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE (begin_stamp BETWEEN $beginDag AND $eindDag) AND ( (begin_stamp=<$eindStamp) (eind_stamp>=$beginStamp ) ) ORDER BY begin_stamp";
Ik begin door alleen de dag te selecteren, '(begin_stamp BETWEEN $beginDag AND $eindDag) '
en daarna te controleren of er een afspraak is.
Die levert bijvoorbeeld zo'n query op.
Afspraak Begin Dag: 03-09-2009, 00:00:00 1251928800
Afspraak Eind Dag: 04-09-2009, 00:00:00 1252015200
Nieuwe Afspraak Begin Stamp: 03-09-2009, 09:55:00 1251964500
Nieuwe Afspraak Eind Stamp: 03-09-2009, 10:10:00 1251965400
[SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE aid<>18 AND (begin_stamp BETWEEN 1251928800 AND 1252015200) AND ( (begin_stamp BETWEEN 1251964500 AND 1251965400) OR (eind_stamp BETWEEN 1251964500 AND 1251965400) ) ORDER BY begin_stamp]
Deze check komt ook bij een update, mocht de tijd zijn aangepast.
Maar dan alleen worde aid toegevoegd.
1 |
En:quote:Op donderdag 3 september 2009 19:16 schreef Tuvai.net het volgende:
[..]
[ code verwijderd ]
Hoort er geen AND / OR te staan bij die sterretjes?
Niet per definitie met PHP. Je zorgt gewoon dat je één tabel categorieën hebt met daarin een veld ParentID. ParentID verwijst weer naar het ID van een ander record in diezelfde tabel.quote:Op donderdag 3 september 2009 21:39 schreef wobbel het volgende:
Op dit moment heb ik een zelfgeschreven webshop met een tabel Categorieen en tabel Subcategorieen...
Graag zou ik het willen maken dat je oneindig veel categorieen kan maken (in de praktijk 3 of 4 dus)
Hoe ga je dat oplossen met PHP? ik kan er geen tutorials over lezen...
En dat is juist het moeilijke....hoe kom ik erachter welke categorie waarin hoort en hoe kan ik dat makkelijk weergeven...Want ik zou wel ontiegelijk veel query's moeten uithalen om dat dan weer te geven...quote:Op donderdag 3 september 2009 21:42 schreef Tuvai.net het volgende:
[..]
Niet per definitie met PHP. Je zorgt gewoon dat je één tabel categorieën hebt met daarin een veld ParentID. ParentID verwijst weer naar het ID van een ander record in diezelfde tabel.
Afhankelijk van (wat je presenteert in) je applicatie, zul je bijvoorbeeld wel een 'recursieve functie' moeten schrijven als je een pagina hebt waar je de hele 'boomstructuur' van categorieën wilt weergeven.
Dat doe je dus met die ParentID kolom. Door rij ID 2 een ParentID van 1 te geven, wil dus zeggen dat rij ID 2 'onder' rij ID 1 ligt. Maak je nóg een record, maar dan met ParentID 2, dan leg je deze record 'onder' rij ID 2.quote:Op donderdag 3 september 2009 21:53 schreef wobbel het volgende:
En dat is juist het moeilijke....hoe kom ik erachter welke categorie waarin hoort
Het klinkt moeilijker dan het lijkt. In feite neem je gewoon de volgende stappen:quote:Op donderdag 3 september 2009 21:53 schreef wobbel het volgende:
En dat is juist het moeilijke....hoe kom ik erachter welke categorie waarin hoort en hoe kan ik dat makkelijk weergeven...Want ik zou wel ontiegelijk veel query's moeten uithalen om dat dan weer te geven...
Zal iets bij het copy/pasten fout gegaan zijn, er staat een or.quote:Op donderdag 3 september 2009 19:16 schreef Tuvai.net het volgende:
[..]
[ code verwijderd ]
Hoort er geen AND / OR te staan bij die sterretjes?
Dat werkt, maar is niet efficient. Een goede regel is dat je geen queries in loopjes uitvoert. Er kan altijd een reden zijn om daarvan af te wijken, maar voor iets als een menu (dat op iedere pagina terugkomt) lijkt me dat geen goed uitgangspunt.quote:Op donderdag 3 september 2009 22:10 schreef Tuvai.net het volgende:
[..]
Dat doe je dus met die ParentID kolom. Door rij ID 2 een ParentID van 1 te geven, wil dus zeggen dat rij ID 2 'onder' rij ID 1 ligt. Maak je nóg een record, maar dan met ParentID 2, dan leg je deze record 'onder' rij ID 2.
[..]
Het klinkt moeilijker dan het lijkt. In feite neem je gewoon de volgende stappen:
1) Maak een functie, die a.h.v. een ID, alle 'child' records ophaalt van dat ID. Oftewel, alle records ophalen waar de ParentID kolom gelijk staat aan de ID parameter die je mee stuurt naar je functie.
2) Als je door die records heen gaat loopen ( while($bla = mysql_fetch_array($QueryVanStapEen) ), roep je per iteratie (oftewel voor elke rij) wéér je functie aan, maar dit keer met het ID van de record die je aan het loopen bent, als parameter voor de functie.
Op dat moment is je functie dus 'recursief' (oftewel, blijft zichzelf aanroepen totdat je geen loopjes meer hebt).
Er zijn meerdere methodes om dit te doen. Maar dit vind ik persoonlijk in ieder geval de makkelijkste. Je kunt altijd naderhand nog zelf naar een 'moeilijkere' op zoek gaan die beter is voor de performance van je applicatie (want ja, deze methode haalt veel queries in één keer op).
Zie daarom dat laatste stukje tekst.quote:Op donderdag 3 september 2009 23:44 schreef Light het volgende:
[..]
Dat werkt, maar is niet efficient. Een goede regel is dat je geen queries in loopjes uitvoert. Er kan altijd een reden zijn om daarvan af te wijken, maar voor iets als een menu (dat op iedere pagina terugkomt) lijkt me dat geen goed uitgangspunt.
Dan zou ik het toch anders doen. Gewoon in 1 query alle menu-items ophalen en daar in 1 lus een tweedimensionale array van maken.quote:Op donderdag 3 september 2009 23:46 schreef Tuvai.net het volgende:
[..]
Zie daarom dat laatste stukje tekst. :P Ik weet dat er duizend en één efficientere (doch vaak meer complexe) methodes zijn, maar lijkt me niet zo handig om daar een beginneling meteen mee te confronteren. Nogmaals, bovenstaand voorbeeld is kinderlijk eenvoudig en voor een leek heel snel onder de knie te krijgen.
1 2 3 4 5 6 | $result = mysql_query('SELECT * FROM menu'); while($row = mysql_fetch_assoc($result)) { $menu[$row['parentId']] = $row; } ?> |
Zo do ik het dus ook vaak. Nog vaker heb ik dat je niet default al de hele boom wilt laten zien en een hele lap records / resultset naar je applicatie wilt trekken, maar alleen de hoofd nodes en bij het openklappen pas child nodes wilt zien. In zo'n geval wil ik ook nog wel eens AJAX gebruiken om het lijsje met onderliggende nodes op te halen.quote:Op vrijdag 4 september 2009 00:19 schreef Light het volgende:
[..]
Dan zou ik het toch anders doen. Gewoon in 1 query alle menu-items ophalen en daar in 1 lus een tweedimensionale array van maken.
[ code verwijderd ]
Dan heb je alleen nog een recursieve oplossing nodig voor het weergeven van het menu.
Je zult die informatie toch bij moeten houden. Je kunt het laatste bezoek bijhouden zodat je alleen maar nieuwe records op te vragen sinds het laatste bezoek.quote:Op zaterdag 5 september 2009 08:29 schreef Sjoe538 het volgende:
Het loggen van een persoon in de database met een datum/tijd/logged/gebruiker bij elke page refresh uitlezen of er een nieuwe record is bijgekomen én dit niet de user is die momenteel op de site zit én er (vandaag, dit uur, afgelopen 10 minuten) nog geen melding is gegeven dat deze persoon online is gekomen lijkt me omslachtig.
Heeft iemand hier een goed idee voor?
Ik zou beginnen met je sessies in de database op te slaan, dan ben je al een heel eind met bezoekers identificerenquote:Op zaterdag 5 september 2009 08:29 schreef Sjoe538 het volgende:
Ik heb een vraagje omtrent gebruikers die je site bezoeken (let op geregistreerd).
Wat ik aan het maken ben is een soort van hyves popup zoals je ziet wanneer iemand online komt. (als iemand een verwijzing naar zo'n dergelijk script heeft graag de URL)
Mijn probleem zit in het herkennen dat de gebruiker die de site bezoekt niet de gebruiker is die momenteel op de site zit. Zo heb ik niks aan de standaard PHP variablen als een IP uitlezen want ik kan deze niet vergelijken omdat je altijd de IP terug krijgt van de persoon die nu op de site zit.
Het loggen van een persoon in de database met een datum/tijd/logged/gebruiker bij elke page refresh uitlezen of er een nieuwe record is bijgekomen én dit niet de user is die momenteel op de site zit én er (vandaag, dit uur, afgelopen 10 minuten) nog geen melding is gegeven dat deze persoon online is gekomen lijkt me omslachtig.
Heeft iemand hier een goed idee voor?
Idd zo ver was ik al, alleen hoopte ik dat er een makkelijkere manier was, aangezien PHP server side werkt, ik hoopte dat het mogelijk moest zijn om alle sessies uit te lezen die momenteel open staan.quote:Op zaterdag 5 september 2009 11:53 schreef Xcalibur het volgende:
[..]
Ik zou beginnen met je sessies in de database op te slaan, dan ben je al een heel eind met bezoekers identificeren
Hadden jullie nog een idee, volgens mij is het niet zo lang geleden langsgekomen in de topics, alleen heb ik het toen niet gevolgdquote:Op donderdag 3 september 2009 18:57 schreef Darkomen het volgende:
Oke, ook ik zit met een mysql datum probleempje.
Ik probeer te checken of er al een afspraak is op een bepaalde tijdstip op een dag.
Na diverse opties geprobeerd te hebben dacht ik een werkende te hebben, maar na 2 weken niks gedaan te hebben (cursus) werkt de check ineens niet meer?
$sql = "SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE $aid (begin_stamp BETWEEN $beginDag AND $eindDag) AND ( (begin_stamp BETWEEN $beginStamp AND $eindStamp) OR (eind_stamp BETWEEN $beginStamp AND $eindStamp) ) ORDER BY begin_stamp";
Ik begin door alleen de dag te selecteren, '(begin_stamp BETWEEN $beginDag AND $eindDag) '
en daarna te controleren of er een afspraak is.
Die levert bijvoorbeeld zo'n query op.
Afspraak Begin Dag: 03-09-2009, 00:00:00 1251928800
Afspraak Eind Dag: 04-09-2009, 00:00:00 1252015200
Nieuwe Afspraak Begin Stamp: 03-09-2009, 09:55:00 1251964500
Nieuwe Afspraak Eind Stamp: 03-09-2009, 10:10:00 1251965400
[SELECT aid, begin_stamp, eind_stamp FROM agenda WHERE aid<>18 AND (begin_stamp BETWEEN 1251928800 AND 1252015200) AND ( (begin_stamp BETWEEN 1251964500 AND 1251965400) OR (eind_stamp BETWEEN 1251964500 AND 1251965400) ) ORDER BY begin_stamp]
Deze check komt ook bij een update, mocht de tijd zijn aangepast.
Maar dan alleen worde aid toegevoegd.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | <status result="ok"> <ewallet> <id>45177</id> <status>completed</status> <created>20090906135439</created> <modified/> </ewallet> <customer> <currency>EUR</currency> <amount>1595</amount> <exchange_rate>1</exchange_rate> <firstname>Naam</firstname> <lastname>Achternaam</lastname> <city>Woonplaats</city> <state/> <country>NL</country> <countryname>Netherlands</countryname> </customer> <transaction> <id>6</id> <currency>EUR</currency> <amount>1595</amount> <description>Webshop order</description> <var1/> <var2/> <var3/> <items/> </transaction> </status> |
1 |
1 2 | preg_match('/\<id\>(.*)\<\/id\>/U', $transaction[1], $id); |
1 2 3 | preg_match('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/U', $reply, $id); ?> |
Doe je die HTML eerst replacen? Gooi eens een htmlentities / htmlspecialchars over je HTML data die je in je XML node stopt heen.quote:Op zondag 6 september 2009 22:31 schreef Swetsenegger het volgende:
xml functies ga ik even naar kijken.
Iemand trouwens ervaring met multisafepay? In de documentatie staat dat je in een bepaald element van de transaction request (XML) een uitgebreide beschrijving mee kan geven van de bestelling. Er staat letterlijk "Uitgebreide beschrijving (HTML)". Maar zodra ik HTML embed in het xml element krijg ik de melding terug dat het een fout XML bericht is.
Nou staan geen rare dingen in, gewoon een tabel met wat data.quote:Op zondag 6 september 2009 23:11 schreef Tuvai.net het volgende:
[..]
Doe je die HTML eerst replacen? Gooi eens een htmlentities / htmlspecialchars over je HTML data die je in je XML node stopt heen. :)
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 | <redirecttransaction ua="custom-1.2"> <merchant> <account>1000000</account> <site_id>1000</site_id> <site_secure_code>100000</site_secure_code> <notification_url>http://www.domein.nl:80//notificatie.php?type=initial</notification_url> </merchant> <customer> <locale>nl_NL</locale> <ipaddress>255.255.255.255</ipaddress> <forwardedip></forwardedip> <firstname>Naam</firstname> <lastname>Naam</lastname> <address1>Adres</address1> <address2></address2> <housenumber>10</housenumber> <zipcode>1000 AA</zipcode> <city>Stad</city> <state></state> <country>NL</country> <phone></phone> <email>mail@domain.com</email> </customer> <transaction> <id>36</id> <currency>EUR</currency> <amount>1999</amount> <description>Bestelling 36 bij Webshop. U kunt de status van uw bestelling bekijken als u inlogged op onze website.</description> <var1></var1> <var2></var2> <var3></var3> <items> <table style="border-collapse:collapse;width:100%;text-align:center"> <tr style="color:black;font-size:9pt;"> <td style="border-style:solid;border-width:1px 0 1px 1px;border-color:rgb(160,166,176)">Aantal</td> <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Artikelcode</td> <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Artikel</td> <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Kleur</td> <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Maat</td> <td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Prijs</td> </tr> <tr style="background-color:white;font-size:11pt;"> <td style="width:45px;">1</td> <td style="width:75px;">001</td> <td style="width:250px;">Mexx - Zomershirt</td> <td style="margin:5px;width:10px;background-color:#FF0011"></td> <td style="width:250px;">Small</td> <td>19,99</td> </tr> </table> <br /> <table style="width:100%;border:solid 1px rgb(160,166,176);text-align:left;"> <tr> <td style="color:black;font-size:11pt;">Prijs:</td> <td style="width:600px;text-align:right;font-size:14pt;color:black;">€ 19,99</td> </tr> </table> </items> <manual>false</manual> <gateway></gateway> <daysactive>2</daysactive> </transaction> <signature>d786a106edf874df4ed6e8cc612e9650</signature> </redirecttransaction> |
Hoeft ook niet. Ligt er maar net aan hoe Multisafepay met de data in die node om gaat. Ik kan me herinneren dat ik wel eens RSS feeds heb moeten maken, en de HTML die in de <description> node stond moest parsen als reeds vervangen HTML.quote:Op zondag 6 september 2009 23:18 schreef Swetsenegger het volgende:
[..]
Nou staan geen rare dingen in, gewoon een tabel met wat data.
[ code verwijderd ]
Ok.... wat doe ik daaraan? -edit- ow wacht html entities en specialchars natuurlijk. Dat is het proberen waardquote:Op zondag 6 september 2009 23:21 schreef Tuvai.net het volgende:
[..]
Hoeft ook niet. Ligt er maar net aan hoe Multisafepay met de data in die node om gaat. Ik kan me herinneren dat ik wel eens RSS feeds heb moeten maken, en de HTML die in de <description> node stond moest parsen als reeds vervangen HTML.Waarschijnlijk wordt je <table> tag nu bijvoorbeeld als een daadwerkelijke node van het XML bestand geïnterpreteerd.
quote:Op maandag 7 september 2009 08:57 schreef Swetsenegger het volgende:
Ok.... wat doe ik daaraan? -edit- ow wacht html entities en specialchars natuurlijk. Dat is het proberen waard
quote:Op zondag 6 september 2009 23:11 schreef Tuvai.net het volgende:
Doe je die HTML eerst replacen? Gooi eens een htmlentities / htmlspecialchars over je HTML data die je in je XML node stopt heen.
Niemand?quote:Op vrijdag 4 september 2009 16:37 schreef Chandler het volgende:
Ik heb weer een breinbreaker
Stel je voor ik heb een tabel voor het opslaan van hits, ips (het aantal unieke users), max online en de datum
nu doe ik voor deze query een ON DUPLICATE KEY UPDATE met de velden hits en ips maar wil ik ook graag gebruiken om te checken of de waarde die ik wil updaten groter of kleiner is, als deze groter is dan door te voeren en indien deze kleiner is de huidige waarde te laten staan! (voor veld max = max aantal online tegelijk die dag)
Weet iemand hoe ik dit kan realiseren?
ik schreef en begreep het zelfdus hopelijk jullie ook
1 2 3 | $item = Page::item(2); ?> |
1 2 3 | $item = Page->item(2); ?> |
Omdat goed documenteren niet in het eisenpakket was opgenomen.quote:Op maandag 7 september 2009 21:37 schreef Swetsenegger het volgende:
Waarom zijn al die betaalsystemen kut gedocumenteerd?
Ik snap er geen kut meer van. Inhoud van $reply:quote:Op zondag 6 september 2009 21:59 schreef Light het volgende:
Kun je niets met de xml-functies in php(5)?
En anders is het ook met 1 preg_match() op te lossen:
[ code verwijderd ]
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 | <status result="ok"> <ewallet> <id>45491</id> <status>completed</status> <created>20090908123603</created> <modified/> </ewallet> <customer> <currency>EUR</currency> <amount>1595</amount> <exchange_rate>1</exchange_rate> <firstname>Naam</firstname> <lastname>Naam</lastname> <city>Plaats</city> <state/> <country>NL</country> <countryname>Netherlands</countryname> </customer> <transaction> <id>90</id> <currency>EUR</currency> <amount>1595</amount> <description>Bestelling.</description> <var1/> <var2/> <var3/> <items><br /><table style="border-collapse:collapse;width:100%;text-align:center"><tr style="color:black;font-size:9pt;"><td style="border-style:solid;border-width:1px 0 1px 1px;border-color:rgb(160,166,176)">Aantal</td><td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Artikelcode</td><td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Artikel</td><td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Kleur</td><td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Maat</td><td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)">Prijs</td></tr><tr style="background-color:white;font-size:11pt;"> <td style="width:45px;">1</td> <td style="width:75px;">t-001</td> <td style="width:250px;">Mexx - Top</td> <td style="margin:5px;width:10px;background-color:#000000"></td> <td style="width:250px;">large</td> <td>EUR. 15,95</td> </tr></table><br /><table style="width:100%;border:solid 1px rgb(160,166,176);text-align:left;"><tr><td style="color:black;font-size:11pt;">Prijs:</td><td style="width:600px;text-align:right;font-size:14pt;color:black;">EUR. 15,95</td></tr></table> </items> </transaction> </status> |
1 2 3 4 5 | $id = array(); preg_match('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/U', $reply, $id); print_r($id); ?> |
1 |
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 | <status result="ok"> <ewallet> <id>45438</id> <status>completed</status> <created>20090908101011</created> <modified/> </ewallet> <customer> <currency>EUR</currency> <amount>1999</amount> <exchange_rate>1</exchange_rate> <firstname>Naam</firstname> <lastname>Naam</lastname> <city>plaats</city> <state/> <country>NL</country> <countryname>Netherlands</countryname> </customer> <transaction> <id>82</id> <currency>EUR</currency> <amount>1999</amount> <description>Bestelling .</description> <var1/> <var2/> <var3/> <items/> </transaction> </status> |
1 2 3 4 5 | ( [0] => <transaction><id>82</id><currency>EUR</currency><amount>1999</amount><description>Bestelling 82 bij Fashion in the City. U kunt de status van uw bestelling bekijken als u inlogged op onze website.</description><var1/><var2/><var3/><items/></transaction> [1] => 82 ) |
1 2 3 4 5 6 7 8 9 10 11 12 | function toggle(obj) { var el = document.getElementById(obj); el.checked= (el.checked != true ? true : false ); } </script> </head> <body> <table> <tr onclick="toggle('checkbox');"><td>------------------langerij--------------</td><td><input type="checkbox" id="checkbox" /></td></tr> </table> </body> |
hoe wil je dan toggelen?quote:Op dinsdag 8 september 2009 15:31 schreef ralfie het volgende:
[ code verwijderd ]
Waarom niet gewoon
[ code verwijderd ]
?
Iemand een idee waarom de pragmatch over zijn nek gaat in de eerste situatie?quote:Op dinsdag 8 september 2009 12:19 schreef Swetsenegger het volgende:
[..]
Ik snap er geen kut meer van. Inhoud van $reply:
[ code verwijderd ]
[ code verwijderd ]
[ code verwijderd ]
Is de inhoud van $reply DIT (dus zonder de html in <items>):
[ code verwijderd ]
[ code verwijderd ]
Ja later besefte ik me dat dat met een true/false setting natuurlijk kan.quote:Op woensdag 9 september 2009 10:21 schreef ralfie het volgende:
[..]
beide stukjes code doen precies hetzelfde
quote:Op dinsdag 8 september 2009 16:59 schreef Swetsenegger het volgende:
[..]
Iemand een idee waarom de pragmatch over zijn nek gaat in de eerste situatie?
1 2 3 | preg_match('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/Us', $reply, $match); print_r($match[1]); |
1 |
1 2 3 4 5 | $match preg_match('/(\d+)-\d/', $string, $match); print_r($match); ?> |
Tjah kan ook moet alleen dan even preg_match gaan programmeren aangezien ik niet php gebruik maar een andere taal. Iig bedankt. Heb het nu iig tijdelijk opgelost met 2x ereg_replacequote:Op vrijdag 11 september 2009 11:10 schreef slacker_nl het volgende:
Doe gewoon 't gewoon zo:
[ code verwijderd ]
Van die reseveringen.quote:Op zaterdag 5 september 2009 11:13 schreef Sjoe538 het volgende:
[..]
Wat voor historie zou je bij willen houden?
De functiequote:Fatal error: Uncaught exception 'DOMException' with message 'Wrong Document Error'
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 | public function addElement($p_aElement) { if($p_aElement['appendTo'] != FALSE) { $aAppendTo = $this->_XML->getElementsByTagName($p_aElement['appendTo']); } // Remove the first element ([appendTo])of the array. array_shift($p_aElement); $objTestElement = $this->createElement('tests'); foreach($p_aElement as $sKey => $sValue) { $objElement = $this->createElement($sKey); $objElement->appendChild($this->createTextNode($sValue)); $objTestElement->appendChild($objElement); } if(isset($aAppendTo)) { foreach($aAppendTo as $objAppendTo) { $objAppendTo->appendChild($objTestElement); } } else { // mag aan de root gezet worden } $this->_XML->saveXML(); return TRUE; } ?> |
hartelijk bedankt =)quote:Op dinsdag 15 september 2009 14:59 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
waar komt de fout naar voren? Ik heb 0.0 ervaring met xml en php, maar ik zou zeggen dat je xml file niet valide is ofzo.quote:
Ik heb al in de manual gekeken, maar kan niet echt een antwoord vinden. Het resultaat van de eerste query is een project met de titel: "Een typologie van PPS in het LNV domein". Het is dus wel een los woord, maar de fulltext search vindt 'm nietquote:Op woensdag 16 september 2009 10:50 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html
Maar ik gok zomaar dat pps geen los woord is.
ah, dat verklaart een hoopquote:Op woensdag 16 september 2009 10:57 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/(...)atural-language.html
"Some words are ignored in full-text searches"
Omdat 't een regex vraag wasquote:Op vrijdag 11 september 2009 12:29 schreef slacker_nl het volgende:
Wat doe je dan in het php topic??
Zo maar opgelost:quote:Op woensdag 16 september 2009 10:59 schreef daReaper het volgende:
[..]
ah, dat verklaart een hoopweet je misschien hoe ik dat aan kan passen, als ik niet bij de config van MySQL kan?
[edit]Ik zie na wat gegoogle dat dit dus niet kan... Behoorlijk waardeloos dus
Dat vermoedde ik inderdaad, maar het is niet een heel erg grote database, dus ik denk niet dat dit problemen op gaat leveren.quote:Op woensdag 16 september 2009 12:40 schreef GlowMouse het volgende:
titel LIKE '% pps %' werkte niet? De performance penalty van dit soort constructies wil je niet weten
1 2 3 4 5 6 7 8 9 10 11 | $this->html = file_get_contents($this->url); $this->dom = new DomDocument(); @$this->dom->loadHTML($this->html); $this->xpath = new DomXpath($this->dom); /*Deze functie haalt de meta van een pagina op*/ $this->metaKeywords = $this->xpath->query('/html/head/meta'); return $this->metaKeywords->item(0)->nodeValue; ?> |
Tof dit werktequote:Op donderdag 17 september 2009 11:44 schreef GlowMouse het volgende:
een primary key of unique toevoegen op (gebruikerid,pakketid). Dat kan gewoon onder Structure, Details.
MyISAM kan niet zoeken naar substrings < 4 karakters. Simpel. Met de stopwoorden die er in zitten heeft het niks te maken, daar komt pps niet in voor.quote:Op woensdag 16 september 2009 10:49 schreef daReaper het volgende:
Ik kom er even niet uit met een full text search.
Ik heb een tabel met de volgende kolommen:
id
titel
omschrijving
status
datum
Als ik nu de query "SELECT id FROM projecten WHERE titel LIKE '%pps%' OR omschrijving LIKE '%pps%'; uitvoer, krijg ik netjes 1 resultaat terug.
Ik heb een fulltext index op de kolommen "titel" en "omschrijving" die de titel "titel" draagt.
Als ik echter de query "SELECT id FROM projecten WHERE MATCH (titel, omschrijving) AGAINST ('pps'); uitvoer, krijg ik géén resultaten terug (maar ook geen foutmelding).
Wat kan hier aan de hand zijn?
1 2 3 4 5 6 7 8 9 10 11 12 | ----------------------- 1 | 1 | 1251909627 2 | 2 | 1251909727 3 | 1 | 1251909827 4 | 2 | 1251909927 5 | 1 | 1251910027 6 | 2 | 1252773627 7 | 1 | 1252773627 8 | 2 | 1252773627 9 | 1 | 1253205628 10 | 2 | 1253205628 |
1 2 3 4 5 6 | from_unixtime(datestart,"%Y-%v") AS weekInYear, count(*) as numberOfRegistrations FROM Listitems GROUP BY weekInYear ORDER BY datestart |
1 2 3 4 | 2009-36 | 5 2009-37 | 3 2009-38 | 2 |
1 2 3 4 | 2009-36 | 3 | 2 | 5 2009-37 | 1 | 2 | 3 2009-38 | 1 | 1 | 2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | `id` int(11) NOT NULL auto_increment, `soort` int(11) NOT NULL, `dateStart` int(11) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; INSERT INTO `Listitems` VALUES ('1', '1', '1251909627'); INSERT INTO `Listitems` VALUES ('2', '2', '1251909727'); INSERT INTO `Listitems` VALUES ('3', '1', '1251909827'); INSERT INTO `Listitems` VALUES ('4', '2', '1251909927'); INSERT INTO `Listitems` VALUES ('5', '1', '1251910027'); INSERT INTO `Listitems` VALUES ('6', '2', '1252773627'); INSERT INTO `Listitems` VALUES ('7', '1', '1252773627'); INSERT INTO `Listitems` VALUES ('8', '2', '1252773627'); INSERT INTO `Listitems` VALUES ('9', '1', '1253205628'); INSERT INTO `Listitems` VALUES ('10', '2', '1253205628'); |
quote:Op donderdag 17 september 2009 19:07 schreef GlowMouse het volgende:
Het makkelijkste en meest logische is om GROUP BY week,group te gebruiken en dan je applicatie de rest te laten doen.
1 2 3 4 5 6 7 | from_unixtime(datestart,"%Y-%v") AS weekInYear, soort, count(*) as numberOfRegistrations FROM Listitems GROUP BY weekInYear , soort ORDER BY datestart |
1 2 3 4 5 6 | 2009-36 2 2 2009-37 2 2 2009-37 1 1 2009-38 1 1 2009-38 2 1 |
quote:Op vrijdag 18 september 2009 13:43 schreef pc-fr34k het volgende:.
Ik zit met een probleempje waar ik niet uit kom. Ik heb 2 arrays:
Vandaag: Array ( [1] => 2 [2] => 1 [3] => 1 [4] => 1 [5] => 2 [6] => 10 [7] => 1 [999] => 1 )
Gisteren: Array ( [1] => 5 [2] => 0 [6] => 3 )
Hier is de key het ID van een linkpartner en de value is het aantal hits op die dag.
Nu wil ik de som van vandaag en gisteren in 1 array. Hoe zorg ik dat overal waar de key gelijk is de 2 waardes bij elkaar opgeteld worden?
Bvd
1 2 3 4 | foreach(array_keys($array1) as $key) { $totaal[$key] = $array1[$key] + $array2[$key]; } |
Als $array2[$a] niet bestaat, krijg je minimaal een notice. Die kun je onderdrukken, maar 't is niet netjes. En je moet er nog rekening mee houden dat een key wel in $array2 kan voorkomen en niet in $array1 zit.quote:Op vrijdag 18 september 2009 13:55 schreef daReaper het volgende:
[..]
[ code verwijderd ]
Niet getest, laat maar weten of het werkt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $total = array(); foreach($array1 as $key => $value) { if(isset($array2[$key]) { $total[$key] = $value + $array2[$key]; unset($array2[$key]); } else { $total[$key] = $value; } } foreach($array2 as $key => $value) { // Alles wat we nog gemist hebben $total[$key] = $value; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | pr.[product_naam], logp.[logpers_datum], MAX(l.[log_uitgave]), p.[persoon_naam] FROM [product] AS pr LEFT JOIN [log] AS l ON l.[product_id] = pr.[product_id] LEFT JOIN [log_persoon] AS lp ON lp.[log_id] = l.[log_id] LEFT JOIN [persoon] AS p ON p.[persoon_id] = logp.[persoon_id] WHERE logp.[persoon_rol] = '6' GROUP BY pr.[product_id], pr.[product_naam], logp.[logpers_datum], p.[persoon_naam], l.[log_uitgave] ORDER BY l.[log_uitgave] DESC |
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 | product_id product_naam 1 Stofzuiger 2 Appelsap 3 Wijn 4 ABC Log log_id product_id log_uitgave 1 1 1 2 2 1 3 3 1 4 3 2 5 4 1 Log_persoon log_id persoon_id persoon_rol log_datum 1 1 2 2009-08-09 1 2 3 2009-08-12 1 4 6 2009-08-13 2 2 1 2009-08-17 2 1 6 2009-08-18 3 3 4 2009-08-19 3 3 5 2009-08-22 3 1 6 2009-08-28 4 2 6 2009-08-29 5 4 6 2009-08-30 Persoon persoon_id persoon_naam 1 Jan 2 Piet 3 Klaas 4 Kees Het resultaat wat ik dan wil is... ---------------------------------------- 1. stofzuiger 2009-08-13 1 Jan 2. Appelsap 2009-08-18 1 Jan 3. Wijn 2009-08-29 2 Piet 4. ABC 2009-08-30 1 Kees |
wat is je resultaat nu ? en waarom mis je een orderby artikel ID? en wat is er met je where aan de hand =)? waarom alleen persoon 6?quote:Op maandag 21 september 2009 12:59 schreef ReWout het volgende:
Ik heb wat moeite met 't ophalen van data...
Ik heb 4 tabellen...
- product (bestaat uit info product)
- log (bestaat uit info van veranderingen product o.a. versie nummer & product id)
- log_persoon (bestaat uit log_id & persoon_id & rol_id (een getal welke de "rol" voorstelt van de persoon))
- persoon (bestaat uit info over persoon)
Wat ik nu wil is dat ik van alle producten de info selecteer met daarbij de laatste log gegevens en de daarbij horende persoons gegeves...
Wat ik heb
[ code verwijderd ]
[ code verwijderd ]
WHERE artikel IN (800, 200, 300)quote:Op maandag 21 september 2009 12:39 schreef cablegunmaster het volgende:
vraagje.
ik heb een $_SESSION en daarin zitten meerdere nrs bvb 800,200,300
dit zijn nummers die ik met behulp van een database in weergave wil weergeven.
$sql = select * from artikelen
where artikel = '".$_SESSION['artikelid']."' ";
of moet er perse een for while loop? of een for loop bij?
met een extra $I variabele of iets dergelijks.
(meerdere waardes in 1 where statement)
Even voor de zekerheid, hebben we het hier over MySQL? En zo nee, over welke SQL-smaak dan wel?quote:Op maandag 21 september 2009 12:59 schreef ReWout het volgende:
Ik heb wat moeite met 't ophalen van data...
Ik heb 4 tabellen...
- product (bestaat uit info product)
- log (bestaat uit info van veranderingen product o.a. versie nummer & product id)
- log_persoon (bestaat uit log_id & persoon_id & rol_id (een getal welke de "rol" voorstelt van de persoon))
- persoon (bestaat uit info over persoon)
Wat ik nu wil is dat ik van alle producten de info selecteer met daarbij de laatste log gegevens en de daarbij horende persoons gegeves...
Wat ik heb
[ code verwijderd ]
[ code verwijderd ]
Nah MSSQL.quote:Op maandag 21 september 2009 13:58 schreef Light het volgende:
[..]
Even voor de zekerheid, hebben we het hier over MySQL? En zo nee, over welke SQL-smaak dan wel?
Dan staat er <? include("/http://www.website.nl/pagina.html")?> ;-)quote:Op dinsdag 22 september 2009 09:45 schreef Swetsenegger het volgende:
als je dat 'inc' voor die http weghaalt?
quote:Op dinsdag 22 september 2009 10:04 schreef Darkomen het volgende:
[..]
Dan staat er <? include("/http://www.website.nl/pagina.html")?> ;-)
Dus 'inc/' weghalen.
Erhm, sorry, die inc had ook niet in die post moeten staanquote:Op dinsdag 22 september 2009 09:45 schreef Swetsenegger het volgende:
als je dat 'inc' voor die http weghaalt?
Had ik al gezien idd. Krijg het wel voor elkaar dat de pagina geladen wordt, maar dan staan er allemaal getallen voor.quote:Op dinsdag 22 september 2009 10:04 schreef Darkomen het volgende:
[..]
Dan staat er <? include("/http://www.website.nl/pagina.html")?> ;-)
Dus 'inc/' weghalen.
Of
http://nl3.php.net/manual/en/function.file-get-contents.php
Geen idee.. server van klant. Als dit aan staat; werkt het dan wel?quote:Op dinsdag 22 september 2009 10:27 schreef Light het volgende:
En staat allow_url_fopen aan of uit? (zie phpinfo() )
Als je er bestanden op kunt zetten, kun je er ook een php-bestand opzetten met alleen maarquote:Op dinsdag 22 september 2009 10:36 schreef cosmick het volgende:
[..]
Geen idee.. server van klant. Als dit aan staat; werkt het dan wel?
1 |
Kun je dat iets meer toelichten please?quote:Op dinsdag 22 september 2009 12:14 schreef Light het volgende:
[quote]Op dinsdag 22 september 2009 12:14 schreef Light het volgende:
[..]
Als je er bestanden op kunt zetten, kun je er ook een php-bestand opzetten met alleen maar
[ code verwijderd ]
. Die aanroepen via de browser en je krijgt een hoop info.
Als allow_url_fopen aan staat, moet het volgens mij wel werken.
1 |
1 2 3 | $regex = '!' . preg_quote('<h3>') . '(.*?)+' . preg_quote('</h3><div>') . '(.*?)' . preg_quote('</div>') . '!ism'; ?> |
1 2 | <h3>content</h3><div>content</div> |
1 |
Ik snap niet helemaal wat je wilt doen, maarquote:Op woensdag 23 september 2009 10:23 schreef Chandler het volgende:
Kleine vraag m.b.t regex.
Ik wil graag data uit html filteren maar krijg het niet helemaal voor elkaar.
De data die ik wil filteren ziet er zo uit
[ code verwijderd ]
voorbeeld qua regex die werkt
[ code verwijderd ]
ik wil dus alleen bovenstaande uitlezen en bv niet als resultaat het volgende krijgen
[ code verwijderd ]
oftewel ik moet breaken tot </h3> echter krijg ik dit niet voor elkaar met
[ code verwijderd ]
weet iemand wat ik fout doe?
1 2 3 | preg_match("#<h3>(.*?)</h3><div>(.*?)</div>#", $html, $matches); var_dump($matches); |
Het is overigens gelukt met deze code:quote:Op dinsdag 22 september 2009 09:43 schreef cosmick het volgende:
Even een include-vraag.
In sites gebruik ik altijd includes voor headers, footers etc. op deze manier: <? include("inc/scripts.php")?> .
Werkt natuurlijjk prima. Maar wat als ik nu een externe pagina wil includen? Dacht met mijn domme hoofd dat dat simpel zo zou gaan maar helaas:
<? include("ihttp://www.website.nl/pagina.html")?>
Iemand een oplossing?
1 2 3 4 5 6 7 8 9 10 11 | $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.bepaaldewebsite.nl/pagina-text.html"); curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7'); curl_exec($ch); curl_close($ch); ?> |
Dat heb ik geprobeerd maar op een of andere manier werkt het niet en krijg ik toch meer resultaten dan wat ik zoekquote:Op woensdag 23 september 2009 11:27 schreef Xcalibur het volgende:
Dan moet je hem niet-greedy maken.
Ik weet alleen niet uit m'n hoofd welke modifier dat is, maar dat kan je wel googlen
quote:
Die is wel leuk jaquote:Op woensdag 23 september 2009 21:40 schreef marq het volgende:Een stukje MVC voor de puristen, heel erg elegant!
http://code.google.com/p/barebonesmvc-php/
1 |
quote:Op donderdag 24 september 2009 14:58 schreef mark_1980 het volgende:
Ik kan een aardig stukje php-en, maar reguliere expressies zijn echt helemaal nieuw voor me, maar nu heb ik het toch echt een keer nodig!!
In een pagina die is opgeslagen mijn database staat een tag;
[ code verwijderd ]
Nu wil ik allereerst er voor zorgen dat de [album xxxxxxxx] tag wordt vervangen voor het uitvoeren van een functie, die als argumenten de waarden uit album en style mee krijgen.
Hoe kan ik dit het beste aanpakken?
1 2 3 4 5 6 | preg_match("/album=\"?(.+?)\"?/", $s, $match); $album = $match[1]; unset($match); preg_match("/style=\"?(.+?)\"?/", $s, $match); $style = $match[1]; |
Dat zou ook kunnen.quote:Op donderdag 24 september 2009 17:57 schreef pc-fr34k het volgende:
Is het niet handiger om kleuren aan cijfers te verbinden zodat je maar 1 keer de kleuren hoeft toe te voegen en de parser het uiteindelijk omzet naar de kleur in de goede taal?
gewoon normaliseren, als een enum niet kan omdat er meerdere combinaties mogelijk zijn gebruik je gewoon een losse koppeltabel waarnaar toe je gaat verwijzen. Meertaligheid kun je dan middels gettext implementeren. Let op dat PHP's gettext extensie niet thread-safe is, dus je bent bijna verplicht apache_mpm_prefork te gebruiken.quote:Op donderdag 24 september 2009 16:07 schreef wobbel het volgende:
Ik heb een tabel SHOP_Producten met daarin al mijn producten. Nu wil ik voor elk product ook nog een kleur kunnen toevoegen. Nu kan ik een varchar aanmaken met daarin seperators, dus: "zwart|rood|grijs".
Is dit een goede oplossing? Het is een bestaand meertalig shopsysteem waarvan ik het niet zo 123 een tabelletje toevoeg met meerdere uitvoeringen.
Is deze gedachtengang goed, of moet ik het toch anders aanpakken?
Dank je wel, maar het lijkt nog niet te werken. Als ik $style en $album echo, krijg ik niet de resultaten die ik zou willen. Namelijk:quote:
Het is de bedoeling dat de code wordt opgeslagen in een db binnen de content.quote:
1 2 3 | [album album="12" style="modern"] <p>Lorum Ipsum</p> |
1 2 3 | showAlbum($album, $style); <p>Lorum Ipsum</p> |
Bekijk je html-output.quote:Op vrijdag 25 september 2009 13:19 schreef cablegunmaster het volgende:
probleempje :
[ code verwijderd ]
ik krijg alleen het eerste woord terug "automatische " of acceptgiro hoe los ik dit op?
zaten eerst dubbele quotes omheen.
Je gebruikt zowel HTML als php binnen je <?php ... ?>quote:Op vrijdag 25 september 2009 13:19 schreef cablegunmaster het volgende:
probleempje :
[ code verwijderd ]
ik krijg alleen het eerste woord terug "automatische " of acceptgiro hoe los ik dit op?
zaten eerst dubbele quotes omheen.
quote:Op vrijdag 25 september 2009 13:19 schreef cablegunmaster het volgende:
probleempje :
[ code verwijderd ]
ik krijg alleen het eerste woord terug "automatische " of acceptgiro hoe los ik dit op?
zaten eerst dubbele quotes omheen.
opmaak fout van fok.nl de eerste php weg denken en de laatste ?> afsluiting ook.quote:Op vrijdag 25 september 2009 13:33 schreef ursel het volgende:
[..]
Je gebruikt zowel HTML als php binnen je <?php ... ?>
Dan zit je if(isset) toch nog steeds binnen je <option>quote:Op vrijdag 25 september 2009 13:39 schreef cablegunmaster het volgende:
[..]
[..]
opmaak fout van fok.nl de eerste php weg denken en de laatste ?> afsluiting ook.
fout gekopieerdquote:Op vrijdag 25 september 2009 13:48 schreef ursel het volgende:
[..]
Dan zit je if(isset) toch nog steeds binnen je <option>
1 2 3 | if(isset($_POST['betaling'])){ echo "<option selected value=".$_POST['betaling'].">".$_POST['betaling']."</option>"; } ?> |
1 2 3 4 5 6 7 8 9 10 | while ($row = mysql_fetch_assoc($queryget)) { $id = $row['id']; $name = $row['name']; $email = $row['email']; $message = $row['message']; $date = $row['date']; $time = $row['time']; |
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 34 35 36 37 38 39 40 41 42 43 44 45 | echo "<h1>scrhijf in het gastenboek!</h1>"; //connect $connect = mysql_connect('Localhost','*****_******','*******') or die("User error"); //select db mysql_select_db( 'rdonkers_gastenboek' or die("select error")); //get query $queryget = mysql_query( 'SELECT * FROM gastenboek' or die("query error")); while ($row = mysql_fetch_assoc($queryget)) { $id = $row['id']; $name = $row['name']; $email = $row['email']; $message = $row['message']; $date = $row['date']; $time = $row['time']; //display echo " name: $name <br> "; } echo '<hr>'; echo " <form action='gastenboek.php' method='post'> Username:<input type='text' name='username' maxlength='20'><br> Email:<input type='text' name='email' maxlength='50'><br> Message<textarea cols='40' rows='5' maxlength='250'></textarea><br> <input type='submit' name='submit' value='send'> </form> "; ?> |
Regel 14:quote:
1 2 3 | $queryget = mysql_query( 'SELECT * FROM gastenboek')or die("query error")); ?> |
Nee, er staan precies genoeg haakjes, alleen niet op de juiste plek.quote:Op zondag 27 september 2009 02:20 schreef cablegunmaster het volgende:
Mist een ) in het bold toe gevoegd als hij die code in php pakt
Nu staat er een ) te veel.quote:mysql_query( ' ') or die ("mysql_error());
quote:zoek eens op php naar een fout afhandeling.
handiger is een $sql variabele te maken en die in een mysql_query($sql); te stoppen zodat als je variabelen gebruikt in je sql die kan outputten met een echo om je sql fout te vinden.
Zoiets?quote:Op donderdag 1 oktober 2009 17:37 schreef ReWout het volgende:
SELECT * FROM gallery WHERE views=MAX(views)
Hoe doe ik dat? :s), ik wil dus 't element met 't grootst aantal views hebben.
1 |
Waarom niet? Dat werkt wel, en 't is een stuk minder omslachtig :)quote:oh btw ik wil niet horen dat ik dus
SELECT * FROM gallery ORDER BY views DESC LIMIT 1
ofzo :P
Ik geloof niet dat ik snap wat je zegt....quote:Op donderdag 1 oktober 2009 17:48 schreef ReWout het volgende:
[..]
Nah want die resultaat (hoeft) correnspondeert dan niet met de andere geselecteerde rijen
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 | id naam 1 Abc 2 Bcd 3 Cde 4 Def Tabel 2: id id_tabel1 uitgave_nummer versie_nummer 1 1 1 a 2 1 1 b 3 1 1 c 4 1 2 a 5 1 3 a 6 2 1 a 7 2 1 b 8 3 1 a 9 3 1 b 10 3 2 a 11 4 1 a 12 4 2 a 13 4 3 a 14 4 4 a 15 4 4 b 16 4 4 c |
Is dat een nieuw probleem of nog steeds hetzelfde probleem? In het laatste geval, hoe hadden we moeten weten dat je query over 2 tabellen gaat?quote:Op vrijdag 2 oktober 2009 07:22 schreef ReWout het volgende:
De query gaat over 2 tabellen...
[ code verwijderd ]
Nu wil ik alleen diegene selecteren uit tabel1 waarbij de uitgave_nummer nummer 't grootst is en vervolgens ook 't versie_nummer het grootste is...
Bijvoorbeeld de resultaat van me query moet zijn
id naam uitgave versie
1 Abc 3 a
2 Bcd 1 b
3 Cde 2 a
4 Def 4 c
Hetzelfde probleemquote:Op vrijdag 2 oktober 2009 07:33 schreef Light het volgende:
[..]
Is dat een nieuw probleem of nog steeds hetzelfde probleem? In het laatste geval, hoe hadden we moeten weten dat je query over 2 tabellen gaat?
Nee helaas niet want...quote:Op vrijdag 2 oktober 2009 08:59 schreef Xcalibur het volgende:
Dan zou ik lekker op uitgave en versie sorteren en het eerste record pakken
Voor je oorspronkelijke probleem blijft mijn query prima volgens mij
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 | id naam 1 Abc 2 Bcd 3 Cde 4 Def Tabel 2: id id_tabel1 uitgave_nummer versie_nummer 1 1 1 a 2 1 1 b 3 1 1 c 4 1 2 a 5 1 3 a 6 2 1 a 7 2 1 b 8 3 1 a 9 3 1 b 10 3 2 a 11 4 1 a 12 4 2 a 13 4 3 a 14 4 4 a 15 4 4 b 16 4 4 c 17 4 5 a |
1 2 3 4 5 6 7 8 9 | n.[id], n.[titel], MAX(m.[uitgave]) AS [uitgave], MAX(m.[versie]) AS [versie] FROM [tabel1] AS n LEFT JOIN [tabel2] AS m ON m.[id_tabel1] = n.[id] GROUP BY n.[id], n.[titel] |
Wanneer ik dan MAX(m.[Versie]) wegdoe (en toevoeg bij GROUP BY anders error) dan krijg je weer dubbele resultatenquote:Op donderdag 1 oktober 2009 17:48 schreef ReWout het volgende:
[..]
Nah want die resultaat (hoeft) correnspondeert dan niet met de andere geselecteerde rijen
Die query zou ikzelf ook logisch vinden, maar helaas mag je in de where clause geen MAX(), MIN(), AVG() functies uitvoerenquote:Op vrijdag 2 oktober 2009 10:47 schreef cablegunmaster het volgende:
SELECT tabel2.uitgave_nummer,tabel1.naam,tabel2.versie_nummer
FROM tabel2
LEFT JOIN tabel1 ON
tabel1.id = tabel2.id_tabel1
WHERE tabel2.uitgave_nummer = max(uitgave_nummer)
AND tabel2.versie_nummer = max(versie_nummer)
zoiets? weet niet of alle velden kloppen maar het idee is dat hij de naam pakt en het uitgave nummer en de versienummer en daarvan de laatste pakt.
dus de maximale waarde in uitgave nummer en waar ook de grootste waarde in versienummer staat![]()
en waarom zou dat niet mogenquote:Op vrijdag 2 oktober 2009 11:04 schreef ReWout het volgende:
[..]
Die query zou ikzelf ook logisch vinden, maar helaas mag je in de where clause geen MAX(), MIN(), AVG() functies uitvoeren
Al aardig op de goeie wegquote:Op vrijdag 2 oktober 2009 11:19 schreef cablegunmaster het volgende:
[..]
en waarom zou dat niet mogen?
ooh regels las het netdan moet je het met subqueries doen
![]()
SELECT tabel2.uitgave_nummer,tabel1.naam,tabel2.versie_nummer
FROM tabel2
LEFT JOIN tabel1 ON
tabel1.id = tabel2.id_tabel1
WHERE tabel2.uitgave_nummer =
(select max(uitgave_nummer)
from tabel2
where versienummer = (
select max(versie_nummer
from tabel2))
ZoietsNiet getest maar het idee moet ongv duidelijk zijn
![]()
meer info over subqueries:![]()
http://dev.mysql.com/tech-resources/articles/4.1/subqueries.html
1 2 3 4 | Def 4 b Def 4 c Def 4 d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 1 1 1 a 2 1 1 b 3 1 1 c 4 1 2 a 5 1 3 a 6 1 3 b 7 2 1 a 8 2 2 a 9 2 2 b 10 3 1 a 11 3 1 b 12 3 2 a 13 3 2 b 14 3 2 c 15 3 3 a 16 4 1 a 17 4 2 a 18 4 3 a 19 4 3 b 20 4 4 a 21 4 4 b 22 4 4 c 23 4 4 d |
1 2 | Abc 3 b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | n.[titel], m.[uitgave], m.[versie] FROM [tabel1] AS n LEFT JOIN [tabel2] AS m ON n.[id] = m.[id_tabel1] WHERE m.[versie] = ( SELECT MAX([versie]) FROM [tabel2] WHERE [uitgave] = m.[uitgave] ) AND m.[uitgave] = ( SELECT MAX([uitgave]) FROM [tabel2] WHERE [id_tabel1] = n.[id] ) |
Ja klopt toch? Een uitgave (4 bijvoorbeeld) kan meerdere versies hebben (a, b, c, d) en ik moet dus de max versie hebben van die uitgave...quote:Op vrijdag 2 oktober 2009 11:38 schreef cablegunmaster het volgende:
Lees wat je doet.
je selecteert de max versie. waar uitgave is gelijk aan uitgave... (nutteloos zinnetje)
Klopt toch ook? Er staan meerdere uitgaves in de tabel... 1, 2, 3, 4?quote:en uitgave = select maximale uitgave van tabel 2 waar id = id.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | n.[titel], MAX(m.[uitgave]), MAX(m.[versie]) FROM [tabel1] AS n LEFT JOIN [tabel2] AS m ON n.[id] = m.[id_tabel1] WHERE m.[uitgave] = ( SELECT MAX(m2.[uitgave]) FROM [tabel2] AS m2 WHERE m2.[id_tabel1] = n.[id] ) GROUP BY n.[titel], n.[id] |
1 2 3 4 5 | a 10 b 20 c 30 d 40 |
1 2 3 4 | a 10 c 20 e 30 |
Dankquote:Op zondag 4 oktober 2009 12:02 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
mysql_pingquote:Op zondag 4 oktober 2009 14:40 schreef poepeneesje het volgende:
Kan iemand vertellen hoe ik met PHP kan controleren of een connectie met een DB nog bestaat.
Bedankt voor je snelle reactie.quote:
Op regel 41 staat het volgende:quote:Warning: mysql_ping(): 4 is not a valid MySQL-Link resource in /home/vhosting/../general/content.php on line 41
1 2 3 4 5 6 | if(!mysql_ping($connect)) { include("./database/mysql-database-connect.php"); } ?> |
Je moet wel eerst de connectie (je resource )al eens gelegd hebben. Anders weet de functie niet op welke connectie moet kijken of deze nog steeds open is.quote:Op zondag 4 oktober 2009 15:20 schreef poepeneesje het volgende:
[..]
Bedankt voor je snelle reactie.
Nu krijg ik de volgende melding en ik kan niet vinden waarop deze slaat:
[..]
Op regel 41 staat het volgende:
[ code verwijderd ]
Klopt, in bepaalde gevallen lijkt het alsof de connectie niet te worden opgezet en kunnen bepaalde queries niet worden uitgevoerd, om niet onnodig een connectie te willen opzetten, wil ik graag een soort van check om te kijken of de verbinding al bestaat.quote:Op zondag 4 oktober 2009 15:44 schreef ursel het volgende:
[..]
Je moet wel eerst de connectie (je resource )al eens gelegd hebben. Anders weet de functie niet op welke connectie moet kijken of deze nog steeds open is.
Je hebt gelijk. Ik heb het getest met een simpel stukje code om een bestand te uploaden naar die beveiligde map. Met dat simpele programma krijg ik geen scherm te zien.quote:Op zondag 4 oktober 2009 21:48 schreef GlowMouse het volgende:
Dat scherm komt niet door je move_uploaded_file.
clientside checks zijn te omzeilen dus moet je sowieso nog in php checkenquote:Op maandag 5 oktober 2009 16:18 schreef Tegan het volgende:
Ik heb een <FORM> waarin vier keer gekozen kan worden uit steeds tien vaste waardes (1 t/m 10).
Die vier waardes insert ik dan in mijn database. Ik moet dus vantevoren checken of die vier waardes EN uniek zijn aan elkaar (geen getal komt twee keer voor) EN of ze een van die tien vaste waardes hebben (ieder van de vier getallen ligt tussen 1 en 10).
Hoe kan ik dat het beste oplossen. In het <FORM> zelf, of tijdens het submitten dat checken en een error geven? Weet eigenlijk niet hoe ik dit het beste kan aanpakken.
1 2 3 | doe iets } |
1 2 3 | doe iets } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $n=4; $nrs = array(); for($i=1; $i<=$n; $i++) { $nrs[$i] = intval($_POST['nr' . $i]); if($nrs[$i] < 0 || $nrs[$i] > 10) { // x niet in [1,10] doorsneden met IN } } if($n != count(array_unique($nrs)) { // niet uniek } ?> |
Wat je kunt doen is een array maken met de waarde als index. Dus bijvoorbeeld als je 1,4,6 en 10 hebt dan krijg je $array[1] = "iets"; $array[4] = "iets"; $array[6] = "iets"; $array[10] = "iets";quote:Op maandag 5 oktober 2009 16:18 schreef Tegan het volgende:
Ik heb een <FORM> waarin vier keer gekozen kan worden uit steeds tien vaste waardes (1 t/m 10).
Die vier waardes insert ik dan in mijn database. Ik moet dus vantevoren checken of die vier waardes EN uniek zijn aan elkaar (geen getal komt twee keer voor) EN of ze een van die tien vaste waardes hebben (ieder van de vier getallen ligt tussen 1 en 10).
Hoe kan ik dat het beste oplossen. In het <FORM> zelf, of tijdens het submitten dat checken en een error geven? Weet eigenlijk niet hoe ik dit het beste kan aanpakken.
Tot je er na maanden achterkomt dat je bv. nr2 niet met nr4 vergeleek.quote:Op maandag 5 oktober 2009 16:45 schreef Xcalibur het volgende:
Niet de mooiste oplossing misschien, wel een hele begrijpbare
Reguliere expressies zijn overkill voor dit voorbeeld. En daarbij zijn de ereg-functies sowieso niet aan te raden. Er staat een duidelijke en niet te missen waarschuwing op die pagina.quote:Op maandag 5 oktober 2009 16:38 schreef Darkomen het volgende:
http://nl3.php.net/manual/en/function.ereg.php
Hier staan een mooi voorbeeld wat je kan aanpassen voor jouw functie.
Het zal niet het eerste script zijn dat niet volledig doorgetest wordt. Of waar ondanks goed testen toch nog fouten inzitten.quote:Op maandag 5 oktober 2009 18:15 schreef Xcalibur het volgende:
waarom zou je daar na maanden achterkomen?
Als je wat maakt moet je het wel testen natuurlijk, en dat geldt voor *iedere* oplossing, dus je opmerking ontgaat me een beetje....
Ik heb net even uitgezocht waar het aan lag.quote:Op zondag 4 oktober 2009 21:48 schreef GlowMouse het volgende:
Dat scherm komt niet door je move_uploaded_file.
1 |
1 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |