abonnement Unibet Coolblue Bitvavo
pi_72362422
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
pi_72362460
quote:
Op woensdag 2 september 2009 08:00 schreef ReWout het volgende:
Ik heb even een vraagje over sql...
Welke SQL smaak bedoel je precies?
pi_72362757
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
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?
pi_72363730
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?
Yup id in y is natuurlijk primary key. Mag ook geen null hebben en types zijn 't zelfde.
pi_72363793
quote:
Op woensdag 2 september 2009 08:37 schreef Tuvai.net het volgende:
Welke error krijg je overigens?
pi_72366488
nvm. heb 't al was een fout in 't schema.
pi_72366529
quote:
Op woensdag 2 september 2009 11:56 schreef ReWout het volgende:
nvm. heb 't al was een fout in 't schema.
quote] Op woensdag 2 september 2009 09:53 schreef Tuvai.net het volgende:
[..]
[/quote]

Kon je toch niets mee aangezien ie zei dat de PK van tabel y toestond dat ie op null kon staan. Maar dat was dus helemaal niet zo.
  FOK!-Schrikkelbaas woensdag 2 september 2009 @ 22:51:36 #108
1972 Swetsenegger
Egocentrische Narcist
pi_72384102
Kan je in een insert query een select subquery inbouwen?

voorbeeld

1
2
3
4
5
INSERT into bestellingInhoud
       (id,bestelId,eigId,aantal,prijs)
       VALUES(0,'".$bestelId."','".$k."','".$v."',".
               SELECT prijs FROM eigenschappen WHERE id=$k
              .")";


Maar dan werkend
pi_72384232
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
Ja.

1
2
3
INSERT INTO bestellingInhoud
(id, bestelId, eigId, aantal, prijs)
VALUES(0, '".$bestelId."', '".$k."', '".$v."', (SELECT prijs FROM eigenschappen WHERE id=".$k."))


Gewoon even puur op SQL niveau denken dus, volgens mij probeer jij je subquery als PHP uit te voeren, als ik de aanhalingstekens en de puntjes om je subquery heen zie. Voor de rest gewoon een kwestie van een ( en ) er om heen om een subquery aan te duiden, zoals je dat ook in een SELECT query doet.

[ Bericht 6% gewijzigd door Tuvai.net op 03-09-2009 07:40:30 ]
  FOK!-Schrikkelbaas woensdag 2 september 2009 @ 22:56:47 #110
1972 Swetsenegger
Egocentrische Narcist
pi_72384329
Cool! ga ik gelijk proberen

en het werkt natuurlijk...

[ Bericht 13% gewijzigd door Swetsenegger op 02-09-2009 23:14:02 ]
pi_72390066
Ja, dat kan dus
Handige manier om data van een tijdelijke tabel naar een live tabel over te pompen bijvoorbeeld

phpMyAdmin kan dat ook trouwens, dus daar had je het principe ook wel vandaan kunnen jatten
pi_72391882
vanaf welke versie (mysql) werken subqueries eingelijk?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_72393683
quote:
Op donderdag 3 september 2009 10:19 schreef Chandler het volgende:
vanaf welke versie (mysql) werken subqueries eingelijk?
Handig spul . Vertraagd de boel wel flink.
  donderdag 3 september 2009 @ 12:43:29 #115
75592 GlowMouse
l'état, c'est moi
pi_72395803
quote:
Op donderdag 3 september 2009 11:28 schreef Mordreth het volgende:

[..]

Handig spul . Vertraagdt de boel wel flink.
Er zijn genoeg situaties waarin een subquery sneller is dan dezelfde data ophalen zonder subquery.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72395838
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.
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.
  donderdag 3 september 2009 @ 12:46:07 #117
75592 GlowMouse
l'état, c'est moi
pi_72395887
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.
Ook bij SELECTs kan een subquery sneller zijn.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72395999
Niks mis met subqueries
pi_72406809
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.

[ Bericht 2% gewijzigd door Darkomen op 03-09-2009 23:27:31 ]
  donderdag 3 september 2009 @ 19:06:45 #120
75592 GlowMouse
l'état, c'est moi
pi_72407072
Kijk eens naar mysql_error()
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72407417
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.
1AND ( (begin_stamp=<$eindStamp) *** (eind_stamp>=$beginStamp ) ) 


Hoort er geen AND / OR te staan bij die sterretjes?
pi_72409778
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?
En:

begin_stamp=<$eindStamp
=< bestaat niet. Dat moet <= zijn
  donderdag 3 september 2009 @ 21:39:01 #123
37634 wobbel
Da WoBBeL King
pi_72413635
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...
pi_72413864
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...
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.

[ Bericht 6% gewijzigd door Tuvai.net op 03-09-2009 21:48:17 ]
  donderdag 3 september 2009 @ 21:53:55 #125
37634 wobbel
Da WoBBeL King
pi_72414448
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.
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...

En ik kan nergens een goede tuto ofzo vinden...
pi_72415003
zoek eens op nested set
lastig om te begrijpen maar zoveel beter dan met een parent_id werken
pi_72415279
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
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 en hoe kan ik dat makkelijk weergeven...Want ik zou wel ontiegelijk veel query's moeten uithalen om dat dan weer te geven...
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).
pi_72418462
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?
Zal iets bij het copy/pasten fout gegaan zijn, er staat een or.
pi_72419157
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).
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.
pi_72419240
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.
Zie daarom dat laatste stukje tekst. 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.

