abonnement Unibet Coolblue
  dinsdag 15 februari 2011 @ 13:36:12 #1
75592 GlowMouse
l'état, c'est moi
pi_92816501

cd niet bijgeleverd

Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt :)

Vorige delen:
Via de zoekfunctie

Zie ook:
PHP Dataverwerking
Officiële PHP website
PHP Documentatie
MySQL Reference Manual
Yet Another PHP Faq
PHP Cheat Sheet
PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

Tutorials:
W3Schools PHP
W3Schools SQL

Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92816616
Top GlowMouse! ik ben weer van de partij! :)

@GlowMouse; het inserten van 1.500.000 records in je tabellen (tags/tag_links) kosten aardig wat tijd, is dat normaal?
Just say hi!
  dinsdag 15 februari 2011 @ 13:40:22 #3
75592 GlowMouse
l'état, c'est moi
pi_92816666
Meer dan een uurtje mag het niet kosten. Indices tijdelijk uitzetten (niet verwijderen) helpt, storage engine tweaken soms ook.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 15 februari 2011 @ 13:40:55 #4
305897 remi1986
This MF is infected by madness
pi_92816684
Lang leve bigdump ^O^
pi_92818192
@GlowMouse, lol het duurt zekers 8 uur maar dat is dan ook incl indices, bestanden en andere tabellen vullen...

heb zelf totaal geen ervaring met de engine te tweaken dus moet ik gewoon maar even rustig afwachten (tis een slome asus laptop :P)

@remi1986; dat is nu geen optie aangezien ik werk met on duplicate key en ruim 250K aan bestanden :@ maar zet nu wel de queries in een extern bestand zo dat ik als er iets fout is gegaan ik alles zo terug kan zetten zonder weer alle bestanden langs te lopen
Just say hi!
pi_92855657
Pff mijn import is voltooid en heb nu de volgende query; die er volgens mij nog steeds lang over doet.

1
2
3
4
5
6
7
8
9
10
SELECT `pix`.*,
`pix_tags`.`tag`
FROM `pix_tags`
LEFT JOIN `pix_tags_links`
ON `pix_tags_links`.`tag_id` = `pix_tags`.`tag_id`
LEFT JOIN `pix`
ON `pix`.`pix_id` = `pix_tags_links`.`pix_id`
WHERE `pix_tags`.`tag` LIKE '%cool%'  
AND `pix`.`adult` = 'n'
LIMIT 0,20

deze duurt wel 0.3 seconden voor maar 241K tags / 1.500k aan tag_links

Kan ik deze nog verder optimaliseren?
Just say hi!
  woensdag 16 februari 2011 @ 09:12:25 #7
305897 remi1986
This MF is infected by madness
pi_92855952
quote:
1s.gif Op woensdag 16 februari 2011 08:57 schreef Chandler het volgende:
Pff mijn import is voltooid en heb nu de volgende query; die er volgens mij nog steeds lang over doet.

[ code verwijderd ]

deze duurt wel 0.3 seconden voor maar 241K tags / 1.500k aan tag_links

Kan ik deze nog verder optimaliseren?
Je doet
1SELECT `pix`.*,

Wat alle kolommen selecteert. Heb je ze allemaal nodig? Misschien kan je alleen de kolommen selecteren die je echt nodig hebt. Volgens mij scheelt dat toch weer iets.
pi_92856090
klopt er zouden een paar kolommen af kunnen maar zou niet weten of dat echt wel een besparing oplevert (extreme besparing)... maar zal het proberen!

-edit-
geprobeerd totaal geen extra preformance winst :{
Just say hi!
  woensdag 16 februari 2011 @ 09:31:23 #9
305897 remi1986
This MF is infected by madness
pi_92856328
quote:
1s.gif Op woensdag 16 februari 2011 09:19 schreef Chandler het volgende:
klopt er zouden een paar kolommen af kunnen maar zou niet weten of dat echt wel een besparing oplevert (extreme besparing)... maar zal het proberen!

-edit-
geprobeerd totaal geen extra preformance winst :{
Oke, naja viel te proberen. Je query is eigenlijk ook helemaal niet zo lang en haalt maar 20 records op.

Vond op http://www.debianadmin.com/top-84-mysql-performance-tips.html nog een lijst met performance tips. Misschien staat er nog wat tussen. Ik weet niet in hoeverre die lijst goed is. Just trying to help :@
pi_92856405
Alle hulp is welkom! en zo leren we allerbeide weer wat meer :) ik ga het eens doornemen! :)
Just say hi!
pi_92857244
quote:
1s.gif Op woensdag 16 februari 2011 08:57 schreef Chandler het volgende:
Pff mijn import is voltooid en heb nu de volgende query; die er volgens mij nog steeds lang over doet.

[ code verwijderd ]

deze duurt wel 0.3 seconden voor maar 241K tags / 1.500k aan tag_links

Kan ik deze nog verder optimaliseren?
Met goedgeplaatste indices moet je een eind kunnen komen, volgens mij :)
  woensdag 16 februari 2011 @ 10:33:33 #12
75592 GlowMouse
l'état, c'est moi
pi_92857889
quote:
WHERE `pix_tags`.`tag` LIKE '%cool%'
:?

http://gathering.tweakers.net/forum/list_messages/1429432
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92858216
Oh, dat had ik nog niet eens gezien, maar dat is helemaal niet te indexeren. Dus met een goede index kun je ook niets oplossen, simpelweg omdat een goede index niet mogelijk is.

Chandler, LIKE %cool% komt op hetzelfde neer als de Dikke Van Dale pakken en alle woorden waar een Q in staat opzoeken. Dat moet je niet willen.
  woensdag 16 februari 2011 @ 14:49:27 #14
334357 Emery
Heavy Metal King!
pi_92866884
Weet iemand wat hier fout gaat?

1
2
3
<?php
$query 
"SELECT agenda_id, agendatitel, agendaplaats, from_unixtime(agendadatum, '%d-%m-%Y') AS datum, agendabeschrijving FROM agenda WHERE agendadatum >= NOW() ORDER BY agenda_id ASC";
?>

Ik wil dat hij alle data van vandaag en ná vandaag laat zien. Data van voor vandaag dus niet. Hij geeft nu gewoon 0 resultaat.

Als ik inplaats van NOW(), $vandaag = date("d-m-Y"); gebruik en $vandaag achter WHERE invul laat hij álle resultaten zien inplaats van alleen de >=.

Ben ongetwijfeld dom bezig, maar goed, kom er niet uit.
"My name is Emery and primarily I make noises - and ideas".
  woensdag 16 februari 2011 @ 14:51:29 #15
305897 remi1986
This MF is infected by madness
pi_92866968
Werken datum velden in MySQL niet in Y-m-d formaat?
  woensdag 16 februari 2011 @ 14:52:32 #16
334357 Emery
Heavy Metal King!
pi_92867026
quote:
1s.gif Op woensdag 16 februari 2011 14:51 schreef remi1986 het volgende:
Werken datum velden in MySQL niet in Y-m-d formaat?
Hij zet de datum als unix_timestamp in een varchar veld.
"My name is Emery and primarily I make noises - and ideas".
  woensdag 16 februari 2011 @ 14:53:18 #17
305897 remi1986
This MF is infected by madness
pi_92867064
dan moet je

1
2
3
<?php
strtotime
(date("Y-m-d"));
?>

gebruiken denk ik aangezien het anders geen timestamp is
  woensdag 16 februari 2011 @ 14:55:31 #18
75592 GlowMouse
l'état, c'est moi
pi_92867153
mktime
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 16 februari 2011 @ 14:58:02 #19
305897 remi1986
This MF is infected by madness
pi_92867267
Overigs doe je

1from_unixtime(agendadatum, '%d-%m-%Y') AS datum

en

1WHERE agendadatum >= NOW()

moet dat dan niet datum zijn i.p.v. agendadatum?
  woensdag 16 februari 2011 @ 14:58:52 #20
334357 Emery
Heavy Metal King!
pi_92867306
quote:
1s.gif Op woensdag 16 februari 2011 14:58 schreef remi1986 het volgende:
Overigs doe je

[ code verwijderd ]

en

[ code verwijderd ]

moet dat dan niet datum zijn i.p.v. agendadatum?
Nee, want als je daar agendadatum van maakt gaat hij vervolgens WHERE doen op de unixtimestamp die al is omgezet volgens mij.
"My name is Emery and primarily I make noises - and ideas".
  woensdag 16 februari 2011 @ 15:13:57 #21
305897 remi1986
This MF is infected by madness
pi_92867953
Klopt idd. Maar dan kan je toch gewoon een timestamp maken met strtotime of mktime en dan kijken welke varchar daar boven zit?

Ik heb zelf even een testtabel gemaakt met een varchar waar ik 2 timestamps in heb gezet.
Die van 1-1-2011 en 10-10-2011. Een in de toekomst en één in het verleden.

Als ik dan
1SELECT from_unixtime(timestamp, '%d-%m-%Y') AS datum FROM test WHERE timestamp <= NOW()


krijg ik ze beide

en met >= niks
  woensdag 16 februari 2011 @ 15:19:16 #22
334357 Emery
Heavy Metal King!
pi_92868214
Succes.
"My name is Emery and primarily I make noises - and ideas".
  woensdag 16 februari 2011 @ 15:20:06 #23
305897 remi1986
This MF is infected by madness
pi_92868254
quote:
6s.gif Op woensdag 16 februari 2011 15:19 schreef Emery het volgende:
Succes.
Opgelost?
pi_92868637
quote:
14s.gif Op woensdag 16 februari 2011 14:52 schreef Emery het volgende:

[..]

Hij zet de datum als unix_timestamp in een varchar veld.
Een unix timestamp is gewoon een getal, kan dus prima in een INT-veld :)

En verder zou ik de datum gewoon als timestamp uit de database halen. Je kunt op een veel later moment (namelijk als je alles op het scherm zet) nog wel bepalen hoe die datum precies op het scherm moet verschijnen.
pi_92874555
quote:
Ik heb je topic meerdere keren door gelezen maar kan niet vinden wat ik fout doe!

Daarbij komt dat ik niets anders weet om te zoeken op tags, en aangezien ik dat wel wil heb ik dit geprobeerd. Kun je mij wijzen op,mijn fouten zodat ik er van kan leren?
Just say hi!
  woensdag 16 februari 2011 @ 17:49:28 #26
75592 GlowMouse
l'état, c'est moi
pi_92875394
Vergelijk mijn queries maar met jouw queries. Ik heb per tag één id.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92876014
Dat heb ik ook, maar ik heb meerdere tags per plaatje
Just say hi!
pi_92876637
Simpel tooltje om timestamp om te zetten naar utc+1
http://tools.pcextreme.nl/?page=date
"Op Fok! val je pas op als je normaal bent." -mazaru
  woensdag 16 februari 2011 @ 18:48:54 #29
75592 GlowMouse
l'état, c'est moi
pi_92877862
quote:
1s.gif Op woensdag 16 februari 2011 18:04 schreef Chandler het volgende:
Dat heb ik ook, maar ik heb meerdere tags per plaatje
Dat sluit mijn db-opzet niet uit.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92881837
Klopt, maar wijs mij dan op het gene wat ik fout doe want nu snap ik er de balle van....
Just say hi!
  woensdag 16 februari 2011 @ 20:03:05 #31
75592 GlowMouse
l'état, c'est moi
pi_92882432
Jij koppelt meer tags aan één tag-id.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92896884
nee, ook niet. Ik gebruik precies de tabellen die jij ook gebruikt in je voorbeeld op tweakers! tenzij je het hebt over de 'link' tabel tussen mijn plaatjes en de tags... maar dat is ook nodig voor mijn systeem want aan 1 tag per plaatje heb ik weinig! :)
Just say hi!
  woensdag 16 februari 2011 @ 23:40:11 #33
75592 GlowMouse
l'état, c'est moi
pi_92897653
waarom gebruik je dan LIKE '%cool%' en niet ='cool'?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92898640
omdat ik eventueel ook tags wil pakken die een deel van het woord bevatten!, of denk je dat dat over de top is?
Just say hi!
  donderdag 17 februari 2011 @ 00:07:48 #35
75592 GlowMouse
l'état, c'est moi
pi_92898720
oh, je moet altijd met hele tags werken
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92898876
LOL, maar heb je ook een idee of ik dit eventueel voor delen van tags kan gebruiken of moet ik dan over een heel andere opzet gaan nadenken? zo niet dan houden we het op hele! :)
Just say hi!
  donderdag 17 februari 2011 @ 00:14:20 #37
75592 GlowMouse
l'état, c'est moi
pi_92898914
quote:
1s.gif Op woensdag 16 februari 2011 10:46 schreef Light het volgende:
Chandler, LIKE %cool% komt op hetzelfde neer als de Dikke Van Dale pakken en alle woorden waar een Q in staat opzoeken. Dat moet je niet willen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 17 februari 2011 @ 01:44:23 #38
334357 Emery
Heavy Metal King!
pi_92901341
Hmm. Ik weet niet wat ik heb gedaan maar vanmiddag deed mijn script nog wat hij moest doen (gewoon de datum die is ingevuld in het formulier naar unix_timestamp omzetten en in de database pleuren) maar opeens (volgens mij heb ik niks veranderd?) doet hij het alleen nog maar de datum van vandaag in de database zetten.

1
2
3
4
5
6
7
8
9
10
<?php
$mktijd 
mktime($maand$dag$jaar);
        
        
$sql"INSERT INTO agenda (agendatitel, agendaplaats, agendadatum, agendabeschrijving) 
        VALUES 
            ('" 
mysql_real_escape_string($agendatitel) . "',
             '" 
mysql_real_escape_string($agendaplaats) . "', 
             '" 
mysql_real_escape_string($mktijd) . "', 
             '" 
mysql_real_escape_string($agendabeschrijving) . "')";
?>

Die variabelen $maand, $dag en $jaar verkrijgt hij door $maand = $_POST['maand']; et cetera.
"My name is Emery and primarily I make noises - and ideas".
pi_92901423
1$mktijd = mktime(0,0,0, $maand, $dag, $jaar);
  donderdag 17 februari 2011 @ 01:51:51 #40
334357 Emery
Heavy Metal King!
pi_92901503
quote:
5s.gif Op donderdag 17 februari 2011 01:47 schreef Tegan het volgende:

[ code verwijderd ]

Lijkt me sterk dat het daaraan ligt? Hij deed het vanmiddag gewoon goed en toen heb ik ook geen 0,0,0 gebruikt. Overigens is nu opeens de webserver van de website waar ik aan het testen ben down. Godver.
"My name is Emery and primarily I make noises - and ideas".
pi_92901530
quote:
14s.gif Op donderdag 17 februari 2011 01:51 schreef Emery het volgende:

[..]

Lijkt me sterk dat het daaraan ligt? Hij deed het vanmiddag gewoon goed en toen heb ik ook geen 0,0,0 gebruikt. Overigens is nu opeens de webserver van de website waar ik aan het testen ben down. Godver.
Enigste wat me opviel. Verder weet ik het ook niet :P . [/newb]

Lijkt me dat er vandaag al iets raars was met de server omdat hij nu down is. Dus ik denk dat het daaraan ligt. Als het eerder nooit een probleem was.
  donderdag 17 februari 2011 @ 01:58:47 #42
334357 Emery
Heavy Metal King!
pi_92901613
Ik denk dat er iets fout gaat in de POST want als ik in mijn 'uw bericht is toegevoegd'-message $dag, $maand en $jaar echo krijg ik gewoon $dag, $maand en $jaar te zien in plaats van de waardes die zijn ingevuld. Apart.
"My name is Emery and primarily I make noises - and ideas".
pi_92901617
Wat geeft vardump($mktijd) en wat is de unixtimestamp van vandaag?

Hm, het is vast een fout in de postwaarden doorsturen dan.
  donderdag 17 februari 2011 @ 02:11:19 #44
334357 Emery
Heavy Metal King!
pi_92901814
Oké, dat is het ook niet. Het ligt aan mijn wijzigingsformulier denk ik. Hij voegt ze nu prima toe, zodra ik in mijn wijzigingsformulier de datum aanpas slaat hij hem niet goed op in de database. Als ik daar $maand e.d. echo laat hij overigens wél de goede (nieuwe) data zien na het opslaan. Dus dan gaat er iets fout bij de mktime() om het in de database op te slaan denk ik. Als hij geen waarden vindt in de variabelen bij mktime($maand, $blabla), ziet hij het dan gewoon als mktime()? Want als hij dat doet kan het wel kloppen dat hij vandaag in de database zet.
"My name is Emery and primarily I make noises - and ideas".
pi_92901853
vardump(mktime()) en je hebt je antwoord.

quote:
mktime() returns the Unix timestamp of the arguments given. If the arguments are invalid, the function returns FALSE (before PHP 5.1 it returned -1).
pi_92901883
Ik weet het denk ik. Als je mktime() dus false is of een foute waarde heeft dan komt er automatisch vandaag in de database omdat het veld niet leeg mag zijn ofzo?

if ($mktijd) { voer in }
else { error }
  donderdag 17 februari 2011 @ 02:21:32 #47
334357 Emery
Heavy Metal King!
pi_92901921
Jup. Krijg de unixtimestamp van dit moment als ik dat doe. Géén idee waarom hij het niet doet maar in ieder geval weet ik nu waar de fout zit.
"My name is Emery and primarily I make noises - and ideas".
  donderdag 17 februari 2011 @ 02:25:42 #48
334357 Emery
Heavy Metal King!
pi_92901980
Et voila. Blijkbaar maakt het hem bij een INSERT niet uit dat er geen 0, 0, 0, staat in de mktime() en bij een UPDATE wel.. 0, 0, 0 toegevoegd in mktime() en hij werkt.

:') !
"My name is Emery and primarily I make noises - and ideas".
pi_92902019
Haha, dus mijn eerste opmerking was de fout :D .
  donderdag 17 februari 2011 @ 02:32:12 #50
334357 Emery
Heavy Metal King!
pi_92902047
quote:
14s.gif Op donderdag 17 februari 2011 02:29 schreef Tegan het volgende:
Haha, dus mijn eerste opmerking was de fout :D .
Haha ongeveer wel ja. Maar toen dacht ik nog dat het aan de INSERT lag. En niet aan het update script. Nou ja, bedankt voor het meedenken!
"My name is Emery and primarily I make noises - and ideas".
pi_92903895
omdat het toevoegen van een kolom dmv een variable niet echt goed werk ontvangen hier
moet ik dus redelijk opnieuw beginnen
om het nu een beter inzicht te krijgen hoe ik de db moet opbouwen heb ik jullie opbouwende kritiek nodig :)

