abonnement Unibet Coolblue Bitvavo
pi_58436041
quote:
Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
[ code verwijderd ]

Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.

Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output

Product 1
Product 1
Product 2
Product 2
Product 2
Product 3
Product 3
Product 3
Product 3
Product 3

Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
Maak er eens SELECT DISTINCT * .... van
Don't hurry, be crappy!
  vrijdag 2 mei 2008 @ 14:34:51 #202
32768 DionysuZ
Respect my authority!
pi_58436047
quote:
Op vrijdag 2 mei 2008 13:38 schreef Light het volgende:

[..]

Dan maak je een JOIN over die twee tabellen, als je tenminste wilt weten welke drank er in een beker zit. Zo'n id is een makkelijk, vast punt. Ander voordeel is dat als je "bier" wilt vervangen door "Heineken" (om verwarring met "Grolsch" te voorkomen bijvoorbeeld) dan hoef je dat maar op 1 plek aan te passen.
heineken verwarren met grolsch
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_58437998
quote:
Op vrijdag 2 mei 2008 13:02 schreef Light het volgende:

[..]
[ code verwijderd ]

Je geeft aan sprintf 1 string en 2 andere parameters mee, terwijl er in die string maar 1 placeholder is. Gevalletje haakjes verkeerd?
Duidelijk gevalletje van ja, en zelfs twee .

Aangezien trigger_error E_USER_NOTICE gebruikt als error_type als je deze niet meegeeft, viel de fout me niet op.

[ Bericht 10% gewijzigd door slakkie op 02-05-2008 16:45:21 ]
pi_58438146
quote:
Op vrijdag 2 mei 2008 14:10 schreef webbyplus het volgende:
Hallo, waarschijnlijk super simpel op te lossen, maar het lukt me niet;
Ik heb de volgende code:
[ code verwijderd ]

De STRING $test bevat 76 cijfers. Echter als ik hem nu echo krijg ik zoiets te zien : "1.0305006007E+047". Hoe kan ik mijn string correct tonen? bvd
Een simpele oplossing is:

1
2
$test = "103050060070003002100004060008030010101010111000020305081011151601060912031615";
echo  0 + $test;


[ Bericht 1% gewijzigd door slakkie op 02-05-2008 16:52:05 ]
  vrijdag 2 mei 2008 @ 16:49:15 #205
12880 CraZaay
prettig gestoord
pi_58438324
quote:
Op vrijdag 2 mei 2008 16:40 schreef slakkie het volgende:

Een simpele oplossing is:
Mooi he dat PHP... een int en een string bij elkaar optellen
pi_58438389
quote:
Op vrijdag 2 mei 2008 16:49 schreef CraZaay het volgende:

[..]

Mooi he dat PHP... een int en een string bij elkaar optellen
Perl doet hetzelfde
pi_58438426
quote:
Op vrijdag 2 mei 2008 16:49 schreef CraZaay het volgende:

[..]

Mooi he dat PHP... een int en een string bij elkaar optellen
het zou verboden moeten worden!
  vrijdag 2 mei 2008 @ 17:10:22 #208
12880 CraZaay
prettig gestoord
pi_58438664
quote:
Op vrijdag 2 mei 2008 16:52 schreef slakkie het volgende:

Perl doet hetzelfde
JavaScript en allerlei andere loosely typed talen ook, maar dat maakt het nog niet netter
pi_58439193
quote:
Op vrijdag 2 mei 2008 17:10 schreef CraZaay het volgende:

[..]

JavaScript en allerlei andere loosely typed talen ook, maar dat maakt het nog niet netter
Das waar, maar echo (float) $test werkt ook, en is wellicht nog netter ook
  zaterdag 3 mei 2008 @ 14:16:29 #210
159841 Dzy
It is I
pi_58454062
Ik heb een vraagje :)