[ Bericht 1% gewijzigd door Tuvai.net op 03-09-2009 23:52:21 ]
pi_72420359
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.
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.

1
2
3
4
5
6
<?php
$result 
mysql_query('SELECT * FROM menu');
while(
$row mysql_fetch_assoc($result)) {
  
$menu[$row['parentId']] = $row;
}
?>


Dan heb je alleen nog een recursieve oplossing nodig voor het weergeven van het menu.
pi_72420521
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.
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. Verschilt natuurlijk per situatie.
pi_72432889
Ik heb een UTF-8 tabel, en als ik daarin wil zoeken met LIKE, dan stuit ik op een probleem:

SELECT * FROM `tabel` WHERE titel LIKE '%belgie%';
levert niet dezelfde resultaten op als
SELECT * FROM `tabel` WHERE titel LIKE '%belgië%';

Ik heb al geprobeerd om ervan te maken:
SELECT * FROM `tabel` WHERE titel LIKE _utf8 '%belgië%' COLLATE utf8_general_ci;
Maar het enige resultaat is dan dat hij alleen de titels vindt zonder ë (dus waar de titel "Belgie" is en niet "België".

Wat kan ik hier aan doen?
Trotse poster van het 37000000ste bericht ^O^
pi_72436001
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 zelf dus hopelijk jullie ook

[ Bericht 3% gewijzigd door Chandler op 04-09-2009 22:12:33 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_72454544
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?
pi_72455782
Hoi

Ben een redelijke beginner met PHP en MySQL maar nooit te beroerd om te leren natuurlijk Op het moment ben ik voor mijn stage een simpele CMDB aan het maken.

De basic dingen zitten er al wel in, layout begint ook wat te worden. Ik wil echter iets extra's hebben, maar ik heb geen idee hoe, daarom zou ik jullie om wat tips willen vragen zodat ik weer verder kan gaan klooien.

Stel;
Ik heb monitor-01, monitor-02 enz. Wat ik nu wil maken is een soort van reserveringssysteem, dus monitor-01 is van 01-01-2009 tot 31-08-2009 gereserveerd voor de schoonmaker. Vanaf 01-09-2009 is deze gereserveerd voor de helpdesk. Dit is op zich niet zo moeilijk, veld begin datum, veld eind datum en een eigenaar.

Ik wil echter ook de historie bij kunnen houden en daar loop ik vast...

Hebben jullie tips en tricks over hoe ik de historie netjes kan bijhouden..?

Alvast bedankt!
pi_72456231
quote:
Op zaterdag 5 september 2009 10:49 schreef new_guy1 het volgende:
Hoi
...
Wat voor historie zou je bij willen houden?
  zaterdag 5 september 2009 @ 11:17:37 #138
75592 GlowMouse
l'état, c'est moi
pi_72456295
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?
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.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72456942
quote:
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?
Ik zou beginnen met je sessies in de database op te slaan, dan ben je al een heel eind met bezoekers identificeren
pi_72457401
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
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.
pi_72457972
Als je de sessies in je database opslaat, kan je toch gewoon die tabel uitlezen?
Dat is een beetje het punt van die dingen in je database opslaan zeg maar
pi_72458528
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 $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.
Hadden jullie nog een idee, volgens mij is het niet zo lang geleden langsgekomen in de topics, alleen heb ik het toen niet gevolgd

Edit: al lijkt hij nu wel te werken, ik ga straks maar eens goed testen

[ Bericht 4% gewijzigd door Darkomen op 05-09-2009 13:41:27 ]
pi_72461046
Ik heb een vreemd probleem, alleen geen idee of het per sé iets met PHP is.

Ik heb een PHP applicatie met een MySQL database er achter. De hele applicatie gaat multilingual worden dus alles zal opgeslagen en gepresenteerd worden middels de UTF-8 character set.

Daarvoor doe ik het volgende:
- Alle tabellen en kolommen in de MySQL database hebben de utf8_general_ci collatie.
- Met PHP geef ik de HTTP header mee: Content-Type: text/html; charset=charset=UTF-8
- In de HTML die gegenereerd wordt, doe ik zowel <?xml version="1.0" encoding="UTF-8"?> als <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Zou afdoende moeten zijn. Ik heb nu echter een regeltje tekst dat ik in de database op sla, en op een pagina in mijn applicatie weer wil laten zien. Het betreft het volgende regeltje:
Dit is een test áéí

Wanneer ik in PHPMyAdmin ga kijken, staat er inderdaad Dit is een test áéí waar dit regeltje tekst is opgeslagen. Wanneer ik echter na de pagina in mijn applicatie ga kijken waar dit regeltje tekst opgehaald wordt en weergegeven wordt, staat er, geheel willekeurig, rotzooi.

In Mozilla staat er soms de onbekende karakter blokjes 'met FFFD' er in, en soms wordt het tekstje wél goed weergegeven. In Internet Explorer hetzelfde: soms wél de goede tekst, en soms vierkantjes die duiden op onbekende karakters.

Waar zit het probleem?

EDIT: Doh. Ik gebruikte m'n "SET NAMES 'utf8'" query alleen bij m'n INSERT / UPDATE queries in plaats van alle (dus ook SELECT).

[ Bericht 4% gewijzigd door Tuvai.net op 05-09-2009 15:46:08 ]
  FOK!-Schrikkelbaas zondag 6 september 2009 @ 20:21:38 #144
1972 Swetsenegger
Egocentrische Narcist
pi_72497040
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
<?xml version="1.0" encoding="UTF-8"?>
<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>


Ik heb de waarde nodig tussen <id> en </id> in het <transaction> element.

1preg_match('/\<id\>(.*)\<\/id\>/U', $reply, $id);


$id bevat alleen de id uit het het <ewallet> element. Als ik 'm ungreedy maak krijg ik een lege array. Moet ik nu dit:

1
2
preg_match('/\<transaction\>(.*)\<\/transaction\>/U', $reply, $transaction);
preg_match('/\<id\>(.*)\<\/id\>/U', $transaction[1], $id);


of kan dat makkelijker?
pi_72501525
Kun je niets met de xml-functies in php(5)?

En anders is het ook met 1 preg_match() op te lossen:
1
2
3
<?php
preg_match
('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/U'$reply$id);
?>
  FOK!-Schrikkelbaas zondag 6 september 2009 @ 22:31:20 #146
1972 Swetsenegger
Egocentrische Narcist
pi_72503055
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.
pi_72505380
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.
Doe je die HTML eerst replacen? Gooi eens een htmlentities / htmlspecialchars over je HTML data die je in je XML node stopt heen.

Ik ga binnenkort ook eens met multisafepay klooien, ziet er wel veelbelovend uit en ik heb alweer een paar webshops op de planning die al het betaal-gemeuks willen hebben.
  FOK!-Schrikkelbaas zondag 6 september 2009 @ 23:18:28 #148
1972 Swetsenegger
Egocentrische Narcist
pi_72505839
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. :)
Nou staan geen rare dingen in, gewoon een tabel met wat 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
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
<?xml version="1.0" encoding="UTF-8"?>
<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>
pi_72506033
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 ]
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.
  FOK!-Schrikkelbaas maandag 7 september 2009 @ 08:57:07 #150