ik wil dus dat een gebruiker op een bepaalde datum kan aangeven of hij wel of niet aanwezig is

tabel 1
uniek gebruikers id (G_id)
gebruikers naam (G_name)

tabel 2
afspraak id (A_id)
datum
wat
waar

tabel 3
G_id
A_id
aanwezig (j/n/?)

Tabel 3 zal voor elke unieke afspraak zijn:
Tabel 3 voor datum1
Tabel 4 voor datum2
Tabel 5 voor datum3 etc etc

Klopt deze opzet?
  donderdag 17 februari 2011 @ 09:14:12 #52
305897 remi1986
This MF is infected by madness
pi_92904409
quote:
1s.gif Op donderdag 17 februari 2011 08:48 schreef MrNiles het volgende:
omdat het toevoegen van een kolom dmv een variable niet echt goed werk ontvangen hier
moet ik dus redelijk opnieuw beginnen
om het nu een beter inzicht te krijgen hoe ik de db moet opbouwen heb ik jullie opbouwende kritiek nodig :)

ik wil dus dat een gebruiker op een bepaalde datum kan aangeven of hij wel of niet aanwezig is

tabel 1
uniek gebruikers id (G_id)
gebruikers naam (G_name)

tabel 2
afspraak id (A_id)
datum
wat
waar

tabel 3
G_id
A_id
aanwezig (j/n/?)

Tabel 3 zal voor elke unieke afspraak zijn:
Tabel 3 voor datum1
Tabel 4 voor datum2
Tabel 5 voor datum3 etc etc

Klopt deze opzet?
Je hebt die extra tabellen niet nodig.

Je hebt aan een koppeltabel genoeg met g_id en a_id. Staat de gebruiker gekoppeld aan de afspraak (welke al een datum hebben), dan komt hij/zij. Anders niet.
  donderdag 17 februari 2011 @ 09:19:14 #53
305897 remi1986
This MF is infected by madness
pi_92904524
Stel je wil weten welke gebruikers vandaag komen

1
2
3
<?php
$datum 
date("Y-m-d");
?>

of als je timestamps gebruikt

1
2
3
<?php
$datum 
strtotime(date("Y-m-d");
?>

1
2
3
<?php
$query 
mysql_query("SELECT g.name FROM gebruikers AS g INNER JOIN koppeltabel k ON ( k.g_id = g.g_id ) INNER JOIN afspraak a ON ( k.a_id = a.a_id ) WHERE a.datum = '".mysql_real_escape_string($datum)."' ");
?>


[ Bericht 1% gewijzigd door remi1986 op 17-02-2011 09:29:24 (Query was niet goed) ]
pi_92904962
quote:
1s.gif Op donderdag 17 februari 2011 09:19 schreef remi1986 het volgende:
Stel je wil weten welke gebruikers vandaag komen

[ code verwijderd ]

of als je timestamps gebruikt

[ code verwijderd ]

[ code verwijderd ]

Als je timestamps gebruikt, kan het makkelijker:
1
2
3
4
5
<?php
$datum 
mktime(); // Timestamp van huidige tijd
// Alternatief:
$datum mktime(000// Timestamp van huidige datum, met tijd 00:00:00
?>

En mysql_real_escape_string() lijkt me niet direct nodig als je weet dat de variabele altijd een gegenereerd datumveld bevat.
  donderdag 17 februari 2011 @ 09:39:18 #55
305897 remi1986
This MF is infected by madness
pi_92905116
quote:
1s.gif Op donderdag 17 februari 2011 09:33 schreef Light het volgende:

[..]

Als je timestamps gebruikt, kan het makkelijker:

[ code verwijderd ]

En mysql_real_escape_string() lijkt me niet direct nodig als je weet dat de variabele altijd een gegenereerd datumveld bevat.
Ja kan ook. En ben met je eens dat escapen niet nodig is, maar ik doe het zelf altijd standaard. Als het straks uit bijvoorbeeld POST data komt, waar je eerst een datum moet kiezen is het weer user input.

[ Bericht 12% gewijzigd door remi1986 op 17-02-2011 09:45:32 ]
pi_92905456
quote:
Je hebt die extra tabellen niet nodig.

Je hebt aan een koppeltabel genoeg met g_id en a_id. Staat de gebruiker gekoppeld aan de afspraak (welke al een datum hebben), dan komt hij/zij. Anders niet.
maar de gebruiker met zelf ergens kunnen aangeven of hij wel of niet aanwezig kan zijn
dit moet toch ergens opgeslagen worden....

ooh..tijdens het typen bedenk ik me..je slaat alleen op als hij WEL aan wezig is..
hmm...en als ik 3 verschillende statussen wil hebben...JA NEE en ONBEKEND
  donderdag 17 februari 2011 @ 09:55:10 #57
305897 remi1986
This MF is infected by madness
pi_92905498
quote:
1s.gif Op donderdag 17 februari 2011 09:53 schreef MrNiles het volgende:

[..]

maar de gebruiker met zelf ergens kunnen aangeven of hij wel of niet aanwezig kan zijn
dit moet toch ergens opgeslagen worden....

ooh..tijdens het typen bedenk ik me..je slaat alleen op als hij WEL aan wezig is..
hmm...en als ik 3 verschillende statussen wil hebben...JA NEE en ONBEKEND
Dan voeg je die toe aan die koppeltabel..

a_id,g_id,status
1,1,Ja

Je kan dan in de JOIN nog aangeven als je een bepaalde status wil
pi_92905568
quote:
Dan voeg je die toe aan die koppeltabel..

a_id,g_id,status
1,1,Ja

Je kan dan in de JOIN nog aangeven als je een bepaalde status wil
maar dan moet ik voor die status een tabel maken
want voor elke andere datum kan een andere status zijn
  donderdag 17 februari 2011 @ 09:59:35 #59
305897 remi1986
This MF is infected by madness
pi_92905620
quote:
1s.gif Op donderdag 17 februari 2011 09:57 schreef MrNiles het volgende:

[..]

maar dan moet ik voor die status een tabel maken
want voor elke andere datum kan een andere status zijn
Nee is niet nodig op zich, want gebruiker 2 kan voor afspraak 1 een status NEE/ONBEKEND hebben. Je koppelt een gebruiker aan een afspraak. Dezelfde gebruiker kan op voor een andere afspraak een andere status hebben.

Je kan wel een tabel maken met de statussen. Dan krijg je dus 1,1,1 in de koppeltabel, maar met maar 3 statussen zou ik dat niet doen.
pi_92906271
quote:
Nee is niet nodig op zich, want gebruiker 2 kan voor afspraak 1 een status NEE/ONBEKEND hebben. Je koppelt een gebruiker aan een afspraak. Dezelfde gebruiker kan op voor een andere afspraak een andere status hebben.

Je kan wel een tabel maken met de statussen. Dan krijg je dus 1,1,1 in de koppeltabel, maar met maar 3 statussen zou ik dat niet doen
ik probeer het te snappen he :p

ik wil dat een tabel automatisch wordt aangemaakt
zo min mogelijk (geen) handwerk
zoals eerder door jullie aangegeven mag ik niet kolommen toevoegen bv aanwezig_$datum1

hoe kan ik tegelijkertijd meerdere datums voorleggen aan gebruikers?
en hoe kan ik die in een tabel dan bewaren?
  donderdag 17 februari 2011 @ 10:34:51 #61
305897 remi1986
This MF is infected by madness
pi_92906480
De kolommen tabellen (edit pfff het is nog vroeg c_/ ) voor de gebruikers, de afspraken en de koppeltabel maak je in het begin aan. Hoef je dan verder niet meer aan te komen.

Je kan dan afspraken maken (kan je iets voor maken, of je voert nieuwe afspraken in de database in). Deze afspraken hebben een datum en eventueel een plaats en onderwerp (wat is er te doen).

Je kan dan deze afspraken uitlezen en de gebruiker laten invullen of deze wel komt (status ja), niet komt (status nee) of onbekend (status onbekend).

Stel je hebt 2 afspraken

1
2
3
a_id,datum,waar,wat
1,2011-02-17,locatie,workshop
2,2011-02-18,locatie,meeting

Koppeltabel:
1
2
3
4
5
6
7
a_id,g_id,status
1,1,Ja
1,2,Nee
1,3,Onbekend
2,1,Nee
2,2,Onbekend
2,3,Ja

Gebruiker 1 komt dan wel op afspraak 1, maar niet op afspraak 2
Gebruiker 2 komt niet op afspraak 1 en weet nog niet voor afspraak 2
Gebruiker 3 weet het nog niet voor afspraak 1 en komt wel op afspraak 2

Heb ff datumvelden gebruikt, je kan ook timestamps gebruiken, maar voor dit voorbeeld is het misschien wat duidelijker als er datums in staan
pi_92906600
Welke joepmeloen verzint er nou kolomnamen als "waar" en "wat"?
  donderdag 17 februari 2011 @ 10:40:01 #63
305897 remi1986
This MF is infected by madness
pi_92906652
quote:
10s.gif Op donderdag 17 februari 2011 10:38 schreef KomtTijd... het volgende:
Welke joepmeloen verzint er nou kolomnamen als "waar" en "wat"?
quote:
1s.gif Op donderdag 17 februari 2011 08:48 schreef MrNiles het volgende:
omdat het toevoegen van een kolom dmv een variable niet echt goed werk ontvangen hier
moet ik dus redelijk opnieuw beginnen
om het nu een beter inzicht te krijgen hoe ik de db moet opbouwen heb ik jullie opbouwende kritiek nodig :)

ik wil dus dat een gebruiker op een bepaalde datum kan aangeven of hij wel of niet aanwezig is

tabel 1
uniek gebruikers id (G_id)
gebruikers naam (G_name)

tabel 2
afspraak id (A_id)
datum
wat
waar

tabel 3
G_id
A_id
aanwezig (j/n/?)

Tabel 3 zal voor elke unieke afspraak zijn:
Tabel 3 voor datum1
Tabel 4 voor datum2
Tabel 5 voor datum3 etc etc

Klopt deze opzet?
Had even zijn voorbeeld gebruikt. Het is om het idee even duidelijk te maken. Zolang het idee maar van tafel is, dat voor iedere datum een aparte tabel/kolom moet worden aangemaakt :)
pi_92906757
quote:
Welke joepmeloen verzint er nou kolomnamen als "waar" en "wat"?
wat is het probleem?
zolang je geen WHERE ofzo gaat gebruiken..dan lijkt me dat toch niet zo'n probleem
of mis ik iets...stomme vraag..ik mis een heleboel op php/sql..maar goed..
pi_92906992
quote:
1s.gif Op donderdag 17 februari 2011 10:43 schreef MrNiles het volgende:

[..]

wat is het probleem?
zolang je geen WHERE ofzo gaat gebruiken..dan lijkt me dat toch niet zo'n probleem
of mis ik iets...stomme vraag..ik mis een heleboel op php/sql..maar goed..
Het probleem is, dat als je geen beschrijvende kolomnamen gebruikt, je over een week al geen flauw benul meer hebt wat je query in hemelsnaam doet.
pi_92907235
quote:
Het probleem is, dat als je geen beschrijvende kolomnamen gebruikt, je over een week al geen flauw benul meer hebt wat je query in hemelsnaam doet.
op die fiets...tja..hoeveel uitgebreider moet het zijn?
ik weet toch wat die waar en wat betekenen in dit geval

maar doe eens een voorstel hoe het zou kunnen zijn
  donderdag 17 februari 2011 @ 11:04:39 #67
305897 remi1986
This MF is infected by madness
pi_92907312
quote:
1s.gif Op donderdag 17 februari 2011 11:01 schreef MrNiles het volgende:

[..]

op die fiets...tja..hoeveel uitgebreider moet het zijn?
ik weet toch wat die waar en wat betekenen in dit geval

maar doe eens een voorstel hoe het zou kunnen zijn
Ik gebruik zelf altijd Engelse namen voor tabellen en kolommen. Maar als je het in het NL wilt houden kan je iets doen als locatie en onderwerp.

Maar snap je het idee van de koppeltabel?
pi_92907437
quote:
Ik gebruik zelf altijd Engelse namen voor tabellen en kolommen. Maar als je het in het NL wilt houden kan je iets doen als locatie en onderwerp.
OK..ik heb het probleem eigenlijk met alle file namen..die ben ik nu dus ook maar beter aan het benoemen...edit2 en verwerken3 dan raak je al snel de draad kwijt :)
quote:
Maar snap je het idee van de koppeltabel?
hopelijk kom ik niet stom over als ik vraag dat dit een daadwerkelijk tabel is en niet iets gegenereerd vanuit een join oid
  donderdag 17 februari 2011 @ 11:12:27 #69
305897 remi1986
This MF is infected by madness
pi_92907520
quote:
1s.gif Op donderdag 17 februari 2011 11:10 schreef MrNiles het volgende:

[..]

OK..ik heb het probleem eigenlijk met alle file namen..die ben ik nu dus ook maar beter aan het benoemen...edit2 en verwerken3 dan raak je al snel de draad kwijt :)

[..]

hopelijk kom ik niet stom over als ik vraag dat dit een daadwerkelijk tabel is en niet iets gegenereerd vanuit een join oid
Helemaal als je Engelse en Nederlandse namen door elkaar gebruikt kan ik me dat voorstellen. Leer je aan om een bepaalde structuur (vaste namen en taal voor iets) te gebruiken. Nu weet je nog waar alles staat, maar weet je dat over een half jaar ook nog als je iets wil aanpassen?

Die koppeltabel is inderdaad een vaste tabel. Die moet je dan ook gewoon aanmaken.
pi_92908162
quote:
Die koppeltabel is inderdaad een vaste tabel. Die moet je dan ook gewoon aanmaken.
ik begin m te vatten
nu ff bedenken hoe ik dit om kan toveren tot een goede (inner) join zodat ik iets om mijn scherm krijg te zien
  donderdag 17 februari 2011 @ 11:32:35 #71
305897 remi1986
This MF is infected by madness
pi_92908230
quote:
1s.gif Op donderdag 17 februari 2011 11:30 schreef MrNiles het volgende:

[..]

ik begin m te vatten
nu ff bedenken hoe ik dit om kan toveren tot een goede (inner) join zodat ik iets om mijn scherm krijg te zien
Ik had ergens op deze pagina een voorbeeldquery gemaakt. Kan je vast wel wat mee.
pi_92908619
ben aan het kijken
1
2
3
4
5
6
7
<?php
SELECT g
.name 
FROM gebruikers 
AS 
INNER JOIN koppeltabel k ON 
k.g_id g.g_id 
INNER JOIN afspraak a ON k.a_id a.a_id 
WHERE a.datum '".mysql_real_escape_string($datum)."' ");
?>

wat is die K bij INNER JOIN koppeltabel k
benoem je die koppeltabel nu als k voor de vergelijking daarachter?
  donderdag 17 februari 2011 @ 11:46:13 #73
305897 remi1986
This MF is infected by madness
pi_92908708
quote:
1s.gif Op donderdag 17 februari 2011 11:43 schreef MrNiles het volgende:
ben aan het kijken
[ code verwijderd ]

wat is die K bij INNER JOIN koppeltabel k
benoem je die koppeltabel nu als k voor de vergelijking daarachter?
Ja klopt. Je kan k ook weglaten geloof ik maar moet je de volledige tabelnaam voor de kolommen gebruiken (koppeltabel.g_id = gebruikers.g_id)

Vind het met verkorte namen makkelijker te lezen, helemaal als je het zo in de script zet als jij deed (over meerdere regels)
pi_92909085
hoe kun je ook al weer een var dump van al je variabelen echo'en
kan m niet meer vinden hoe het moest :(
  donderdag 17 februari 2011 @ 11:58:33 #75
305897 remi1986
This MF is infected by madness
pi_92909154
var_dump(get_defined_vars()); ?
pi_92909236
1
2
3
<?php
var_dump
(get_defined_vars()); ?
?>

zoiets was het ja..maar bedenk me dat ik de var uit een array moet hebben...
var_dump(array());?
  donderdag 17 februari 2011 @ 12:02:54 #77
305897 remi1986
This MF is infected by madness
pi_92909308
1
2
3
4
5
<?php
echo "<pre>";
print_r($array);
echo 
"</pre>";
?>

?
pi_92911568
kan iemand op mijn code schieten?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$commando
=
"SELECT gebruikers.G_id, gebruikers.G_name, optredens.O_id,
FROM optredens, gebruikers
INNER JOIN koppeltabel ON (koppeltabel.G_id=gebruikers.G_id)
INNER JOIN optredens ON (koppeltabel.O_id=optredens.O_id)
WHERE koppeltabel.O_id=$id AND koppeltabel.aanwezig='o' "
;

$resultaat=mysql_query($commando);
echo 
"Deze mensen hebben nog niets laten weten";
while(
$array=mysql_fetch_array($resultaat)){
echo 
"<br />";
echo 
"<a href=\"aanwezig_edit.php?name=".$array['G_name']."&id=".$array['O_id']." \"> ".$array['G_name']."</a>";
}
?>

op deze manier hoop ik de mensen (G_name) te filteren die nog status "o" hebben
  donderdag 17 februari 2011 @ 13:13:40 #79
305897 remi1986
This MF is infected by madness
pi_92912024
quote:
1s.gif Op donderdag 17 februari 2011 13:02 schreef MrNiles het volgende:
kan iemand op mijn code schieten?
[ code verwijderd ]

op deze manier hoop ik de mensen (G_name) te filteren die nog status "o" hebben
En dit werkt niet? Probeer de code eens uit in phpmyadmin en verander $id naar een id die bestaat. Kijk dan of je resultaat krijgt.
pi_92912224
die code uitproberen in phpmyadmin werkt goed....meer gaan gebruiker

deze werkt
1
2
3
4
5
6
7
<?php
SELECT gebruikers
.*, optredens.*, koppeltabel.*
FROM gebruikers
INNER JOIN koppeltabel ON 
(koppeltabel.G_id=gebruikers.G_id)
INNER JOIN optredens ON (koppeltabel.O_id=optredens.O_id)
WHERE koppeltabel.O_id=$id AND koppeltabel.aanwezig='o'
?>
  donderdag 17 februari 2011 @ 13:48:59 #81
75592 GlowMouse
l'état, c'est moi
pi_92913793
quote:
1s.gif Op donderdag 17 februari 2011 13:02 schreef MrNiles het volgende:
kan iemand op mijn code schieten?
[ code verwijderd ]

op deze manier hoop ik de mensen (G_name) te filteren die nog status "o" hebben
Altijd leuk, queries tussen je html-output.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92915139
quote:
Altijd leuk, queries tussen je html-output.
beter zo?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
echo "Deze mensen hebben nog niets laten weten";
echo 
"<br />";

$commando_ja=
"SELECT gebruikers.*, optredens.*, koppeltabel.*
FROM gebruikers
INNER JOIN koppeltabel ON (koppeltabel.G_id=gebruikers.G_id)
INNER JOIN optredens ON (koppeltabel.O_id=optredens.O_id)
WHERE koppeltabel.O_id=$id AND koppeltabel.aanwezig='o' "
;

$resultaat=mysql_query($commando_ja);
while(
$array=mysql_fetch_array($resultaat)){
echo 
"<a href=\"aanwezig_edit.php?G_name=".$array['G_name']."&O_id=".$array['O_id']."&G_id=".$array['G_id']."  \"> ".$array['G_name']."</a>";
echo 
"<br />";
}
?>
  donderdag 17 februari 2011 @ 14:19:02 #83
305897 remi1986
This MF is infected by madness
pi_92915279
Nee, wat GlowMouse bedoelt (denk ik), is dat je de query in een aparte functie zet en een array returned.

Die array loop je in je html output door en geef je de namen weer. Zo hou je de queries gescheiden van de html.
pi_92915382
quote:
Die array loop je in je html output door en geef je de namen weer. Zo hou je de queries gescheiden van de html.
dat is de bedoeling
verkeerde methode?
  donderdag 17 februari 2011 @ 14:29:16 #85
305897 remi1986
This MF is infected by madness
pi_92915720
ff snel hoe je het kan doen, namen in het Engels, verzin er maar wat moois voor :P

1
2
3
4
5
6
7
8
<?php
$people_present 
get_present();

foreach(
$people_present as $people)
{
   echo 
hier de link naar aanwezig_edit.php
}
?>

je kan ook een hele algemene functie maken (is denk ik nog mooier, die je als parameter de status meegeeft, die kan je dan invullen in de query

1
2
3
<?php
$people_aanwezig 
get_people($date,$event,"Ja");    // mensen op datum die aanwezig zijn ("ja")
?>

En dan (in een ander bestand, functions.php die je include)

1
2
3
4
5
6
7
8
9
<?php
function get_people($date,$event,$status)
{
    

  
//  aan het einde 
  
return $array;
}
?>
pi_92916075
op die manier..jaja...
zal eens kijken of ik dat veranderd krijg :)
pi_92924895
quote:
1s.gif Op donderdag 17 februari 2011 00:14 schreef GlowMouse het volgende:

[..]

Goed! het systeem zoekt nu op het hele woord en niet op delen! :) maar als ik nu kijk bv naar het forum, daar kun je ook zoeken op delen van woorden en dat is gewoon rete rap, waarom kan dat niet met tags? (kan wel maar qua preformance weer niet...)

:?
Just say hi!
  donderdag 17 februari 2011 @ 18:08:00 #88
75592 GlowMouse
l'état, c'est moi
pi_92924910
quote:
5s.gif Op donderdag 17 februari 2011 18:07 schreef Chandler het volgende:

[..]

Goed! het systeem zoekt nu op het hele woord en niet op delen! :) maar als ik nu kijk bv naar het forum, daar kun je ook zoeken op delen van woorden en dat is gewoon rete rap, waarom kan dat niet met tags? (kan wel maar qua preformance weer niet...)

:?
Welk forum, en op welk woord zoek je?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 17 februari 2011 @ 18:13:46 #89
75592 GlowMouse
l'état, c'est moi
pi_92925086
Ik denk dat je in de war bent met stemming; hij slaat muisje dan op als muis, en in zoekopdrachten vervangt hij muisje ook door muis. Maar door te zoeken op 'ersdo' kom je 'lucifersdoosje' niet tegen.

Sommige zoekmachines staan zoeken op delen van een woord wel toe, Sphinx bijvoorbeeld. Dat lijkt mij gebaseerd op dat muis opgeslagen wordt als muis, uis, is en s. Als je dat met elk woord zo doet en dan alles op alfabet zet (index toevoegt in database-termen) dan kun je heel snel zoeken op een deel van een woord. Maar dat kost wel veel meer opslagruimte.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92956140
hoe krijg ik $G_id hier nu uit?
1
2
3
4
5
6
7
<?php
$result 
mysql_query("SELECT G_id FROM gebruikers WHERE G_name='$G_name' ");
while(
$row mysql_fetch_array($result))
  {
  
$row['G_id'];
  }
?>
  vrijdag 18 februari 2011 @ 10:42:48 #91
305897 remi1986
This MF is infected by madness
pi_92956261
quote:
1s.gif Op vrijdag 18 februari 2011 10:38 schreef MrNiles het volgende:
hoe krijg ik $G_id hier nu uit?
[ code verwijderd ]

echo $row['G_id']; ??

En je krijgt hier maar 1 row uit, dus de while lus is niet nodig.

1
2
3
4
<?php
$row 
mysql_fetch_array($result);
$G_id $row['G_id'];
?>
pi_92956309
klote dat ik niet kan editen..maaruh...zo simpel.... dat ik eerst dacht dat het niet werkte..maar helaas een domme type fout...
gelukt dus :@
sorry!
  vrijdag 18 februari 2011 @ 10:45:22 #93
75592 GlowMouse
l'état, c'est moi
pi_92956348
quote:
1s.gif Op vrijdag 18 februari 2011 10:44 schreef MrNiles het volgende:
klote dat ik niet kan editen..maaruh...zo simpel.... dat ik eerst dacht dat het niet werkte..maar helaas een domme type fout...
gelukt dus :@
sorry!
adblocker?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92956983
quote:
adblocker?
misschien
maar ik zit opgescheept met McAffee..van het werk
kan dus geen instellingen aanpassen
pi_92958047
kan iemand me nog eens een schop in de goede richting geven

ben nu weer iets nieuws voor mij aan het proberen
else..if

1
2
3
4
5
6
<?php
if (iets hier waarschijnlijk)
UPDATE koppeltabel SET aanwezig='$aanwezig' WHERE O_id='$O_id' AND G_id='$G_id' ");
else
INSERT INTO koppeltabel(O_id, G_id, aanwezig) VALUES ('$O_id','$G_id','o')"
;
?>

ik wil iets updaten maar dan moet het er wel zijn...
dus moet eerst de regel gemaakt worden
maar als eenmaal die regel gemaakt is en iemand wil toch nog een keer iets wijzigen
dan moet die regel niet nog eens worden aangemaakt...
if else (zit ik tot zover goed te redeneren)

hoe vertel ik bij if
dat als in koppeltabel $O_id en $G_id leeg zijn dat ie dan de else moet uitvoeren?
  vrijdag 18 februari 2011 @ 11:41:28 #96
305897 remi1986
This MF is infected by madness
pi_92958211
Je moet een controle hebben of de id's bestaan.

Waarom doe je dan niet eerst

1
2
3
4
5
6
7
8
9
10
<?php
$query 
SELECT WHERE id=id

if (mysql_num_rows($query) == 1)
{
    
update
} else {
   
insert
}
?>
  vrijdag 18 februari 2011 @ 11:42:01 #97
334357 Emery
Heavy Metal King!
pi_92958231
Ik snap je niet? Je wilt iets updaten maar dan moet het er wel zijn?
"My name is Emery and primarily I make noises - and ideas".
  vrijdag 18 februari 2011 @ 11:42:49 #98
305897 remi1986
This MF is infected by madness
pi_92958252
Je kan ook nog kijken met mysql_affected_rows of er een rij is geupdate. Zo niet dan insert

http://php.net/manual/en/function.mysql-affected-rows.php
pi_92958283
quote:
Ik snap je niet? Je wilt iets updaten maar dan moet het er wel zijn?
ik snap het ook niet, vandaar de vraag :)
  vrijdag 18 februari 2011 @ 11:46:19 #100
305897 remi1986
This MF is infected by madness
pi_92958373
Mooiste oplossing is denk ik:

1
2
3
4
5
6
7
8
<?php
$query 
mysql_query(UPDATE bla bla);

if (
mysql_affected_rows($query) == 0)   
{
    
INSERT
}
?>
pi_92958586
quote:
Mooiste oplossing is denk ik:
dat doet de truc niet....ff eten..dadelijk weer verder over denken
pi_92958644
quote:
Ik snap je niet? Je wilt iets updaten maar dan moet het er wel zijn?
sorry..heel flauw

ik wil een rij updaten..maar als deze rij niet bestaat kan ik m ook niet updaten

ik kan de rij wel invoegen dan wordt bij elke wijziging deze rij ingevoegd terwijl hij geupdate moet worden
pi_92958701
quote:
1s.gif Op vrijdag 18 februari 2011 11:54 schreef MrNiles het volgende:

[..]

sorry..heel flauw

ik wil een rij updaten..maar als deze rij niet bestaat kan ik m ook niet updaten

ik kan de rij wel invoegen dan wordt bij elke wijziging deze rij ingevoegd terwijl hij geupdate moet worden
Je zoekt dus eigenlijk iets om een rij in te voegen, maar als die rij al bestaat moet'ie een update krijgen. Daar heeft MySQL al iets voor: INSERT ... ON DUPLICATE KEY UPDATE
  vrijdag 18 februari 2011 @ 11:57:36 #104
305897 remi1986
This MF is infected by madness
pi_92958748
quote:
7s.gif Op vrijdag 18 februari 2011 11:56 schreef Light het volgende:

[..]

Je zoekt dus eigenlijk iets om een rij in te voegen, maar als die rij al bestaat moet'ie een update krijgen. Daar heeft MySQL al iets voor: INSERT ... ON DUPLICATE KEY UPDATE
Hee dat is cool, wist ik zelf ook niet. Weer wat geleerd _O_

Het is echter wel in dit geval dat het gaat om een koppeltabel, dus geen primary key. Werkt dit dan ook ?
pi_92958881
quote:
7s.gif Op vrijdag 18 februari 2011 11:56 schreef Light het volgende:

[..]

Je zoekt dus eigenlijk iets om een rij in te voegen, maar als die rij al bestaat moet'ie een update krijgen. Daar heeft MySQL al iets voor: INSERT ... ON DUPLICATE KEY UPDATE
of gewoon REPLACE INTO
  vrijdag 18 februari 2011 @ 12:03:46 #106
91039 mstx
2x1/2 = 1/2 x 1/2
pi_92958941
quote:
1s.gif Op vrijdag 18 februari 2011 12:02 schreef KomtTijd... het volgende:

[..]

of gewoon REPLACE INTO
Let wel op dat REPLACE INTO eerst de rij verwijdert en daarna weer invoegt.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  vrijdag 18 februari 2011 @ 12:07:51 #107
305897 remi1986
This MF is infected by madness
pi_92959057
quote:
1s.gif Op vrijdag 18 februari 2011 12:03 schreef mstx het volgende:

[..]

Let wel op dat REPLACE INTO eerst de rij verwijdert en daarna weer invoegt.
Werkt dit ook met tabellen waar je geen primary key hebt?
pi_92959178
quote:
1s.gif Op vrijdag 18 februari 2011 11:57 schreef remi1986 het volgende:

[..]

Hee dat is cool, wist ik zelf ook niet. Weer wat geleerd _O_

Het is echter wel in dit geval dat het gaat om een koppeltabel, dus geen primary key. Werkt dit dan ook ?
Die koppeltabel kun je een primary key (of unieke key) geven op (g_id, o_id). Dat werkt meteen als een index op g_id, dus daar heb je geen aparte index meer nodig. Een index op o_id is wel handig.
  vrijdag 18 februari 2011 @ 12:14:52 #109
305897 remi1986
This MF is infected by madness
pi_92959262
quote:
1s.gif Op vrijdag 18 februari 2011 12:11 schreef Light het volgende:

[..]

Die koppeltabel kun je een primary key (of unieke key) geven op (g_id, o_id). Dat werkt meteen als een index op g_id, dus daar heb je geen aparte index meer nodig. Een index op o_id is wel handig.
Snel ff getest in een project waar ik zelf ook een koppeltabel heb. Maar als ik een primary key toevoeg en ik voeg een rij in, krijg ik een error dat de key al bestaat.
pi_92959273
quote:
1s.gif Op vrijdag 18 februari 2011 12:02 schreef KomtTijd... het volgende:

[..]

of gewoon REPLACE INTO
Dat is hier ook een optie :)
  vrijdag 18 februari 2011 @ 12:16:22 #111
75592 GlowMouse
l'état, c'est moi
pi_92959313
quote:
1s.gif Op vrijdag 18 februari 2011 12:03 schreef mstx het volgende:

[..]

Let wel op dat REPLACE INTO eerst de rij verwijdert en daarna weer invoegt.
Dat dus, zou ik niet zo snel doen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 18 februari 2011 @ 12:16:51 #112
305897 remi1986
This MF is infected by madness
pi_92959328
quote:
Note that unless the table has a PRIMARY KEY or UNIQUE index, using a REPLACE statement makes no sense. It becomes equivalent to INSERT, because there is no index to be used to determine whether a new row duplicates another.
http://dev.mysql.com/doc/refman/5.0/en/replace.html
  vrijdag 18 februari 2011 @ 12:33:10 #113
75592 GlowMouse
l'état, c'est moi
pi_92959850
quote:
Je zegt niks nieuws.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92959876
quote:
Die koppeltabel kun je een primary key (of unieke key) geven op (g_id, o_id). Dat werkt meteen als een index op g_id, dus daar heb je geen aparte index meer nodig. Een index op o_id is wel handig.
G_id is niet uniek
O_id is ook niet uniek
maar G_id AND O_id moeten wel uniek zijn
  vrijdag 18 februari 2011 @ 12:40:27 #115
305897 remi1986
This MF is infected by madness
pi_92960117
quote:
1s.gif Op vrijdag 18 februari 2011 12:33 schreef GlowMouse het volgende:

[..]

Je zegt niks nieuws.
Weet ik, maar paar berichten daarboven ging het over keys toevoegen in een koppeltabel. Maar dan kan je niet meer meerdere malen dezelfde user_id (in het geval van MrNiles) in de koppeltabel kwijt.

REPLACE is dan denk ik niet de oplossing
  vrijdag 18 februari 2011 @ 12:43:30 #116
75592 GlowMouse
l'état, c'est moi
pi_92960234
quote:
1s.gif Op vrijdag 18 februari 2011 12:40 schreef remi1986 het volgende:

[..]

Weet ik, maar paar berichten daarboven ging het over keys toevoegen in een koppeltabel. Maar dan kan je niet meer meerdere malen dezelfde user_id (in het geval van MrNiles) in de koppeltabel kwijt.
Als je vaker dezelfde user_id nodig hebt, moet je hem niet uniek maken.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92960335
geldt voor INSERT ... ON DUPLICATE KEY UPDATE
dan dat de query niet wordt uitgevoerd als er een dubbele waarde zou komen?
pi_92960340
quote:
1s.gif Op vrijdag 18 februari 2011 12:34 schreef MrNiles het volgende:

[..]

G_id is niet uniek
O_id is ook niet uniek
maar G_id AND O_id moeten wel uniek zijn
Daarom een unieke index (of primary key) op (G_id, O_id). Een index kan meerdere kolommen bevatten :)
pi_92960480
quote:
Daarom een unieke index (of primary key) op (G_id, O_id). Een index kan meerdere kolommen bevatten
jullie zijn er natuurlijk allang achter dat ik een complete n00b ben
maar wat moet een index (over meerdere kolommen) dan doen?
  vrijdag 18 februari 2011 @ 12:52:23 #120
305897 remi1986
This MF is infected by madness
pi_92960537
Wat ik dan begrijp is dat de combinatie g_id en o_id uniek wordt. Waardoor je wel met REPLACE of INSERT DUPLICATE KEY kan werken, zoals eerder als oplossing is gegeven
pi_92960858
quote:
1s.gif Op vrijdag 18 februari 2011 12:50 schreef MrNiles het volgende:

[..]

jullie zijn er natuurlijk allang achter dat ik een complete n00b ben
maar wat moet een index (over meerdere kolommen) dan doen?
De makkelijkste manier is via phpmyadmin.
pi_92963053
quote:
De makkelijkste manier is via phpmyadmin.
Niet Hoe maar wat de functie ervan is
  vrijdag 18 februari 2011 @ 14:07:58 #123
305897 remi1986
This MF is infected by madness
pi_92963434
quote:
1s.gif Op vrijdag 18 februari 2011 13:58 schreef MrNiles het volgende:

[..]

Niet Hoe maar wat de functie ervan is
Dat maakt de combinatie van beide velden uniek. Dus je kan een INSERT doen. als de waarden van g_id EN o_id al voorkomen dan zal hij ze updaten. Wist dit ook nog niet. Heb dit net aangepast in mijn eigen project. Kon hierdoor van 4 queries terug naar 2.

Voorbeeld met ON DUPLICATE KEY (werkt dus ook op indexen)... credits gaan naar Light :Y

1
2
3
4
5
6
7
8
9
10
<?php
$query 
mysql_query("INSERT INTO langpack (link_id,type,language,data)
                                            VALUES ('"
.mysql_real_escape_string($unit_id)."',
                                                    'unit',
                                                    '"
.mysql_real_escape_string($code)."',
                                                    '"
.mysql_real_escape_string($_POST["unit_name_".$code])."')
                                            ON DUPLICATE KEY    
                                        UPDATE data = '"
.mysql_real_escape_string($_POST["unit_name_".$code])."'            
                                       "
);
?>


[ Bericht 38% gewijzigd door remi1986 op 18-02-2011 14:13:37 ]
  vrijdag 18 februari 2011 @ 14:18:42 #124
75592 GlowMouse
l'état, c'est moi
pi_92963878
Je zou een klein MySQL-quizje moeten doen elke keer voordat je zo'n LAMP-pakket kunt downloaden.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 18 februari 2011 @ 14:19:15 #125
305897 remi1986
This MF is infected by madness
pi_92963902
quote:
9s.gif Op vrijdag 18 februari 2011 14:18 schreef GlowMouse het volgende:
Je zou een klein MySQL-quizje moeten doen elke keer voordat je zo'n LAMP-pakket kunt downloaden.
want?
  vrijdag 18 februari 2011 @ 14:26:18 #126
75592 GlowMouse
l'état, c'est moi
pi_92964174
Spaart een hoop ellende. Gewoon simpele vraagjes:

Je wilt een datum opslaan die door de user is ingevoerd als '18-02-2011'. Welk veld gebruik je hiervoor?
- varchar(255)
- anders

Je wilt dat bij elk persoon maar één adres opgeslagen kan worden. Dit doe je met:
- een UNIQUE index op adres
- een PRIMARY KEY op adres
- anders

Je hebt een grote site en wilt dat gebruikers willen zoeken. Dit doe je met:
- een index op de kolom waarin je wilt zoeken
- een fulltext index op de kolom waarin je wilt zoeken
- anders
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_92964187
quote:
9s.gif Op vrijdag 18 februari 2011 14:18 schreef GlowMouse het volgende:
Je zou een klein MySQL-quizje moeten doen elke keer voordat je zo'n LAMP-pakket kunt downloaden.
Beter een google-cursus. Ik wist twee weken geleden ook nog niet van het bestaan van REPLACE of ON DUPLICATE KEY UPDATE af. Maar zo moeilijk is het allemaal niet als je gewoon even de documentatie doorneemt.
  vrijdag 18 februari 2011 @ 14:33:14 #128
305897 remi1986
This MF is infected by madness
pi_92964431
Ik ben er zelf niet zo voor om mensen af te kraken op een forum. Probeer het altijd zo netjes mogelijk te houden (zie dit dan ook niet als aanval), maar dit is een "voor dummies" topic.

Daarnaast kunnen wij er niks aan doen dat we niet zo'n goede developer zijn als jij GlowMouse, dan hadden we niet op dit forum hoeven zitten.

En in plaats alleen maar negatieve feedback te geven, kan je ook zeggen hoe het dan wel moet (ik kan me van gisteren een reactie herinneren van "altijd leuk, queries tussen je html output"). Daar kan iemand niks mee.

Ben het wel met KomtTijd eens dat veel dingen op Google zijn te vinden. Maar ik zie het nu zo dat ik door een vraag van iemand anders, ik zelf nu iets heb geleerd.

Nogmaals dit is geen aanval..
pi_92965022
Moeilijkheid bij google is vaak de omschrijving van je probleem
en vaak staat php/sql codes/oplossingen zo algemeen omschreven dat je nog hard moet nadenken hoe het toe te passen in je eigen script

Ik weet niet hoe ik die ON DUPLICATE had moeten vinden..
daarbij..ben er wel achter gekomen dat er een hoop shit en tegenstrijdigheden op het internet staan
  vrijdag 18 februari 2011 @ 15:22:18 #130
75592 GlowMouse
l'état, c'est moi
pi_92966415
quote:
1s.gif Op vrijdag 18 februari 2011 14:33 schreef remi1986 het volgende:
En in plaats alleen maar negatieve feedback te geven, kan je ook zeggen hoe het dan wel moet (ik kan me van gisteren een reactie herinneren van "altijd leuk, queries tussen je html output"). Daar kan iemand niks mee.
Jawel, daarmee kun je verder zoeken. Alsof ik hele snippets uit een boek ga overtypen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 19 februari 2011 @ 14:39:08 #131
302853 themole
graaft totaal door.
pi_93012275
quote:
1s.gif Op vrijdag 18 februari 2011 14:45 schreef MrNiles het volgende:
Moeilijkheid bij google is vaak de omschrijving van je probleem
en vaak staat php/sql codes/oplossingen zo algemeen omschreven dat je nog hard moet nadenken hoe het toe te passen in je eigen script


Ik weet niet hoe ik die ON DUPLICATE had moeten vinden..
daarbij..ben er wel achter gekomen dat er een hoop shit en tegenstrijdigheden op het internet staan
Dat is dus de moeilijkheid van programmeren, je moet creatief zijn. Meestal zijn er geen uitgebreide omschrijvingen van een probleem te vinden. Uiteindelijk moet je zelf leren denken, dat is ervaring.
Niet altijd serieus
  zaterdag 19 februari 2011 @ 19:02:47 #132
218617 YazooW
bel de wouten!
pi_93020951
Ubernoob in problemen...
Ik wil een simpele dropdownlist in een formulier gaan vullen met de cijfers 1 tot 31.
Nu kan ik simpelweg 1 tot en met 31 gaan invullen in m'n code, maar ik wil het dus automatisch doen d.m.v een stukje code, ook omdat ik straks nog de jaartallen 1920 tot en met 2011 in een dropdownlist moet gaan toveren.
Met de volgende code laat ik de cijfers 1 tot 31 zien:
1
2
3
4
5
6
        <?php
        for ($i=1; $i <=31;  $i++)
        {
            echo $i;
            }
        ?>

Maar nu komt dus de vraag, hoe krijg ik die 1 tot 31 nu in mijn dropdownlist? Heb al van alles geprobeerd maar blijf heel de tijd maar foutmeldingen krijgen ;(
pi_93021098
1
2
3
4
5
6
7
8
9
10
<select name="nummer">
<option value="" selected>Kies een nummer.</option>
<?php
        
for ($i=1$i <=31;  $i++)
        {
            echo 
"<option value='$i' >$i</option>";
            }
?>
</select>

  zaterdag 19 februari 2011 @ 19:11:13 #134
218617 YazooW
bel de wouten!
pi_93021242
quote:
5s.gif Op zaterdag 19 februari 2011 19:07 schreef Tegan het volgende:

[ code verwijderd ]

Aight, relaxt.
Hij werkt perfect, bedankt voor je snelle hulp! O+
pi_93021410
Ik ben wel erg benieuwd wat jouw code was die foutmeldingen gaf :) .
  zaterdag 19 februari 2011 @ 19:19:37 #136
218617 YazooW
bel de wouten!
pi_93021598
quote:
1s.gif Op zaterdag 19 februari 2011 19:15 schreef Tegan het volgende:
Ik ben wel erg benieuwd wat jouw code was die foutmeldingen gaf :) .
Fout zat m meer in de HTML zeg maar bij het maken van de dropdownlist. De phpcode die ik heel de tijd had was gewoon goed. Fout was dus simpelweg dat ik een aanhalingsteken of < > miste...
Ik ben ook maar een noob he :@
Dmv jou code heb ik nu ook meteen de jaartallen 1920 tot 2011 ingevuld in een andere dropdownlist. ^O^
Ik kan voorlopig wel weer vooruit denk ik. Nogmaals bedankt.

edit. Om even preciezer te zijn, wist net zelf ook niet precies wat ik fout deed 8)7:
Ik had dus bij de echo output tussen de option tags maar 1x $i, terwijl het dus blijkbaar 2x moet, 1x achter de value en 1x tussen de haakjes.

[ Bericht 13% gewijzigd door YazooW op 19-02-2011 19:25:23 ]
pi_93022076
Nouja, dat hoeft niet echt. Maar de ene is welke je meegeeft aan de pagina, en de andere is welke je ziet/kan kiezen. Handig voor als je dus wil dat die verschillen :P .
  zaterdag 19 februari 2011 @ 19:45:52 #138
75592 GlowMouse
l'état, c'est moi
pi_93022981
Als ze identiek zijn, kun je value weglaten.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93037918
Zou iemand mij kunnen vertellen waarom ik hier niet WERK! te zien krijg?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
if(isset($_POST['submit'])){
        
        
//Check of passwords match met Gebruikersnaam
        
if($match['passwd'] != $_POST['old_password']){
            echo 
"<div class='error_box'><ul><li>Het oude wachtwoord komt niet overeen met de gebruikersnaam</li></ul></div>";
        }
        else{
            
$go_ahead .= 1;
        }
        
        
//Check of nieuwe passwords matchen
        
if($_POST['new_password'] != $_POST['new_password_2']){
            echo 
"<div class='error_box'><ul><li>De nieuwe wachtwoorden matchen niet</li></ul></div>";
        }
        else{
            
$go_ahead .= 1;
        }
        
        
//Checken op go_ahead
        
if($go_ahead == 2){
            echo 
"WERK!"
        }
        else{
            echo 
"KAK!";
        }
    }
?>
  zondag 20 februari 2011 @ 00:43:25 #140
63192 ursel
"Het Is Hier Fantastisch!
pi_93038064
echo je $go_ahead maar eens, dan zul je het wel zien. ;)
pi_93038122
quote:
1s.gif Op zondag 20 februari 2011 00:43 schreef ursel het volgende:
echo je $go_ahead maar eens, dan zul je het wel zien. ;)
Ik heb net even een pauze gehad en blij naar boven gestormd omdat ik het wist. Wat kan eten toch wonderen doen :D

Toch bedankt ;)

[ Bericht 0% gewijzigd door dirkjo op 20-02-2011 00:55:14 ]
pi_93038229
Nu heb ik alleen nog wel een vraagje. Ik wil checken of de username aanwezig is in de databse. ik heb het checken op NIET aanwezigheid gedaan via deze manier:
1
2
3
<?php
$found 
mysql_result(mysql_query("SELECT count(0) FROM ftpuser WHERE userid = '".$_POST['username']."' LIMIT 1"), 00);
?>

1
2
3
<?php
if($found 0)
?>

Maar hoe check ik of die er WEL is? :)
pi_93038818
Waarom count(0)?
pi_93040454
Omdat hij anders de volgende warning geeft:

1Warning: mysql_result() expects parameter 1 to be resource, boolean given in (..) on line 3
pi_93040829
Ik vind je manier een beetje omslachtig.

En, userid is een string :? ?

Ik zou het zo doen.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$result 
mysql_query("SELECT userid FROM ftpuser WHERE userid = '".mysql_real_escape_string($_POST['username'])."' ");

if (
mysql_num_rows($result) == 0) {
//Userid bestaat niet.
}
else if (
mysql_num_rows($result) == 1) {
//Userid bestaat wel.
}
else {
//Error, tenzij userid enkel unieke waarden mag hebben.
}
?>


[ Bericht 0% gewijzigd door Tegan op 20-02-2011 01:58:56 ]
  zondag 20 februari 2011 @ 02:02:01 #146
75592 GlowMouse
l'état, c'est moi
pi_93041370
quote:
1s.gif Op zondag 20 februari 2011 00:46 schreef dirkjo het volgende:
Nu heb ik alleen nog wel een vraagje. Ik wil checken of de username aanwezig is in de databse. ik heb het checken op NIET aanwezigheid gedaan via deze manier:

[ code verwijderd ]

[ code verwijderd ]

Maar hoe check ik of die er WEL is? :)
count(*) is gebruikelijker, je limit is overbodig, en volgens mij heb je met $found == 0 geen aanwezigheid en met $found == 1 wel.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zondag 20 februari 2011 @ 10:36:03 #147
58834 Catbert
The evil HR Director.
pi_93046910
quote:
1s.gif Op zondag 20 februari 2011 01:41 schreef Tegan het volgende:
Ik vind je manier een beetje omslachtig.

En, userid is een string :? ?

Ik zou het zo doen.
Geen prepared statements?
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_93069632
Ok thanks, het werkt nu :)
pi_93117611
Iemand linkjes/ervarignen naar hoe om te gaan / op te zetten een mysql cluster?

Ik kan me zo voorstellen dat als je 100 mysql servers aan elkaar hebt geknoopt een effectievere manier bestaat om te tellen hoeveel mensen 18 jaar zijn dan:

SELECT age FROM users WHERE age='18'
En vervolgens mysql_num_rows
(Theoretisch idee & voorbeeld)
"Op Fok! val je pas op als je normaal bent." -mazaru
pi_93117992
count(*) dan.

Verder weet ik niets van clusters :) .
pi_93118550
Ik heb een vraagje! Voor m'n werk moet ik een formuliertje maken. Hierbij moeten keuzes gemaakt worden die de rest van het formulier beïnvloeden. Voorbeeldje van hoe ik dit voor me zie:

1. Is er een keuze gemaakt? Radiobuttons ja/nee
indien ja => 2a. inputveld verschijnt met iets van een label 'keuze'
indien nee =>2b. inputveld verschijnt met iets van een label 'datum waarop keuze wordt gemaakt'

Dit gaat tot op 4 niveaus diep.

Hoe zouden jullie dit doen? Zelf heb ik hier wel ideeën over - Ik hoef geen concrete aanwijzingen/code; meer een globale beschrijving. Ik ben voornamelijk benieuwd naar hoe jullie het zouden aanpakken en hoop inspiratie op te doen.
  maandag 21 februari 2011 @ 20:16:24 #152
75592 GlowMouse
l'état, c'est moi
pi_93118599
MySQL cluster gebruikt een storage engine die sterk afwijkt van de overige storage engines. Zonder erg uitgebreide kennis zou ik er zeker niet aan beginnen. En aan je vraag te zien :)
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93122782
quote:
1s.gif Op maandag 21 februari 2011 20:16 schreef GlowMouse het volgende:
MySQL cluster gebruikt een storage engine die sterk afwijkt van de overige storage engines.
Allereerst even voor de duidelijkheid:
Je bedoeld voor zover ik kan zien "het product" MySQL cluster?
http://www.mysql.com/products/cluster/

Ik heb me een beetje zitten inlezen,
http://www.howtoforge.com/loadbalanced_mysql_cluster_debian

Zoiets ziet er nou niet bepaald heel eng uit om op te zetten / voor te devven.
Echter neem ik aan dat grote sites zoals bijvoorbeeld een twitter/facebook/fok.nl hier niet op draaien.

Even concrete vragen:
Hoe moeilijk is het om 'normale' mysql queries te 'porten' naar taal die een mysql cluster wat door 'grote sites' gebruikt snappen, met andere woorden heeft het zin om zelf in de ontwikkel fase zelf wat te zitten knutselen?

Waar zijn er mensen in te huren (freelance?) (prijs/uur?) die zo'n cluster zouden kunnen bedenken, opzetten onderhouden & queries ervoor kunnen schrijven?
Mag ik er vanuit gaan dat een gemiddeld 'php professional' code hiervoor kan schrijven?

Ik ben namelijk bezig met het uitdenken of een bepaald redelijk complex idee wat ik in mijn hoofd heb zitten mogelijk is.
De database kant volledig uitbesteden zou al weer een zorg minder zijn...

Nu we het toch over clustering hebben, een apache cluster is toch mag ik hopen niet zulk gespecialiseerd werk als een mysql cluster?

Om te zien of dat het project realiseerbaar is zou ik graag meer een beeld krijgen van wat een freelance/vaste kracht objective c 2.0, c++ , php programmeur nou zo'n beetje vraagt (in nederland, free lance sites in het buitenland zijn er genoeg)

[ Bericht 6% gewijzigd door Flepke op 21-02-2011 21:31:08 ]
"Op Fok! val je pas op als je normaal bent." -mazaru
  maandag 21 februari 2011 @ 21:46:29 #154
75592 GlowMouse
l'état, c'est moi
pi_93124460
quote:
14s.gif Op maandag 21 februari 2011 21:23 schreef Flepke het volgende:

[..]

Allereerst even voor de duidelijkheid:
Je bedoeld voor zover ik kan zien "het product" MySQL cluster?
http://www.mysql.com/products/cluster/

Ik heb me een beetje zitten inlezen,
http://www.howtoforge.com/loadbalanced_mysql_cluster_debian
Beide gebruiken de NDB storage engine, dus mijn opmerking slaat op beide.

quote:
Waar zijn er mensen in te huren (freelance?) (prijs/uur?) die zo'n cluster zouden kunnen bedenken, opzetten onderhouden & queries ervoor kunnen schrijven?
Mag ik er vanuit gaan dat een gemiddeld 'php professional' code hiervoor kan schrijven?
Percona kan het ongetwijfeld, maar daar betaal je voor. Een gemiddelde php professional heeft onvoldoende verstand van MySQL, en heeft vrijwel zeker geen enkele ervaring met MySQL cluster.

quote:
Ik ben namelijk bezig met het uitdenken of een bepaald redelijk complex idee wat ik in mijn hoofd heb zitten mogelijk is.
De database kant volledig uitbesteden zou al weer een zorg minder zijn...
Je moet je afvragen wat je precies nodig hebt. NDB hoort niet in dat rijtje thuis.

quote:
Nu we het toch over clustering hebben, een apache cluster is toch mag ik hopen niet zulk gespecialiseerd werk als een mysql cluster?
Klopt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93126113
quote:
1s.gif Op maandag 21 februari 2011 21:46 schreef GlowMouse het volgende:
Percona kan het ongetwijfeld, maar daar betaal je voor. Een gemiddelde php professional heeft onvoldoende verstand van MySQL, en heeft vrijwel zeker geen enkele ervaring met MySQL cluster.
Ziet er goed uit, meest rendabele lijkt me dan iemand in vaste dienst aan nemen en die naar zo'n trainings course te sturen, ziet er redelijk betaalbaar uit.

quote:
1s.gif Op maandag 21 februari 2011 21:46 schreef GlowMouse het volgende:
Je moet je afvragen wat je precies nodig hebt. NDB hoort niet in dat rijtje thuis.
Uiteraard zal ik in de eerste maanden niet een cluster van 100'en - 1000'en servers nodig hebben, het gaat mij erom dat ik liever zo weinig mogelijk geld en tijd besteed aan het continue herschrijven.

Volgens mij is wat ik uiteindelijk nodig heb juist wel NDB /(Ndb Cluster + MySQL Server(s)/hoe je het ook noemt) nodig.
Hoe ik hier het makkelijkste naartoe kan werken kom ik met wat google werk en eventueel hulp van jou linkje wel uit denk ik.

Waarom zou ik volgens jou NDB niet nodig hebben?

Trouwens bedankt voor je hulp scheelt me een hele hoop zoekwerk .
"Op Fok! val je pas op als je normaal bent." -mazaru
  maandag 21 februari 2011 @ 22:14:06 #156
75592 GlowMouse
l'état, c'est moi
pi_93126773
Je weet dat bij een NDB cluster alle data op elke server in het geheugen moet passen?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93127670
quote:
1s.gif Op maandag 21 februari 2011 22:14 schreef GlowMouse het volgende:
Je weet dat bij een NDB cluster alle data op elke server in het geheugen moet passen?
Hmm.
Ik lees het net 5 minuten geleden inderdaad.

Aan de ene kant lijkt het me perfect (snelheid).
Andere kant natuurlijk wel dure nodes + dat je niet oneindig ram in je node kan prikken.
(Hmm cloud hosting maybe?)

Hoe draait fok eigenlijk, master/slave?

Zal morgen nog eens een speurtocht beginnen naar de methodes die andere social media sites zoals facebook, twitter tumblr etc gebruiken voor hun database.
In iedergeval bedankt voor je hulp :)
"Op Fok! val je pas op als je normaal bent." -mazaru
  maandag 21 februari 2011 @ 22:42:07 #158
75592 GlowMouse
l'état, c'est moi
pi_93129039
FOK! draait met een enkele db-server.

Ga er gerust vanuit dat die sites geen algemene software voor alles gebruiken, maar voor elk stukje van de site wat anders. En dan is die software ook helemaal getweakt voor dat gebruik. Facebook bijvoorbeeld, heeft zelf patches geschreven voor software als MySQL en memcached.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93215827
Ik heb een tabel met een begintijd kolom en een eindtijd kolom, nou wil ik een controle maken dat nieuwe inserts geen al bestaande datum/tijd reeks mogen overlappen, in de vorm van een check constraint trigger? Maar ik kom er niet uit, hoe kan ik dit voor elkaar krijgen? (MS SQL)

[ Bericht 10% gewijzigd door Deeltjesversneller op 23-02-2011 19:51:15 ]
pi_93232507
Graag wil ik dat op mijn website iedere keer een willekeurige achtergrondfoto getoond wordt. Nu kan ik zelf wel met een php scriptje een willekeurige achtergrond uit een map op mijn server met allemaal achtergrondafbeeldingen laten selecteren.

Het lijkt me echter vrij irritant voor een bezoeker dat iedere keer dat er op een link geklikt wordt er een andere achtergrond geselecteerd wordt. Het liefst zou de site per bezoek willekeurig een achtergrond moeten selecteren uit de map en deze blijven tonen gedurende het hele bezoek, los van hoeveel pagina's binnen de website men bezoekt.

Kan dit bijv. met behulp van sessies opgelost worden? Of op een andere manier? Ik heb zelf geen ervaring met sessies om dit concreet op te lossen.

In ieder geval alvast hartelijk bedankt. :)
pi_93233072
Jep. Of met een cookie.
pi_93234481
quote:
1s.gif Op woensdag 23 februari 2011 23:50 schreef mwvrs het volgende:
Graag wil ik dat op mijn website iedere keer een willekeurige achtergrondfoto getoond wordt. Nu kan ik zelf wel met een php scriptje een willekeurige achtergrond uit een map op mijn server met allemaal achtergrondafbeeldingen laten selecteren.

Het lijkt me echter vrij irritant voor een bezoeker dat iedere keer dat er op een link geklikt wordt er een andere achtergrond geselecteerd wordt. Het liefst zou de site per bezoek willekeurig een achtergrond moeten selecteren uit de map en deze blijven tonen gedurende het hele bezoek, los van hoeveel pagina's binnen de website men bezoekt.

Kan dit bijv. met behulp van sessies opgelost worden? Of op een andere manier? Ik heb zelf geen ervaring met sessies om dit concreet op te lossen.

In ieder geval alvast hartelijk bedankt. :)
Ik weet niet of hij helemaal klopt. Maar zoiets?
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start
();

if (!isset(
$_SESSION['achtergrond'])) {
$alleachtergrondfotos = array('1.png''2.png''etc...');

shuffle($alleachtergrondfotos);

$_SESSION['achtergrond'] = array_shift($alleachtergrondfotos);
}
?>
Als je de browser sluit is de sessie weg. Dus wat je zocht.

[ Bericht 3% gewijzigd door Tegan op 24-02-2011 00:29:15 ]
pi_93235407
Hoi Tegan,

Bedankt voor je snelle reactie. Ik heb zelf ook op internet wat opgezocht en twee voorbeelden gecombineerd. Ik wil eigenlijk wel dat wanneer ik tussentijds extra afbeeldingen in een map upload, deze automatisch door het script meegenomen worden.

Komt dit in de richting?

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
session_start
();  
if(isset(
$_SESSION['randombgimg'])) {

    
$_SESSION['randombgimg'] = $imgarray[$rand];
    echo 
'<img src="../images/gallery/'.$imgarray[$rand].'">'; }
    
else {
    
    
$dir=opendir("/path/to/your/images/folder/");

$i=0;
while(
$imgfile=readdir($dir))
{
     if (
$imgfile != "." && $imgfile!="..")
         {
        
$imgarray[$i]=$imgfile;
        
$i++;
        }
}

closedir($dir);

$rand=rand(0,count($imgarray)-1);

    if(
$rand >= 0)
    {
    
    
$_SESSION['randombgimg'] = $imgarray[$rand];
    echo 
'<img src="../images/gallery/'.$imgarray[$rand].'">';

    } 
    
}
?>
pi_93235521
Wat nou als er per ongeluk andere bestanden dan images in die map staan?
pi_93235611
Daar heb je een punt. Op een of andere manier alleen jpg bestanden mee laten nemen?
pi_93235845
1
2
3
4
5
<?php
if (substr($filename, -4) == '.jpg') {
//Dan is het een jpg-file.
}
?>
  donderdag 24 februari 2011 @ 07:59:51 #168
75592 GlowMouse
l'état, c'est moi
pi_93241882
1
2
3
4
5
6
7
<?php
if ($imgfile != "." && $imgfile!="..")
         {
        
$imgarray[$i]=$imgfile;
        
$i++;
        }
?>
kan ook zo:
1
2
3
4
5
6
<?php
if ($imgfile != "." && $imgfile!="..")
         {
        
$imgarray[]=$imgfile;
        }
?>
En pak strtolower(substr($filename, -4)) ipv substr($filename, -4).
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 24 februari 2011 @ 09:23:55 #169
302853 themole
graaft totaal door.
pi_93243107
quote:
10s.gif Op maandag 21 februari 2011 20:15 schreef erikkll het volgende:
Ik heb een vraagje! Voor m'n werk moet ik een formuliertje maken. Hierbij moeten keuzes gemaakt worden die de rest van het formulier beïnvloeden. Voorbeeldje van hoe ik dit voor me zie:

1. Is er een keuze gemaakt? Radiobuttons ja/nee
indien ja => 2a. inputveld verschijnt met iets van een label 'keuze'
indien nee =>2b. inputveld verschijnt met iets van een label 'datum waarop keuze wordt gemaakt'

Dit gaat tot op 4 niveaus diep.

Hoe zouden jullie dit doen? Zelf heb ik hier wel ideeën over - Ik hoef geen concrete aanwijzingen/code; meer een globale beschrijving. Ik ben voornamelijk benieuwd naar hoe jullie het zouden aanpakken en hoop inspiratie op te doen.
HIer zou ik persoonlijk javascript voor gebruiken. Alhoewel het met puur php ook wel te maken is.
Niet altijd serieus
  donderdag 24 februari 2011 @ 13:51:56 #170
137776 boem-dikkie
Jedi Mind Baby!
pi_93253219
quote:
10s.gif Op maandag 21 februari 2011 20:15 schreef erikkll het volgende:
Ik heb een vraagje! Voor m'n werk moet ik een formuliertje maken. Hierbij moeten keuzes gemaakt worden die de rest van het formulier beïnvloeden. Voorbeeldje van hoe ik dit voor me zie:

1. Is er een keuze gemaakt? Radiobuttons ja/nee
indien ja => 2a. inputveld verschijnt met iets van een label 'keuze'
indien nee =>2b. inputveld verschijnt met iets van een label 'datum waarop keuze wordt gemaakt'

Dit gaat tot op 4 niveaus diep.

Hoe zouden jullie dit doen? Zelf heb ik hier wel ideeën over - Ik hoef geen concrete aanwijzingen/code; meer een globale beschrijving. Ik ben voornamelijk benieuwd naar hoe jullie het zouden aanpakken en hoop inspiratie op te doen.
If, then.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_93253869
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
session_start
();  
if(isset(
$_SESSION['randombgimg'])) {

    
$_SESSION['randombgimg'] = $imgarray[$rand];
    echo 
'<img src="../images/gallery/'.$imgarray[$rand].'">'; }
    
else {
$imgarray=array();
$path "/path/to/your/images/folder/";
foreach (
glob($path."*.jpg") as $filename) {
   
$imgarray[] = basename($filename
}
  
$rand=rand(0,count($imgarray)-1);

    if(
$rand >= 0)
    {
    
    
$_SESSION['randombgimg'] = $imgarray[$rand];
    echo 
'<img src="../images/gallery/'.$imgarray[$rand].'">';

    } 
    
}
?>
Liefde is... samen zeehondjes doodknuppelen..
  donderdag 24 februari 2011 @ 16:33:40 #172
75592 GlowMouse
l'état, c'est moi
pi_93261289
Glob is hoofdlettergevoelig.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93261796
Dat hele stuk met rand() kan veel korter door alleen shuffle() te doen op de image array.
  donderdag 24 februari 2011 @ 16:54:05 #174
75592 GlowMouse
l'état, c'est moi
pi_93262282
rand lijkt me sneller als je een grote array hebt.

De laatste twee php-codeblokken gaan nog fout omdat $imgarray op regel 5 helemaal niet bekend is. Die wil je ook helemaal niet hebben en dat is ook niet nodig om die te hebben.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93262322
Ik denk niet dat hij zoveel verschillende achtergronden heeft.
pi_93262434
quote:
1s.gif Op donderdag 24 februari 2011 16:33 schreef GlowMouse het volgende:
Glob is hoofdlettergevoelig.
1
2
3
4
<?php
$fileType 
'[jJ][pP][gG]';
    foreach (
glob($path."*.".$fileType) as $filename) {
?>
Liefde is... samen zeehondjes doodknuppelen..
  donderdag 24 februari 2011 @ 16:59:07 #177
75592 GlowMouse
l'état, c'est moi
pi_93262514
quote:
1s.gif Op donderdag 24 februari 2011 16:57 schreef THeeF het volgende:

[..]
[ code verwijderd ]

Met array_walk kun je die foreach nog wegwerken.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93273898
quote:
1s.gif Op donderdag 24 februari 2011 16:54 schreef GlowMouse het volgende:
rand lijkt me sneller als je een grote array hebt.
array_rand() is nog netter, dan krijg je 1 (of meer) random key uit de array. Werkt ook met niet-numerieke keys.
  donderdag 24 februari 2011 @ 20:59:53 #179
75592 GlowMouse
l'état, c'est moi
pi_93274025
Die kende ik niet eens :D Rand is trouwens sowieso uit, mt_rand is in.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93335697
Ik kom er even niet meer uit. Ik wil iets heel eenvoudigs. Namelijk dat als er geen rows uit een database worden gehaald er een melding komt en zodra er wel row uit de database komt, dan moet hij die info weergeven. Dit is mijn code:

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
<?php
    
$newsid 
$_GET['newsid'];

$query "SELECT reactieid, newsid, reactiebericht, reactieposter, reactiedatum, reactietijd
            FROM newsreactie
            WHERE newsid =$newsid
            "
;

$result mysql_query($query);
$aantalrijen mysql_num_rows($result);

while (
$row mysql_fetch_array($result)) {    
    
    if( 
$aantalrijen == 0) {
        
        echo 
"<div class='info reactie2'>
        <p>Er zijn nog geen reacties op dit bericht.</p>
            </div>"
;
        
    }
    
    else {
    
    
$bericht nl2br("$row[reactiebericht]");
    
$maand substr("$row[reactiedatum]", -52);
    
$dag substr("$row[reactiedatum]", -22);
    
$jaar substr("$row[reactiedatum]", -114);
    
$tijd substr("$row[reactietijd]", -85);
    
    echo 
"<div class='info reactie2'>
        <p>$bericht</p>
            </div>
            <div class='reactie3'>
                <h2>Geplaatst door: $row[reactieposter] op $dag-$maand-$jaar om $tijd</h2>
            </div>"
;
    }
}
   
?>

Hiermee laat hij echter gewoon de reactie zien als er wel wat uit de query komt en niets zodra er ook niets uit de query komt.

Ik heb zelf een echo op de $aantalrijen gedaan en dan komt er wel netjes 1 of 0 uit.
  zaterdag 26 februari 2011 @ 01:04:55 #181
75592 GlowMouse
l'état, c'est moi
pi_93335767
Regel 15-21 worden nu niet uitgevoerd omdat je nooit binnen de while komt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 26 februari 2011 @ 01:37:54 #182
111382 Ofyles2
Bestemming: onbekend
pi_93336680
quote:
1s.gif Op zaterdag 26 februari 2011 01:03 schreef Dennis82 het volgende:
Ik kom er even niet meer uit. Ik wil iets heel eenvoudigs. Namelijk dat als er geen rows uit een database worden gehaald er een melding komt en zodra er wel row uit de database komt, dan moet hij die info weergeven. Dit is mijn code:
[ code verwijderd ]

Hiermee laat hij echter gewoon de reactie zien als er wel wat uit de query komt en niets zodra er ook niets uit de query komt.

Ik heb zelf een echo op de $aantalrijen gedaan en dan komt er wel netjes 1 of 0 uit.
mysql_num_rows uit de while-loop halen. Deze controle is slechts één keer nuttig...
pi_93339528
Bedankt mannen. Echter werd ik vanochtend wakker en had ik ineens een ingeving dat de if en else uit de loop moesten worden gehaald. Best logisch natuurlijk.
  zondag 27 februari 2011 @ 11:27:37 #184
159156 Dokay
Ago ergo sum
pi_93382930
Hallo Fokkertjes, wellicht kan iemand met kennis van zaken hier snel uitkomen, ik wil de map waar het script in upload/uit leest variabel houden door deze path in te stellen als /data/$user.

Als ik dit instel bij $filepath = "/data/$user/"; dan blijft het script alsnog in zijn eigen directory uploaden. Waar gaat het fout?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
<?php 
include 'includes/dbconnect.inc.php';
include 'includes/appinfo.inc.php';
include 'includes/bouncer.inc.php';
$id = $_SESSION['ingelogd'];
//$getty = mysql_query("SELECT * FROM gebruker WHERE id=$id");
//$getty2 = mysql_fetch_assoc($getty);
//$username = $getty2['username'];
    
    // This code is released under GPL 3.0 which is included in the bundle

    // Files to hide in the directory listing
    // add and subtract as you please
    $hide = array(    'resources',
                    'index.php',
                    '.htaccess',
                    '.htpasswd',
                    '.DS_Store');
            
    error_reporting(E_ERROR);
    
    // When downloading force it to actually download
    // rather than just open it in the browser
    if ($_GET['download']) {
        $file = str_replace('/', '', $_GET['download']);
        $file = str_replace('..', '', $file);

        if (file_exists($file)) {
            header("Content-type: application/x-download");
            header("Content-Length: ".filesize($file)); 
            header('Content-Disposition: attachment; filename="'.$file.'"');
            readfile($file);
            die();
        }
    }
    
    $filepath = "/data/$user/";
    $scriptname = basename($filepath);
    $readpath = str_replace($scriptname, "", $filepath);
    $handle = opendir($readpath);
    
    // If deleting
    if (isset($_GET['rmfile'])) {
        unlink($readpath . $_GET['rmfile']);
    }
    
    // If uploading
    if ($_FILES['file']) {
        $success = move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']);
    }

    while ($file = readdir($handle)) { 
        
        if ($file == "." || $file == ".." || in_array($file, $hide))  continue;
        
        $key = @filemtime($file);
        
        $files[$key] = $file;
        
    }
    
    closedir($handle); 

    // Sort our files
    @ksort($files, SORT_NUMERIC);
    $files = @array_reverse($files);

?>
    
    <!DOCTYPE html>
    <html>
    
        <head>
            
            <title>Super Simple PHP File Manager</title>
            <link rel="stylesheet" type="text/css" href="../../media/styles.css" />
            
        </head>
        
        <body>
          
            <?php $baseurl = $_SERVER['PHP_SELF']; ?>

            <table border="0" cellspacing="5" cellpadding="5">

                <?php
                    $arsize = sizeof($files);
                
                    for ($i=0; $i<$arsize; $i++) {
                    
                        $ext = strtolower(substr($files[$i], strrpos($files[$i], '.')+1));
        
                        $filename = stripslashes($files[$i]);
                        $fileurl = $files[$i];
                        if (strlen($filename) > 43) {
                            $filename = substr($files[$i], 0, 40) . '...';
                        }
                ?>

                            <tr>
                                <td><img src="../../media/zip.gif" /></td>
                                <td><a href="./index.php?download=<?php echo $filename; ?>"><?php echo $filename; ?></a></td>
                                <td><?php echo round(filesize($leadon.$files[$i])/1024); ?>KB</td>
                                <td><?php echo date ("d/m/y", filemtime($leadon.$files[$i]));?></td>
                                <td><a href="./index.php?rmfile=<?php echo $filename; ?>">Delete</a></td>
                            </tr>
                        
                <?php } ?>
            
            </table>
    
            <div id="upload">

                <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
                    <p><input type="file" name="file" /></p>
                    <p><input type="submit" value="Upload" /></p>
                </form>
            
            </div>

        </body>
        
    </html>
pi_93383742
Welke waarde heeft $usr in regel 37? (En dus niet: welke waarde denk je dat $user heeft.)

En als je de php-code tussen [ php] en [ /php] zet, krijg je leuke kleurtjes die de leesbaarheid vergroten. :)
  zondag 27 februari 2011 @ 12:11:59 #186
91039 mstx
2x1/2 = 1/2 x 1/2
pi_93384155
1
2
3
<?php
$success 
move_uploaded_file($_FILES['file']['tmp_name'], $_FILES['file']['name']);
?>
Ik zou daar $filepath bij zetten
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  Lieve Belg maandag 28 februari 2011 @ 21:52:48 #187
86282 Jump
[Belg.] Jump (de ~ (m.))
pi_93464109
83 delen verder staat mijn grapje van "cd niet bijgeleverd" nog altijd in de OP :D
Op zondag 28 oktober 2007 01:07 schreef clumsy_clown het volgende:
Jump daarentegen, is wáy minder braaf en lief dan hij lijkt
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; «shmoop|dingen» jawel, jij bent Superjump
  maandag 28 februari 2011 @ 23:36:00 #188
111382 Ofyles2
Bestemming: onbekend
pi_93470503
quote:
10s.gif Op maandag 28 februari 2011 21:52 schreef Jump het volgende:
83 delen verder staat mijn grapje van "cd niet bijgeleverd" nog altijd in de OP :D
Tegenwoordig downloaden we tutorials via het net. Althans ik.

Wel gecombineerd met literatuur kopen...
pi_93476482
quote:
10s.gif Op maandag 28 februari 2011 23:36 schreef Ofyles2 het volgende:

[..]

Tegenwoordig downloaden we tutorials via het net. Althans ik.
Wel gecombineerd met literatuur kopen...
PDF _O-
Vraagje welke charset heb ik nodig om gewoon umlauts toe te staan?

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Dit staat ernu maar werkt niet echt. Krijg namelijk allemaal vraagtekens.

[ Bericht 17% gewijzigd door cablegunmaster op 01-03-2011 02:56:11 ]
Redacted
  dinsdag 1 maart 2011 @ 10:29:35 #190
75592 GlowMouse
l'état, c'est moi
pi_93480585
Bijna altijd voor UTF-8 kiezen tegenwoordig.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93480730
quote:
1s.gif Op woensdag 9 februari 2011 10:41 schreef GlowMouse het volgende:

[ code verwijderd ]

Op basis van jouw advies heb ik de volgende query gemaakt:
1
2
3
4
5
6
SELECT swtickets.ticketid, swtickets.subject, swtickets.email,open.dateline, close.dateline, response.dateline
FROM swtickets 
JOIN swauditlogs open ON(swtickets.ticketid=open.ticketid AND open.actiontype=11)
JOIN swauditlogs close ON(swtickets.ticketid=close.ticketid AND close.actiontype=8 AND close.actionmsg LIKE '%to: Nog te factureren%')
JOIN swauditlogs response ON(swtickets.ticketid=response.ticketid AND response.actiontype=12)
WHERE (swtickets.ticketstatusid=3 OR swtickets.ticketstatusid=4) AND swtickets.email LIKE '%trinicom%'

Mooi he? :D

Nu heb ik nog een vraagje. Daarvoor geef ik even een mogelijk resultaat:
quote:
9668 Email aanmaken mailadres@adres.nl 1298907438 1298966816 1298965276
9668 Email aanmaken mailadres@adres.nl 1298907438 1298966816 1298965822
9668 Email aanmaken mailadres@adres.nl 1298907438 1298966816 1298966801
Zoals je ziet zijn de records hetzelfde, met uitzondering van het laatste veld. Hoe kan ik er nu voor zorgen dat alleen de record met de LAAGSTE waarde van response.dateline wordt weergegeven?
pi_93480911
ik wil een vaker terugkomend werkje een beetje automatiseren
wil 2 bestandjes laten maken waarin slechts een paar waardes worden aagepast

iets als dit gevonden:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$filepost 
$_POST['filename'];
$extensie=".php";
$filename $filepost.$extensie ;

 
$file $filename;
 
$handle fopen($file'w');
 
$data "Jane Doe\n";
 
fwrite($handle$data);
 
$data = include 'galleria.php';
 
fwrite($handle$data);
 print 
"Data Written";
 
fclose($handle);
?>

Het vreemde (voor mij dan) is dat de inhoud van galleria.php voor Data Written wordt geprint...en dat er in de inhoud van het gemaakte filetje wel Jane Doe staat...maar daar onder een "1" ipv de inhouden van galeria.php
Kan iemand me uitleggen hoe het anders zou moeten
  dinsdag 1 maart 2011 @ 10:42:29 #193
75592 GlowMouse
l'état, c'est moi
pi_93480945
1
2
3
<?php
$data 
file_get_contents('galleria.php');
?>

$filename via $_POST is niet handig, wat als $filepost = 'index'?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93481032
quote:
$filename via $_POST is niet handig, wat als $filepost = 'index'?
je hebt gelijk
inprincipe ben ik de enige die het invoert en zou ik altijd een bepaalde naam gebruiken die zeker geen index is..maar..goed punt
pi_93482244
quote:
10s.gif Op dinsdag 1 maart 2011 10:34 schreef erikkll het volgende:

[..]

Op basis van jouw advies heb ik de volgende query gemaakt:

[ code verwijderd ]

Mooi he? :D

Nu heb ik nog een vraagje. Daarvoor geef ik even een mogelijk resultaat:

[..]

Zoals je ziet zijn de records hetzelfde, met uitzondering van het laatste veld. Hoe kan ik er nu voor zorgen dat alleen de record met de LAAGSTE waarde van response.dateline wordt weergegeven?
dit heb ik inmiddels opgelost!
1
2
3
4
5
6
7
SELECT swtickets.ticketid, swtickets.subject, swtickets.email, open.dateline, close.dateline, MIN(response.dateline)
FROM swtickets 
JOIN swauditlogs open ON(swtickets.ticketid=open.ticketid AND open.actiontype=11)
JOIN swauditlogs close ON(swtickets.ticketid=close.ticketid AND close.actiontype=8 AND close.actionmsg LIKE '%to: Nog te factureren%')
JOIN swauditlogs response ON(swtickets.ticketid=response.ticketid AND response.actiontype=12)
WHERE (swtickets.ticketstatusid=3 OR swtickets.ticketstatusid=4) AND swtickets.email LIKE '%trinicom%' 
GROUP BY swtickets.ticketid
  dinsdag 1 maart 2011 @ 11:28:57 #196
75592 GlowMouse
l'état, c'est moi
pi_93482455
Oh, had je bericht gemist.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93492128
quote:
1s.gif Op dinsdag 1 maart 2011 11:28 schreef GlowMouse het volgende:
Oh, had je bericht gemist.
Geen probleem. Ik werd er inmiddels enigszins moedeloos van, tot ik dit vond:
http://dev.mysql.com/doc/(...)olumn-group-row.html
pi_93495852
quote:
1s.gif Op dinsdag 1 maart 2011 11:28 schreef GlowMouse het volgende:
Oh, had je bericht gemist.
Mooie query trouwens he? Helemaal naar jouw voorbeeld. :P
  dinsdag 1 maart 2011 @ 19:52:54 #199
75592 GlowMouse
l'état, c'est moi
pi_93504976
Ja, ik ben trots op je notatie. Let alleen wel op dat open.dateline en close.dateline uniek zijn bij één ticketid.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93529226
quote:
1s.gif Op dinsdag 1 maart 2011 19:52 schreef GlowMouse het volgende:
Ja, ik ben trots op je notatie. Let alleen wel op dat open.dateline en close.dateline uniek zijn bij één ticketid.
Hmm. Ja, nouja, close.dateline kan meerdere keren voorkomen; het gaat om een ticket-systeem dat wij gebruiken. Die close.dateline is het moment dat een ticket naar 'Nog te factureren' wordt gezet. Het komt echter voor dat mensen dan een reactie in het ticket zetten, en dan gaat het automatisch terug naar 'Eerste lijn'.

Op dit moment weet ik nog niet wat ik in mijn rapportage wil gaan zetten, de eerste of de laatste keer dat dit plaatsvindt (het verplaatsen naar 'Nog te factureren'), maar uniek zijn die getallen sowieso :)
pi_93530963
als ik een filetje simpel wil uploaden met zoiets

1
2
3
4
5
<form enctype="multipart/form-data" action="uploader.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$naam
$_POST["uploadedfile"];
$name_short substr($naam0strrpos($naam'.'));
mkdir$name_short);

echo 
$naam."<br/>"//puur voor test;
echo $name_short."<br/>"//puur voor test;

$target_path "uploads/";

$target_path $target_path basename$_FILES['uploadedfile']['name']);

if(
move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo 
"The file ".  basename$_FILES['uploadedfile']['name']).
    
" has been uploaded";
} else{
    echo 
"There was an error uploading the file, please try again!";
}
?>

maar ziet geen naam met POST..request ook niet, als ik van de post-functie een get maakt dan werkt het wel, maar dan upload ie weer geen bestand....
doel is om een bestand te uploaden, dat er een folder wordt gemaakt die de bestandsnaam zonder extensie heeft en dat de te uploaden file in die folder komt
  woensdag 2 maart 2011 @ 11:10:25 #202
75592 GlowMouse
l'état, c'est moi
pi_93531318
Hoe groot is de file?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93531399
klein..14kb
zo kan het maar tot 8MB?
file komt wel in de juiste dir te staan..maar de dir wordt niet aangemaakt want met de POST wordt uploadedfile niet gezien
  woensdag 2 maart 2011 @ 11:16:25 #204
75592 GlowMouse
l'état, c'est moi
pi_93531509
Ah ik zie het. Ik weet niet precies welke info je wilt, maar lang niet alles wordt doorgegeven. Doe eens var_dump($_POST, $_FILES), dan zie je wat er beschikbaar is.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93531690
ik moet denk ik met zoiets aan de gang

$_FILES["uploadedfile"]["name"]

enne..:@
ik blijf klooien om dingen goed te kunnen combineren
hier vogel ik hier ipv uploads nu goed een variabele neer..met de slash erbij
$target_path = "uploads/";
pi_93532117
edit...lama :@
pi_93534894
Krijg de fout

Fatal error: Call to undefined function: zip_open()

wil dat net zoveel zeggen als..kut toch een te goedkope webhoster gekozen?

Andere oplossingen om een zipfile te openen op server?
  woensdag 2 maart 2011 @ 12:55:05 #208
75592 GlowMouse
l'état, c'est moi
pi_93535098
via het progrmma zip
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93535144
quote:
via het progrmma zip
op een gehoste webserver?
  woensdag 2 maart 2011 @ 13:01:33 #210
75592 GlowMouse
l'état, c'est moi
pi_93535336
ja, exec, shell_exec, backticks, etc.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 2 maart 2011 @ 13:03:35 #211
75592 GlowMouse
l'état, c'est moi
pi_93535424
Op http://nl3.php.net/manual/en/function.zip-open.php in de comments staat een mooie functie.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93535430
quote:
ja, exec, shell_exec, backticks, etc.
je weet wel beter....
pi_93535936
wat is handiger bij het opslaan van een bericht met ubb code:
opslaan met de ubb code erin, of eerst de ubb code omzetten naar html en dan opslaan...
  woensdag 2 maart 2011 @ 13:19:59 #214
75592 GlowMouse
l'état, c'est moi
pi_93536109
Allebei opslaan.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93537411
quote:
1s.gif Op woensdag 2 maart 2011 13:19 schreef GlowMouse het volgende:
Allebei opslaan.
is dat niet erg dubbelop en onnodig ruimte gebruik? (al gaat het niet echt om grote berichten)
  woensdag 2 maart 2011 @ 13:51:18 #216
75592 GlowMouse
l'état, c'est moi
pi_93537486
Omzetten is tijdrovend, dus bbcode opslaan is noodzakelijk. Als iemand een bericht wil wijzigen dan heb je de oorspronkelijke code ook nodig omdat er vaak geen mooie 1:1 terugvertaling is. Onnodig zou ik het dus niet noemen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 2 maart 2011 @ 14:01:37 #217
85514 ralfie
!Yvan eht nioj
pi_93537923
Een alternatief is een intermediair op te slaan. Bijvoorbeeld alle valide bbcode items markeren zodat deze met simpele replace() statements naar zowel bbcode als html omgezet kan worden.
pi_93537979
quote:
1s.gif Op woensdag 2 maart 2011 13:51 schreef GlowMouse het volgende:
Omzetten is tijdrovend, dus bbcode opslaan is noodzakelijk. Als iemand een bericht wil wijzigen dan heb je de oorspronkelijke code ook nodig omdat er vaak geen mooie 1:1 terugvertaling is. Onnodig zou ik het dus niet noemen.
ah, niet bij stil gestaan inderdaad....
oke dan, weet ik weer voldoende :D
  donderdag 3 maart 2011 @ 10:44:52 #219
37634 wobbel
Da WoBBeL King
pi_93583338
Ik ben al eventjes aan het brainstormen, maar ik kom er niet uit. Ook niet dankzij Google.

Gebruikers kunnen bij mij een CSV uploaden, en vervolgens selecteren welke kolommen ze willen importeren. Nu wil ik eigenlijk controleren of de aangeboden CSV correct is, voordat ik dit ga doen. Hiermee loop ik wel tegen een probleem, want elke CSV is anders. Sommige bestaan uit 2 velden, andere uit 5 of zelfs nog meer.

Hoe kan ik alle regels van de CSV valideren? Dat er niet 150 regels zijn met 5 velden, en dat regel 151 er ineens maar 4 heeft en mijn scriptje in de war raakt :+
pi_93583940
quote:
1s.gif Op donderdag 3 maart 2011 10:44 schreef wobbel het volgende:
Ik ben al eventjes aan het brainstormen, maar ik kom er niet uit. Ook niet dankzij Google.

Gebruikers kunnen bij mij een CSV uploaden, en vervolgens selecteren welke kolommen ze willen importeren. Nu wil ik eigenlijk controleren of de aangeboden CSV correct is, voordat ik dit ga doen. Hiermee loop ik wel tegen een probleem, want elke CSV is anders. Sommige bestaan uit 2 velden, andere uit 5 of zelfs nog meer.

Hoe kan ik alle regels van de CSV valideren? Dat er niet 150 regels zijn met 5 velden, en dat regel 151 er ineens maar 4 heeft en mijn scriptje in de war raakt :+
je bent bekend met de functie fgetcsv() ?

dan kan je de lengte van de array checken...
  donderdag 3 maart 2011 @ 12:37:53 #221
75592 GlowMouse
l'état, c'est moi
pi_93587260
quote:
1s.gif Op donderdag 3 maart 2011 11:03 schreef mschol het volgende:

[..]

je bent bekend met de functie fgetcsv() ?
Dat dus. CSV wil je niet met een eigen methode inlezen. Wat als iemand een newline heeft maar die netjes insluit tussen quotes?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93587441
quote:
1s.gif Op donderdag 3 maart 2011 12:37 schreef GlowMouse het volgende:

[..]

Dat dus. CSV wil je niet met een eigen methode inlezen. Wat als iemand een newline heeft maar die netjes insluit tussen quotes?
ik moet zeggen dat ik die functie pas 2 dagen ken maar em nu al fantastisch vind :+

ik heb ook wat andere problemen gehad, maar ben er wel uit gekomen.. *O*
(csv bestand in UTF-8 importeren in mySQL i.v.m. japanse karakters is een klein rampje.., maar wel gelukt inmiddels :P)
pi_93634088
http://trinitati.nl/%5C%27http://trinitati.nl/%5C%27

hmm.. ik krijg nu een probleem met magic quotes overal.
ergens waar ik dit kan overriden zodat het uit staat?

1
2
3
<?php
set_magic_quotes_runtime
(0);
?>
Werkte niet :o.

Dit in de htacces zetten wou me site killen.
1php_flag magic_quotes_gpc Off
Internal error.
Redacted
  vrijdag 4 maart 2011 @ 12:07:51 #224
75592 GlowMouse
l'état, c'est moi
pi_93634698
php_value magic_quotes_gpc off dan? Kun je bij php.ini? Wat zegt phpinfo over magic_quotes_*?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93636025
quote:
1s.gif Op vrijdag 4 maart 2011 12:07 schreef GlowMouse het volgende:
php_value magic_quotes_gpc off dan? Kun je bij php.ini? Wat zegt phpinfo over magic_quotes_*?
ik kan niet bij php.ini en mijn webhost wil het niet zelf uitzetten.

Warning: phpinfo() has been disabled for security reasons in /*/phpinfo.php on line 2

:')
Redacted
  vrijdag 4 maart 2011 @ 12:50:24 #226
75592 GlowMouse
l'état, c'est moi
pi_93636379
ini_get_all?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93636887
quote:
1s.gif Op vrijdag 4 maart 2011 12:50 schreef GlowMouse het volgende:
ini_get_all?
ik zal het proberen , leuke is dat mijn webhost ondertussen ook bezig is met een raid configuratie, als ik ze niet uit kan zetten zal ik ze moeten encoden en decoden en een eigen functie schrijven. maar als ze uitstaan bespaart met dat een hoop gezeik :) .

Webhost: Budgetwebhost zelf niet gekozen :{ maar ze zeggen dat het een week duurt voordat ze alles in raid hebben.
Redacted
pi_93651499
quote:
1s.gif Op vrijdag 4 maart 2011 12:41 schreef cablegunmaster het volgende:

[..]

ik kan niet bij php.ini en mijn webhost wil het niet zelf uitzetten.

Warning: phpinfo() has been disabled for security reasons in /*/phpinfo.php on line 2

:')
En als je het script niet phpinfo.php maar bijvoorbeeld info.php noemt, krijg je dan ook die warning?
  vrijdag 4 maart 2011 @ 18:30:16 #229
75592 GlowMouse
l'état, c'est moi
pi_93651942
Ja, "in /*/phpinfo.php on line 2" lijkt me duidelijk.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93653322
quote:
1s.gif Op vrijdag 4 maart 2011 18:30 schreef GlowMouse het volgende:
Ja, "in /*/phpinfo.php on line 2" lijkt me duidelijk.
Door die "in /*/phpinfo.php" krijg ik de indruk dat ze filteren op bestandsnaam en functie, niet alleen op functienaam. Maar goed, dat ben ik. Een hoster die phpinfo() uitzet, snapt het ook niet helemaal. Als je een site wilt bouwen, is het toch heel handig dat je php-instellingen na kunt kijken? Dat kan snel verklaren of iets wel of niet gaat werken.
pi_93653522
quote:
1s.gif Op vrijdag 4 maart 2011 19:05 schreef Light het volgende:

[..]

Door die "in /*/phpinfo.php" krijg ik de indruk dat ze filteren op bestandsnaam en functie, niet alleen op functienaam. Maar goed, dat ben ik. Een hoster die phpinfo() uitzet, snapt het ook niet helemaal. Als je een site wilt bouwen, is het toch heel handig dat je php-instellingen na kunt kijken? Dat kan snel verklaren of iets wel of niet gaat werken.
nou mijn vraag even stom.
1
2
3
4
5
6
7
<?php
function
    public function 
toonbaar_maken($page){
        
$find =' \ ';
        return 
preg_replace($find$replace ,$page);
    }
?>

nu wou ik hem dan maar weghalen met variabelen. hoe krijg ik dan de regex van een stom \ teken want die escaped natuurlijk :P in php.
Redacted
pi_93654617
quote:
1s.gif Op vrijdag 4 maart 2011 19:09 schreef cablegunmaster het volgende:

[..]

nou mijn vraag even stom.

[ code verwijderd ]

nu wou ik hem dan maar weghalen met variabelen. hoe krijg ik dan de regex van een stom \ teken want die escaped natuurlijk :P in php.
Je wilt slashes weghalen? Dat kan met stripslashes(). Of mis ik iets?
pi_93678809
quote:
1s.gif Op vrijdag 4 maart 2011 19:29 schreef Light het volgende:

[..]

Je wilt slashes weghalen? Dat kan met stripslashes(). Of mis ik iets?
als dat zo is dan faal ik keihard eigenlijk. :@
Redacted
pi_93690976
Ik heb een database met daarin een aantal auto's. Aan iedere auto is een klasse gekoppeld. Nu wil ik dit als volgend weergeven:

Klasse 1

- auto 1
- auto 3
- etc

Klasse 2

- auto 2
- etc

en zo verder voor iedere klasse.

Ik weet dat het kan maar ik heb geen idee hoe ik dat voor elkaar krijg. Ik ben niet opzoek naar een kant en klare code maar als iemand mij een hint in de juiste richting wil geven ben ik al tevreden.
pi_93691048
GROUP BY?
Of toch du vader?
  zaterdag 5 maart 2011 @ 17:17:48 #236
75592 GlowMouse
l'état, c'est moi
pi_93691230
ORDER BY klasse,model en dan in je php-code de rest doen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93693553
quote:
1s.gif Op zaterdag 5 maart 2011 17:13 schreef Luchtkoker het volgende:
GROUP BY?
En dit is 2e jaars informatica student aan de UvA :o
pi_93697067
ik ben wat aan et rotzooien met cms made simple, ondanks dat hij (nu iig) nog niet helemaal kan wat ik wil, ik ga daar later eens naar kijken om zelf een catalogus module te maken die flexibel genoeg is voor mijn data...

ik zoek eigenlijk een soort van tutorial met een aantal duidelijke voorbeelden hoe de templates daar gemaakt moeten worden.... iemand?
pi_93700242
quote:
ah sorry, het gaat mij niet zo zeer om de css of html, eerder om de gebruikte tags...
die lijken af te wijken van smarty?
dus b.v.:
ik wil een menu (laten) creeren,
hoe geef ik dit aan in een template...
pi_93700462
Al rondgekeken in de documentation?

http://wiki.cmsmadesimple.org/index.php/Main_Page
pi_93700870
quote:
1s.gif Op zaterdag 5 maart 2011 20:42 schreef Diabox het volgende:
Al rondgekeken in de documentation?

http://wiki.cmsmadesimple.org/index.php/Main_Page
ik had wel gekeken, maar kon het niet vinden (zal voor de zekerheid het dubbelcheckken)
  woensdag 9 maart 2011 @ 21:13:44 #243
137776 boem-dikkie
Jedi Mind Baby!
pi_93877959
Even weer een dummievraag. Heb dit eigenlijk nog nooit gedaan namelijk.

Ik heb een Excel-sheet met 188 rijen.

In die rijen staan een naam + een wachtwoord.

Nu had ik ze allemaal zelf ge'hashed en handmatig in de database gezet, vervolgens iets fout gedaan en nu moet ik ze er allemaal wéér in zetten.

Het is dus de bedoeling dat ik alle namen + wachtwoorden (omgezet met SHA1 of MD5?) in mijn database zet.

Hoe kan ik dit het handigst in één keer doen? Zoals eerder opgemerkt in dit topic weet ook ik niet hoe ik dit het handigst kan opzoeken via Google, vandaar hier de vraag.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  woensdag 9 maart 2011 @ 21:19:00 #244
75592 GlowMouse
l'état, c'est moi
pi_93878231
je stelt de queries samen in Excel. Als username in A1 staat en wachtwoord in B1 staat, doe je in C1: UPDATE table SET wachtwoord=SHA1(', in D1 doe je =B1, in E1 doe je ') WHERE username=, etc.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 9 maart 2011 @ 21:39:15 #245
137776 boem-dikkie
Jedi Mind Baby!
pi_93879397
En dan in elke rij?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
  woensdag 9 maart 2011 @ 21:47:21 #246
75592 GlowMouse
l'état, c'est moi
pi_93879863
Dan slepen idd. En dan heb je alle queries en kun je ze uitvoeren.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 9 maart 2011 @ 22:09:54 #247
137776 boem-dikkie
Jedi Mind Baby!
pi_93881310
Maar met een UPDATE? Want ik heb dus nu een lege database?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_93883270
quote:
14s.gif Op woensdag 9 maart 2011 22:09 schreef boem-dikkie het volgende:
Maar met een UPDATE? Want ik heb dus nu een lege database?
Je had die gebruikers toch al eens in de database gezet? Of was dat "foutje" dat de tabel nu weer helemaal leeg is?

Als de tabel met users leeg is, moet je die weer vullen. En dan heb je idd niets aan een update, dan moet je een insert gebruiken. Het idee is wel vergelijkbaar met die update-query's.
  woensdag 9 maart 2011 @ 22:49:31 #249
137776 boem-dikkie
Jedi Mind Baby!
pi_93883850
quote:
1s.gif Op woensdag 9 maart 2011 22:39 schreef Light het volgende:

[..]

Je had die gebruikers toch al eens in de database gezet? Of was dat "foutje" dat de tabel nu weer helemaal leeg is?

Als de tabel met users leeg is, moet je die weer vullen. En dan heb je idd niets aan een update, dan moet je een insert gebruiken. Het idee is wel vergelijkbaar met die update-query's.
Nee ik was met een UPDATE query een WHERE vergeten :@ dus toen heeft hij alle 188 leden overschrijven met mijn eigen gebruikersnaam en wachtwoord. :') !
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_93883885
quote:
10s.gif Op woensdag 9 maart 2011 22:49 schreef boem-dikkie het volgende:

[..]

Nee ik was met een UPDATE query een WHERE vergeten :@ dus toen heeft hij alle 188 leden overschrijven met mijn eigen gebruikersnaam en wachtwoord. :') !
_O-
pi_93884080
quote:
10s.gif Op woensdag 9 maart 2011 22:49 schreef boem-dikkie het volgende:

[..]

Nee ik was met een UPDATE query een WHERE vergeten :@ dus toen heeft hij alle 188 leden overschrijven met mijn eigen gebruikersnaam en wachtwoord. :') !
toch wel een backup bij? :D
Redacted
  woensdag 9 maart 2011 @ 22:59:26 #252
137776 boem-dikkie
Jedi Mind Baby!
pi_93884559
quote:
1s.gif Op woensdag 9 maart 2011 22:52 schreef cablegunmaster het volgende:

[..]

toch wel een backup bij? :D
Niet dus. :')

Scheelt dat het een lijst met leden is die ik voor het systeem daadwerkelijk 'live' gaat al moet inkloppen. Ik ben dus de enige die er last van heeft.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_93886165
Iedereen die op mijn "willekeurige achtergrond selecteren"-code van een paar pagina's terug heeft gereageerd: heel erg bedankt. Ik had nu helaas pas weer tijd om er mee te sleutelen.

Ik heb het idee dat ik erg dichtbij zit, maar toch werkt het nog niet.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php session_start();  
if(isset(
$_SESSION['randombgimg'])) {

    echo 
'<img alt="" id="bg" src="../gallery/backgrounds/'.$_SESSION['randombgimg'].'">'; }
    
else {
$imgarray=array();
$path "../gallery/backgrounds/";
$fileType '[jJ][pP][gG]';
    foreach (
glob($path."*.".$fileType) as $filename) {
   
$imgarray[] = basename($filename); 
}
  
$rand=mt_rand(0,count($imgarray)-1);

    if(
$rand >= 0)
    {
    
    
$_SESSION['randombgimg'] = $imgarray[$rand];
    echo 
'<img alt="" id="bg" src="../gallery/backgrounds/'.$imgarray[$rand].'">';

    } 
    
}
?>

De inhoud van $_SESSION['randombgimg'] en $imgarray[$rand] worden echter niet weergegeven (of zijn leeg...??). Weet iemand misschien waar dit in zit? Voor de goede orde: session_start(); staat op de eerste regel :)

Heel erg bedankt!
pi_93886658
quote:
1s.gif Op woensdag 9 maart 2011 23:31 schreef mwvrs het volgende:
Iedereen die op mijn "willekeurige achtergrond selecteren"-code van een paar pagina's terug heeft gereageerd: heel erg bedankt. Ik had nu helaas pas weer tijd om er mee te sleutelen.

Ik heb het idee dat ik erg dichtbij zit, maar toch werkt het nog niet.

[ code verwijderd ]

De inhoud van $_SESSION['randombgimg'] en $imgarray[$rand] worden echter niet weergegeven (of zijn leeg...??). Weet iemand misschien waar dit in zit? Voor de goede orde: session_start(); staat op de eerste regel :)

Heel erg bedankt!
heb je zelf al eens met wat echo(); 's geprobeerd te kijken wat waar in zit?
  woensdag 9 maart 2011 @ 23:42:56 #255
75592 GlowMouse
l'état, c'est moi
pi_93886685
Heb je geen code die wel juist inspringt? Wat doet die if op regel 16? Wat als imgarray leeg is?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93892530
Gezien er geen centrale HTML topic is probeer ik het hier.

Ik maak genoodzaakt gebruik van
quote:
<base href="http://www.mijnwebsite.nl">
in mijn header tag. Ik maak namelijk gebruik van RewriteRules, hierdoor kan ik SEO vriendelijke URL's gebruiken, bijvoorbeeld: http://www.mijnwebsite.nl/categorie/productnaam/

Echter stuit ik hierdoor op een probleem.

Wanneer ik op ttp://www.mijnwebsite.nl/categorie/ ben, zie ik een lijst met alle producten. De producten moeten klikbaar zijn om de product te weergeven, dit doe ik door:
quote:
<a href="productnaam">product naam</a>
De link moet dus worden: http://www.mijnwebsite.nl/categorie/productnaam
Echter gebeurd dat niet door de base tag volgens mij. De link wordt: http://www.mijnwebsite.nl/productnaam

Hoe is dit op te lossen?
  donderdag 10 maart 2011 @ 09:52:06 #257
75592 GlowMouse
l'état, c'est moi
pi_93895082
Linken naar /categorie/productnaam, of geen base href gebruiken en je css/images inladen via een pad dat met / begint.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93946234
@Glow, nog bedankt voor advies laatst, hele hoop geleerd afgelopen weken over schaalbare databases :)

Ik ben op zoek naar wat info over de lengte van velden in een userdatabase, iemand leuke linkjes/blogposts hierover? (lengte van email veld, username veld etc)

Handig tooltje om regular expressions mee te testen & te maken:
http://rubular.com/regexes/

Generator voor .htcaccess bestandjes om je url mooi te maken:
http://www.generateit.net/mod-rewrite/

Leuk artikeltje over hoe sql netjes te maken:
http://kevin.vanzonneveld.net/techblog/article/sql_formatting/
"Op Fok! val je pas op als je normaal bent." -mazaru
pi_93957837
waar moet ik ergens vertellen dat gebruikerA bijv admin rechten heeft en toegang heeft tot andere pagina's?

GebruikerA logt in en die krijgt dan een extra button te zien die voor andere niet zichtbaar is? Hoe werkt zo iets?
  vrijdag 11 maart 2011 @ 14:57:21 #260
75592 GlowMouse
l'état, c'est moi
pi_93958153
Met een if.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93958358
In een database loggen welke users meer rechten hebben en dan uitlezen en dan; if (user=admin) { echo button; } .
pi_93960944
als je userlevels per user geeft kan je ook nog moderators etc maken.
ik gebruik bv: 1 alleen lezen, 5 mod, 10 admin
kan je natuurlijk ook nog tussenstapjes in maken :P
tjah :P
pi_93985160
Heb even snel scriptje gemaakt om mysql insert queries te kunnen bechmarken:
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Net even 5 minuten zitten spelen met innodb en zie hier het resultaat,

(Insertqueries in userdatabase)

Graag reacties over betrouwbaarheid van het scriptje.
Het gaat mij niet zozeer om production vs development verschil maar meer om betrouwbaarheid tussen benchmark #1 met x settings en #2 met y settings zegmaar.

Nu nog even database classes herschrijven naar een hybride memcache/mysql en hop hop, update erop :7
"Op Fok! val je pas op als je normaal bent." -mazaru
pi_93985457
Ik ben voornamelijk onder de indruk van je grafiekje! Waarmee heb je die gemaakt? :P
  zaterdag 12 maart 2011 @ 00:05:01 #265
75592 GlowMouse
l'état, c'est moi
pi_93985647
Zoek je microtime(true)?
Een md5 is 32 ipv 31 tekens. Doe gewoon return md5(microtime) ipv zo moeilijk te doen.
Ik snap niet wat je precies benchmarkt. Insert speed hangt oa af van je buffer pool-grootte, van innodb_flush_log_at_trx_commit, is niet constant in de tijd als je niet harder flusht dan innodb gebruikelijk doet en wordt veel groter bij meerdere threads.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_93988571
quote:
10s.gif Op zaterdag 12 maart 2011 00:01 schreef erikkll het volgende:
Ik ben voornamelijk onder de indruk van je grafiekje! Waarmee heb je die gemaakt? :P
met pchart is het super simpel :)
pi_94093031
Kan iemand me helpen met het volgende idee....

Ik heb:
een tabel met Gebruikers (id, naam etc)
een tabel met Optredens (id, datum etc)
een koppeltabel voor de aanwezigheid per optreden($O_id) per gebruiker ($G_id)

nu wil ik een compleet overzicht maken (in een tabel???)
zodat ik op 1 pagina kan zien, of G_id op O_id wel of niet aanwezig is.

/ G_id=1/G_id=2/etc/etc/etc
O_id=1/ JA / NEE /
O_id=2/ NEE / JA /

Hoe ga ik dit aanpakken?
Mensen bij G_id zijn redelijk stabiel, dus om dat eenmalig met de hand op te zetten zou geen probleem zijn.
O_id veranderd natuurlijk heel vaak, deze moet dus ook automatisch erbij komen
Kan iemand me een concreet voorbeeld geven hoe ik dit moet aanpakken??
pi_94094005
Wat heb je al geprobeerd?

Als er veel gebruikers zijn krijg je wel een heel lelijke tabel...
pi_94094174
er zijn ongeveer 20 gebruikers, max 30

tot nu toe heb ik dit (gevonden op internet en wat aangepast)
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
<?php
$teller 
0;
// Verander het getal hieronder in het aantal kolommen
// dat je naast elkaar wilt hebben.
$naast_elkaar 1;

echo 
'<table>';

$G_name"MrNiles";
$result mysql_query("SELECT * FROM gebruikers WHERE G_name='$G_name' ");
while(
$row mysql_fetch_array($result))
$G_id=$row['G_id'];

