abonnement Unibet Coolblue
  donderdag 26 februari 2015 @ 08:19:46 #51
37634 wobbel
Da WoBBeL King
pi_150057610
quote:
7s.gif Op woensdag 25 februari 2015 21:43 schreef Aether het volgende:

[..]

Je hebt mogelijk kolommen met eenzelfde naam zodat in het resultaat er één (unieke naam) overblijft.
Je kunt het oplossen door alternatieve namen in de SELECT te gebruiken. Bijvoorbeeld:
[ code verwijderd ]

(Ik weet niet welke kolommen er verder voorkomen).
Top, dit is hem inderdaad :) You saved my day, nu krijg inderdaad netjes de juiste namen te zien.

quote:
0s.gif Op woensdag 25 februari 2015 21:04 schreef robin007bond het volgende:

[..]

Sorry, maar dan heb je je database waarschijnlijk niet optimaal ingericht. :@
Die kans is aanwezig, maar soms moet je werken met wat je hebt :P
pi_150059766
Stabiele versie 1.0.0 appserver.io uitgebracht.
quote:
The objective of the project is to develop a multithreaded application server for PHP, written in PHP. Yes, pure PHP! You think we aren't serious? Maybe! But we think, in order to enable as many developers in our great community, this will be the one and only way. So with your help we hopefully establish a solution as the standard for enterprise applications in PHP environments.
http://appserver.io/
https://github.com/appserver-io/appserver
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_150061101
quote:
7s.gif Op donderdag 26 februari 2015 10:07 schreef Aether het volgende:
Stabiele versie 1.0.0 appserver.io uitgebracht.

[..]