1972 Swetsenegger
Egocentrische Narcist
pi_72511235
quote:
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.
Ok.... wat doe ik daaraan? -edit- ow wacht html entities en specialchars natuurlijk. Dat is het proberen waard
pi_72511413
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.
  FOK!-Schrikkelbaas maandag 7 september 2009 @ 09:16:55 #152
1972 Swetsenegger
Egocentrische Narcist
pi_72511547
Ik ga net naar de livechat van multisafe met de vraag of ik de html moet replacen. Krijg ik het verzoek om te bellen. Blijkbaar is de vraag te lastig
pi_72512555
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 zelf dus hopelijk jullie ook
Niemand?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 7 september 2009 @ 15:37:33 #154
137690 Pizzahut
Het Bora Bora Gebergte
pi_72520360
Ik werk nu steeds meer met classes en zie ook steeds meer mogelijkheden.

Wat ik ook veel zie is 2 keer een dubbele punt
1
2
3
<?php
$item 
Page::item(2);
?>


is dit hetzelfde als een -> ?

1
2
3
<?php
$item 
Page->item(2);
?>
Disturbed Mind
Het leven: Soms ben je de duif, soms het standbeeld.
  maandag 7 september 2009 @ 16:02:47 #155
75592 GlowMouse
l'état, c'est moi
pi_72521046
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  FOK!-Schrikkelbaas maandag 7 september 2009 @ 21:37:20 #156
1972 Swetsenegger
Egocentrische Narcist
pi_72533139
Waarom zijn al die betaalsystemen kut gedocumenteerd?
pi_72538131
quote:
Op maandag 7 september 2009 21:37 schreef Swetsenegger het volgende:
Waarom zijn al die betaalsystemen kut gedocumenteerd?
Omdat goed documenteren niet in het eisenpakket was opgenomen.
  FOK!-Schrikkelbaas dinsdag 8 september 2009 @ 12:19:21 #158
