abonnement Unibet Coolblue Bitvavo
  donderdag 25 juni 2009 @ 16:57:06 #76
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70364568
Momenteel ben ik bezig een web applicatie icm Google Maps.
Nu is het de bedoeling dat er uitgebreide stats worden bijgehouden, ook als een zogeheten marker per bedrijf wordt weergegeven.

Nu is dat bijhouden niet zo'n probleem, maar vraag ik me af hoe ik dit het beste kan doen qua performance:

Via memcached bijhouden welke markers/bedrijven er zijn weergegeven, vervolgens elke 5 min. een script laten draaien welke de memcached in de database stopt, en memcached opschoont.

Of aan het einde van het laden van alle markers deze met 1 query opslaan in de database...

Wat is het snelst en het meeste stabiel? Er van uitgaande dat er straks behoorlijk wat mensen gebruik gaan maken van de app.
pi_70369678
quote:
Op donderdag 25 juni 2009 12:13 schreef cablegunmaster het volgende:

[..]

hoe pak je daar alleen de getallen voor de komma? en een groot probleem. Deze query ben ik 0,5 dag mee bezig geweest om te formuleren.
[ code verwijderd ]

alleen nu geeft hij na toevoegen van problemen ook incidenten terug die meer dan 2 rijen heeft
en probleem id 0 hoe los ik dit op?
Opgelost met een where en een and

na een uurtje verder puzzelen
Redacted
  vrijdag 26 juni 2009 @ 12:56:31 #78
87680 Mirel
Mirel wil een bongophone.
pi_70393030
Ik gebruik het eventlist agenda component voor joomla. Het component heeft een bijpassende module die alles laat zien wat nog moet komen. Ik heb een custom module ervoor, die alleen de agendapunten laat zien van de huidige week.
Het probleem is dat het scriptje op die manier de agendapunten vind, en ze laat zien, en dus ook de ongepubliceerde meeneemt.
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
<?php

echo "<h5><font color=#ff9900><b>Deze week:</b></font></h5><hr>";

global $mainframe;
$db =& JFactory::getDBO();

$today_month = date( 'm', $time);

$query = "SELECT * FROM jos_eventlist_events WHERE ((WEEK(dates) = WEEK(now() + INTERVAL 0 WEEK)  AND YEAR(dates) = YEAR(now() + INTERVAL 0 WEEK)) 

OR 

(WEEK(now() + INTERVAL 0 WEEK BETWEEN WEEK(dates) AND WEEK(enddates)) AND YEAR(now() + INTERVAL 0 WEEK BETWEEN YEAR(dates) AND YEAR(enddates)))) 

GROUP BY dates ORDER BY dates, times ASC limit 25";
$db->setQuery( $query, 0, $count );
$rows = $db->loadObjectList();

echo '<ul>';
foreach($rows as $row) {
echo "
<b><a href='$JURI index.php?option=com_eventlist&view=details&id=$row->id'>$row->title </a></b><BR />
<li>Wanneer: <b>$row->dates</b><BR />
Aanvang: $row->times<BR /><BR />

</li>";
}
if (empty($row)) {
    echo 'Er zijn geen evenementen deze week!<br>Check volgende week nog eens.';
}
echo '</ul><hr>'; 
?>


Nou wil ik dus dat die ook de 'published' tabel checkt, en die ongepublishde níet meeneemt. Dat doet ie nu wel, en dat is niet de bedoeling. Hoe moet dat scriptje worden aangepast?

[ Bericht 3% gewijzigd door Mirel op 26-06-2009 13:05:49 ]
When all else fails, you always have delusion.
pi_70393107
Dat kunnen we niet weten, want we weten niet hoe de onderlinge tabel-structuur is.
  vrijdag 26 juni 2009 @ 13:06:02 #80
87680 Mirel
Mirel wil een bongophone.
pi_70393308
geedit
When all else fails, you always have delusion.
pi_70393683
ik zou zeggen WHERE published=1
  vrijdag 26 juni 2009 @ 13:21:23 #82
87680 Mirel
Mirel wil een bongophone.
pi_70393844
gooi ik dat er zo zomaar tussen? Vast niet
When all else fails, you always have delusion.
pi_70393879
Zelf totaal geen ervaring met mysql merk ik.
Eens even kijken

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