http://appserver.io/
https://github.com/appserver-io/appserver
Ik heb een beter idee. Leer Java. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150135862
quote:
15s.gif Op woensdag 18 februari 2015 21:14 schreef mstx het volgende:
Ben sinds kort iets aan het maken met Symfony2/Doctrine. Dus ik heb in mijn database een TINYINT veld, zegt dat systeem dat het een boolean is. Welke idioot heeft dat bedacht? |:(
Je hebt met PHP te maken, elke idioot kan dat bedacht hebben (Ik heb de draad gelezen, het komt door mysql..)
In theory there is no difference between theory and practice. In practice there is.
pi_150136002
quote:
14s.gif Op woensdag 18 februari 2015 21:37 schreef KomtTijd... het volgende:

[..]

Waarom maak je je uberhaupt druk om het database format? Laat dat lekker aan doctrine over. Die zal er waarschijnlijk een int van maken. Mocht je dat nog willen micro-optimaliseren naar een tinyint kun je dat doen na uitrol van je applicatie.
Docterine zit fout m.i. De MySQL docs zeggen:

quote:
A value of zero is considered false. Nonzero values are considered true
Dat wilt dus zeggen dat een tinyint(1) veld dus: 0 of niet 0 moet teruggeven, als je if ($bool) doet, gaat die logica vanzelf goed, daar hoeven ze geen "true" of "false" van de maken. En mocht je echt willen dat een tinyint een boolean is, dan moet je dat ergens in je schema kunnen opnemen.

http://doctrine-dbal.read(...)reference/types.html Should be possible..
In theory there is no difference between theory and practice. In practice there is.
pi_150137744
Dat gaat je problemen opleveren wanneer je b.v. === true doet. De == operator in PHP is aardig verneukt.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150138980
quote:
0s.gif Op zaterdag 28 februari 2015 08:57 schreef Monolith het volgende:
Dat gaat je problemen opleveren wanneer je b.v. === true doet. De == operator in PHP is aardig verneukt.
hoezo? ohhh omdat 0 === true is?
In theory there is no difference between theory and practice. In practice there is.
pi_150139104
quote:
1s.gif Op zaterdag 28 februari 2015 10:38 schreef slacker_nl het volgende:

[..]

hoezo? ohhh omdat 0 === true is?
Nee, omdat bijvoorbeeld 3 === true false oplevert en dergelijke checks dus falen als je de daadwerkelijke int waarden gebruikt.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150139512
quote:
1s.gif Op zaterdag 28 februari 2015 10:45 schreef Monolith het volgende:

[..]

Nee, omdat bijvoorbeeld 3 === true false oplevert en dergelijke checks dus falen als je de daadwerkelijke int waarden gebruikt.
Doctorine moet gewoon niet naar het interne storageformaat kijken maar ergens in z'n schema files een definitie plaatsen van de kolom: boolean. Dat ie dat vervolgens mapped maar tinyint of supersmallint of weet ik het maakt dan niet uit. Null == false, idem voor 0 en de rest is true. Fixed. Dan kan je tinyint gebruiken in je DB en booleans zonder gezeik met true versnellingen.

Beetje ala
http://search.cpan.org/~g(...)ateColumn/Boolean.pm

[ Bericht 5% gewijzigd door slacker_nl op 28-02-2015 11:19:38 ]
In theory there is no difference between theory and practice. In practice there is.
pi_150139839
quote:
1s.gif Op zaterdag 28 februari 2015 11:06 schreef slacker_nl het volgende:

[..]

Doctorine moet gewoon niet naar het interne storageformaat kijken maar ergens in z'n schema files een definitie plaatsen van de kolom: boolean. Dat ie dat vervolgens mapped maar tinyint of supersmallint of weet ik het maakt dan niet uit. Null == false, idem voor 0 en de rest is true. Fixed. Dan kan je tinyint gebruiken in je DB en booleans zonder gezeik met true versnellingen.
Doctrine zelf is gewoon een ORM framework. Volgens mij gebruikt betreffende user gewoon een tooltje om op basis van een database schema de bijbehorende code te kunnen genereren. Doctrine werkt net als allerhande andere ORM frameworks met annotaties, waarbij je ook types op kunt geven.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150165319
quote:
1s.gif Op zaterdag 28 februari 2015 11:06 schreef slacker_nl het volgende:

[..]

Doctorine moet gewoon niet naar het interne storageformaat kijken maar ergens in z'n schema files een definitie plaatsen van de kolom: boolean. Dat ie dat vervolgens mapped maar tinyint of supersmallint of weet ik het maakt dan niet uit. Null == false, idem voor 0 en de rest is true. Fixed. Dan kan je tinyint gebruiken in je DB en booleans zonder gezeik met true versnellingen.

Beetje ala
http://search.cpan.org/~g(...)ateColumn/Boolean.pm
Doctrine gebruikt ook de interne definitie. Als je aangeeft dat een veld een boolean bevat, krijg je een kolom voor booleans. Maar als je vervolgens een database gebruikt die geen booleans ondersteunt (zoals MySQL) dan krijg je een automatische fallback naar het kleinste numerieke formaat, ofwel de tinyint. Dat staat ook in de documentatie.
  zondag 1 maart 2015 @ 10:01:05 #62
187069 slacker_nl
Sicko pur sang
pi_150171253
quote:
0s.gif Op zondag 1 maart 2015 00:21 schreef Light het volgende:

[..]

Doctrine gebruikt ook de interne definitie. Als je aangeeft dat een veld een boolean bevat, krijg je een kolom voor booleans. Maar als je vervolgens een database gebruikt die geen booleans ondersteunt (zoals MySQL) dan krijg je een automatische fallback naar het kleinste numerieke formaat, ofwel de tinyint. Dat staat ook in de documentatie.
En toch gaat het fout, want de beste man heeft true versnellingen ipv 6. Daarom zeg ik: Docterine zit fout, omdat ze ervanuit gaan dat een tinyint een booleanish value is.
In theory there is no difference between theory and practice. In practice there is.
  † In Memoriam † zondag 1 maart 2015 @ 10:09:51 #63
159335 Boze_Appel
Vrij Fruit
pi_150171371
quote:
0s.gif Op zondag 1 maart 2015 10:01 schreef slacker_nl het volgende:

[..]

En toch gaat het fout, want de beste man heeft true versnellingen ipv 6. Daarom zeg ik: Docterine zit fout, omdat ze ervanuit gaan dat een tinyint een booleanish value is.
Doctrine gaat uit van meersere databasedrivers. Dan krijg je compromissen
Carpe Libertatem
pi_150239615
Ik ben voor m'n studie bezig met wat SQL opdrachten en nu zit ik erg te tobben met wat self-joins.

Het probleem is als volgt:

Tabel "Persons"
id
name
address
age
eyeColor
gender

Tabel "Likes"
id
personA_id → Persons
personB_id → Persons

Dan moet ik een query schrijven die als resultaat elke persoon geeft die iemand met blauwe ogen leuk vindt, zonder duplicates.

quote:
SELECT P.name
FROM Persons P, Likes L
WHERE P.id = L.personA_id AND ............
Het lijkt mij dat er na de AND weer een P.id = personB_id moet komen, maar dan wel waar de P.eyeColor = "blue" is.
Hoe krijg ik het voor elkaar om dat te doen?
pi_150240233
Selecten naar likes, persons 2x joinen.
pi_150240420
quote:
14s.gif Op dinsdag 3 maart 2015 09:18 schreef KomtTijd... het volgende:
Selecten naar likes, persons 2x joinen.
Aha, vraag me niet waarom maar ik dacht steeds Likes 2 keer te moeten joinen.

1
2
3
SELECT DISTINCT P1.name
FROM Persons P1, Persons P2, Likes L
WHERE P1.id = L.personA_id AND P2.id = L.personB_id AND P2.eyeColor ="blue"

Deze werkt, thanks :)
pi_150240450
Ik blijf het een irritante notatie vinden die impliciete joins, maar zo kan ook inderdaad ^O^
pi_150240483
quote:
14s.gif Op dinsdag 3 maart 2015 09:34 schreef KomtTijd... het volgende:
Ik blijf het een irritante notatie vinden die impliciete joins, maar zo kan ook inderdaad ^O^
Je zou het zelf dus anders gedaan hebben bedoel je?
Wat dan precies, en met welke gedachte erachter?
pi_150240955
Hoi,
Kan ik mbv SQL ook nummers genereren die voldoen aan de 11-proef?