1972 Swetsenegger
Egocentrische Narcist
pi_72547241
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 ]
Ik snap er geen kut meer van. Inhoud van $reply:
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
<?xml version="1.0" encoding="UTF-8"?>
<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>&lt;br /&gt;&lt;table style="border-collapse:collapse;width:100%;text-align:center"&gt;&lt;tr style="color:black;font-size:9pt;"&gt;&lt;td style="border-style:solid;border-width:1px 0 1px 1px;border-color:rgb(160,166,176)"&gt;Aantal&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Artikelcode&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Artikel&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Kleur&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Maat&lt;/td&gt;&lt;td style="border-style:solid;border-width:1px 0;border-color:rgb(160,166,176)"&gt;Prijs&lt;/td&gt;&lt;/tr&gt;&lt;tr style="background-color:white;font-size:11pt;"&gt;
         &lt;td style="width:45px;"&gt;1&lt;/td&gt;
         &lt;td style="width:75px;"&gt;t-001&lt;/td&gt;
         &lt;td style="width:250px;"&gt;Mexx - Top&lt;/td&gt;
         &lt;td style="margin:5px;width:10px;background-color:#000000"&gt;&lt;/td&gt;
         &lt;td style="width:250px;"&gt;large&lt;/td&gt;
         &lt;td&gt;EUR. 15,95&lt;/td&gt;
         &lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="width:100%;border:solid 1px rgb(160,166,176);text-align:left;"&gt;&lt;tr&gt;&lt;td style="color:black;font-size:11pt;"&gt;Prijs:&lt;/td&gt;&lt;td style="width:600px;text-align:right;font-size:14pt;color:black;"&gt;EUR. 15,95&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    </items>
</transaction>
</status>


1
2
3
4
5
<?php
$id 
= array();
preg_match('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/U'$reply$id);
print_r($id);
?>


1array()


Is de inhoud van $reply DIT (dus zonder de html in <items>):
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
<?xml version="1.0" encoding="UTF-8"?>
<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
Array
(
    [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
)




[ Bericht 20% gewijzigd door Swetsenegger op 08-09-2009 13:22:16 ]
pi_72549584
Even klein vraagje... (1. waar is 't html topic?)

2. ik heb een tabel met verschillende kolomen. In de laatste kolom staat een select box... Nu wil ik niet steeds op de select box klikken om hem te activeren zeg maar... maar wil ik gewoon ergens op de rij kunnen klikken...

dus wat moet ik invullen bij <tr onclick="">?
  FOK!-Schrikkelbaas dinsdag 8 september 2009 @ 14:36:35 #160
1972 Swetsenegger
Egocentrische Narcist
pi_72550716
1
2
3
4
5
6
7
8
9
10
11
12
<head><script type="text/javascript">
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>
pi_72551943
javascript!=php/mysql.....
En voor de rest, google!
  dinsdag 8 september 2009 @ 15:31:49 #162
85514 ralfie
!Yvan eht nioj
pi_72552173
1el.checked= (el.checked != true ? true : false );

Waarom niet gewoon
1el.checked = !el.checked;

?
  FOK!-Schrikkelbaas dinsdag 8 september 2009 @ 16:58:30 #163
1972 Swetsenegger
Egocentrische Narcist
pi_72554614
quote:
Op dinsdag 8 september 2009 15:31 schreef ralfie het volgende:

[ code verwijderd ]

Waarom niet gewoon
[ code verwijderd ]

?
hoe wil je dan toggelen?
  FOK!-Schrikkelbaas dinsdag 8 september 2009 @ 16:59:16 #164
1972 Swetsenegger
Egocentrische Narcist
pi_72554638
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 ]

Iemand een idee waarom de pragmatch over zijn nek gaat in de eerste situatie?
  woensdag 9 september 2009 @ 10:21:14 #165
85514 ralfie
!Yvan eht nioj
pi_72575388
quote:
Op dinsdag 8 september 2009 16:58 schreef Swetsenegger het volgende:

[..]

hoe wil je dan toggelen?
beide stukjes code doen precies hetzelfde
  FOK!-Schrikkelbaas woensdag 9 september 2009 @ 10:24:53 #166
1972 Swetsenegger
Egocentrische Narcist
pi_72575477
quote:
Op woensdag 9 september 2009 10:21 schreef ralfie het volgende:

[..]

beide stukjes code doen precies hetzelfde
Ja later besefte ik me dat dat met een true/false setting natuurlijk kan.
pi_72614180
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
$match;
preg_match('/\<transaction\>.*\<id\>(.*)\<\/id\>.*\<\/transaction\>/Us', $reply, $match);
print_r($match[1]);
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 11 september 2009 @ 09:13:22 #168
63192 ursel
"Het Is Hier Fantastisch!
pi_72634821
Was dit topic kwijt.
pi_72637297
ik probeer een gedeelte van een string te filteren
1ereg_replace("[a-zA-Z]", "", "abcdefg hijk 93430-1")


Ik wil graag dat dit de output word: "3430"

Nu vervangt hij mooi alle lettertjes alleen wil ik ook nog dat hij de -1 erachter matched... dit doet 't (\-[0-9])$
Me totale regex is dan [a-zA-Z](\-[0-9])$.... Echter matched die dus nu niet vanwege de "93430". Hoe vertel ik me regex dat hij die niet moet vervangen ofzo?
  vrijdag 11 september 2009 @ 11:10:30 #170
187069 slacker_nl
Sicko pur sang
pi_72637642
Doe gewoon 't gewoon zo:
1
2
3
4
5
<?php
$match
preg_match
('/(\d+)-\d/'$string$match);
print_r($match);
?>
In theory there is no difference between theory and practice. In practice there is.
pi_72639233
quote:
Op vrijdag 11 september 2009 11:10 schreef slacker_nl het volgende:
Doe gewoon 't gewoon zo:
[ code verwijderd ]
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_replace
  vrijdag 11 september 2009 @ 12:29:24 #172
187069 slacker_nl
Sicko pur sang
pi_72639640
Wat doe je dan in het php topic??
In theory there is no difference between theory and practice. In practice there is.
pi_72701204
quote:
Op zaterdag 5 september 2009 11:13 schreef Sjoe538 het volgende:

[..]

Wat voor historie zou je bij willen houden?
Van die reseveringen.
Elke reservering apart opslaan als een record en die ophalen wanneer nodig, denk dat dat het beste is...
  maandag 14 september 2009 @ 11:53:00 #174
63192 ursel
"Het Is Hier Fantastisch!
pi_72725637
Iemand misschien ergens een goede documentatie over DOMDocument? ;(
Van de php website wordt momenteel nog niet al te veel wijs.. :')

Wat wil ik, een XML inladen en middels een functie een array ergens in het midden van de XML toevoegen.

Alleen eindig ik telkens in
quote:
Fatal error: Uncaught exception 'DOMException' with message 'Wrong Document Error'
De functie

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
<?php
    
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;
    }
?>
pi_72766785
hoe heette de functie van als insert al is gedaan update? ?
daar kwam iemand met een hele handige functie mee aan! ben hem ff kwijt
Redacted
  dinsdag 15 september 2009 @ 14:59:33 #176
75592 GlowMouse
l'état, c'est moi
pi_72766870
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72766879
Edit: te laat.
pi_72766906
quote:
hartelijk bedankt =)
Redacted
  dinsdag 15 september 2009 @ 15:12:45 #179
