abonnement Unibet Coolblue Bitvavo
  woensdag 20 januari 2010 @ 07:25:16 #101
113667 Keiichi
Konnichiwa!
pi_77040657
Ik ben in MySQL lekker aan het stoeien met subquery's. Maar bij het eerste de beste wat ik maak duurt het 15 minuten voordat ik resultaat heb

Mijn query:
1SELECT `w` FROM `w` WHERE `w`.`w` IN (SELECT `werknummer` FROM `w` WHERE  GROUP BY w HAVING COUNT(*) > 1);


Een EXPLAIN levert dit op:
1
2
3
4
5
6
+----+--------------------+-------+-------+---------------+------+---------+------+-------+--------------------------+
| id | select_type        | table | type  | possible_keys | key  | key_len | ref  | rows  | Extra                    |
+----+--------------------+-------+-------+---------------+------+---------+------+-------+--------------------------+
|  1 | PRIMARY            | w     | index | NULL          | w    | 4       | NULL | 23023 | Using where; Using index |
|  2 | DEPENDENT SUBQUERY | w     | range | w             | w    | 4       | NULL | 17678 | Using where              |
+----+--------------------+-------+-------+---------------+------+---------+------+-------+--------------------------+


Is MySQL niet zo geweldig met subqueries of doe ik ergens iets heel raars?

De echte tabelnamen en veldnamen heb ik even afgekort, maar hoeft niets voor de query uit te maken.
pi_77042329
Het lijkt er op dat er een index ontbreekt in de tabel.
  woensdag 20 januari 2010 @ 10:33:30 #103
75592 GlowMouse
l'état, c'est moi
pi_77043529
waarom is WHERE in je subquery leeg?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 20 januari 2010 @ 10:42:16 #104
113667 Keiichi
Konnichiwa!
pi_77043793
quote:
Op woensdag 20 januari 2010 10:33 schreef GlowMouse het volgende:
waarom is WHERE in je subquery leeg?
Oh foutje. Daar stond een kleine verfijning van: "WHERE `w` != 1" . Vergeten ook de WHERE weg te halen
  woensdag 20 januari 2010 @ 10:44:57 #105
75592 GlowMouse
l'état, c'est moi
pi_77043889
Geef je hele tabel is, want ik zie niet waarom w en werknummer aan elkaar gelijk moeten zijn
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 20 januari 2010 @ 10:47:12 #106
75592 GlowMouse
l'état, c'est moi
pi_77043960
Zoals je hem post, lijkt het ook geen dependent subquery.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 20 januari 2010 @ 11:48:40 #107
25889 Sitethief
Fulltime Flapdrol
pi_77046089
Wat is een simpele manier om een object dat uit simplexml_load_file komt in een array te zetten.
Ik gebruik nu get_object_vars maar dat komt er dan zo uit te zien:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Array
(
    [book] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [id] =>1
                        )
                    [author] => Gambardella, Matthew
                    [title] => XML Developer's Guide
                    [genre] => Computer
                    [price] => 44.95
                    [publish_date] => 2000-10-01
                    [description] => An in-depth look at creating applications with XML.
                )

Terwijl ik eigenlijk een array wil hebben die begint met id 1,2,3 etc. Dit is een beetje omslachtig om iedere keer output te geven.

Dit is de XML:
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella, Matthew</author>
      <title>XML Developer's Guide</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
      <description>An in-depth look at creating applications with XML.</description>
   </book>