echo "<h5><font color=#ff9900><b>Deze week:</b></font></h5><hr>";

global $mainframe;
$db =& JFactory::getDBO();

$today_month = date( 'm', $time);

$query = "SELECT * FROM jos_eventlist_events WHERE published=1 AND ((WEEK(dates) = WEEK(now() + INTERVAL 0 WEEK)  AND YEAR(dates) = YEAR(now() + INTERVAL 0 WEEK)) 

OR 

(WEEK(now() + INTERVAL 0 WEEK BETWEEN WEEK(dates) AND WEEK(enddates)) AND YEAR(now() + INTERVAL 0 WEEK BETWEEN YEAR(dates) AND YEAR(enddates)))) 

GROUP BY dates ORDER BY dates, times ASC limit 25";
$db->setQuery( $query, 0, $count );
$rows = $db->loadObjectList();

echo '<ul>';
foreach($rows as $row) {
echo "
<b><a href='$JURI index.php?option=com_eventlist&view=details&id=$row->id'>$row->title </a></b><BR />
<li>Wanneer: <b>$row->dates</b><BR />
Aanvang: $row->times<BR /><BR />

</li>";
}
if (empty($row)) {
    echo 'Er zijn geen evenementen deze week!<br>Check volgende week nog eens.';
}
echo '</ul><hr>'; 
?>


Volgens mij zo,
  vrijdag 26 juni 2009 @ 13:38:18 #84
87680 Mirel
Mirel wil een bongophone.
pi_70394468
idd, geen ervaring
When all else fails, you always have delusion.
pi_70394537
Je moet ook in de OR clause een published = 1 zetten
  vrijdag 26 juni 2009 @ 13:42:34 #86
87680 Mirel
Mirel wil een bongophone.
pi_70394644
Hij werkt, dank je.

edit: oh, gelijk aan het begin na de OR?
When all else fails, you always have delusion.
  vrijdag 26 juni 2009 @ 13:57:49 #87
87680 Mirel
Mirel wil een bongophone.
pi_70395230
editkick

Hij doet het prima verder, heb het uitgetest. Zonder je extra code na de OR

[ Bericht 29% gewijzigd door Mirel op 26-06-2009 14:03:01 ]
When all else fails, you always have delusion.
pi_70397127
quote:
Op vrijdag 26 juni 2009 13:39 schreef Scorpie het volgende:
Je moet ook in de OR clause een published = 1 zetten
Volgens mij niet die or is puur voor de 2 datum selecties
  zaterdag 27 juni 2009 @ 12:21:50 #89
85919 Likkende_Lassie
Doe eens wat aan je ondertitel
pi_70420460
Momenteel ben ik bezig een web applicatie icm Google Maps.
Nu is het de bedoeling dat er uitgebreide stats worden bijgehouden, ook als een zogeheten marker per bedrijf wordt weergegeven.

Nu is dat bijhouden niet zo'n probleem, maar vraag ik me af hoe ik dit het beste kan doen qua performance:

Via memcached bijhouden welke markers/bedrijven er zijn weergegeven, vervolgens elke 5 min. een script laten draaien welke de memcached in de database stopt, en memcached opschoont.

Of aan het einde van het laden van alle markers deze met 1 query opslaan in de database...

Wat is het snelst en het meeste stabiel? Er van uitgaande dat er straks behoorlijk wat mensen gebruik gaan maken van de app.
pi_70427112
Kan iemand me helpen, soms krijg ik deze melding bij mijn gastenboek.Notice: Undefined index: comment op regel 111 dit is de regel $comment =$_REQUEST["comment"];

alvast bedankt.
pi_70427179
quote:
Op zaterdag 27 juni 2009 16:46 schreef Gruning3r het volgende:
Kan iemand me helpen, soms krijg ik deze melding bij mijn gastenboek.Notice: Undefined index: comment op regel 111 dit is de regel $comment =$_REQUEST["comment"];

alvast bedankt.
Het script verwacht dat er via GET of POST een veld "comment" wordt meegestuurd, maar dat gebeurt niet. Dan krijg je die melding.
pi_70427312
quote:
Op zaterdag 27 juni 2009 16:49 schreef Light het volgende:

[..]

Het script verwacht dat er via GET of POST een veld "comment" wordt meegestuurd, maar dat gebeurt niet. Dan krijg je die melding.
Maar hoe kan ik het oplossen dan? alvast bedankt
pi_70428047
Als ik de regel weg doe dan kan ik ook geen berichten meer plaatsen.
  zaterdag 27 juni 2009 @ 22:14:42 #94
37634 wobbel
Da WoBBeL King
pi_70435583
Hoe maak ik eigenlijk een simpel PHP/MySQL navigatie systeem?

Dat ik dus 50150 resultaten netjes per 50 kan opdelen, met onderaan < Vorige | 1-2-3-4-5-6-7 | Volgende > enzo...
pi_70437451
quote:
Op zaterdag 27 juni 2009 16:46 schreef Gruning3r het volgende:
Kan iemand me helpen, soms krijg ik deze melding bij mijn gastenboek.Notice: Undefined index: comment op regel 111 dit is de regel $comment =$_REQUEST["comment"];

alvast bedankt. ^O^ :D
1
2
3
<?php
$comment 
= isset($_REQUEST['comment'])?$_REQUEST['comment']:"Default";
?>
pi_70437543
quote:
Op zaterdag 27 juni 2009 22:14 schreef wobbel het volgende:
Hoe maak ik eigenlijk een simpel PHP/MySQL navigatie systeem?

Dat ik dus 50150 resultaten netjes per 50 kan opdelen, met onderaan < Vorige | 1-2-3-4-5-6-7 | Volgende > enzo...
1
2
3
4
5
6
7
8
<?php
$page 
= isset($_REQUEST['page'])?($_REQUEST['page'] - 1)*50:0;

while(
$row mysql_fetch_assoc(mysql_query("SELECT * FROM table LIMIT ".$page.",50"))
{
 
//blablabla
}
?>
  zondag 28 juni 2009 @ 11:07:09 #97
37634 wobbel
Da WoBBeL King
pi_70442680
Oke, misschien omdat i knet wakker ben hoor...maar waarom krijg ik ZEVEN resultaten met dit:

SELECT * FROM D_Customers LIMIT 5, 10

1 - 5
2 - 6
3 - 7
4 - 8
5 - 9
6 - 10

Als ik het zo natel, zou ik er dus maar 6 moeten krijgen....maar waarom krijg ik er 7?
pi_70443092
@Wobbel
" 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):

SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15"

Je krijgt dus maximaal tien terug, omdat er maar zeven rijen zijn krijg je er minder terug. Maar zes rijen terug verwachten is sowieso fout.
  zondag 28 juni 2009 @ 12:02:40 #99
37634 wobbel
Da WoBBeL King
pi_70443612
quote:
Op zondag 28 juni 2009 11:33 schreef FastFox91 het volgende:
@Wobbel
" 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):

SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15"

Je krijgt dus maximaal tien terug, omdat er maar zeven rijen zijn krijg je er minder terug. Maar zes rijen terug verwachten is sowieso fout.
Owjah, dat was het
pi_70443737
quote:
Op zaterdag 27 juni 2009 12:21 schreef Likkende_Lassie het volgende:
Momenteel ben ik bezig een web applicatie icm Google Maps.
Nu is het de bedoeling dat er uitgebreide stats worden bijgehouden, ook als een zogeheten marker per bedrijf wordt weergegeven.

Nu is dat bijhouden niet zo'n probleem, maar vraag ik me af hoe ik dit het beste kan doen qua performance:

Via memcached bijhouden welke markers/bedrijven er zijn weergegeven, vervolgens elke 5 min. een script laten draaien welke de memcached in de database stopt, en memcached opschoont.

Of aan het einde van het laden van alle markers deze met 1 query opslaan in de database...

Wat is het snelst en het meeste stabiel? Er van uitgaande dat er straks behoorlijk wat mensen gebruik gaan maken van de app.
Aan het eind van het laden opslaan lijkt me vele malen makkelijker dan via memcached en een cronjob?
Bovendien heb je je data dan meteen. 1 insertquery kost natuurlijk helemaal geen tijd....
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')