63192 ursel
"Het Is Hier Fantastisch!
pi_72767318
Iemand nog antwoord op mijn vraag..
  woensdag 16 september 2009 @ 10:14:42 #180
85514 ralfie
!Yvan eht nioj
pi_72794447
quote:
Op dinsdag 15 september 2009 15:12 schreef ursel het volgende:
Iemand nog antwoord op mijn vraag..
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.
pi_72795454
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?
Trotse poster van het 37000000ste bericht ^O^
  woensdag 16 september 2009 @ 10:50:55 #182
75592 GlowMouse
l'état, c'est moi
pi_72795501
http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

Maar ik gok zomaar dat pps geen los woord is.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72795543
quote:
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.
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 niet
Trotse poster van het 37000000ste bericht ^O^
  woensdag 16 september 2009 @ 10:55:17 #184
75592 GlowMouse
l'état, c'est moi
pi_72795641
Hoeveel records heb je?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72795682
quote:
Op woensdag 16 september 2009 10:55 schreef GlowMouse het volgende:
Hoeveel records heb je?
Deze tabel bestaat uit 73 rijen
Trotse poster van het 37000000ste bericht ^O^
  woensdag 16 september 2009 @ 10:57:55 #186
75592 GlowMouse
l'état, c'est moi
pi_72795711
http://dev.mysql.com/doc/(...)atural-language.html

"Some words are ignored in full-text searches"
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72795760
quote:
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"
ah, dat verklaart een hoop weet 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

[ Bericht 9% gewijzigd door daReaper op 16-09-2009 11:32:58 ]
Trotse poster van het 37000000ste bericht ^O^
pi_72796134
quote:
Op vrijdag 11 september 2009 12:29 schreef slacker_nl het volgende:
Wat doe je dan in het php topic??
Omdat 't een regex vraag was
pi_72799049
quote:
Op woensdag 16 september 2009 10:59 schreef daReaper het volgende:

[..]

ah, dat verklaart een hoop weet 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
Zo maar opgelost:

SELECT id FROM projecten WHERE titel REGEXP '(^|[[:space:]])pps([[:space:]]|$)' OR omschrijving REGEXP '(^|[[:space:]])pps([[:space:]]|$)'

werkt prima
Trotse poster van het 37000000ste bericht ^O^
  woensdag 16 september 2009 @ 12:40:34 #190
75592 GlowMouse
l'état, c'est moi
pi_72799110
titel LIKE '% pps %' werkte niet? De performance penalty van dit soort constructies wil je niet weten
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72799457
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
Dat vermoedde ik inderdaad, maar het is niet een heel erg grote database, dus ik denk niet dat dit problemen op gaat leveren.


LIKE '% pps %' vindt geen resultaten waar de zin begint met "pps" of ermee eindigt, bijvoorbeeld.
Trotse poster van het 37000000ste bericht ^O^
pi_72811076


[ Bericht 41% gewijzigd door daReaper op 16-09-2009 22:56:25 ]
Trotse poster van het 37000000ste bericht ^O^
pi_72818796
Iemand enig idee hoe je met xPath de meta gegevens van een site kan opvragen? kom er maar niet uit. Of zijn de meta gegevens niet mogelijk? (lijkt me trouwens erg gek..)

1
2
3
4
5
6
7
8
9
10
11
<?php
        $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;    
?>
De enige echte BaggerUser!
Riemen
fiets kopen
pi_72834481
Even een vraagje stel ik heb een tabel met

gebruikerid en pakketid.

nu kan een gebruiker meerdere pakketten toevoegen maar wou ik voorkomen dat hij dezelfde entrys toevoegd.

gekoppelde sleutel alleen ik heb geen idee hoe ik dit moet uitvoeren in phpmyadmin. want unieke pakketid betekent dat klant 2 niet hetzelfde pakket kan kiezen.

iemand die een idee heeft ?

kort samengevat : dubbele primaire sleutel in phpmyadmin.
Redacted
  donderdag 17 september 2009 @ 11:44:15 #195
75592 GlowMouse
l'état, c'est moi
pi_72834558
een primary key of unique toevoegen op (gebruikerid,pakketid). Dat kan gewoon onder Structure, Details.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_72834675
quote:
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.
Tof dit werkte
Redacted
  donderdag 17 september 2009 @ 14:22:27 #197
72762 marq
Mr. Psychonaut
pi_72839131
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?
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.
Sigmoid: f(x) = 1 / (1 + 2.718281828458# ^ -x)
  donderdag 17 september 2009 @ 19:02:34 #198
65490 whoops
Home is where the heart is...
pi_72848822
Geen PHP maar een wel MySQL vraag.

Ik heb de volgende tabel:

1
2
3
4
5
6
7
8
9
10
11
12
id | soort | datestart  
-----------------------
 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


Nu wil ik per week de output tellen, dit kan via de volgende query:

1
2
3
4
5
6
SELECT DISTINCT 
   from_unixtime(datestart,"%Y-%v") AS weekInYear,  
   count(*) as numberOfRegistrations 
   FROM Listitems 
   GROUP BY weekInYear 
   ORDER BY datestart


Dan krijg ik het volgende als output:

1
2
3
4
weekInYear | numberOfRegistrations
   2009-36 | 5
   2009-37 | 3
   2009-38 | 2


So far so good. Maar wat ik eigenlijk wil, is de 'soort' erbij tellen, en dus dit als output krijgen:

1
2
3
4
weekInYear | soort1 | soort2 | numberOfRegistrations
   2009-36 |      3 |      2 | 5
   2009-37 |      1 |      2 | 3
   2009-38 |      1 |      1 | 2


Het aantal 'soorten' staat hierbij vast, dat zijn er 2. Het is dus geen probleem om in de query ergens harcoded 'where soort = 1 en/of where soort = 2' te hebben.

Model en Data
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE TABLE `Listitems` (
  `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');
In the beginning, the universe was created. This made a lot of people very angry and has been widely regarded as a bad move.
  donderdag 17 september 2009 @ 19:07:55 #199
75592 GlowMouse
l'état, c'est moi
pi_72848985
Het makkelijkste en meest logische is om GROUP BY week,group te gebruiken en dan je applicatie de rest te laten doen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 17 september 2009 @ 19:16:00 #200
65490 whoops
Home is where the heart is...
pi_72849283
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.

Het kan zo simpel zijn! Thanks dude!

1
2
3
4
5
6
7
 SELECT DISTINCT 
   from_unixtime(datestart,"%Y-%v") AS weekInYear,  
   soort,
   count(*) as numberOfRegistrations 
   FROM Listitems 
   GROUP BY weekInYear , soort
   ORDER BY datestart


Bovenstaande query heeft dit als output:

1
2
3
4
5
6
2009-36   1   3
2009-36   2   2
2009-37   2   2
2009-37   1   1
2009-38   1   1
2009-38   2   1


Hier kan ik wel weer verder mee!
In the beginning, the universe was created. This made a lot of people very angry and has been widely regarded as a bad move.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')