Ik zoek dus een manier om, op basis van bv een gegeven als data of tijd, een nummer te genereren die ook nog eens voldoet aan de 11-proef voor het kunnen verkrijgen van een geldig BSN-nummer.

Momenteel gebruik ik een statement wat, op basis van een view en vaste gegevens, nummers toevoegt om zo tot een getal van 6 cijfers te komen:

to_char( sysdate, 'WW')||lpad(pst_vnr_seq.nextval,4,0 )

Is het mogelijk of moet het echt met een apart javascript?
  dinsdag 3 maart 2015 @ 10:03:34 #70
84244 Scorpie
Abject en infaam!
pi_150240996
quote:
0s.gif Op dinsdag 3 maart 2015 10:01 schreef justme27 het volgende:
Hoi,
Kan ik mbv SQL ook nummers genereren die voldoen aan de 11-proef?

Ik zoek dus een manier om, op basis van bv een gegeven als data of tijd, een nummer te genereren die ook nog eens voldoet aan de 11-proef voor het kunnen verkrijgen van een geldig BSN-nummer.

Momenteel gebruik ik een statement wat, op basis van een view en vaste gegevens, nummers toevoegt om zo tot een getal van 6 cijfers te komen:

to_char( sysdate, 'WW')||lpad(pst_vnr_seq.nextval,4,0 )

Is het mogelijk of moet het echt met een apart javascript?
Ik begrijp niet zo goed wat javascript er mee te maken heeft, het beste kan je het ID dan laten genereren in PHP. In SQL zou ik het niet zo snel doen.
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_150241518
quote:
0s.gif Op dinsdag 3 maart 2015 10:01 schreef justme27 het volgende:
Hoi,
Kan ik mbv SQL ook nummers genereren die voldoen aan de 11-proef?

Ik zoek dus een manier om, op basis van bv een gegeven als data of tijd, een nummer te genereren die ook nog eens voldoet aan de 11-proef voor het kunnen verkrijgen van een geldig BSN-nummer.

Momenteel gebruik ik een statement wat, op basis van een view en vaste gegevens, nummers toevoegt om zo tot een getal van 6 cijfers te komen:

to_char( sysdate, 'WW')||lpad(pst_vnr_seq.nextval,4,0 )

Is het mogelijk of moet het echt met een apart javascript?
Je kunt stored procedures schrijven in Mysql.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150241854
quote:
7s.gif Op dinsdag 3 maart 2015 10:03 schreef Scorpie het volgende:

[..]

Ik begrijp niet zo goed wat javascript er mee te maken heeft, het beste kan je het ID dan laten genereren in PHP. In SQL zou ik het niet zo snel doen.
Javascript was een voorbeeld. En ook omdat ik geen PHP kan gebruiken; mijn selectie als invoertaal is beperkt tot:

java
Javascript
Jython
Groovy
Mozilla Rhino
pi_150241880
quote:
0s.gif Op dinsdag 3 maart 2015 10:28 schreef Monolith het volgende:

[..]

Je kunt stored procedures schrijven in Mysql.
Ik ben helaas geen ontwikkelaar dus dit onderdeel (ik heb ff gelezen) wordt al snel te ingewikkeld voor mij.
pi_150243661
quote:
11s.gif Op dinsdag 3 maart 2015 10:47 schreef justme27 het volgende:

[..]

Ik ben helaas geen ontwikkelaar dus dit onderdeel (ik heb ff gelezen) wordt al snel te ingewikkeld voor mij.
Wat is precies je vraag dan? Hoe je überhaupt een 11-proef nummer kunt genereren? Lijkt me dat hier wel rekenvoorbeelden voor te vinden zijn toch?
  dinsdag 3 maart 2015 @ 11:49:52 #75
62215 qu63
..de tijd drinkt..
pi_150243860
quote:
14s.gif Op dinsdag 3 maart 2015 11:43 schreef KomtTijd... het volgende:

[..]

Wat is precies je vraag dan? Hoe je überhaupt een 11-proef nummer kunt genereren? Lijkt me dat hier wel rekenvoorbeelden voor te vinden zijn toch?
http://nl.wikipedia.org/wiki/Elfproef
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_150243889
Het lijkt meer een verzoek tot het aanleveren van knip-en-plak code. :P
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150245182
Ik wil Turkse karakters weergeven, maar *iets* lijkt niet goed te gaan.



Ik krijg een vraagteken in plaats van 'ş'. Zie het voorbeeld onderaan.

- Collation tabel: utf8_turkish_ci
- Collation van VARCHAR-kolommen: utf8_turkish_ci

Ik ben er achter dat je 'SET NAMES UTF8' moet gebruiken. Maar wat ik ook doe, ik krijg een blanco pagina te zien als ik 'MYSQL_ATTR_INIT_COMMAND' gebruik.

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
<?php
    
try {
        
$options = array(
            
PDO::ATTR_PERSISTENT    => true,//can help to improve performance
            
PDO::ATTR_ERRMODE       => PDO::ERRMODE_EXCEPTION//throws exceptions whenever a db error occurs
            
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'  //>= PHP 5.3.6
        
);    
        
        
$con= new PDO('mysql:host=localhost;dbname=dbname''dbuser''dbpass'$options);    

        
$sql=    "SELECT * FROM A";
        
$stmt=$con->prepare($sql);
        
$stmt->execute();
        while(
$row $stmt->fetch(PDO::FETCH_ASSOC)) {
            echo 
'<tr>';
            echo 
'<td>' $row['A'] . '</td>';
            echo 
'<td>' $row['B'] . '</td>';
            echo 
'<td>' $row['C'] . ' - ' $row['D'] . '</td>';
            echo 
'<td>' $row['E'] . '</td>';
            echo 
'</tr>';
        }
    }
    catch(
PDOException $e) {
        echo 
'<pre>';
        echo 
'Regel: '.$e->getLine(). '<br />';
        echo 
'Bestand: '.$e->getFile(). '<br />';
        echo 
'Foutmelding: '.$e->getMessage();
        echo 
'</pre>'
    }
?>