$commando="
SELECT koppeltabel.*, optredens.*
FROM koppeltabel, optredens
WHERE koppeltabel.O_id = optredens.O_id AND koppeltabel.G_id=$G_id"
;
$resultaat=mysql_query($commando);
while(
$array=mysql_fetch_array($resultaat))
{
    echo (
$teller $naast_elkaar) == '<tr>' '';
    echo 
'<td>';
    
// Hier zet je een echo met de gegevens die je
    // wilt weergeven in het tabelvak.
    
echo $array['datum'];     echo '</td>';
echo 
'<td>';
echo 
$array['aanwezig'];     echo '</td>';

    
$teller++;
    echo (
$teller $naast_elkaar) == '</tr>' '';
}
echo (
$teller $naast_elkaar) != '</tr>' '';
echo 
'</table>';
?>

probleem is dat dit dus voor 1 geldt ($G_name)
hier staat misschien een omslachtige manier beschreven om het G_id te krijgen
maar dit heb ik even uit een ander deel gecopiet
...probleem (vraag) is dus nu..
ik kan dit voor elke gebruiker doen..maar als er dan een gebruiker weggaat of bijkomt moet ik dit gaan aanpassen. niet echt handig dus
hoe wel?
  maandag 14 maart 2011 @ 14:55:42 #270
75592 GlowMouse
l'état, c'est moi
pi_94094388
Je kunt het allemaal uit 1 query halen:
SELECT gebruikers.G_id,gebruikers.O_id,IF(koppel.O.id IS NULL,1,0) AS aanwezig
FROM Gebruikers,Optredens
LEFT JOIN koppel ON(koppel.O_id = Optredens.id AND koppel.G_id = Gebruikers.id)

en dan:
while($row=mysql_fetch_array($res))
$aanwezig[$row['G_id']][$row['O_id']] = $res['aanwezig'];
}
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 14 maart 2011 @ 14:56:00 #271
75592 GlowMouse
l'état, c'est moi
pi_94094404
mooie dag vandaag
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_94094581
wat vinden jullie een logische benaming voor een koppeltabel, als je meerdere koppeltabellen nodig hebt in 1 database?
  maandag 14 maart 2011 @ 15:03:23 #273
75592 GlowMouse
l'état, c'est moi
pi_94094680
zeggen wat hij koppelt, bv. gebruikers_optredens
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_94095175
quote:
mooie dag vandaag
ja ik dacht het is zo rustig..laat ik GlowMouse maar weer eens vervelen met stomme vragen :)
  † In Memoriam † maandag 14 maart 2011 @ 15:30:16 #275
159966 lifeblind
pi_94095811
Hm, interessant topic om te volgen, ik kan vast ook wel een zut vragen beantwoorden hier :P
pi_94147315
Weet iemand een oplossing voor het volgende

Ik wil een straatnaam + nummer van elkaar splitsen, echter kan het nummertje er op verschillende manieren staan

straatnaam 12
straatnaam 12-12
straatnaam 12a
straatnaam 12-a
straatnaam 12 a1
etc

Nu heb ik het volgende gevonden om het te matchen en splitten maar het werkt niet helemaal, nu heb ik zelf geprobeerd om er aan toe te voegen dat het ook streepjes kan accepteren, maar op een of andere manier werkte het niet.

Origineel:
preg_match ( '~(.*?)\s*(\d+\D*)$~' , $address , $number

Aangepast:
preg_match ( '~(.*?)\s*([\-]\d+\D*)$~' , $address , $number

maar op een of andere manier weet ik niet hoe ik in (\d+\D*) een - als match kan toevoegen. Iemand?
Just say hi!
pi_94149563
(.+)\s([0-9].*)
pi_94151739
Wie kan me even helpen met deze regex?

Ik wil graag floating point getallen matchen.

Ik heb deze regex "[-]?[0-9]*\.?[0-9]+" van http://www.regular-expressions.info/floatingpoint.html. Ik wil echter dat de regex alles wegfiltert wat fout is. Nu krijg ik namelijk bij de invoer "-13x.1%.4$,14.2" "x%$," ervoor terug terwijl ik graag "-13.1" wil terug krijgen (alles na de 2de punt is immers fout).
  dinsdag 15 maart 2011 @ 18:50:10 #279
111382 Ofyles2
Bestemming: onbekend
pi_94153221
Waarom staat er een vraagteken achter dat punt als ik vragen mag?
  dinsdag 15 maart 2011 @ 19:05:30 #280
75592 GlowMouse
l'état, c'est moi
pi_94153848
Chandler: je kunt met preg_match kijken waar het eerste getal voorkomt, of anders
1([^0-9]*)(.*)
gebruiken en wel de straatnaam nog trimmen ivm spatie.
quote:
5s.gif Op dinsdag 15 maart 2011 17:23 schreef KomtTijd... het volgende:
(.+)\s([0-9].*)
gaat mis bij "straatnaam 12 a1".
quote:
1s.gif Op dinsdag 15 maart 2011 18:13 schreef Dale. het volgende:
Wie kan me even helpen met deze regex?

Ik wil graag floating point getallen matchen.

Ik heb deze regex "[-]?[0-9]*\.?[0-9]+" van http://www.regular-expressions.info/floatingpoint.html. Ik wil echter dat de regex alles wegfiltert wat fout is. Nu krijg ik namelijk bij de invoer "-13x.1%.4$,14.2" "x%$," ervoor terug terwijl ik graag "-13.1" wil terug krijgen (alles na de 2de punt is immers fout).
Hoe moet hij raden dat met "-13x.1" -13.1 bedoeld wordt?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_94156777
quote:
1s.gif Op dinsdag 15 maart 2011 19:05 schreef GlowMouse het volgende:
Chandler: je kunt met preg_match kijken waar het eerste getal voorkomt, of anders

[ code verwijderd ]

gebruiken en wel de straatnaam nog trimmen ivm spatie.

[..]

gaat mis bij "straatnaam 12 a1".

[..]

Hoe moet hij raden dat met "-13x.1" -13.1 bedoeld wordt?
Door de x weg te filteren en alles na, inclusief, de punt?
pi_94157118
quote:
1s.gif Op dinsdag 15 maart 2011 19:05 schreef GlowMouse het volgende:
Chandler: je kunt met preg_match kijken waar het eerste getal voorkomt, of anders

[ code verwijderd ]

gebruiken en wel de straatnaam nog trimmen ivm spatie.

Gaat mis bij "1e middellandstraat"
  dinsdag 15 maart 2011 @ 20:03:45 #283
111382 Ofyles2
Bestemming: onbekend
pi_94157350
quote:
3s.gif Op dinsdag 15 maart 2011 20:00 schreef KomtTijd... het volgende:

[..]

Gaat mis bij "1e middellandstraat"
Of wat te denken van Plein 1945 3?
pi_94157822
quote:
1s.gif Op dinsdag 15 maart 2011 19:54 schreef Dale. het volgende:

[..]

Door de x weg te filteren en alles na, inclusief, de punt?
waarom niet gewoon filter_var($float,FILTER_SANITIZE_NUMBER_FLOAT) ??
pi_94160300
Laat ze gewoon het huisnummer en toevoeging apart invoeren dan :P.
  dinsdag 15 maart 2011 @ 20:44:01 #286
111382 Ofyles2
Bestemming: onbekend
pi_94160349
quote:
1s.gif Op dinsdag 15 maart 2011 20:43 schreef Tegan het volgende:
Laat ze gewoon het huisnummer en toevoeging apart invoeren dan :P.
Goed idee, daar zat ik ook al aan te denken.
pi_94160403
Hoewel ik me afvraag waarom je ze apart nodig hebt?
  dinsdag 15 maart 2011 @ 20:46:13 #288
111382 Ofyles2
Bestemming: onbekend
pi_94160535
quote:
1s.gif Op dinsdag 15 maart 2011 20:44 schreef Tegan het volgende:
Hoewel ik me afvraag waarom je ze apart nodig hebt?
Vergeet mijn vorige post, ik praatte voor mijn beurt...
  dinsdag 15 maart 2011 @ 20:55:52 #289
302853 themole
graaft totaal door.
pi_94161355
quote:
1s.gif Op dinsdag 15 maart 2011 20:44 schreef Tegan het volgende:
Hoewel ik me afvraag waarom je ze apart nodig hebt?
En zelfs als je ze apart nodig hebt kun je het beter in twee velden zetten. Achteraf concateneren is makkelijker dan splitsen. Tenzij je natuurlijk de adressen in een al gegeven database wil splitsen. :P
Niet altijd serieus
pi_94161617
Dat laatste dacht ik ook ja :P .
pi_94161697
quote:
1s.gif Op dinsdag 15 maart 2011 20:03 schreef Ofyles2 het volgende:

[..]

with ^^
quote:
14s.gif Op dinsdag 15 maart 2011 20:44 schreef Ofyles2 het volgende:

[..]

with ^^
quote:
1s.gif Op dinsdag 15 maart 2011 20:46 schreef Ofyles2 het volgende:

[..]
with ^^
Euh, ja ok.
  dinsdag 15 maart 2011 @ 21:15:56 #292
75592 GlowMouse
l'état, c'est moi
pi_94162945
quote:
3s.gif Op dinsdag 15 maart 2011 20:00 schreef KomtTijd... het volgende:

[..]

Gaat mis bij "1e middellandstraat"
quote:
1s.gif Op dinsdag 15 maart 2011 20:03 schreef Ofyles2 het volgende:

[..]

Of wat te denken van Plein 1945 3?
Je kunt technisch geen onderscheid maken tussen Plein, nummer 1945 3 en tussen Plein 1945, nummer 3.
quote:
1s.gif Op dinsdag 15 maart 2011 19:54 schreef Dale. het volgende:

[..]

Door de x weg te filteren en alles na, inclusief, de punt?
In dat geval zoek je [0-9x]*\.[0-9x]*, waarna je de x via str_replace uit het resultaat haalt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 15 maart 2011 @ 21:19:17 #293
302853 themole
graaft totaal door.
pi_94163233
Overigens heb je in nederland ook gebieden die alleen straatnummers hebben, wat het helemaal ingewikkeld maakt.
Niet altijd serieus
  dinsdag 15 maart 2011 @ 22:14:08 #294
113667 Keiichi
Konnichiwa!
pi_94167765
Ik ben bezig met prepared statements in mysqli, maar ik kom iets tegen waar ik niet aan uitkom. Ik heb een tabel met veel kolommen, dus ik probeer wat geautomatiseerder queries te maken. Resultaat hiervan is bv:

"REPLACE INTO `tabel` (`een`,`twee`,`drie`) VALUES (?,?,?)"

Ik heb een array met corresponderende veldtypes en waardes in arrays staan. De types kan ik makkelijk impoden naar een bijhorende string, maar ik kan de array niet als argument opgeven en vol uitschrijven gaat niet (Althans, iemand heeft 100 kolommen in een tabel gemaakt, daarvoor ga ik echt geen 100 variables aanmaken en een mega bind_param call maken -O-

Wie heeft er hiervoor een oplossing?
  dinsdag 15 maart 2011 @ 22:19:26 #295
302853 themole
graaft totaal door.
pi_94168221
quote:
1s.gif Op dinsdag 15 maart 2011 22:14 schreef Keiichi het volgende:
Ik ben bezig met prepared statements in mysqli, maar ik kom iets tegen waar ik niet aan uitkom. Ik heb een tabel met veel kolommen, dus ik probeer wat geautomatiseerder queries te maken. Resultaat hiervan is bv:

"REPLACE INTO `tabel` (`een`,`twee`,`drie`) VALUES (?,?,?)"

Ik heb een array met corresponderende veldtypes en waardes in arrays staan. De types kan ik makkelijk impoden naar een bijhorende string, maar ik kan de array niet als argument opgeven en vol uitschrijven gaat niet (Althans, iemand heeft 100 kolommen in een tabel gemaakt, daarvoor ga ik echt geen 100 variables aanmaken en een mega bind_param call maken -O-

Wie heeft er hiervoor een oplossing?
Zit er een logica achter de kolomnamen of niet.

Als ze bijvoorbeeld 1 t/m 100 heten kan je proberen een for/while loop. Anders ben je vrij goed gefuckt.
Niet altijd serieus
pi_94169106
quote:
1s.gif Op dinsdag 15 maart 2011 22:14 schreef Keiichi het volgende:
Ik ben bezig met prepared statements in mysqli, maar ik kom iets tegen waar ik niet aan uitkom. Ik heb een tabel met veel kolommen, dus ik probeer wat geautomatiseerder queries te maken. Resultaat hiervan is bv:

"REPLACE INTO `tabel` (`een`,`twee`,`drie`) VALUES (?,?,?)"

Ik heb een array met corresponderende veldtypes en waardes in arrays staan. De types kan ik makkelijk impoden naar een bijhorende string, maar ik kan de array niet als argument opgeven en vol uitschrijven gaat niet (Althans, iemand heeft 100 kolommen in een tabel gemaakt, daarvoor ga ik echt geen 100 variables aanmaken en een mega bind_param call maken -O-

Wie heeft er hiervoor een oplossing?
Met een query
1DESCRIBE <table>
moet je een overzicht van de aanwezige kolommen kunnen krijgen. Dat is vast wel met een array verder te verwerken.
pi_94169156
quote:
1s.gif Op dinsdag 15 maart 2011 22:14 schreef Keiichi het volgende:
Ik ben bezig met prepared statements in mysqli, maar ik kom iets tegen waar ik niet aan uitkom. Ik heb een tabel met veel kolommen, dus ik probeer wat geautomatiseerder queries te maken. Resultaat hiervan is bv:

"REPLACE INTO `tabel` (`een`,`twee`,`drie`) VALUES (?,?,?)"

Ik heb een array met corresponderende veldtypes en waardes in arrays staan. De types kan ik makkelijk impoden naar een bijhorende string, maar ik kan de array niet als argument opgeven en vol uitschrijven gaat niet (Althans, iemand heeft 100 kolommen in een tabel gemaakt, daarvoor ga ik echt geen 100 variables aanmaken en een mega bind_param call maken -O-

Wie heeft er hiervoor een oplossing?
Hoe ziet die array er precies uit dan?
Zo'n prepared statement doe je toch gewoon een array voeren?
pi_94169164
quote:
14s.gif Op dinsdag 15 maart 2011 22:19 schreef themole het volgende:

[..]

Zit er een logica achter de kolomnamen of niet.

Als ze bijvoorbeeld 1 t/m 100 heten kan je proberen een for/while loop. Anders ben je vrij goed gefuckt.
Je bent pas echt fucked als de kolomnamen niet duidelijk aangeven wat de inhoud is.
  dinsdag 15 maart 2011 @ 22:34:30 #299
302853 themole
graaft totaal door.
pi_94169450
quote:
1s.gif Op dinsdag 15 maart 2011 22:30 schreef Light het volgende:

[..]

Met een query

[ code verwijderd ]

moet je een overzicht van de aanwezige kolommen kunnen krijgen. Dat is vast wel met een array verder te verwerken.
Dan moet de volgorde van je Array wel gelijk zijn aan de volgorde waarin de kolommen in de tabel staan. Maar het is iig vervelend lastig. :P
Niet altijd serieus
pi_94170214
quote:
14s.gif Op dinsdag 15 maart 2011 22:34 schreef themole het volgende:

[..]

Dan moet de volgorde van je Array wel gelijk zijn aan de volgorde waarin de kolommen in de tabel staan. Maar het is iig vervelend lastig. :P
Met AdoDB kun je ook:
1
2
3
<?php
$db
->Execute('INSERT INTO `table` (`een,` `twee`) VALUES (:een, :twee)',array('een'=>'foo''twee'=>'bar'));
?>

geen idee in hoeverre dat vergelijkbaar werkt...
  woensdag 16 maart 2011 @ 08:22:55 #301
113667 Keiichi
Konnichiwa!
pi_94180215
Ik heb het met PDO opgelost, daar kan ik individueel peer 'tag' opgeven welke waarde ik er aan wil toekennen, bv

1"REPLACE INTO `tabel` (`een`,`twee`,`drie`) VALUES (:een,:twee,:drie)"

Vanuit een DESCRIBE TABLE heb ik alle kolommen idd al gehaald en ook als zodanig de query opgebouwd en daarna bindValue laten doen.

Stukje code waar ik uiteindelijk op gekomen ben :)

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
<?php

$db_old 
= new PDO(...);
$db_new = new PDO(...);

$res_new $db_new->query("DESCRIBE `database_nieuw`.`tabel_nieuw`");

$fields = array();
$fields_types = array();
$fields_filling = array();

while (
$row_new $res_new->fetchObject()) {
        
array_push($fields,"`".$row_new->Field."`");
        
array_push($fields_filling,":".$row_new->Field."");
        if (
preg_match("/int\(\d+\)/",$row_new->Type)) {
                
$fields_types[$row_new->Field] = PDO::PARAM_INT;
        } elseif (
preg_match("/date|text|varchar/",$row_new->Type)) {
                
$fields_types[$row_new->Field] = PDO::PARAM_STR;
        } else {
                
$fields_types[$row_new->Field] = PDO::PARAM_STR;
        }
}

$to_prepare "REPLACE INTO `database_nieuw`.`tabel_nieuw` (".implode(",",$fields).") VALUES (".implode(",",$fields_filling).")";

echo 
"To prepare: "  $to_prepare "\n";

$res $db_old->query("SELECT * FROM `database_oud`.`tabel_oud`");

while(
$row $res->fetchObject()) {
        
$this_array = array();
        
$sth $db_new->prepare($to_prepare);
        foreach (
$fields as $f) {
                
$f2 preg_replace("/`/","",$f);
                
$sth->bindValue(":".$f2,$row->$f2,$fields_types[$f2]);
                echo 
"Binding " $f2 ." : " .$row->$f2"\n";
        }
        
$sth->execute();
}
?>

Maar ik vraag me eigenlijk af waarom de features van PDO en mysqli zo verwant aan elkaar zijn, maar dan toch op zulke dingen eigenlijk weer verschillen?
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')