Ik ben bezig met een site waar een heleboel gedichten op komen te staan van dezelfde dichter. Deze kan hij taggen met meerdere tags, die allemaal weer in een aparte tabel tags staan. Omdat er meerdere tags bij meerdere gedichten kunnen gebruik ik een koppeltabel gedichten_tags. Alleen hoe kan ik nu mooi in 1 query alle gedichten opvragen die bij 1 of meer tags horen?

Ik zat zelf al een beetje te prutsen met de volgende query:

1SELECT * FROM gedichten,gedichten_tags WHERE gedichten.gedicht_id=gedichten_tags.gedicht_id AND tag_id IN (1,3,4)


Dit zou dan alle gedichten opvragen die een tag hebben van 1, 3 of 4 maar de bedoeling is natuurlijk dat ze alle drie zo getagd moeten zijn. En voor mijn gevoel is dit een ranzige query, maar dat kan ik verkeerd hebben. Ingewikkelde queries ben ik nog niet zo goed in :P Wie kan me helpen?
"Reality is an illusion created by a lack of alcohol."
  zaterdag 3 mei 2008 @ 14:49:01 #211
3677 SuperRembo
Sinds 1998
pi_58454461
Met behulp van een soortgelijke query moet dat lukken. (In oude topics staan nog wel eens handige dingen)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_58454618
quote:
Op zaterdag 3 mei 2008 14:16 schreef Dzy het volgende:
Ik heb een vraagje

Ik ben bezig met een site waar een heleboel gedichten op komen te staan van dezelfde dichter. Deze kan hij taggen met meerdere tags, die allemaal weer in een aparte tabel tags staan. Omdat er meerdere tags bij meerdere gedichten kunnen gebruik ik een koppeltabel gedichten_tags. Alleen hoe kan ik nu mooi in 1 query alle gedichten opvragen die bij 1 of meer tags horen?

Ik zat zelf al een beetje te prutsen met de volgende query:
[ code verwijderd ]

Dit zou dan alle gedichten opvragen die een tag hebben van 1, 3 of 4 maar de bedoeling is natuurlijk dat ze alle drie zo getagd moeten zijn. En voor mijn gevoel is dit een ranzige query, maar dat kan ik verkeerd hebben. Ingewikkelde queries ben ik nog niet zo goed in Wie kan me helpen?
Ik zie niks verkeerd aan deze query om heel eerlijk te zijn. Maar toegegeven SQL is niet mijn sterkste ding.
  zaterdag 3 mei 2008 @ 15:06:40 #213
159841 Dzy
It is I
pi_58454671
Dan zou het dus iets soortgelijks worden:

1
2
3
4
SELECT * FROM gedichten,gedicht_tags
WHERE gedichten.gedicht_id = gedichten_tags.gedicht_id AND gedicht_tags.tag_id IN (1,3,4)
GROUP BY gedichten.gedicht_id
HAVING COUNT(*) = 3

worden?

Ik snap de query nog niet helemaal :P Wat doet dat GROUP BY nou precies? Zorgt die dat die duplicates wegblijven? En die HAVING COUNT zorgt ervoor dat alleen resultaten die precies 3 keer voorkomen doorkomen om te zorgen dat alle tags aanwezig moeten zijn? Als ik nog andere zoekdingen toevoeg dan maakt het niet uit verder toch? Zolang het geen moeilijke constructies worden zal hij er altijd 3 blijven vinden of niet?

Bedankt, ben nog niet zo'n ster in MySQL maar er komt verandering in, tof onderschrift trouwens :P
"Reality is an illusion created by a lack of alcohol."
  zaterdag 3 mei 2008 @ 15:34:22 #214
3677 SuperRembo
Sinds 1998
pi_58455094
quote:
Op zaterdag 3 mei 2008 15:06 schreef Dzy het volgende:
Ik snap de query nog niet helemaal :P
Zie andere topic :P


Het zou (uitgaande van MySQL 5) zo iets worden:

1
2
3
4
5
6
7
8
9
SELECT * 
FROM gedichten g
WHERE g.gedicht_id IN (
   SELECT t.gedicht_id
   FROM gedichten_tags t
   WHERE t.tag_id IN (1, 3, 4)
   GROUP BY t.gedicht_id
   HAVING COUNT(*) = 3
)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_58455612
quote:
Op donderdag 1 mei 2008 18:20 schreef Flaccid het volgende:
Ik heb een functie met die checkt of een variable leeg is of niet, wanneer hij leeg is zegt hij dat hij leeg is . Maar dan wordt het: Hoe krijg je de tekst van een variable die leeg is op het scherm, dus de naam van de lege variable?
[ code verwijderd ]
omfg
  zaterdag 3 mei 2008 @ 16:35:48 #216
159841 Dzy
It is I
pi_58455922
Ik heb het aan de praat, dankjewel. Hier is een query die ik gebruik om op 2 tags te zoeken die moeten matchen en het moet uit een bepaald boekje komen:

1
2
3
4
5
6
7
8
SELECT * FROM gedichten g 
WHERE (g.gedicht_id IN 
  ( 
  SELECT t.gedicht_id 
  FROM gedicht_tags t WHERE t.tag_id IN (1,2) 
  GROUP BY t.gedicht_id HAVING COUNT(*) = 2) 
  ) 
  AND (g.gedicht_boekje = '3')


Doet het prima :) Thanks! Ik snap het ook zowaar :P
"Reality is an illusion created by a lack of alcohol."
  zaterdag 3 mei 2008 @ 16:40:36 #217
63192 ursel
"Het Is Hier Fantastisch!
pi_58455970
quote:
Op zaterdag 3 mei 2008 15:34 schreef SuperRembo het volgende:

[..]

Zie andere topic


Het zou (uitgaande van MySQL 5) zo iets worden:
[ code verwijderd ]
Zover ik tot nog toe heb ondervonden duren dit queries (dus met querie in querie) langer dan een join.
  zaterdag 3 mei 2008 @ 16:56:49 #218
12880 CraZaay
prettig gestoord
pi_58456145
quote:
Op zaterdag 3 mei 2008 16:40 schreef ursel het volgende:

querie in querie
Een subquery dus

Als je fatsoenlijke caching van de output gebruikt zou het snelheidsverschil weinig invloed mogen hebben overigens.

Zijn er hier überhaupt mensen bezig met memcached en dergelijke?
  zaterdag 3 mei 2008 @ 18:03:56 #219
3677 SuperRembo
Sinds 1998
pi_58457257
quote:
Op zaterdag 3 mei 2008 16:40 schreef ursel het volgende:
Zover ik tot nog toe heb ondervonden duren dit queries (dus met querie in querie) langer dan een join.
In dit geval lukt het ook wel zonder sub-query, alleen wordt 't daar wat minder overzichtelijk van. En de vraag is of 't echt sneller is.

1
2
3
4
5
6
7
SELECT g.gedicht_id, g.titel
FROM gedichten g
INNER JOIN gedichten_tags t ON t.gedicht_id = g.gedicht_id 
WHERE g.gedicht_boekje = 3 
   AND t.tag_id IN (1, 3, 4)
GROUP BY g.gedicht_id, g.titel
HAVING COUNT(*) = 3

(En alles wat je in de SELECT opneemt ook toevoegen aan de GROUP BY)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zaterdag 3 mei 2008 @ 18:04:33 #220
3677 SuperRembo
Sinds 1998
pi_58457268
quote:
Op zaterdag 3 mei 2008 16:56 schreef CraZaay het volgende:
Zijn er hier überhaupt mensen bezig met memcached en dergelijke?
Wat bedoel je daar precies mee?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  zaterdag 3 mei 2008 @ 18:38:19 #221
12880 CraZaay
prettig gestoord
pi_58457709
quote:
Op zaterdag 3 mei 2008 18:04 schreef SuperRembo het volgende:

Wat bedoel je daar precies mee?
Eigenlijk wat er staat Zijn er hier mensen die bijvoorbeeld query results cachen d.m.v. bijvoorbeeld memcached (cachen in geheugen). Ik gebruik het veelvuldig voor zeer drukke websites, waarbij query results in het geheugen gaan totdat ze geïnvalideerd worden. Voor sommige sites gaan er hele stukken HTML (segmenten of hele pagina's) in het geheugen.

Misschien niet van toepassing op de meeste sites die hier gebouwd worden (geen idee over wat voor projecten we het hier hebben), maar voor echt drukke sites is het onmisbaar.
pi_58457973
Ik gebruik de cachingfunctie van Smarty, voor de templates / HTML dus. Op dynamische pagina's heb je daar niks aan, maar bij pagina's die weinig tot nooit wijzigen is de winst opvallend groot.

Verder gebruik ik Adodb als database class, en die heeft ook een caching functie waarbij het resultaat in een file opgeslagen wordt. Het opzoeken en inlezen van de file is dermate traag dat je het eigenlijk alleen als backup-mechanisme kunt gebruiken, iets wat de documentatie zelf ook aangeeft.

Met cachen in het geheugen heb ik geen ervaring.... Aan wat voor bezoekersaantallen / queries moet ik denken als jij het over een drukke site hebt?
  zaterdag 3 mei 2008 @ 19:14:01 #223
159841 Dzy
It is I
pi_58458273
Ik heb er op m'n werk wel eens mee moeten werken, afhankelijk van allerlei factoren scheelt het een beetje tot een hele boel, vooral afhankelijk van hoe vaak en veel de data verandert. Maar inderdaad, voor 99% van de sites die hier gebouwd worden is het vrij zinloos.

Ik heb nog een vraagje hoe jullie het volgende zouden aanpassen:

Ik kan nu mooi zoeken in de gedichten op meerdere dingen, op tags, het boek waar het gedicht in staan en/of de inhoud en titel. Deze query dingen staan gewoon in de url dmv GET, zelfs als je een gedicht aan het lezen bent. Hierdoor kan ik binnen dezelfde selectie gedichten met pijltjes vooruit en achteruit in de gedichten. Dus stel dat ik een zoekactie heb gedaan op gedichten met het woord School erin en de tag Liefde, dan staat in de url. Dan krijg ik een lijstje met gedichten die hieronder vallen, klik ik er een aan en dan krijg ik die voorgeschoteld. Nu wil ik dus zonder op Vorige te drukken naar het volgende of vorige gedicht in de selectie komen door op een pijltje te drukken. Dit is niet zo moeilijk te realiseren alleen zijn er een paar verschillende opties, wat zouden jullie doen:

- Zodra je bent gaan zoeken alle IDs van de gedichten op volgorde in een sessie op slaan zodat je die heel makkelijk kunt checken om de pijltjes te maken met de goede link erbij. Nadeel van deze is dat er echt duizenden gedichten in de database komen en je dus bij een hele vrije search makkelijk 2000 ID's op gaat slaan. Ik weet niet precies wat voor limiet er bij sessions zitten maar op deze host zal het vast niet hoog zijn.
- Als je het bericht checkt kun je zo de search opnieuw doen zonder limit en dan zo de vorige en volgende ID ophalen. Nadeel is wel dat je dan elk gedicht weer de query moet uitvoeren.

EDIT: Nadeel bij 1 vergeten.
"Reality is an illusion created by a lack of alcohol."
  zaterdag 3 mei 2008 @ 19:17:22 #224
12880 CraZaay
prettig gestoord
pi_58458323
quote:
Op zaterdag 3 mei 2008 18:56 schreef Xcalibur het volgende:
Aan wat voor bezoekersaantallen / queries moet ik denken als jij het over een drukke site hebt?
Een project wat ik voor NU.nl gedaan heb bijvoorbeeld (da's extreem), maar ook een jongerensite met een sociaal netwerk wat met 30.000 pageviews per dag al aardig wat zware queries oplevert.
  zaterdag 3 mei 2008 @ 20:35:38 #225
3677 SuperRembo
Sinds 1998
pi_58459757
Nee, memcached gebruik ik niet, maar dat had je al wel begrepen
Ziet er interessant uit, daar moet ik eens in duiken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')