</catalog>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  vrijdag 22 januari 2010 @ 19:43:09 #108
110933 F4T4L_3RR0R
R.I.P. webicon ;(
pi_77152563
Ik heb een PHP scriptje welke een SMS API included.

De berichten staan in $sms met een substr met 160 karakters limiet.

Nu wil ik de berichten ook "Tweeten" op mijn Twitter account. Heb al een substr genaamd $twitter met een 140 karakters limiet.

Alleen, hoe post ik dit op mijn Twitter account? De API's die ik op internet heb gevonden zijn veel te uitgebreid en vaak ook bedoeld om "Tweets" van anderen op te halen en weer te geven op een website.

Voor mijn doel hoeft er helemaal niets opgehaald of ge-echo'd te worden.
Een ballonvaarder die door de mand valt is nooit grappig...
  vrijdag 22 januari 2010 @ 19:45:39 #109
75592 GlowMouse
l'état, c'est moi
pi_77152677
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 22 januari 2010 @ 20:05:13 #110
110933 F4T4L_3RR0R
R.I.P. webicon ;(
pi_77153546
Dus in mijn geval dus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// Set username and password
$username 'username';
$password 'password';

// The twitter API address
$url 'http://twitter.com/statuses/update.xml';

$curl_handle curl_init();
curl_setopt($curl_handleCURLOPT_URL"$url");
curl_setopt($curl_handleCURLOPT_CONNECTTIMEOUT2);
curl_setopt($curl_handleCURLOPT_RETURNTRANSFER1);
curl_setopt($curl_handleCURLOPT_POST1);
curl_setopt($curl_handleCURLOPT_POSTFIELDS"status=$twitter");
curl_setopt($curl_handleCURLOPT_USERPWD"$username:$password");
curl_close($curl_handle);
?>
Een ballonvaarder die door de mand valt is nooit grappig...
  vrijdag 22 januari 2010 @ 20:32:34 #111
110933 F4T4L_3RR0R
R.I.P. webicon ;(
pi_77154646
Het gekke is dat dit niet werkt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// Set username and password
$username "username";
$password "password";

// The message you want to send
$twitter 'dit is een test';

// The twitter API address
$url 'http://twitter.com/statuses/update.xml';

$curl_handle curl_init();
curl_setopt($curl_handleCURLOPT_URL"$url");
curl_setopt($curl_handleCURLOPT_CONNECTTIMEOUT2);
curl_setopt($curl_handleCURLOPT_RETURNTRANSFER1);
curl_setopt($curl_handleCURLOPT_POST1);
curl_setopt($curl_handleCURLOPT_POSTFIELDS"status=$twitter");
curl_setopt($curl_handleCURLOPT_USERPWD"$username:$password");
curl_close($curl_handle);
?>


En dit juist weer wel, maar wil geen echo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
// Set username and password
$username "username";
$password "password";

// The message you want to send
$twitter 'dit is een test';

// The twitter API address
$url 'http://twitter.com/statuses/update.xml';

$curl_handle curl_init();
curl_setopt($curl_handleCURLOPT_URL"$url");
curl_setopt($curl_handleCURLOPT_CONNECTTIMEOUT2);
curl_setopt($curl_handleCURLOPT_RETURNTRANSFER1);
curl_setopt($curl_handleCURLOPT_POST1);
curl_setopt($curl_handleCURLOPT_POSTFIELDS"status=$twitter");
curl_setopt($curl_handleCURLOPT_USERPWD"$username:$password");
$buffer curl_exec($curl_handle);
curl_close($curl_handle);
// check for success or failure
if (empty($buffer)) {
echo 
'message';
} else {
echo 
'success';
}
?>


Edit:

Fixed:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// Set username and password
$username "username";
$password "password";

// The message you want to send
$twitter 'dit is een test';

// The twitter API address
$url 'http://twitter.com/statuses/update.xml';

$curl_handle curl_init();
curl_setopt($curl_handleCURLOPT_URL"$url");
curl_setopt($curl_handleCURLOPT_CONNECTTIMEOUT2);
curl_setopt($curl_handleCURLOPT_RETURNTRANSFER1);
curl_setopt($curl_handleCURLOPT_POST1);
curl_setopt($curl_handleCURLOPT_POSTFIELDS"status=$twitter");
curl_setopt($curl_handleCURLOPT_USERPWD"$username:$password");
curl_exec($curl_handle);
curl_close($curl_handle);
?>
Een ballonvaarder die door de mand valt is nooit grappig...
pi_77206784
Ik post hier even.. want ik heb straks een vraag..
Op vrijdag 12 augustus 2005 01:46 schreef ElisaB het volgende:
Wat is SHERMAN leuk he Bloes O+
pi_77206854
Dan reserveer ik hierbij alvast een plekkie om het antwoord te posten
pi_77207627
Ik moet een soort van resevering systeem opzetten. Dit mag zo basic mogelijk, er hoeft bijvoorbeeld geen login te komen.

De reseveringen zijn variabel (duur van de resevering kan verschillend) ook degene die het reseveert kan verschillen. Historie moet bewaard blijven.

Zoiets als:

Items 2010-01 2010-02 2010--3
Item1 klant1 klant1 -
Item2 klant2 klant2 klant2
Item3 klant1 klant1 klant2

Vervolgens moet ik lijstje kunnen maken van:
- per item, wie het wanneer had
- per klant, hoeveel items op een willekeurig moment
- in een maand zien wie wat heeft

Het maken van de overzichten gaat me opzich wel lukken.

Ik heb alleen geen idee hoe ik dit het beste in een database kan proppen..
Het kan natuurlijk gewoon in de tabel vorm die ik net post, maar ik vraag me af of dat iemand misschien een betere manier weet..?
Op vrijdag 12 augustus 2005 01:46 schreef ElisaB het volgende:
Wat is SHERMAN leuk he Bloes O+
pi_77227604
Hoe kun je er achter komen of session_start al gestart is? zonder daarvoor alle scripting te doorlopen?.

Kon namelijk geen functie vinden waarmee ik dit kan achterhalen.... zal er ongetwijfeld overheen hebben gekeken maar wie kan mij de juiste functie aanwijzen?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_77229020
quote:
Op zondag 24 januari 2010 21:53 schreef Chandler het volgende:
Hoe kun je er achter komen of session_start al gestart is? zonder daarvoor alle scripting te doorlopen?.

Kon namelijk geen functie vinden waarmee ik dit kan achterhalen.... zal er ongetwijfeld overheen hebben gekeken maar wie kan mij de juiste functie aanwijzen?
Waarom wil je weten of een sessie al gestart is?
pi_77229077
quote:
Op zondag 24 januari 2010 21:53 schreef Chandler het volgende:
Hoe kun je er achter komen of session_start al gestart is? zonder daarvoor alle scripting te doorlopen?.

Kon namelijk geen functie vinden waarmee ik dit kan achterhalen.... zal er ongetwijfeld overheen hebben gekeken maar wie kan mij de juiste functie aanwijzen?
als het resultaat van een aanroep naar session_id() een lege string is is er geen sessie gestart
Overigens kun je ook gewoon @session_start() aanroepen. Dit heeft geen effect op eventuele bestaande sessies. Er volgt alleen een E_NOTICE, die je dus met de @-operator onderdrukt.

[ Bericht 9% gewijzigd door Intrepidity op 24-01-2010 22:38:33 ]
pi_77229561
quote:
Op zondag 24 januari 2010 13:42 schreef SHERMAN het volgende:
Ik moet een soort van resevering systeem opzetten. Dit mag zo basic mogelijk, er hoeft bijvoorbeeld geen login te komen.

De reseveringen zijn variabel (duur van de resevering kan verschillend) ook degene die het reseveert kan verschillen. Historie moet bewaard blijven.

Zoiets als:

Items 2010-01 2010-02 2010--3
Item1 klant1 klant1 -
Item2 klant2 klant2 klant2
Item3 klant1 klant1 klant2

Vervolgens moet ik lijstje kunnen maken van:
- per item, wie het wanneer had
- per klant, hoeveel items op een willekeurig moment
- in een maand zien wie wat heeft

Het maken van de overzichten gaat me opzich wel lukken.

Ik heb alleen geen idee hoe ik dit het beste in een database kan proppen..
Het kan natuurlijk gewoon in de tabel vorm die ik net post, maar ik vraag me af of dat iemand misschien een betere manier weet..?
Als ik het zo snel bekijk, heb je drie tabellen nodig: klanten, items en reserveringen. Reserveringen is per klant, per item en bijvoorbeeld per dag. Als er dan een reserving wordt ingevoerd, voor je voor iedere dag van die reservering een rij in. Controle op beschikbaarheid is dan ook simpel. Andere optie is om bij de reserveringen een begindatum en einddatum op te slaan. Dan heb je 1 rij per reservering, maar de controle op beschikbaarheid kan wat lastiger zijn.
pi_77239903
quote:
Op zondag 24 januari 2010 22:15 schreef Light het volgende:
Waarom wil je weten of een sessie al gestart is?
Een projectje
quote:
Op zondag 24 januari 2010 22:16 schreef Intrepidity het volgende:
als het resultaat van een aanroep naar session_id() een lege string is is er geen sessie gestart
Overigens kun je ook gewoon @session_start() aanroepen. Dit heeft geen effect op eventuele bestaande sessies. Er volgt alleen een E_NOTICE, die je dus met de @-operator onderdrukt.
Ok, ik moet dus toch session_id gebruiken! want vind werken met @ erg vies!

-------------------------------------------------------------------------------------

Een andere vraag, stel ik heb een tabel met dit soort gegevens

A75
A76
A77
A78
A98
AA101
AA102
AA103
A37
A47
etc

Nu wil ik graag dat de uitkomst via mysql alles sorteert maar dan op deze manier

A37
A47
A75
A76
A77
A78
A98
AA101
AA102
AA103
etc

Hoe krijg ik dit voor elkaar?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_77240785
Ligt het nou aan mij of doet een doodnormale ORDER BY ASC precies wat je wilt?
pi_77280035
Nee, probeer het maar eens
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_77280311
quote:
Op zondag 24 januari 2010 22:24 schreef Light het volgende:

[..]

Als ik het zo snel bekijk, heb je drie tabellen nodig: klanten, items en reserveringen. Reserveringen is per klant, per item en bijvoorbeeld per dag. Als er dan een reserving wordt ingevoerd, voor je voor iedere dag van die reservering een rij in. Controle op beschikbaarheid is dan ook simpel. Andere optie is om bij de reserveringen een begindatum en einddatum op te slaan. Dan heb je 1 rij per reservering, maar de controle op beschikbaarheid kan wat lastiger zijn.
Ik ga is even kijken of ik hier wat mee kan... Misschien dat ik nog met andere vragen kom..

Thanks in elk geval!
Op vrijdag 12 augustus 2005 01:46 schreef ElisaB het volgende:
Wat is SHERMAN leuk he Bloes O+
  dinsdag 26 januari 2010 @ 09:41:41 #123
46383 Tiemie
sowieso wel!
pi_77280911
quote:
Op maandag 25 januari 2010 09:41 schreef Chandler het volgende:

[..]

Een projectje :)
[..]

Ok, ik moet dus toch session_id gebruiken! want vind werken met @ erg vies!

-------------------------------------------------------------------------------------

Een andere vraag, stel ik heb een tabel met dit soort gegevens

A75
A76
A77
A78
A98
AA101
AA102
AA103
A37
A47
etc

Nu wil ik graag dat de uitkomst via mysql alles sorteert maar dan op deze manier

A37
A47
A75
A76
A77
A78
A98
AA101
AA102
AA103
etc

Hoe krijg ik dit voor elkaar?
Casten naar een int, op die waarde sorteren
1
2
3
SELECT veld, CAST( veld AS UNSIGNED) As order_veld
FROM table
ORDER BY order_veld ASC

http://dev.mysql.com/doc/(...)s.html#function_cast
pi_77282777
quote:
Op dinsdag 26 januari 2010 09:41 schreef Tiemie het volgende:

[..]

Casten naar een int, op die waarde sorteren
[ code verwijderd ]

http://dev.mysql.com/doc/(...)s.html#function_cast
Ik zie niet waarom je zou moeten casten naar int. Stringsortering gaat (met de voorbeeldwaarden) ook goed.
pi_77283764
Hmm, dan loop ik de code nog eens door en kijk ik of ik toch een ASC oid? ben vergeten

Een andere vraag m.b.t. een nieuw wachtwoord aanvragen voor gebruikers, ik zag ooit een script die je gemakkelijk kon misbruiken om een gebruiker 100000 emails te sturen voor aanvraag van een nieuw wachtwoord. Dit wil ik echter voorkomen.

Hoe zouden jullie dit oplossen? zelf zit ik te denken aan een veld in de gebruikerstabel met alleen de datum, dat men max 1x per dag een nieuw wachtwoord kunnen aanvragen, tenzijn nieuw wachtwoord gezet wordt dan wordt deze data weer in het verleden gezet. oid?

Jullie ideeen.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_77285195
Ik wil een waarde selecteren uit een database waarbij de waarde field_id een float is. Dit is mijn query:

1SELECT * FROM tabel where field_number = 5.3;


Er komt echter geen resultaat terug uit de database. Heb al vanalles geprobeer:

1
2
3
4
SELECT * FROM tabel where field_number = 5.3;
SELECT * FROM tabel where field_number = '5.3';
SELECT * FROM tabel where field_number = 5,3;
SELECT * FROM tabel where field_number = '5.3';


Maar het werkt allemaal niet! Iemand een idee hoe deze query moet draaien?
pi_77285649
Waarom is call-by-reference deprecated tegenwoordig?
Als ik een parameter aan een closure meegeef met de ampersand ervoor krijg ik
quote:
Deprecated: Call-time pass-by-reference has been deprecated in \\V-PLUTO\CODE\WWW\wwwroot\dev\mailbasis\Framework\Core\ModelBase.php on line 207
De return-waarde van de closure wil ik gebruiken om te valideren of de operatie geslaagd is, maar tegelijkertijd moet de closure de meegegeven parameter kunnen wijzigen. Hoe los ik dat op?
pi_77291818
quote:
Op dinsdag 26 januari 2010 12:23 schreef Intrepidity het volgende:
Waarom is call-by-reference deprecated tegenwoordig?
Omdat dit (als ik het goed heb vernomen) in PHP 5.x standaard gebeurt en dus is de ampersand niet meer nodig.
pi_77291864
quote:
Op dinsdag 26 januari 2010 15:00 schreef ParvusM het volgende:

[..]

Omdat dit (als ik het goed heb vernomen) in PHP 5.x standaard gebeurt en dus is de ampersand niet meer nodig.
Alleen met objecten afaik, niet met simpele typen.

1
2
3
4
5
6
7
8
9
10
11
<?php
echo phpversion() . "<br />";
$i 3;
foo($i);
echo 
$i;

function 
foo($i)
{
   
$i++;
}
?>

Resultaat:
quote:
5.3.0
3
In 5.3.0 is dat zondermeer niet het geval
pi_77292161
Ik snap 'm al Je moet je functie definieren met een ampersand, en deze vervolgens niet meer gebruiken in je aanroep.

Levert WEL een warning op:
1
2
3
4
5
6
7
8
9
<?php
$i 
3;
foo(&$i);

function 
foo($i)
{
  
$i++;
}
?>


Levert GEEN warning op en werkt wel met een referentie:
1
2
3
4
5
6
7
8
9
<?php
$i 
3;
foo($i);

function 
foo(&$i)
{
  
$i++;
}
?>
pi_77293506
1
2
3
4
5
6
7
SELECT *
FROM TMPCARD
INNER JOIN TMPCARD_Uptime ON ( TMPCARD.id = TMPCARD_Uptime.cardid )
GROUP BY TMPCARD_Uptime.ip
HAVING count( TMPCARD_Uptime.ip ) >=2
ORDER BY TMPCARD.timestamp, TMPCARD_Uptime.timestamp ASC
LIMIT 0 , 10


Ik heb een probleem met de bovenstaande query, hopelijk kunnen jullie helpen.
De eerste tabel TMPCARD is een tabel met gegevens van zo'n 1000 kaarten.
De 2 de tabel is een tabel gevuld door een scan, deze kijkt of de uptime van die kaart meer of minder is dan de uptime in TMPCARD.
Is het meer dan update hij TMPCARD.uptime
Is het minder dan plaatst hij ook een entrie in TMPCARD_Uptime

Wat ik wil is per pagina de 10 kaarten welke 2 of meer dan 2 entries hebben in TMPCARD_Uptime.

Hoe doe ik dit op de juiste manier?
Ik krijg dan wel de juiste kaarten maar niet met al hun entries in TMPCARD_Uptime.

[ Bericht 1% gewijzigd door Darkomen op 26-01-2010 15:52:31 ]
pi_77320572
quote:
Op dinsdag 26 januari 2010 12:08 schreef mark_1980 het volgende:
Ik wil een waarde selecteren uit een database waarbij de waarde field_id een float is. Dit is mijn query:
[ code verwijderd ]

Er komt echter geen resultaat terug uit de database. Heb al vanalles geprobeer:
[ code verwijderd ]

Maar het werkt allemaal niet! Iemand een idee hoe deze query moet draaien?
is dit nog gelukt?
want probeer tijdennr anders tussen quotes te zetten (enkele).
Probeer anders even uit te testen met Phpmyadmin zat het alvast uit te zoeken maar ik kom niet echt ergens op problemen.
Redacted
pi_77320600
quote:
Op dinsdag 26 januari 2010 15:40 schreef Darkomen het volgende:

[ code verwijderd ]

Ik heb een probleem met de bovenstaande query, hopelijk kunnen jullie helpen.
De eerste tabel TMPCARD is een tabel met gegevens van zo'n 1000 kaarten.
De 2 de tabel is een tabel gevuld door een scan, deze kijkt of de uptime van die kaart meer of minder is dan de uptime in TMPCARD.
Is het meer dan update hij TMPCARD.uptime
Is het minder dan plaatst hij ook een entrie in TMPCARD_Uptime

Wat ik wil is per pagina de 10 kaarten welke 2 of meer dan 2 entries hebben in TMPCARD_Uptime.

Hoe doe ik dit op de juiste manier?
Ik krijg dan wel de juiste kaarten maar niet met al hun entries in TMPCARD_Uptime.
ipv het sterretje in de select probeer eens de velden apart te benoemen in de select.
is het probleem nu dat je velden mist? of dat je alleen enkele kaarten hebt?
Want de GROUP BY methode zorgt er namelijk voor dat alle kaarten bijelkaar groupeert worden op TMPCARD_Uptime.ip en als ik van dat ip Meerdere kaarten wil zien dan wil dat niet.
Redacted
  woensdag 27 januari 2010 @ 08:55:33 #134
75592 GlowMouse
l'état, c'est moi
pi_77322546
quote:
Op dinsdag 26 januari 2010 15:40 schreef Darkomen het volgende:

[ code verwijderd ]

Ik heb een probleem met de bovenstaande query, hopelijk kunnen jullie helpen.
De eerste tabel TMPCARD is een tabel met gegevens van zo'n 1000 kaarten.
De 2 de tabel is een tabel gevuld door een scan, deze kijkt of de uptime van die kaart meer of minder is dan de uptime in TMPCARD.
Is het meer dan update hij TMPCARD.uptime
Is het minder dan plaatst hij ook een entrie in TMPCARD_Uptime

Wat ik wil is per pagina de 10 kaarten welke 2 of meer dan 2 entries hebben in TMPCARD_Uptime.

Hoe doe ik dit op de juiste manier?
Ik krijg dan wel de juiste kaarten maar niet met al hun entries in TMPCARD_Uptime.
Het zoekwoord is denormalisatie.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_77323205
quote:
Op woensdag 27 januari 2010 08:55 schreef GlowMouse het volgende:

[..]

Het zoekwoord is denormalisatie.
En waarom?
Het is niet dat de query traag loopt, ik wil enkel pagina;s toevoegen ipv 1 hele lange lijst.

Ik ga het anders doen, ik pak de hoofdtabel en zoek daar later wel de updates bij.
  woensdag 27 januari 2010 @ 10:09:43 #136
75592 GlowMouse
l'état, c'est moi
pi_77324303
quote:
Op woensdag 27 januari 2010 09:26 schreef Darkomen het volgende:

[..]

En waarom?
Het is niet dat de query traag loopt
Dat komt vanzelf als je veel kaarten krijgt. TMPCARD_Uptime.timestamp ASC lijkt me trouwens geen geldig iets om op te sorteren, zo na die group by.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_77327158
Joins en verder mysql kennis hebik helaas nog niet, vandaar de vragen.
Ik dacht dat ik zoiets simpels als hieronder wel kon...

SELECT * FROM TMPCARD WHERE uptime<='172800'
Waarom krijg ik hier ook hogere waarden terug?
Bijvoorbeeld 10000930

Volgens mij is 10000930 toch echt groter dan 172800


Edit: ah, ORDER BY cast( uptime AS unsigned ) , id ASC

[ Bericht 13% gewijzigd door Darkomen op 27-01-2010 12:01:08 ]
pi_77329035
quote:
Op woensdag 27 januari 2010 11:34 schreef Darkomen het volgende:

Edit: ah, ORDER BY cast( uptime AS unsigned ) , id ASC
Waarom zou je een signed veld gebruiken als de waarde niet negatief kan zijn? Of kan die uptime wel negatief zijn?
pi_77330894
Nee die kan niet negatief zijn.
Het veld is een varchar(11), verder niks bijzonder.
pi_77337532
Weet iemand of er een manier is om te zorgen dat een record maar 1x uit een tabel wordt opgevraagd? Soort van SELECT en UPDATE/DELETE (om te laten zien dat het record al afgehandeld is) tegelijk..
pi_77338550
quote:
Op woensdag 27 januari 2010 13:02 schreef Darkomen het volgende:
Nee die kan niet negatief zijn.
Het veld is een varchar(11), verder niks bijzonder.
Een varchar wordt alfabetisch gesorteerd. Dan komt 100 voor 17. Waarom niet gewoon een unsigned int gebruiken voor uptime?
pi_77339926
Bedankt, ik weet niet elke eigenschap van de verschillende velden.
Een verkeerde keuze van mij dus.
Het is nu aangepast, eens kijken wat ik er mee kan.

Edit: niks dus, krijg nu 1 entrie terug terwijl er echt veeeel meer zijn met meer dan 2 records in de 2de tabel.

[ Bericht 27% gewijzigd door Darkomen op 27-01-2010 16:45:01 ]
pi_77364719
quote:
Op dinsdag 26 januari 2010 11:28 schreef Chandler het volgende:
Een andere vraag m.b.t. een nieuw wachtwoord aanvragen voor gebruikers, ik zag ooit een script die je gemakkelijk kon misbruiken om een gebruiker 100000 emails te sturen voor aanvraag van een nieuw wachtwoord. Dit wil ik echter voorkomen.

Hoe zouden jullie dit oplossen? zelf zit ik te denken aan een veld in de gebruikerstabel met alleen de datum, dat men max 1x per dag een nieuw wachtwoord kunnen aanvragen, tenzijn nieuw wachtwoord gezet wordt dan wordt deze data weer in het verleden gezet. oid?

Jullie ideeen.
Iemand?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_77366205
quote:
Op donderdag 28 januari 2010 07:01 schreef Chandler het volgende:

[..]

Iemand?
Als het goed is genereer je voor het versturen van een mail iets als een activatiecode waarmee de gebruiker een nieuw wachtwoord kan instellen. Ik doe het zelf zo dat zolang dat veld gevuld is in de database er geen nieuw wachtwoord aangevraagd kan worden. Dus:
1. Gebruiker vraagt nieuw wachtwoord aan
2. Willekeurige activatiecode wordt gegenereerd en gemaild, hiermee kan de gebruiker een nieuw wachtwoord instellen
3. Gebruiker negeert mailtje
4. Gebruiker vraagt nogmaals een nieuw wachtwoord aan
Dit werkt in dit geval niet, omdat het eerste mailtje niet gebruikt is. Heeft de gebruiker een ander emailadres, of het mailtje niet ontvangen of iets dergelijks --> contact met support opnemen. Activatiecode wordt na 1 maand ongebruikt te zijn tevens vanzelf verwijderd.
pi_77367852
quote:
Op donderdag 28 januari 2010 09:27 schreef Intrepidity het volgende:

[..]

Als het goed is genereer je voor het versturen van een mail iets als een activatiecode waarmee de gebruiker een nieuw wachtwoord kan instellen. Ik doe het zelf zo dat zolang dat veld gevuld is in de database er geen nieuw wachtwoord aangevraagd kan worden. Dus:
1. Gebruiker vraagt nieuw wachtwoord aan
2. Willekeurige activatiecode wordt gegenereerd en gemaild, hiermee kan de gebruiker een nieuw wachtwoord instellen
3. Gebruiker negeert mailtje
4. Gebruiker vraagt nogmaals een nieuw wachtwoord aan
Dit werkt in dit geval niet, omdat het eerste mailtje niet gebruikt is. Heeft de gebruiker een ander emailadres, of het mailtje niet ontvangen of iets dergelijks --> contact met support opnemen. Activatiecode wordt na 1 maand ongebruikt te zijn tevens vanzelf verwijderd.
Zoiets, al zou ik de code binnen 24 uur laten verlopen.

mijn probleem heb ik mogeljik opgelost met

SELECT *
FROM TMPCARD_Uptime
INNER JOIN TMPCARD ON ( TMPCARD_Uptime.cardid = TMPCARD.id )
GROUP BY TMPCARD_Uptime.serial
HAVING count(TMPCARD_Uptime.cardid) >=2
ORDER BY TMPCARD_Uptime.timestamp ASC
LIMIT 0,10
pi_77394780
Ik gebruik PHP include om mijn HTML te includen. Maar nu staat deze in een map voor het bestand waar ik het include. Hoe verwijs ik dan toch naar die HTML? Include met URL is niet toegestaan.
pi_77394974
quote:
Op donderdag 28 januari 2010 21:49 schreef hello_moto1992 het volgende:
Ik gebruik PHP include om mijn HTML te includen. Maar nu staat deze in een map voor het bestand waar ik het include. Hoe verwijs ik dan toch naar die HTML? Include met URL is niet toegestaan.
1
2
3
4
<?php
// Door de 2 puntjes ga je een map in de structuur omhoog
include("../bestand.html");
?>


En ookal zou je HTTP-includes kunnen gebruiken, nooit doen, omdat:
quote:
If you are including a file from your own site, do not use a URL however easy or tempting that may be. If all of your PHP processes are tied up with the pages making the request, there are no processes available to serve the include. The original requests will sit there tying up all your resources and eventually time out.


[ Bericht 15% gewijzigd door Intrepidity op 28-01-2010 22:02:45 ]
pi_77401653
quote:
Op donderdag 28 januari 2010 07:01 schreef Chandler het volgende:

[..]

Iemand?
Ik heb in veel applicaties meerdere functies zitten die een mail verzenden, waar functies als 'Wachtwoord vergeten' er één van is. Voor al die mailfuncties heb ik meestal een tabel met e-mail templates (moeten in 99% van de gevallen muteerbaar zijn), daarnaast heb ik nog een tabel waar ik bijhoud wanneer welk mailtje (a.h.v. een template ID) verzonden is. Op die manier kun je al redelijk eenvoudig een query op die tabel loslaten, om te kijken hoe vaak een zelfde mailtje al aangevraagd is. En desnoods limiteren als dat aantal te hoog is.
pi_77403900
calamares; dus je hebt een class die per verzonden email een tabel up to date houdt m.b.t. controle/inzien verzonden emails?

verder nog gelijk een andere vraag; stel je hebt een site die je stap voor stap uitbreid en dat is tevens ook zo voor alle instellingen. Passen jullie dan steeds de tabel aan van de instellingen of zorgen jullie dat toevoegen van instellingen zonder het aanpassen van tabellen mogelijk is?

(hopelijk duidelijk genoeg )
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 29 januari 2010 @ 13:12:18 #150
254493 Trollface.
gr rob fruithof, groningencity
pi_77413425
quote:
Op vrijdag 29 januari 2010 06:57 schreef Chandler het volgende:
calamares; dus je hebt een class die per verzonden email een tabel up to date houdt m.b.t. controle/inzien verzonden emails?

verder nog gelijk een andere vraag; stel je hebt een site die je stap voor stap uitbreid en dat is tevens ook zo voor alle instellingen. Passen jullie dan steeds de tabel aan van de instellingen of zorgen jullie dat toevoegen van instellingen zonder het aanpassen van tabellen mogelijk is?

(hopelijk duidelijk genoeg )
Ik heb een settings tabel zo ingesteld:
1
2
3
NAME    |      VALUE
------------------------
Test    |      Test2


Dit gaan dan wel over sitewide-instellingen.
Als er een instelling bijkomt, gewoon een INSERT INTO doen.
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
pi_77419512
Heren/dames,

1
2
3
4
5
6
7
8
9
<?php
 
while ($row mysql_fetch_array($result)) 
{    
    echo 
"<tr>";
    echo 
"<td>".$row['title']."</td>";
    echo 
"<td><a href=\"http://www.test.nl/coppermine/thumbnails.php?album=".$row['aid']."\">link</a>";
    echo 
"</tr>";
}
?>


Ik heb de volgende code. Deze werkt prima, er worden twee kolommen getoond: de title en een titel met als link met de aid er in. Maar nu zou ik dus graag willen dat de titel een link wordt. Dit is volgens mij niet al te moeilijk, maar het wil mij maar niet lukken. Iemand een suggestie?

Edit: ik heb het al
Het moet natuurlijk zo:
1
2
3
<?php
    
echo "<td><a href=\"http://www.test.nl/coppermine/thumbnails.php?album=".$row['aid']."\">".$row['title']."</a>";
?>


[ Bericht 11% gewijzigd door hello_moto1992 op 29-01-2010 15:41:05 ]
pi_77420035
Weet iemand toevallig wel hoe je met SQL het eerste resultaat 'overslaat'? Dus dat je bij de eerste 5 resultaten de nieuwste weglaat.
pi_77420080
quote:
Op vrijdag 29 januari 2010 15:47 schreef hello_moto1992 het volgende:
Weet iemand toevallig wel hoe je met SQL het eerste resultaat 'overslaat'? Dus dat je bij de eerste 5 resultaten de nieuwste weglaat.
Nieuwste of de eerste?
Kan een wezenlijk verschil zijn namelijk.
Op vrijdag 12 augustus 2005 01:46 schreef ElisaB het volgende:
Wat is SHERMAN leuk he Bloes O+
pi_77420295
Dit is de query:

1
2
3
4
5
6
<?php
SELECT 
`aid` , `title`
FROM `il7o_albums`
ORDER BY `aidDESC
LIMIT 0 
3
?>


Hij toont dus de albums met het hoogste aid (die zijn het laatst toegevoegd)
Dus:
album 100
album 99
album 98

Album 100 wil ik er uit zeven
pi_77420576
quote:
Op vrijdag 29 januari 2010 15:47 schreef hello_moto1992 het volgende:
Weet iemand toevallig wel hoe je met SQL het eerste resultaat 'overslaat'? Dus dat je bij de eerste 5 resultaten de nieuwste weglaat.
quote:
The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must both be nonnegative integer constants (except when using prepared statements).

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):
Bron: http://dev.mysql.com/doc/refman/5.0/en/select.html

Dus met een simplele SELECT * FROM table WHERE 1 = 1 LIMIT 1,5 krijg je de resultaten 2 t/m 6.
pi_77420638
Ooh gewoon de LIMIT aanpassen dus
Thnx

Nu heb k eigenlijk nog iets waar k mee zit

1
2
3
4
5
6
7
8
<?php
 
while ($row mysql_fetch_array($result)) 
{    
    echo 
"<tr>";
    echo 
"<td><a href=\"http://www.test.nl/coppermine/thumbnails.php?album=".$row['aid']."\">".$row['title']."</a>";
    echo 
"</tr>";
}
?>

Hier komt dus een link uitrollen. Deze mag echter maar een aantal tekens hebben. Dit kan met de functie wordwrap heb k al gezien. Maar hoe pas je zulkiets hier toe?
pi_77421045
quote:
Op vrijdag 29 januari 2010 13:12 schreef Trollface. het volgende:

[..]

Ik heb een settings tabel zo ingesteld:
[ code verwijderd ]

Dit gaan dan wel over sitewide-instellingen.
Als er een instelling bijkomt, gewoon een INSERT INTO doen.
Op zich een goed idee, alleen zit ik mij dan af te vragen hoe ik dit moet gaan realiseren als er ook gegevens zijn die langer dan 255 karakters bevatten, of juist alleen INT.

Ideeen?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_77422172
quote:
Op vrijdag 29 januari 2010 16:01 schreef hello_moto1992 het volgende:
Ooh gewoon de LIMIT aanpassen dus
Thnx

Nu heb k eigenlijk nog iets waar k mee zit
[ code verwijderd ]

Hier komt dus een link uitrollen. Deze mag echter maar een aantal tekens hebben. Dit kan met de functie wordwrap heb k al gezien. Maar hoe pas je zulkiets hier toe?
http://php.net/manual/en/function.substr.php
De derde comment
pi_77422360
K snap er niks van Kan dat niet simpeler?
pi_77424497
quote:
Op vrijdag 29 januari 2010 16:46 schreef hello_moto1992 het volgende:
K snap er niks van Kan dat niet simpeler?
Nee, wel moeilijker
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_77426813
quote:
Op vrijdag 29 januari 2010 16:46 schreef hello_moto1992 het volgende:
K snap er niks van Kan dat niet simpeler?
Wat is er moeilijk aan het copypasten van die functie?
pi_77443649
quote:
Op vrijdag 29 januari 2010 06:57 schreef Chandler het volgende:
calamares; dus je hebt een class die per verzonden email een tabel up to date houdt m.b.t. controle/inzien verzonden emails?

verder nog gelijk een andere vraag; stel je hebt een site die je stap voor stap uitbreid en dat is tevens ook zo voor alle instellingen. Passen jullie dan steeds de tabel aan van de instellingen of zorgen jullie dat toevoegen van instellingen zonder het aanpassen van tabellen mogelijk is?

(hopelijk duidelijk genoeg )
Als er functionaliteit bij komt in de vorm van een nieuw soort e-mail, dan is dat in mijn geval niet meer dan een record in de email-template tabel. De tabel die bijhoudt wanneer welk e-mailtje verzonden wordt, werkt ook met die template ID's van die tabel.
pi_77443723
quote:
Op vrijdag 29 januari 2010 16:46 schreef hello_moto1992 het volgende:
K snap er niks van Kan dat niet simpeler?
Wat is er moeilijk aan de substring (substr() ) functie? De eerste parameter is hetgeen dat je wilt in- of afkorten, de tweede is vanaf welke positie dit moet gebeuren, de derde is hoeveel karakters je vanaf die opgegeven positie wilt weergeven.

Het enige 'aparte' is misschien dat je ook de mogelijkheid hebt om alleen een tweede parameter op te geven, die negatief is. In dat geval wordt hetgeen van hetgeen dat in je eerste parameter staat, de laatste x-aantal karakters weergegeven.
pi_77445459
Sorry, het lukt me nog niet echt.
Dit is nu de 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
<?php include"include/connect.php"; ?>
<?php
$query = "
SELECT `aid` , `title`
FROM `il7o_albums`
ORDER BY `aid` DESC
LIMIT 1 , 3
";
$result = mysql_query($query)or die (mysql_error());
?>
<?php
function _substr($str, $length, $minword = 3)
{
    $sub = $row['title'];
    $len = ??????;;
    
    foreach (explode(' ', $str) as $word)
    {
        $part = (($sub != '') ? ' ' : '') . $word;
        $sub .= $part;
        $len += strlen($part);
        
        if (strlen($word) > $minword && strlen($sub) >= $length)
        {
            break;
        }
    }
    return $sub . (($len < strlen($str)) ? '...' : '');
}
?>
<table border="0" cellpadding="0" cellspacing="0" style="color: white; font-size: 0.8em;">
<? while ($row = mysql_fetch_array($result)) 
{   
   echo "<tr>";
   echo "<td><a href=\"http://www.test.nl/coppermine/thumbnails.php?album=".$row['aid']."\">".$row['title']."</a>";
   echo "</tr>";
}
?>
</table>

Ik snap niet precies hoe ik die parameters invul.
pi_77473353
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php include"include/connect.php"; ?>
<?php
$query = "
SELECT `aid` , `title`
FROM `il7o_albums`
ORDER BY `aid` DESC
LIMIT 1 , 3
";
$result = mysql_query($query)or die (mysql_error());
?>
<?php
function _substr($str, $length, $minword = 3)
{
    $sub = $row['title'];
    $len = ??????;;
    
    foreach (explode(' ', $str) as $word)
    {
        $part = (($sub != '') ? ' ' : '') . $word;
        $sub .= $part;
        $len += strlen($part);
        
        if (strlen($word) > $minword && strlen($sub) >= $length)
        {
            break;
        }
    }
    return $sub . (($len < strlen($str)) ? '...' : '');
}
?>
<table border="0" cellpadding="0" cellspacing="0" style="color: white; font-size: 0.8em;">
<? while ($row = mysql_fetch_array($result)) 
{   
   echo "<tr>";
   echo "<td><a href=\"http://www.test.nl/coppermine/thumbnails.php?album=".$row['aid']."\">"._substr($row['title'], 10, 5)."</a>";
   echo "</tr>";
}
?>
</table>


Zo dus, 10 en 5 kan je zelf veranderen in wat je wilt, probeer maar eens uit.
  maandag 1 februari 2010 @ 19:35:31 #166
63192 ursel
"Het Is Hier Fantastisch!
pi_77524241
Hmmm.. Dacht slim te zijn door DEFINES in mijn tekst te plaatsen en alvorens de tekst te displayen deze eerst door een eval heen te gooien.

Blijkbaar kan eval alleen variabelen veranderen en geen defines.
Iemand andere suggesties?
pi_77541704
quote:
Op maandag 1 februari 2010 19:35 schreef ursel het volgende:
Hmmm.. Dacht slim te zijn door DEFINES in mijn tekst te plaatsen en alvorens de tekst te displayen deze eerst door een eval heen te gooien.

Blijkbaar kan eval alleen variabelen veranderen en geen defines.
Iemand andere suggesties?
Je zou nog kunnen proberen je defines tussen {} te zetten.
pi_77542376
quote:
Op maandag 1 februari 2010 19:35 schreef ursel het volgende:
Hmmm.. Dacht slim te zijn door DEFINES in mijn tekst te plaatsen en alvorens de tekst te displayen deze eerst door een eval heen te gooien.

Blijkbaar kan eval alleen variabelen veranderen en geen defines.
Iemand andere suggesties?
Volgensmij snap ik je probleem niet echt. Je probeert doormiddel van eval een constante aan te passen? Waarom een constante gebruiken als deze niet vaststaat? Voor dat doel kun je net zogoed een globale variabele, of met OO smaakje een statische property gebruiken.
  dinsdag 2 februari 2010 @ 10:40:36 #169
63192 ursel
"Het Is Hier Fantastisch!
pi_77542900
quote:
Op dinsdag 2 februari 2010 10:20 schreef Intrepidity het volgende:

[..]

Volgensmij snap ik je probleem niet echt. Je probeert doormiddel van eval een constante aan te passen? Waarom een constante gebruiken als deze niet vaststaat? Voor dat doel kun je net zogoed een globale variabele, of met OO smaakje een statische property gebruiken.
Onlangs zijn we gestart om onze huidige omgeving ook in andere smaken te presenteren. Hangen allen onder andere URL, maar maken verder gebruik van exact dezelfde omgeving en code.
Voor de tekst pagina's moeten een aantal benamingen nu dus gebruik gaan maken van die andere namen.

Doordat de meeste namen al in defines bij ons zitten hoopte ik op deze manier het op een simpele manier af te kunnen vangen, immers omgeving afhankelijk wordt er al gebruik gemaakt van dezelfde defines.
  dinsdag 2 februari 2010 @ 12:09:43 #170
63192 ursel
"Het Is Hier Fantastisch!
pi_77545708
quote:
Op dinsdag 2 februari 2010 09:55 schreef Light het volgende:

[..]

Je zou nog kunnen proberen je defines tussen {} te zetten.
Kan je deze iets meer uit specificeren?

Heb bijv. de volgende define:

1
2
3
<?php
define
('NAME_FULL''Bedrijf B.V.');
?>


En in de tekst moet ik dan {NAME_FULL} plaatsen?
Dat werkt in ieder geval niet kan ik je vertellen. :')
  dinsdag 2 februari 2010 @ 12:11:24 #171
254493 Trollface.
gr rob fruithof, groningencity
pi_77545766
quote:
Op dinsdag 2 februari 2010 12:09 schreef ursel het volgende:

[..]

Kan je deze iets meer uit specificeren?

Heb bijv. de volgende define:
[ code verwijderd ]

En in de tekst moet ik dan {NAME_FULL} plaatsen?
Dat werkt in ieder geval niet kan ik je vertellen. :')
1
2
3
<?php
echo "Bedrijf: " NAME_FULL;
?>
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
  dinsdag 2 februari 2010 @ 12:20:21 #172
63192 ursel
"Het Is Hier Fantastisch!
pi_77546099
quote:
Op dinsdag 2 februari 2010 12:11 schreef Trollface. het volgende:

[..]
[ code verwijderd ]
Ja, dat zou wel makkelijk zijn als de teksten niet uit een database kwamen.
Dacht dat ik dat al gemeld had, maar blijkbaar niet.
  dinsdag 2 februari 2010 @ 12:22:57 #173
254493 Trollface.
gr rob fruithof, groningencity
pi_77546193
quote:
Op dinsdag 2 februari 2010 12:20 schreef ursel het volgende:

[..]

Ja, dat zou wel makkelijk zijn als de teksten niet uit een database kwamen.
Dacht dat ik dat al gemeld had, maar blijkbaar niet.
Als je de tekst direct uit een database haalt, gaat {} sowieso niet werken hé.

Je kunt proberen <<BEDRIJF_NAAM>> o.i.d. in de tekst te pleuren en dan een str_replace() te doen:
1
2
3
<?php
$sTekst 
str_replace("<<BEDRIJF_NAAM>>"FULL_NAME$sTekst);
?>
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
  dinsdag 2 februari 2010 @ 12:32:49 #174
63192 ursel
"Het Is Hier Fantastisch!
pi_77546560
quote:
Op dinsdag 2 februari 2010 12:22 schreef Trollface. het volgende:

[..]

Als je de tekst direct uit een database haalt, gaat {} sowieso niet werken hé.

Je kunt proberen <<BEDRIJF_NAAM>> o.i.d. in de tekst te pleuren en dan een str_replace() te doen:
[ code verwijderd ]
Mja, dat gebruiken we nu idd, echter willen we het meer onafhankelijk draaien zodat we niet voor elke define welke we gebruiken een str_replace moeten plaatsen.
Daarnaast bestaat de module momenteel uit 3 paragrafen welke ieder een eigen veld in de tabel hebben.
  dinsdag 2 februari 2010 @ 12:49:32 #175
25889 Sitethief
Fulltime Flapdrol
pi_77547148
Weet iemand een goede website die foreign keys in innodb uitlegt?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_77547246
deze site schijnt er behoorlijk wat informatie over te hebben
  dinsdag 2 februari 2010 @ 13:00:15 #177
25889 Sitethief
Fulltime Flapdrol
pi_77547566
quote:
Op dinsdag 2 februari 2010 12:52 schreef Intrepidity het volgende:
deze site schijnt er behoorlijk wat informatie over te hebben
Die hadden we nog niet geprobeerd..... . (Ik heb niet eesn geklikt )
Het is meer dat nergens goed uitgelegd word wanneer je ze wel of niet moet inzetten.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  vrijdag 5 februari 2010 @ 09:54:49 #178
243445 genakt
Alea Iacta Est
pi_77659778
Ik heb een data base aangemaakt in php myadmin en ben een inlogpagina aan het maken

in mijn database heb ik de tabel

personeelsnummer als sleutelveld en autonumering
pnaam
pwachtwoord
quote:
<?php.

session_start();

$db = mysql_connect("localhost", "root", "root")
or die("kan geen verbinding maken: ".mysql_error());
mysql_select_db("medinfo",$db);

if (!EMPTY($_POST))
{

$nr = $_POST['nr'];
$ww = $_post['ww'];


$sql = "SELECT *
From personeel
Where pnaam= '$nr'
AND pwachtwoord = '$ww'";

$resultaat = mysql_query($sql);

if (mysql_num_rows($resultaat)>0)
{
while($rij = mysql_fetch_array($resultaat))
{
$_SESSION["pnaam"]=$rij["pnaam"];
$_SESSION["pwachtwoord"]=$rij["pwachtwoord"];


}
header("location: loginstart.php");
exit();

}
else
{

echo "<BR>";
echo "<HR>";
echo "Geen geldige inlog gegevens";
}

mysql_close($db);
}

else
{
?>

<html>
<head>
<title>Medinfo</title>
</head>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>">
<B><h1>Medinfo</h1><B><br>
na correct inloggen kun u uw gegevens opvragen<h3>
<br><br>
</center>
<pre>
Voer uw klantennummer in: <input type="text" name="nr" size="20" maxlenght="20">
<br><br>
Voer wachtwoord in: <input type="password" name="ww" size="20" maxlenght="20">
<br><br>
<input type = "submit" value = "inloggen">
<input type = "reset" value = "wissen">
</pre>
</form>
</body>
</html>

<?php
}

?>
alleen als ik probeer in te loggen krijg ik te zien gebruikersnaam niet geldig
heb wel naam en wachtwoord ingevoerd in de database dus dat kan het niet zijn
Op woensdag 26 mei 2010 18:00 schreef Darkestrah het volgende:
Ik heb van horen zeggen dat genakt een behoorlijk goede keus is. Wat heb je te verliezen?
  vrijdag 5 februari 2010 @ 10:03:09 #179
75592 GlowMouse
l'état, c'est moi
pi_77660012
Die melding kan niet uit je script komen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 5 februari 2010 @ 10:08:37 #180
243445 genakt
Alea Iacta Est
pi_77660147
quote:
Op vrijdag 5 februari 2010 10:03 schreef GlowMouse het volgende:
Die melding kan niet uit je script komen.
ik bedoelde

Geen geldige inlog gegevens

echo "Geen geldige inlog gegevens";
Op woensdag 26 mei 2010 18:00 schreef Darkestrah het volgende:
Ik heb van horen zeggen dat genakt een behoorlijk goede keus is. Wat heb je te verliezen?
  vrijdag 5 februari 2010 @ 10:14:51 #181
157634 Civilian
Better safe than Sony
pi_77660365
Dan nog..

Een user zou uniek moeten zijn, anders doe je toch al iets fout.
Dus waarom de while, en waarom een exit() in je while.. Dan gaat toch een beetje de hele functie verloren?
I'm not good with advice.. Can i interest you in a sarcastic comment?
  vrijdag 5 februari 2010 @ 10:21:50 #182
243445 genakt
Alea Iacta Est
pi_77660595
quote:
Op vrijdag 5 februari 2010 10:14 schreef Civilian het volgende:
Dan nog..

Een user zou uniek moeten zijn, anders doe je toch al iets fout.
Dus waarom de while, en waarom een exit() in je while.. Dan gaat toch een beetje de hele functie verloren?
dat een user uniek moet zijn weet ik
mjah daar gaat het nu niet om en het is niet de reden waarom hij het niet doet
Op woensdag 26 mei 2010 18:00 schreef Darkestrah het volgende:
Ik heb van horen zeggen dat genakt een behoorlijk goede keus is. Wat heb je te verliezen?
  vrijdag 5 februari 2010 @ 10:32:35 #183
157634 Civilian
Better safe than Sony
pi_77660935
quote:
Op vrijdag 5 februari 2010 10:21 schreef genakt het volgende:

[..]

dat een user uniek moet zijn weet ik
mjah daar gaat het nu niet om en het is niet de reden waarom hij het niet doet
Beter gelijk goed beginnen dan het na die tijd aan te moeten passen en het risico te lopen dat het weer niet werkt
Maargoed, hoe heb je de passwords opgeslagen? Gecodeerd (md5 oid) of als normale string? Als je 't gecodeerd op hebt geslagen moet je er ook rekening mee houden dat je ze op die manier gaat vergelijken.
I'm not good with advice.. Can i interest you in a sarcastic comment?
  vrijdag 5 februari 2010 @ 11:11:09 #184
243445 genakt
Alea Iacta Est
pi_77662266
quote:
Op vrijdag 5 februari 2010 10:32 schreef Civilian het volgende:

[..]

Beter gelijk goed beginnen dan het na die tijd aan te moeten passen en het risico te lopen dat het weer niet werkt
Maargoed, hoe heb je de passwords opgeslagen? Gecodeerd (md5 oid) of als normale string? Als je 't gecodeerd op hebt geslagen moet je er ook rekening mee houden dat je ze op die manier gaat vergelijken.
$nr = $_POST['nr'];
$ww = $_post['ww'];

2e post zonder hoofdletters
hij doet het nu
Op woensdag 26 mei 2010 18:00 schreef Darkestrah het volgende:
Ik heb van horen zeggen dat genakt een behoorlijk goede keus is. Wat heb je te verliezen?
  vrijdag 5 februari 2010 @ 11:16:43 #185
157634 Civilian
Better safe than Sony
pi_77662444
nvm
I'm not good with advice.. Can i interest you in a sarcastic comment?
  vrijdag 5 februari 2010 @ 11:41:43 #186
243445 genakt
Alea Iacta Est
pi_77663308
iedegeval bedankt voor hulp

heb wel nu wel gezegd dat je met inloggen het personeelsnummer moet invoeren zodat elke inlognaam naam uniek is
Op woensdag 26 mei 2010 18:00 schreef Darkestrah het volgende:
Ik heb van horen zeggen dat genakt een behoorlijk goede keus is. Wat heb je te verliezen?
  vrijdag 5 februari 2010 @ 12:26:08 #187
118585 Crutch
Filantroop || Taalzwengel
pi_77664931
Waarom codeer je het wachtwoord niet?
Je moeder is een hamster
  vrijdag 5 februari 2010 @ 13:46:41 #188
243445 genakt
Alea Iacta Est
pi_77667625
quote:
Op vrijdag 5 februari 2010 12:26 schreef Crutch het volgende:
Waarom codeer je het wachtwoord niet?
het is voor me examen dan hoef je dat helemaal niet te doen joh
gewoon simpel inlog systeem is voldoende

heb kleine beveiliging in loginstart.php
is helemaal niet bedoeld voor online applicatie of iets dergelijks
gewoon simpel houden
Op woensdag 26 mei 2010 18:00 schreef Darkestrah het volgende:
Ik heb van horen zeggen dat genakt een behoorlijk goede keus is. Wat heb je te verliezen?
  vrijdag 5 februari 2010 @ 14:00:55 #189
254493 Trollface.
gr rob fruithof, groningencity
pi_77668151
JUIST voor je examen zou ik je wachtwoord laten hashen.
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
  vrijdag 5 februari 2010 @ 14:02:00 #190
243445 genakt
Alea Iacta Est
pi_77668198
quote:
Op vrijdag 5 februari 2010 14:00 schreef Trollface. het volgende:
JUIST voor je examen zou ik je wachtwoord laten hashen.
als het niet hoeft waarom zou ik het dan doen
Op woensdag 26 mei 2010 18:00 schreef Darkestrah het volgende:
Ik heb van horen zeggen dat genakt een behoorlijk goede keus is. Wat heb je te verliezen?
  vrijdag 5 februari 2010 @ 14:02:57 #191
254493 Trollface.
gr rob fruithof, groningencity
pi_77668234
quote:
Op vrijdag 5 februari 2010 14:02 schreef genakt het volgende:

[..]

als het niet hoeft waarom zou ik het dan doen
Wat een kutexamen nofi.
★5731U★ Death from above '79★You're a woman, i'm a machinielsie ★ ✠ ★ Telkens weer een beetje sterven★ I was born in a winterstorm, i live there still★
  vrijdag 5 februari 2010 @ 14:04:38 #192
243445 genakt
Alea Iacta Est
pi_77668301
quote:
Op vrijdag 5 februari 2010 14:02 schreef Trollface. het volgende:

[..]

Wat een kutexamen .
nog leuker degene die het nakijken hebben er van de 3 maar 1 echt verstand van
zadkine examencentrum he

heb me examen trouwens over 4 weken dus ben aan het oefenen
zodat ik al me scripts zo klaar heb
Op woensdag 26 mei 2010 18:00 schreef Darkestrah het volgende:
Ik heb van horen zeggen dat genakt een behoorlijk goede keus is. Wat heb je te verliezen?
pi_77773364
Ik heb een lastige (vind ik) SELECT query nodig in SQL.
Er is een tabel waar een persoon meerdere malen (ID, fullname) in voor kan komen.

Eén van de kolommen is soms NULL, soms niet.
Als deze ooit bij een ID not null is, dan wil ik nooit meer die ID terugzien.

Hoe kan ik dat maken? (Duidelijk genoeg?)
pi_77773454
quote:
Op maandag 8 februari 2010 16:45 schreef DaFan het volgende:
Ik heb een lastige (vind ik) SELECT query nodig in SQL.
Er is een tabel waar een persoon meerdere malen (ID, fullname) in voor kan komen.

Eén van de kolommen is soms NULL, soms niet.
Als deze ooit bij een ID not null is, dan wil ik nooit meer die ID terugzien.

Hoe kan ik dat maken? (Duidelijk genoeg?)
Via een omweg kan het ook:
Als bij een ID de kolom 'Type' nooit '73' voorkomt, dan wil ik die ID zien.
Dat lijkt mij makkelijker, maar hoe
  maandag 8 februari 2010 @ 16:49:00 #195
75592 GlowMouse
l'état, c'est moi
pi_77773540
WHERE en een subquery.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_77780705
Ik heb ook weer een leuke m.b.t. mijn gebruikte rechtensysteem. Hieronder schets ik eerst een voorbeeld van de tabellen die ik gebruik voor mijn rechtensysteem (oa gebruiker specifieke rechten, groepen met rechten die weer aan gebruikers gekoppeld woden.)

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
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `createdate` datetime NOT NULL,
  `editdate` datetime NOT NULL,
  `username` varchar(20) NOT NULL,
  `email` varchar(128) NOT NULL,
  `password` char(41) NOT NULL,
  `validation` char(12) NOT NULL,
  `banned` tinyint(4) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `gebruikersnaam` (`username`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1;


CREATE TABLE IF NOT EXISTS `users_groups` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(50) NOT NULL,
  `lastupdate` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `users_groups_link` (
  `user_id` int(10) unsigned NOT NULL,
  `group_id` int(10) unsigned NOT NULL,
  `timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
  KEY `gebruiker_id` (`user_id`,`group_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `users_groups_rights_link` (
  `group_id` int(10) unsigned NOT NULL,
  `right_id` int(10) unsigned NOT NULL,
  KEY `groep_id` (`group_id`,`right_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `users_rights` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(50) NOT NULL,
  `value` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `users_rights_link` (
  `user_id` int(10) unsigned NOT NULL,
  `right_id` int(10) unsigned NOT NULL,
  `lastupdate` datetime NOT NULL,
  KEY `gebruiker_id` (`user_id`,`right_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Nu wil ik dit systeem eingelijk ook voor mijn forum gaan gebruiken, echter zit in dit forum een ander rechten systeem gekoppeld (5 specieke rechten per forum) en deze wil ik er dus nu afhalen en het huidige rechten systeem voor gaan benutten. Maar nu het volgende, moet ik voor ieder forum apparte rechten groepen aanmaken en deze vullen met 'rechten' of zou ik dit beter op een andere manier kunnen koppelen, aangezien er dan wel heel rechten (per forum, per groep(en) en gebruikers) bij komen.

forum tabel
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CREATE TABLE `forum_fora` (
  `right_reply` int(11) unsigned NOT NULL,
  `right_read` int(11) unsigned NOT NULL,
  `right_start` int(11) unsigned NOT NULL,
  `right_banned` int(11) unsigned NOT NULL,
  `right_admin` int(11) unsigned NOT NULL,
  `id` tinyint(4) unsigned NOT NULL AUTO_INCREMENT,
  `index_id` tinyint(4) unsigned NOT NULL DEFAULT '0',
  `name` varchar(75) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `subname` char(3) COLLATE latin1_general_ci NOT NULL DEFAULT '',
  `subject` text COLLATE latin1_general_ci NOT NULL,
  `lastpost` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `topics` int(4) unsigned NOT NULL DEFAULT '0',
  `posts` int(4) unsigned NOT NULL DEFAULT '0',
  `fsort` tinyint(4) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `index_id` (`index_id`),
  KEY `name` (`name`),
  KEY `fsort` (`fsort`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


in dit geval gebruik ik per forum de volgende code opzet

1
2
3
4
5
  `right_reply` = 0 of ID+001
  `right_read` = 0 of ID+002
  `right_start` = 0 of ID+003
  `right_banned`  = 0 of ID+004
  `right_admin`  = 0 of ID+005


deze rechten (normaal op 0 dus niet vereist) worden in een apparte tabel geschreven die weer uitgelezen worden op het moment dat de gebruiker het forum bezoekt.

Dus wat zouden jullie doen?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_77807451
Ik heb wat hulp nodig met code.
Ik heb de volgende SELECT:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT h.res_id,comp_code,
SUM(amount_costs) as TotaalPens
FROM hrcomp_trans

inner join humres h with(nolock) on h.res_id=hrcomp_trans.res_id

WHERE comp_code = 'PENSWG' and h.res_id=144
GROUP BY h.res_id,
comp_code

UNION

SELECT h.res_id,comp_code,
SUM(entry_amount) as TotaalPens
FROM hrcomp_trans

inner join humres h with(nolock) on h.res_id=hrcomp_trans.res_id

WHERE comp_code = 'SALARIS' and h.res_id=144
GROUP BY h.res_id,
comp_code


Dit is het resultaat:
1
2
3
res_id           comp_code   TotaalPens
144   PENSWG     25,14
144   SALARIS    2000

Hoe kan ik zorgen dat er maar 1 rij is met 4 kolommen, ééntje voor PENSWG en dan SUM(Amount_costs) en ééntje voor SALARIS en dan SUM(entry_amount)?

Bedankt _O_
pi_77808167
Nvm;
1
2
(SELECT SUM(entry_amount) FROM hrcomp_trans where h.res_id=hrcomp_trans.res_id and comp_code='SALARIS') AS TotaalSalaris,
(SELECT SUM(amount_costs) FROM hrcomp_trans where h.res_id=hrcomp_trans.res_id and comp_code='PENSWG') AS TotaalPensioen

Ik wist niet dat je met Sub-SELECTS nieuwe kolommen kon maken :@
Weer wat geleerd.
pi_77808598
quote:
Op dinsdag 9 februari 2010 14:38 schreef DaFan het volgende:
Nvm;
[ code verwijderd ]

Ik wist niet dat je met Sub-SELECTS nieuwe kolommen kon maken
Weer wat geleerd.
Je kunt er geen nieuwe kolommen mee maken, alleen bestaande kolommen transformeren tot nieuwe gegevens. Die kolommen bestaan uiteraard niet meer na het uitvoeren van de query.
pi_77809130
Nouja ik zie het als een UNION in de richting die ik wou
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')