Ook andere dingen geprobeerd zoals:
1
2
3
4
<?php
$con
= new PDO('mysql:host=localhost;dbname=dbname''dbuser''dbpass'
                
, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'));    
?>

1
2
3
<?php
$stmt
=$con->prepare($sql, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'));
?>

Maar ik krijg het maar niet aan de praat.

PHP-versie is 5.5.20. Iemand een idee? Raar genoeg werkte het hiervoor wel... :S.

[ Bericht 0% gewijzigd door #ANONIEM op 03-03-2015 12:37:00 ]
pi_150245613
Blanco pagina's betekenen doorgaans dat je een error krijgt die je niet zet.

Zet in ieder geval de error reporting / weergave even aan:
1
2
3
4
<?php
error_reporting
(E_ALL);
ini_set('display_errors'1);
?>
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150246535
quote:
0s.gif Op dinsdag 3 maart 2015 12:51 schreef Monolith het volgende:
Blanco pagina's betekenen doorgaans dat je een error krijgt die je niet zet.

Zet in ieder geval de error reporting / weergave even aan:
[ code verwijderd ]

Gedaan. Geen foutmeldingen. Het wordt in zijn geheel niet meer weergegeven.
Ervoor:


Erna:
pi_150246644
Kan het zijn dat je de data al verkeerd hebt opgeslagen in de database?? heb ik ook wel eens gehad... :{
Just say hi!
pi_150246729
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
pi_150246763
quote:
0s.gif Op dinsdag 3 maart 2015 13:24 schreef Chandler het volgende:
Kan het zijn dat je de data al verkeerd hebt opgeslagen in de database?? heb ik ook wel eens gehad... :{

quote:
0s.gif Op dinsdag 3 maart 2015 13:27 schreef raptorix het volgende:
MUST READ, REPEAT, MUST READ! :+

http://www.joelonsoftware.com/articles/Unicode.html
Thanks, zal het zo doornemen!

[ Bericht 3% gewijzigd door #ANONIEM op 03-03-2015 13:28:19 ]
pi_150247584
quote:
0s.gif Op dinsdag 3 maart 2015 13:20 schreef zarGon het volgende:

[..]

Gedaan. Geen foutmeldingen. Het wordt in zijn geheel niet meer weergegeven.
Ervoor:
[ afbeelding ]

Erna:
[ afbeelding ]
Heb je de PHP-file zelf ook in UTF-8 opgeslagen? Kan zijn dat je ook nog even een meta-tag moet toevoegen in de pagina waarin je dit weergeeft.
pi_150248729
1
2
3
SELECT DISTINCT P1.name
FROM Persons P1, Persons P2, Likes L
WHERE P1.id = L.personA_id AND P2.id = L.personB_id AND P2.eyeColor ="blue" 

Om even terug te komen op dit. Hoe verander ik dit nu zodat nu alleen de persoon wordt weergegeven die minstens twee personen met blauwe ogen aardig vindt? Volgens mij is het nog niet de bedoeling om COUNT te gebruiken, dus hoe kan ik dit dan oplossen?
pi_150250580
Dit is geen huiswerktopic. o|O
maar om je een hint te geven, je moet in ieder geval 3x iets uit Persons selecteren in dit geval.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_150250653
quote:
1s.gif Op dinsdag 3 maart 2015 13:53 schreef robin007bond het volgende:

[..]

Heb je de PHP-file zelf ook in UTF-8 opgeslagen? Kan zijn dat je ook nog even een meta-tag moet toevoegen in de pagina waarin je dit weergeeft.
Als het goed is wel, zal ik vanavond naar kijken. Thanks.
pi_150250693
quote:
0s.gif Op dinsdag 3 maart 2015 14:29 schreef DannyDeko het volgende:

[ code verwijderd ]

Om even terug te komen op dit. Hoe verander ik dit nu zodat nu alleen de persoon wordt weergegeven die minstens twee personen met blauwe ogen aardig vindt? Volgens mij is het nog niet de bedoeling om COUNT te gebruiken, dus hoe kan ik dit dan oplossen?
Waarom dat?

De simpelste oplossing lijkt mij eerst GROUP BY en een COUNT(). Vervolgens een select daaromheen met een WHERE en COUNT() > 1.

Een HAVING is makkelijker, maar ook dan heb je een COUNT.

Lukt het hiermee?

[ Bericht 1% gewijzigd door #ANONIEM op 03-03-2015 15:40:37 ]
pi_150251085
quote:
0s.gif Op dinsdag 3 maart 2015 15:29 schreef Monolith het volgende:
Dit is geen huiswerktopic. o|O
maar om je een hint te geven, je moet in ieder geval 3x iets uit Persons selecteren in dit geval.
I know, ik ben ook niet op zoek naar directe antwoorden. (;

quote:
0s.gif Op dinsdag 3 maart 2015 15:32 schreef zarGon het volgende:

[..]

Waarom dat?

De simpelste oplossing lijkt mij eerst GROUP BY en een COUNT(). Vervolgens een select daaromheen met een WHERE en COUNT() > 1.

Een HAVING is makkelijker, maar ook dan heb je een COUNT.

Lukt het hiermee?
Omdat het per onderdeel wordt uitgelegd ( voor zover dat wordt gedaan, documentatie is echt minimaal) en daarna enkele opgaven gegeven worden. En HAVING en COUNT komen pas later aan de orde.

Ik ga er weer even mee stoeien. Alvast bedankt :)
pi_150251169
quote:
0s.gif Op dinsdag 3 maart 2015 15:43 schreef DannyDeko het volgende:

Omdat het per onderdeel wordt uitgelegd ( voor zover dat wordt gedaan, documentatie is echt minimaal) en daarna enkele opgaven gegeven worden. En HAVING en COUNT komen pas later aan de orde.

Ik ga er weer even mee stoeien. Alvast bedankt :)
Wat mag je nu wel gebruiken dan? Er moet op de een of andere manier toch een telling plaatsvinden...
pi_150251942
quote:
0s.gif Op dinsdag 3 maart 2015 15:46 schreef zarGon het volgende:

[..]

Wat mag je nu wel gebruiken dan? Er moet op de een of andere manier toch een telling plaatsvinden...
Ik heb het maar gewoon gebruikt, want zoals je al zei zal er toch op een manier geteld moeten worden.

1
2
3
4
5
SELECT DISTINCT P1.name
FROM Persons P1, Persons P2, Likes L
WHERE P1.id = L.personA_id AND P2.id = L.personB_id AND P2.eyeColor ="green"
GROUP BY P1.name
HAVING COUNT(P2.eyeColor = "green") > 1

Zo is ie valid.
Maar zou je me kunnen uitleggen waarom " GROUP BY P1.name " hier nodig is?
pi_150252018
quote:
0s.gif Op dinsdag 3 maart 2015 16:08 schreef DannyDeko het volgende:

[..]

Ik heb het maar gewoon gebruikt, want zoals je al zei zal er toch op een manier geteld moeten worden.
[ code verwijderd ]

Zo is ie valid.
Maar zou je me kunnen uitleggen waarom " GROUP BY P1.name " hier nodig is?
Je distinct is onnodig, je hebt GROUP BY al.

En GROUP BY is nodig door de HAVING.

Verder is je HAVING niet goed, want je wil het aantal keren dat personA_id voorkomt tellen. (Eigenlijk de naam, maar een naam is natuurlijk niet uniek.)

1
2
3
4
5
6
7
8
9
SELECT P1.Name, COUNT(L.personA_id) AS NrOfLikes
FROM Likes L
INNER JOIN Persons P1
    ON L.personA_id = P1.id
INNER JOIN Persons P2
    ON L.personB_id = P2.id
WHERE P2.eyeColor = 'green'
GROUP BY P1.Name
HAVING COUNT(L.personA_id) > 1

Alhoewel, ik test het op TSQL; dat wijkt ietwat af van MySQL. Draait jouw code met de HAVING die jij hebt?!

[ Bericht 1% gewijzigd door #ANONIEM op 03-03-2015 16:16:55 ]
pi_150252339
quote:
0s.gif Op dinsdag 3 maart 2015 16:10 schreef zarGon het volgende:

[..]

Je distinct is onnodig, je hebt GROUP BY al.

En GROUP BY is nodig door de HAVING.

Verder is je HAVING niet goed, want je wil het aantal keren dat personA_id voorkomt tellen. (Eigenlijk de naam, maar een naam is natuurlijk niet uniek.)
[ code verwijderd ]

Alhoewel, ik test het op TSQL; dat wijkt ietwat af van MySQL. Draait jouw code met de HAVING die jij hebt?!
Aha, duidelijk. Thanks voor de toelichting!

Ik zie (en snap) nu idd ook dat de having verkeerd is.
En ja het draaide ook al met de code die ik poste, dus ook inclusief de overbodige distinct.
pi_150252739
quote:
0s.gif Op dinsdag 3 maart 2015 16:18 schreef DannyDeko het volgende:

[..]

Aha, duidelijk. Thanks voor de toelichting!

Ik zie (en snap) nu idd ook dat de having verkeerd is.
En ja het draaide ook al met de code die ik poste, dus ook inclusief de overbodige distinct.
Wat meer info over de HAVING: http://en.wikipedia.org/wiki/Having_%28SQL%29.

Ik vind die impliciete joins van jou maar niets. :P.
  vrijdag 6 maart 2015 @ 17:26:44 #94
272287 henrivo
Tikt tegen jassies
pi_150359019
Goeie vrijdagmiddag! :)

Ik ben inmiddels een paar dagen geleden vastgelopen tegen iets waar ik écht even geen raad mee weet. Nu ook weer, 4 uur achter elkaar zitten uitproberen, testen, niks lijkt te werken. Ik faal :')

De situatie is als volgt: ik heb tabel Article met o.a. de column articleTags:
1
2
3
4
5
6
7
<?php
/**
     * @ORM\ManyToMany(targetEntity="ArticleTag", inversedBy="articles")
     * @ORM\JoinTable(name="article_tags")
     **/
    
private $articleTags;
?>

En tabel ArticleTag
1
2
3
4
5
6
<?php
/**
     * @ORM\ManyToMany(targetEntity="Article", mappedBy="articleTags")
     **/
    
private $articles;
?>

Nu wil ik een cloudwolkje maken van laten we zeggen 5-10 keywords, dus roep ik het volgende op in de controller:

1
2
3
4
5
6
7
<?php
$qb 
$em->createQueryBuilder();
        
$qb->select('articletag, (SELECT count(article.id) FROM HVNewsBundle:Article AS article WHERE article.articleTags = articletag.id) AS mycount')
            ->
from('HVNewsBundle:ArticleTag''articletag')
            ->
orderBy('mycount''DESC');
        
$articleTags $qb->getQuery()->getResult();
?>

Waarna ik $articleTags in een for-loop wil laten doorlopen in de view

Kunnen jullie mij vertellen wat ik fout doe? Wat ik ook probeer ik blijf steeds foutmeldingen krijgen n.a.v. $qb

Edit: ik wil dus dat wanneer deze view wordt opgevraagd, het aantal artikelen opnieuw wordt berekend :)
pi_150359986
"foutmeldingen" ja daar heb ik ook wel eens last van :P

denk dat je de count moet doen op je koppeltabel.

article.articletags is een arraycollection van tags, dus daar kun je niet zomaar een WHERE op doen.
  vrijdag 6 maart 2015 @ 18:27:58 #96
272287 henrivo
Tikt tegen jassies
pi_150360580
quote:
14s.gif Op vrijdag 6 maart 2015 18:03 schreef KomtTijd... het volgende:
"foutmeldingen" ja daar heb ik ook wel eens last van :P

denk dat je de count moet doen op je koppeltabel.

article.articletags is een arraycollection van tags, dus daar kun je niet zomaar een WHERE op doen.
Dus eigenlijk gewoon een kolommetje erbij met 'views' en die dan per actie ++ of -1 laten berekenen?

Sucks. -O-

Anders begrijp ik je even verkeerd :@
pi_150360753
Nee je kunt toch in je koppel tabel tellen hoeveel artikelen een bepaalde tag heeft of vice versa? Weet FF niet of je makkelijk kunt querien naar de koppeltabel met doctrine maar dat lijkt me wel de manier.
  vrijdag 6 maart 2015 @ 18:41:39 #98
272287 henrivo
Tikt tegen jassies
pi_150360912
quote:
14s.gif Op vrijdag 6 maart 2015 18:35 schreef KomtTijd... het volgende:
Nee je kunt toch in je koppel tabel tellen hoeveel artikelen een bepaalde tag heeft of vice versa? Weet FF niet of je makkelijk kunt querien naar de koppeltabel met doctrine maar dat lijkt me wel de manier.
Ja dat was ook eigenlijk mijn vraag, hoe ik dat het beste doe, aangezien ik nu talloze combinaties geprobeerd heb en SQL/DQL niet mijn sterkste kant is :@
  vrijdag 6 maart 2015 @ 19:39:00 #99
272287 henrivo
Tikt tegen jassies
pi_150362996
Kortgezegde wil ik dus van elk bestaande tag berekenen hoeveel articles er aan gekoppeld zitten. Heeft iemand enig idee hoe?
pi_150363104
quote:
0s.gif Op vrijdag 6 maart 2015 19:39 schreef henrivo het volgende:
Kortgezegde wil ik dus van elk bestaande tag berekenen hoeveel articles er aan gekoppeld zitten. Heeft iemand enig idee hoe?
SELECT COUNT(tag_id) FROM articles_tags GROUP BY article_id :?
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')