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>'; } ?> |
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')); ?> |
1 2 3 4 | <?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> |
Gedaan. Geen foutmeldingen. Het wordt in zijn geheel niet meer weergegeven.quote: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 ]
quote: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...
Thanks, zal het zo doornemen!quote:Op dinsdag 3 maart 2015 13:27 schreef raptorix het volgende:
MUST READ, REPEAT, MUST READ!
http://www.joelonsoftware.com/articles/Unicode.html
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.quote: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 ]
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" |
Als het goed is wel, zal ik vanavond naar kijken. Thanks.quote: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.
Waarom dat?quote: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?
I know, ik ben ook niet op zoek naar directe antwoorden. (;quote:Op dinsdag 3 maart 2015 15:29 schreef Monolith het volgende:
Dit is geen huiswerktopic.
maar om je een hint te geven, je moet in ieder geval 3x iets uit Persons selecteren in dit geval.
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.quote: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?
Wat mag je nu wel gebruiken dan? Er moet op de een of andere manier toch een telling plaatsvinden...quote: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
Ik heb het maar gewoon gebruikt, want zoals je al zei zal er toch op een manier geteld moeten worden.quote: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...
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 |
Je distinct is onnodig, je hebt GROUP BY al.quote: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?
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 |
Aha, duidelijk. Thanks voor de toelichting!quote: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?!
Wat meer info over de HAVING: http://en.wikipedia.org/wiki/Having_%28SQL%29.quote: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.
1 2 3 4 5 6 7 | <?php /** * @ORM\ManyToMany(targetEntity="ArticleTag", inversedBy="articles") * @ORM\JoinTable(name="article_tags") **/ private $articleTags; ?> |
1 2 3 4 5 6 | <?php /** * @ORM\ManyToMany(targetEntity="Article", mappedBy="articleTags") **/ private $articles; ?> |
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(); ?> |
Dus eigenlijk gewoon een kolommetje erbij met 'views' en die dan per actie ++ of -1 laten berekenen?quote:Op vrijdag 6 maart 2015 18:03 schreef KomtTijd... het volgende:
"foutmeldingen" ja daar heb ik ook wel eens last van
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.
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 isquote: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.
SELECT COUNT(tag_id) FROM articles_tags GROUP BY article_idquote: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?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |