abonnement Unibet Coolblue Bitvavo
  vrijdag 6 januari 2012 @ 10:34:41 #206
4159 GI
Nee ik heet geen JOE
  vrijdag 6 januari 2012 @ 10:42:05 #207
267443 Cue_
Cuecumbergirl
pi_106474508
quote:
Die zag ik idd voorbij komen.
Hij komt bij mij dan gelijk met 2 of 3 slashes aanzetten :')

[ Bericht 15% gewijzigd door Cue_ op 06-01-2012 10:49:14 ]
  vrijdag 6 januari 2012 @ 10:51:47 #208
91039 mstx
2x1/2 = 1/2 x 1/2
pi_106474758
quote:
quote:
3s.gif Op vrijdag 6 januari 2012 10:34 schreef GI het volgende:

[..]

Dat dus!
quote:
A MySQL connection is required before using mysql_real_escape_string() otherwise an error of level E_WARNING is generated, and FALSE is returned.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  vrijdag 6 januari 2012 @ 10:55:10 #209
267443 Cue_
Cuecumbergirl
pi_106474853
Hmm hij blijkt hem zelf al te escapen. Toch vind mijn query hem niet leuk:

1trailer='o\'' 

1 quoted string not properly terminated 
pi_106475241
http://orafaq.com/wiki/SQL_FAQ

How does one escape special characters when writing SQL queries?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SQL> SELECT 'Frank''s Oracle site' AS text FROM DUAL;
 TEXT
 --------------------
 Franks's Oracle site

 SQL> SELECT 'A ''quoted'' word.' AS text FROM DUAL;
 TEXT
 ----------------
 A 'quoted' word.

 SQL> SELECT 'A ''''double quoted'''' word.' AS text FROM DUAL;
 TEXT
 -------------------------
 A ''double quoted'' word.

1
2
3
4
<?php
// hopelijk is het zichtbaar dat een enkele quote wordt vervangen door twee enkele quotes.
$name str_replace("'""''""Frank's Oracle site");
?>
  vrijdag 6 januari 2012 @ 11:20:56 #211
267443 Cue_
Cuecumbergirl
pi_106475653
Een str_replace (en wss ook die addslashes) werken niet omdat het bij verwerking in quotes komt te staan

1trailer='".$trailer."'
pi_106476033
quote:
0s.gif Op vrijdag 6 januari 2012 10:51 schreef mstx het volgende:

[..]


[..]


[..]

Oracle heeft Mysql gekocht remember :)
pi_106476114
quote:
0s.gif Op vrijdag 6 januari 2012 11:20 schreef Cue_ het volgende:
Een str_replace (en wss ook die addslashes) werken niet omdat het bij verwerking in quotes komt te staan
[ code verwijderd ]

En als je " (dubbele quote) naar " veranderd en ' (enkele quote) naar '

En die dan opslaat wat doet hij dan?
pi_106501194
Het is me al gelukt. Op de 1 of andere manier het oude script aan de praat gekregen. Alleen nog 1 vraag. Als ik op verzenden klik, wat moet er dan verandert worden in het script, om hem door te sturen naar de 'bedank' pagina?

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
  vrijdag 6 januari 2012 @ 21:23:30 #215
137776 boem-dikkie
Jedi Mind Baby!
pi_106501534
quote:
0s.gif Op vrijdag 6 januari 2012 21:18 schreef Geflipte-Koelkast het volgende:
Het is me al gelukt. Op de 1 of andere manier het oude script aan de praat gekregen. Alleen nog 1 vraag. Als ik op verzenden klik, wat moet er dan verandert worden in het script, om hem door te sturen naar de 'bedank' pagina?

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Een header toevoegen naar je bedank pagina nadat de mail succesvol is verzonden.
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_106504388
Ik heb dus wat tijd besteed aan het inlezen in PHP formulieren en mail, nu heb ik dus deze tutorial gevolgd;
http://www.xentrik.net/php/email.php

Maar de code werkt niet. Ik krijg constant dat niet alle velden zijn ingevuld terwijl dat wel zo is.
En nu alleen de stukken code weggelaten waar hij kijkt of je email adres goed is en of alle velden zijn ingevuld, dan zegt hij dat het verstuurd is maar dan werkt het nog niet..

Ik ben echt op het punt van opgeven, is er nergens gewoon een kant en klare code die ik op die pagina kan gooien zodat het voor nu werkt en ik later in de lessen PHP uit kan gaan zoeken hoe ik zo'n code nu echt moet schrijven?
  vrijdag 6 januari 2012 @ 22:16:05 #217
56176 Catch22-
Ben je Blind?!
pi_106504726
zo werkt het niet. Ik zou even wat basic tutorials php lezen en ook even wat debug-tutorials doornemen.

Maar die code he, daar staat regel voor regel wat er gebeurt...
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
pi_106509589
quote:
11s.gif Op vrijdag 6 januari 2012 22:16 schreef Catch22- het volgende:
zo werkt het niet. Ik zou even wat basic tutorials php lezen en ook even wat debug-tutorials doornemen.

Maar die code he, daar staat regel voor regel wat er gebeurt...
Ik heb wat basic tutorials doorgenomen,
En dus de tutorial gevolgd waarvan ik die link gaf maar het werkt dus niet.
En ik snap niet waarom.
Dus ik begin me af te vragen of het niet gewoon aan de host ligt ipv aan mijn php skills, want ik doe gewoon letterlijk wat er in die tutorial staat..
pi_106510272
quote:
0s.gif Op vrijdag 6 januari 2012 21:18 schreef Geflipte-Koelkast het volgende:
Het is me al gelukt. Op de 1 of andere manier het oude script aan de praat gekregen. Alleen nog 1 vraag. Als ik op verzenden klik, wat moet er dan verandert worden in het script, om hem door te sturen naar de 'bedank' pagina?

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Emular register_globals on
if (!ini_get('register_globals')) {
    
$superglobales = array($_SERVER$_ENV$_FILES$_COOKIE$_POST$_GET);
    if (isset(
$_SESSION)) {
        
array_unshift($superglobales$_SESSION);
    }
    foreach (
$superglobales as $superglobal) {
        
extract($superglobalEXTR_SKIP);
    }
}
?>
Er is een reden dat register_globals niet meer gebruikt moet worden. Dan moet je niet zelf dat gedrag proberen na te bootsen.
pi_106575244
Jongens; ik heb jullie hulp weer eens nodig. :)

Voor een nieuwe website wil ik een systeem maken waarbij je kan zien op welke 'plaats' bepaalde data staat. Dit is gesorteerd bij 'likes' waarbij de hoogste waarde bovenaan staat.

Dat is allemaal geen probleem, maar ik wil dat op de pagina gericht aan die data ook komt te staan op welke plek die staan in de algemene-ranking.

Dus stel je even dit voor:
1
2
3
4
A = 2 likes
B = 3 likes
C = 4 likes
D = 1 like

Dan zal de volgorde dus alsvolgt worden:
1
2
3
4
1. C
2. B
3. A
4. D

Stel je voor je zit op de pagina van 'A', dan wil ik dus dat je te zien krijgt dat 'A' op plek 3 staat. Maar hoe doe ik dit?

Hopelijk is het een beetje duidelijk wat ik wil en kunnen jullie me helpen :)
pi_106576413
Easy... een order by in je query's gebruiken de vraag blijft of dit mogelijk is.
Want volgens mij gebruik je hierbij de facebook API? applicatie? :P ?
Corrigeer me als ik het verkeerd heb.

anders een query maken;
Select * from TABLE order by aantal_likes desc
of hoe je het veld hebt genoemd :).

Zie voorbeeld:
http://www.w3schools.com/php/php_mysql_order_by.asp

quote:
0s.gif Op vrijdag 6 januari 2012 23:50 schreef Vanillax het volgende:

[..]

Ik heb wat basic tutorials doorgenomen,
En dus de tutorial gevolgd waarvan ik die link gaf maar het werkt dus niet.
En ik snap niet waarom.
Dus ik begin me af te vragen of het niet gewoon aan de host ligt ipv aan mijn php skills, want ik doe gewoon letterlijk wat er in die tutorial staat..
Wat voor melding geeft het? en heb je die melding door google heen gehaalt? :)

[ Bericht 20% gewijzigd door cablegunmaster op 08-01-2012 21:14:46 ]
Redacted
pi_106577534
quote:
0s.gif Op zondag 8 januari 2012 20:57 schreef cablegunmaster het volgende:
Easy... een order by in je query's gebruiken de vraag blijft of dit mogelijk is.
Want volgens mij gebruik je hierbij de facebook API? applicatie? :P ?
Corrigeer me als ik het verkeerd heb.

anders een query maken;
Select * from TABLE order by aantal_likes desc
of hoe je het veld hebt genoemd :).

Zie voorbeeld:
http://www.w3schools.com/php/php_mysql_order_by.asp

[..]

Wat voor melding geeft het? en heb je die melding door google heen gehaald? :)
Nee likes staan in mijn eigen database, en wat jij wilt gaat niet lukken ;)
Want op die pagina wil ik niet de complete lijst, maar alleen de positie van het ene element (A in dit geval) uit de lijst. Snap je? :P
pi_106578581
quote:
0s.gif Op zondag 8 januari 2012 21:15 schreef dirkjo het volgende:

[..]

Nee likes staan in mijn eigen database, en wat jij wilt gaat niet lukken ;)
Want op die pagina wil ik niet de complete lijst, maar alleen de positie van het ene element (A in dit geval) uit de lijst. Snap je? :P
Hoe haal je de gegevens van A uit de database zijnde van wat erbij hoort? Dus bijvoorbeeld de rest van de pagina? want dan is het een kwestie van een variabele query.
"select * from likes where id = ' ".esc($_GET['id'])." ' ";
Met bvb de link index.php?id=50 dan haalt hij de ID eruit van 50 en welke ABCD er bij hoort.
Redacted
pi_106579278
quote:
0s.gif Op zondag 8 januari 2012 21:32 schreef cablegunmaster het volgende:

[..]

Hoe haal je de gegevens van A uit de database zijnde van wat erbij hoort? Dus bijvoorbeeld de rest van de pagina? want dan is het een kwestie van een variabele query.
"select * from likes where id = ' ".esc($_GET['id'])." ' ";
Met bvb de link index.php?id=50 dan haalt hij de ID eruit van 50 en welke ABCD er bij hoort.
Oke stel je dit voor:
Je hebt de waardes A, B, C en D zoals ik net al zei. Buiten nog veel meer informatie staat er onder andere in de database bij elke waarde (elke rij dus) het aantal likes dat die heeft gekregen (facebook onafhankelijk).

Als ik een lijst wil maken waarbij de waarde met de meeste likes bovenaan komt te staan kan ik inderdaad ORDER BY likes DESC gebruiken, maar dit wil ik niet.

Ik wil namelijk het volgende:

Elke waarde is ook een pagina, stel je voor A heeft ID 1; dan heb ik een waarde met ID 1. Dan kan ik alle waardes van die row pakken door WHERE ID = 1 te gebruiken, waaronder dus ook de likes.

Maar dat heeft allemaal niks te maken met wat ik wil. Ik wil namelijk op die pagina van 'A' dat je kan zien waar 'A' staat in de lijst (dus de lijst waar de meeste likes bovenaan staan).

Ik wil dat mysql dan aan mij teruggeeft op welke plek A zou staan als ik alle waardes sorteer van meeste naar minste likes.

Dus als voorbeeld:
1
2
3
4
A = 3 likes
B = 2 likes
C = 4 likes
D = 1 like

Als ik nu de hele lijst zou plaatsen zou 'A' op nummer twee worden geplaatst, hij heeft tenslotte de op een na meeste likes.

Nu wil ik op de pagina van 'A' die plaatst (positie 2) dus laten zien ZONDER de hele zooi te moeten plaatsen.

Ik hoop hiermee een beetje duidelijk te hebben beschreven wat ik wil? :P
pi_106581697
quote:
0s.gif Op zondag 8 januari 2012 21:42 schreef dirkjo het volgende:

[..]

Oke stel je dit voor:
Je hebt de waardes A, B, C en D zoals ik net al zei. Buiten nog veel meer informatie staat er onder andere in de database bij elke waarde (elke rij dus) het aantal likes dat die heeft gekregen (facebook onafhankelijk).

Als ik een lijst wil maken waarbij de waarde met de meeste likes bovenaan komt te staan kan ik inderdaad ORDER BY likes DESC gebruiken, maar dit wil ik niet.

Ik wil namelijk het volgende:

Elke waarde is ook een pagina, stel je voor A heeft ID 1; dan heb ik een waarde met ID 1. Dan kan ik alle waardes van die row pakken door WHERE ID = 1 te gebruiken, waaronder dus ook de likes.

Maar dat heeft allemaal niks te maken met wat ik wil. Ik wil namelijk op die pagina van 'A' dat je kan zien waar 'A' staat in de lijst (dus de lijst waar de meeste likes bovenaan staan).

Ik wil dat mysql dan aan mij teruggeeft op welke plek A zou staan als ik alle waardes sorteer van meeste naar minste likes.

Dus als voorbeeld:
[ code verwijderd ]

Als ik nu de hele lijst zou plaatsen zou 'A' op nummer twee worden geplaatst, hij heeft tenslotte de op een na meeste likes.

Nu wil ik op de pagina van 'A' die plaatst (positie 2) dus laten zien ZONDER de hele zooi te moeten plaatsen.

Ik hoop hiermee een beetje duidelijk te hebben beschreven wat ik wil? :P
Dus je wil dat de site tegen je zegt Dit nieuwsartikel of letter A Staat op nummer 2 van de hele lijst. en de rest negeren? Dan zou ik een order by desc. doen en vervolgens het eruit halen met echo. een Getal++; in de for lus doen (of welke lus) en als het overeen komt welke positie het is dus als de id te voorschijn komt die nodig is dan laat je het pas Echo'en welke positie het is.
Voila? :P of snap ik het verkeerd :)?

Dan krijg je als resultaat : A staat op X positie en heeft 4 likes.
Redacted
pi_106582316
quote:
0s.gif Op zondag 8 januari 2012 22:20 schreef cablegunmaster het volgende:

[..]

Dus je wil dat de site tegen je zegt Dit nieuwsartikel of letter A Staat op nummer 2 van de hele lijst. en de rest negeren? Dan zou ik een order by desc. doen en vervolgens het eruit halen met echo. een Getal++; in de for lus doen (of welke lus) en als het overeen komt welke positie het is dus als de id te voorschijn komt die nodig is dan laat je het pas Echo'en welke positie het is.
Voila? :P of snap ik het verkeerd :)?

Dan krijg je als resultaat : A staat op X positie en heeft 4 likes.
Je snapt het ;)
Dat is inderdaad waar ik aan dacht, maar vroeg me of daar geen makkelijkere oplossing voor was. Kennelijk niet; dus ga dit maar erin gooien, bedankt! :)
  zondag 8 januari 2012 @ 22:37:57 #227
75592 GlowMouse
l'état, c'est moi
pi_106582777
Select count(*) op de rijen met meer likes als het aantal rijen klein is, anders denormaliseren en de positie ook in de rij opslaan
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106583090
quote:
0s.gif Op zondag 8 januari 2012 22:37 schreef GlowMouse het volgende:
Select count(*) op de rijen met meer likes als het aantal rijen klein is, anders denormaliseren en de positie ook in de rij opslaan
Positie moet altijd up-to-date blijven omdat users hem kunnen bepalen (door middel van de likes).
Heb nu de volgende functie in elkaar gezet, verbetering welkom ofcourse.
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    
function songRank($songID){
        
$rank 0;
        
$getrank mysql_query("SELECT songID FROM songs ORDER BY `likes` DESC");
        while(
$row mysql_fetch_array($getrank)){
            
$rank++;
            if(
$songID == $row['songID']){
                return 
$rank;
            }
        }
    }
?>
  zondag 8 januari 2012 @ 22:48:45 #229
75592 GlowMouse
l'état, c'est moi
pi_106583335
Dat is een domme query, net alsof je niet snapt wat COUNT(*) en WHERE doen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106583410
quote:
7s.gif Op zondag 8 januari 2012 22:48 schreef GlowMouse het volgende:
Dat is een domme query, net alsof je niet snapt wat COUNT(*) en WHERE doen.
Nog nooit gebruik gemaakt van COUNT(*), maar ik zal er eens naar kijken.
pi_106583566
quote:
11s.gif Op zondag 8 januari 2012 22:50 schreef dirkjo het volgende:

[..]

Nog nooit gebruik gemaakt van COUNT(*), maar ik zal er eens naar kijken.
1SELECT COUNT(*) AS aantal FROM songs WHERE songID = '" . mysql_real_escape_string($songID) . "' ORDER BY `likes` DESC

Het aantal zit dan in: $row['aantal']

Edit: is songID numeriek of een string?
pi_106583570
--- laat --

[ Bericht 46% gewijzigd door dirkjo op 08-01-2012 22:59:38 ]
pi_106583788
quote:
0s.gif Op zondag 8 januari 2012 22:52 schreef The_Terminator het volgende:

[..]
[ code verwijderd ]

Het aantal zit dan in: $row['aantal']

Edit: is songID numeriek of een string?
songID is nummeriek, maar je query geeft geen positie terug. Ik krijg overal '1' terug 8)7
pi_106583866
quote:
9s.gif Op zondag 8 januari 2012 22:56 schreef dirkjo het volgende:

[..]

songID is nummeriek, maar je query geeft geen positie terug. Ik krijg overal '1' terug 8)7
Oeps... Onderstaande fixt het:

1SELECT COUNT(*) AS aantal, songID FROM songs WHERE songID = " . mysql_real_escape_string($songID) . " ORDER BY `likes` DESC
pi_106583927
quote:
0s.gif Op zondag 8 januari 2012 22:58 schreef The_Terminator het volgende:

[..]

Oeps... Onderstaande fixt het:
[ code verwijderd ]

Nee hoor
  zondag 8 januari 2012 @ 23:01:02 #236
75592 GlowMouse
l'état, c'est moi
pi_106584017
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106584079
quote:
7s.gif Op zondag 8 januari 2012 23:01 schreef GlowMouse het volgende:
[ afbeelding ]
Doe eens lief; kom eens met jouw oplossing.
  zondag 8 januari 2012 @ 23:02:41 #238
75592 GlowMouse
l'état, c'est moi
pi_106584102
Welke rijen moet je tellen om de rank te bepalen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zondag 8 januari 2012 @ 23:04:13 #239
75592 GlowMouse
l'état, c'est moi
pi_106584181
De oplossing van T_T is alleen daarom al niet goed omdat hij mysql_real_escape_string en intval door elkaar haalt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106584322
quote:
7s.gif Op zondag 8 januari 2012 23:02 schreef GlowMouse het volgende:
Welke rijen moet je tellen om de rank te bepalen.
Geen rijen, maar één kolom in een rij. (Ja ik weet; dat heb ik een paar keer verkeerd gezegd zie ik net ;( ). |:(

De kolom 'likes' vertelt me de positie, die kolom bevat een getal. Met COUNT ga je alle rijen tellen die `songID` '$songID' bevatten, ofniet? :P
pi_106584339
quote:
0s.gif Op zondag 8 januari 2012 23:04 schreef GlowMouse het volgende:
De oplossing van T_T is alleen daarom al niet goed omdat hij mysql_real_escape_string en intval door elkaar haalt.
Daarom vroeg ik of songid een numerieke waarde zou zijn. Ik gebruikt meestal is_numeric om te bepalen of de ingevoerde waarde ook daadwerkelijk numeriek is en als dat zo is voer ik het aan de query zonder de escape_string functie te gebruiken. En ik heb een vermoeden dat ik in mijn query een group by ben vergeten :')
  zondag 8 januari 2012 @ 23:13:04 #242
75592 GlowMouse
l'état, c'est moi
pi_106584631
quote:
0s.gif Op zondag 8 januari 2012 23:06 schreef dirkjo het volgende:

[..]

De kolom 'likes' vertelt me de positie, die kolom bevat een getal. Met COUNT ga je alle rijen tellen die `songID` '$songID' bevatten, ofniet? :P
Of niet, want je weet toch al dat dat precies één rij is. Je wilt juist tellen hoeveel rijen een hogere score hebben. Je functie zou dus "songRank($likes)" moeten zijn.
quote:
0s.gif Op zondag 8 januari 2012 23:07 schreef The_Terminator het volgende:

[..]

Daarom vroeg ik of songid een numerieke waarde zou zijn. Ik gebruikt meestal is_numeric om te bepalen of de ingevoerde waarde ook daadwerkelijk numeriek is en als dat zo is voer ik het aan de query zonder de escape_string functie te gebruiken. En ik heb een vermoeden dat ik in mijn query een group by ben vergeten :')
Probeer het niet goed te praten :{w. Je stopt output van mysql_real_escape_string in een query zonder quotes om die output en dat is onveilig.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106585192
quote:
0s.gif Op zondag 8 januari 2012 23:13 schreef GlowMouse het volgende:

[..]

Of niet, want je weet toch al dat dat precies één rij is. Je wilt juist tellen hoeveel rijen een hogere score hebben. Je functie zou dus "songRank($likes)" moeten zijn.

[..]

Probeer het niet goed te praten :{w. Je stopt output van mysql_real_escape_string in een query zonder quotes om die output en dat is onveilig.
Maar wat gebeurd er dan als meerdere nummers hetzelfde aantal likes hebben? Dan pakt die de eerste de beste rij die het gegeven aantal likes heeft.
pi_106585278
quote:
0s.gif Op zondag 8 januari 2012 23:13 schreef GlowMouse het volgende:

Probeer het niet goed te praten :{w. Je stopt output van mysql_real_escape_string in een query zonder quotes om die output en dat is onveilig.
Ik probeer niets goed te praten :{w . Ik ben vergeten die escapefunctie te verwijderen, de quotes had ik wel weggehaald waardoor het lijkt dat ik de functie gebruik in een query zonder quotes.

Zoals ik al aangaf gebruik ik de functie is_numeric en return false mocht dat niet zo zijn. In de query gebruik ik dan geen quotes om de variable (het is immers numeriek) en laat het escapen achterwege aangezien de waarde al is geverifieerd.
  zondag 8 januari 2012 @ 23:25:18 #245
75592 GlowMouse
l'état, c'est moi
pi_106585348
quote:
0s.gif Op zondag 8 januari 2012 23:23 schreef dirkjo het volgende:

[..]

Maar wat gebeurd er dan als meerdere nummers hetzelfde aantal likes hebben? Dan pakt die de eerste de beste rij die het gegeven aantal likes heeft.
Heb je die vraag eens bij je eigen query gesteld?

Ik definieer de plek als 1+[het aantal songs met meer likes]. Het aantal songs met meer likes kun je met één query tellen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106585503
quote:
0s.gif Op zondag 8 januari 2012 23:25 schreef GlowMouse het volgende:

[..]

Heb je die vraag eens bij je eigen query gesteld?

Ik definieer de plek als 1+[het aantal songs met meer likes]. Het aantal songs met meer likes kun je met één query tellen.
Jazeker, maar als ik mijn manier gebruik garandeer ik wel dat de plek die de pagina over het nummer aangeeft gelijk is aan de plek die staat in de pagina waar de complete lijst van alle nummers staat.
  zondag 8 januari 2012 @ 23:29:03 #247
75592 GlowMouse
l'état, c'est moi
pi_106585580
quote:
0s.gif Op zondag 8 januari 2012 23:27 schreef dirkjo het volgende:

[..]

Jazeker, maar als ik mijn manier gebruik garandeer ik wel dat de plek die de pagina over het nummer aangeeft gelijk is aan de plek die staat in de pagina waar de complete lijst van alle nummers staat.
Dat is niet waar, het resultaat berust op toeval.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106585645
En dat zou het niet doen in jouw geval, of valt zoiets niet te vermijden?
  zondag 8 januari 2012 @ 23:30:38 #249
75592 GlowMouse
l'état, c'est moi
pi_106585678
quote:
5s.gif Op zondag 8 januari 2012 23:30 schreef dirkjo het volgende:
En dat zou het niet doen in jouw geval, of valt zoiets niet te vermijden?
quote:
0s.gif Op zondag 8 januari 2012 23:25 schreef GlowMouse het volgende:

[..]

Ik definieer de plek als 1+[het aantal songs met meer likes]. Het aantal songs met meer likes kun je met één query tellen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106585919
quote:
0s.gif Op zondag 8 januari 2012 23:30 schreef GlowMouse het volgende:

[..]

[..]

Oke, dus (even snel) zou jouw query er ongeveer zo uitzien:
1
2
3
<?php
 mysql_query
("SELECT COUNT(*) AS rank FROM songs WHERE likes > "$likes" ");
?>

Correct my if I'm wrong
  zondag 8 januari 2012 @ 23:37:21 #251
75592 GlowMouse
l'état, c'est moi
pi_106586019
Precies zo. Alleen dan nog eentje bij het resultaat optellen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106586176
quote:
14s.gif Op zondag 8 januari 2012 23:37 schreef GlowMouse het volgende:
Precies zo. Alleen dan nog eentje bij het resultaat optellen.
Oke, bedankt! :)
je houdt het trouwens wel lang vol om iemand niet het antwoord te geven, maar zelf te laten maken :P
pi_106586476
quote:
0s.gif Op zondag 8 januari 2012 23:40 schreef dirkjo het volgende:

[..]

Oke, bedankt! :)
je houdt het trouwens wel lang vol om iemand niet het antwoord te geven, maar zelf te laten maken :P
Veel doeltreffender. :)
pi_106586574
quote:
14s.gif Op zondag 8 januari 2012 23:37 schreef GlowMouse het volgende:
Precies zo. Alleen dan nog eentje bij het resultaat optellen.
Er is nu alleen wel één probleempje. Ik vertelde net dat die oude query mij dezelfde waarde geeft als wanneer ik de hele lijst zou echo'en. Deze doet dat niet :P

Je zei dat dat bij die oude query toevallig zo gebeurde, maar na een flink aantal refreshes blijft die lijst precies hetzelfde.

//edit

Deze manier geeft zelfs bij meerdere nummers dezelfde rank, terwijl dit toch echt iets is wat niet mag gebeuren :o
pi_106586584
quote:
0s.gif Op zondag 8 januari 2012 23:46 schreef Diabox het volgende:

[..]

Veel doeltreffender. :)
Compleet waar :)
  zondag 8 januari 2012 @ 23:50:59 #256
75592 GlowMouse
l'état, c'est moi
pi_106586661
quote:
0s.gif Op zondag 8 januari 2012 23:48 schreef dirkjo het volgende:

[..]

Er is nu alleen wel één probleempje. Ik vertelde net dat die oude query mij dezelfde waarde geeft als wanneer ik de hele lijst zou echo'en. Deze doet dat niet :P
Dan moet je die andere lijst aanpassen zodat hij zo wordt:
1. song12 met een socore van 34
2. song3 met een socore van 24
2. song6 met een socore van 24
4. song3 met een socore van 3
quote:
Je zei dat dat bij die oude query toevallig zo gebeurde, maar na een flink aantal refreshes blijft die lijst precies hetzelfde.
En toch heb je geen garantie dat het niet verandert.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106586844
Check je ook even m'n edit. Heb ik iets fout gedaan dat dit gebeurd?
pi_106586854
quote:
0s.gif Op zondag 8 januari 2012 23:48 schreef dirkjo het volgende:

[..]

Er is nu alleen wel één probleempje. Ik vertelde net dat die oude query mij dezelfde waarde geeft als wanneer ik de hele lijst zou echo'en. Deze doet dat niet :P

Je zei dat dat bij die oude query toevallig zo gebeurde, maar na een flink aantal refreshes blijft die lijst precies hetzelfde.

//edit

Deze manier geeft zelfs bij meerdere nummers dezelfde rank, terwijl dit toch echt iets is wat niet mag gebeuren :o
Je doet het nu door te selecteren op het aantal likes?

1
2
3
4
5
6
7
8
SET @rownum := 0;

SELECT * 
FROM (
SELECT @rownum := @rownum+1 AS song_rank, likes
FROM songs ORDER BY likes DESC
) AS song_score
WHERE songID = " . $songID

Bovenstaande zou je de rank terug moeten geven adhv het songid.

[ Bericht 6% gewijzigd door The_Terminator op 09-01-2012 00:06:46 ]
pi_106586939
quote:
0s.gif Op zondag 8 januari 2012 23:55 schreef The_Terminator het volgende:

[..]

Je doet het nu door te selecteren op het aantal likes?
[ code verwijderd ]

Bovenstaande zou je de rank terug moeten geven adhv het songid.
Ik gebruik nu de manier van GM, een paar posts terug.
  maandag 9 januari 2012 @ 00:02:57 #260
75592 GlowMouse
l'état, c'est moi
pi_106587129
Wijzig
SELECT songID FROM songs ORDER BY `likes` DESC
in
SELECT songID FROM songs ORDER BY `likes` DESC,songID DESC

En
SELECT COUNT(*) AS rank FROM songs WHERE likes > ...
in
SELECT COUNT(*) AS rank FROM songs WHERE likes > ... OR (likes = .... ANDS songID > ....)
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106587303
quote:
0s.gif Op zondag 8 januari 2012 23:57 schreef dirkjo het volgende:

[..]

Ik gebruik nu de manier van GM, een paar posts terug.
Ah, ok. Ik heb mijn code zojuist wat aangepast en getest. Het functioneerd goed en geeft de positie terug adhv een gegeven songID, zoals je dat in je eerste versie had.
pi_106587321
quote:
0s.gif Op maandag 9 januari 2012 00:02 schreef GlowMouse het volgende:
Wijzig
SELECT songID FROM songs ORDER BY `likes` DESC
in
SELECT songID FROM songs ORDER BY `likes` DESC,songID DESC

En
SELECT COUNT(*) AS rank FROM songs WHERE likes > ...
in
SELECT COUNT(*) AS rank FROM songs WHERE likes > ... OR (likes = .... ANDS songID > ....)
Held :)
pi_106587341
quote:
0s.gif Op maandag 9 januari 2012 00:07 schreef The_Terminator het volgende:

[..]

Ah, ok. Ik heb mijn code zojuist wat aangepast en getest. Het functioneerd goed en geeft de positie terug adhv een gegeven songID, zoals je dat in je eerste versie had.
Dit gebruik ik nu en werkt:
1
2
3
<?php
$rankQuery 
mysql_query("SELECT COUNT(*) AS rank FROM songs WHERE `likes` > "$likes" OR (`likes` = '"$likes ."' AND `songID` > "$songID .")");
?>

Still, thanks. :)
  maandag 9 januari 2012 @ 00:09:59 #264
75592 GlowMouse
l'état, c'est moi
pi_106587377
Die van T_T werkt ook, maar die van mij is uiteraard sneller.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106587491
quote:
7s.gif Op maandag 9 januari 2012 00:09 schreef GlowMouse het volgende:
maar die van mij is uiteraard sneller.
True.
pi_106587551
Nooit verwacht dat m'n zondag avond nog leerzaam zou zijn :7
pi_106617797
Als we dan toch over COUNT hebben. Is het verstandiger om gebruik te maken van de COUNT functie om te kijken of een user bestaat, dan gebruik je maken van mysql_num_rows? Ik gebruik nu die laatste, maar dit lijkt me (nu ik een beetje door heb hoe COUNT werkt) vrij omslachtig.
  maandag 9 januari 2012 @ 21:13:20 #268
75592 GlowMouse
l'état, c'est moi
pi_106617981
Dat is het inderdaad. Als jij een query zonder COUNT(*) doet dan gaan alle rijen van MySQL naar PHP zodat PHP ze kan tellen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_106618465
quote:
0s.gif Op maandag 9 januari 2012 21:13 schreef GlowMouse het volgende:
Dat is het inderdaad. Als jij een query zonder COUNT(*) doet dan gaan alle rijen van MySQL naar PHP zodat PHP ze kan tellen.
Oke, duidelijk! :)
  FOK!-Schrikkelbaas dinsdag 10 januari 2012 @ 08:53:37 #270
1972 Swetsenegger
Egocentrische Narcist
pi_106631735
Ik heb de volgende query

1
2
3
4
5
SELECT Naam, Challenge, Voortgang, (
Voortgang / ( Challenge /100 )
) AS Percentage
FROM hardlopen
ORDER BY Naam

Maar Percentage is dan tot 8 decimalen achter de komma. Kan ik dit eenvoudig beperken tot 2?
  dinsdag 10 januari 2012 @ 08:55:53 #272
12221 Tijn
Powered by MS Paint
pi_106631779
Beetje detail is niet verkeerd toch, Swets? B-)
  FOK!-Schrikkelbaas dinsdag 10 januari 2012 @ 08:56:19 #273
1972 Swetsenegger
Egocentrische Narcist
pi_106631789
quote:
Ik had de 2e parameter bij ROUND gemist in mijn zoektocht, bedankt!
pi_106632090
Dit had je anders ook kunnen gebruiken: http://nl.php.net/number_format
  dinsdag 10 januari 2012 @ 09:31:05 #275
4159 GI
Nee ik heet geen JOE
pi_106632385
Of http://php.net/manual/en/function.round.php in php als je de db server niet je rekenwerk wil laten doen :)
  FOK!-Schrikkelbaas dinsdag 10 januari 2012 @ 09:39:18 #276
1972 Swetsenegger
Egocentrische Narcist
pi_106632552
Ja de op functie ken ik, maar in dit geval was het makkelijker in mysql.
pi_106633921
quote:
0s.gif Op dinsdag 10 januari 2012 09:39 schreef Swetsenegger het volgende:
Ja de op functie ken ik, maar in dit geval was het makkelijker in mysql.
Ik zou dit soort taken niet bij de database server neerleggen. Queries moet je zo licht mogelijk schrijven, zodat je de database server zo min mogelijk lastig valt.
  FOK!-Schrikkelbaas dinsdag 10 januari 2012 @ 10:43:11 #278
1972 Swetsenegger
Egocentrische Narcist
pi_106633967
quote:
0s.gif Op dinsdag 10 januari 2012 10:41 schreef Pakspul het volgende:

[..]

Ik zou dit soort taken niet bij de database server neerleggen. Queries moet je zo licht mogelijk schrijven, zodat je de database server zo min mogelijk lastig valt.
Geloof me, m'n server krijgt het er echt niet warm van :)
pi_106634118
quote:
1s.gif Op dinsdag 10 januari 2012 10:43 schreef Swetsenegger het volgende:

[..]

Geloof me, m'n server krijgt het er echt niet warm van :)
Dat begrijp ik, maar het gaat er om dat je begrijpt waarom je die dingen daar niet moet neerleggen :P Je kunt het je beter direct goed aanleren :)
  dinsdag 10 januari 2012 @ 10:50:23 #280
12221 Tijn
Powered by MS Paint
pi_106634134
quote:
0s.gif Op dinsdag 10 januari 2012 10:49 schreef Pakspul het volgende:

[..]

Dat begrijp ik, maar het gaat er om dat je begrijpt waarom je die dingen daar niet moet neerleggen :P Je kunt het je beter direct goed aanleren :)
Het is niet fout om je query zo te formuleren dat de data die eruit komt zo nuttig mogelijk is in je applicatie.
  dinsdag 10 januari 2012 @ 10:51:05 #281
4159 GI
Nee ik heet geen JOE
pi_106634147
quote:
0s.gif Op dinsdag 10 januari 2012 10:49 schreef Pakspul het volgende:

[..]

Dat begrijp ik, maar het gaat er om dat je begrijpt waarom je die dingen daar niet moet neerleggen :P Je kunt het je beter direct goed aanleren :)
Swets is al een paar stapjes verder dan aanleren ;)

En ik ben het met Tijn eens. Het is niet per definitie fout om de DB server te laten rekenen.
pi_106634218
quote:
2s.gif Op dinsdag 10 januari 2012 10:50 schreef Tijn het volgende:

[..]

Het is niet fout om je query zo te formuleren dat de data die eruit komt zo nuttig mogelijk is in je applicatie.
Het is niet fout, maar kwa belasting wil je het gewoon niet. Bij hobby projecten maakt het uiteraard niets uit waar je het doet en als die het makkelijkste voor je is dan moet je het vooral doen. Maar als je grote projecten draait dan kunnen dit wel winst punten zijn.

Zelfde als in hobby projecten kun je best: SELECT * doen, maar het is beter om alleen de velden op te halen die nodig zijn.
pi_106634231
quote:
3s.gif Op dinsdag 10 januari 2012 10:51 schreef GI het volgende:

[..]

Swets is al een paar stapjes verder dan aanleren ;)

En ik ben het met Tijn eens. Het is niet per definitie fout om de DB server te laten rekenen.
Dat dus.
pi_106634268
quote:
0s.gif Op dinsdag 10 januari 2012 10:54 schreef Pakspul het volgende:

[..]

Het is niet fout, maar kwa belasting wil je het gewoon niet. Bij hobby projecten maakt het uiteraard niets uit waar je het doet en als die het makkelijkste voor je is dan moet je het vooral doen. Maar als je grote projecten draait dan kunnen dit wel winst punten zijn.

Zelfde als in hobby projecten kun je best: SELECT * doen, maar het is beter om alleen de velden op te halen die nodig zijn.
Definieer 'belasting'.
  dinsdag 10 januari 2012 @ 10:57:03 #285
75592 GlowMouse
l'état, c'est moi
pi_106634272
quote:
0s.gif Op dinsdag 10 januari 2012 10:41 schreef Pakspul het volgende:

[..]

Ik zou dit soort taken niet bij de database server neerleggen. Queries moet je zo licht mogelijk schrijven, zodat je de database server zo min mogelijk lastig valt.
Als je round door je db-clients wilt laten uitrekenen, ben je verkeerd bezig.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 10 januari 2012 @ 11:00:48 #286
12221 Tijn
Powered by MS Paint
pi_106634359
quote:
0s.gif Op dinsdag 10 januari 2012 10:54 schreef Pakspul het volgende:

[..]

Het is niet fout, maar kwa belasting wil je het gewoon niet.
Ik denk eigenlijk dat de database een stuk efficiënter z'n eigen data kan manipuleren dan de applicatie die deze data verder verwerkt.
pi_106634391
quote:
2s.gif Op dinsdag 10 januari 2012 11:00 schreef Tijn het volgende:

[..]

Ik denk eigenlijk dat de database een stuk efficiënter z'n eigen data kan manipuleren dan de applicatie die deze data verder verwerkt.
quote:
0s.gif Op dinsdag 10 januari 2012 10:57 schreef GlowMouse het volgende:

[..]

Als je round door je db-clients wilt laten uitrekenen, ben je verkeerd bezig.
Indeed.
  dinsdag 10 januari 2012 @ 11:03:25 #288
4159 GI
Nee ik heet geen JOE
pi_106634430
quote:
2s.gif Op dinsdag 10 januari 2012 11:00 schreef Tijn het volgende:

[..]

Ik denk eigenlijk dat de database een stuk efficiënter z'n eigen data kan manipuleren dan de applicatie die deze data verder verwerkt.
Ja, dat is wel waar. Maar het hangt compleet van de situatie af of je dergelijke dingen laat berekenen door de DBengine of door de applicatie zelf. Als het puur en alleen om weergave gaat zou ik zeggen dat het door de applicatie gedaan moet worden. Als het om tussentabellen gaat of iets in die geest dan kan ik me nog voorstellen dat je het de DBengine laat doen.
  dinsdag 10 januari 2012 @ 11:04:02 #289
4159 GI
Nee ik heet geen JOE
pi_106634449
quote:
0s.gif Op dinsdag 10 januari 2012 11:02 schreef Scorpie het volgende:

[..]

[..]

Indeed.
Das knap, het eens zijn met twee quotes die elkaar tegenspreken.
  dinsdag 10 januari 2012 @ 11:04:42 #290
12221 Tijn
Powered by MS Paint
pi_106634468
quote:
3s.gif Op dinsdag 10 januari 2012 11:04 schreef GI het volgende:

[..]

Das knap, het eens zijn met twee quotes die elkaar tegenspreken.
Nee?
pi_106634528
quote:
0s.gif Op dinsdag 10 januari 2012 10:56 schreef Scorpie het volgende:

[..]

Definieer 'belasting'.
Het is rekenkracht wat je kwijt bent, bij 10 request per minuut maakt het geen fuck uit, maar als je request omhoog gaan dan wil je niet dat je DB server met dit soort dingen bezig is.
quote:
0s.gif Op dinsdag 10 januari 2012 10:57 schreef GlowMouse het volgende:

[..]

Als je round door je db-clients wilt laten uitrekenen, ben je verkeerd bezig.
Dat probeer ik hier te zeggen.
pi_106634551
quote:
5s.gif Op dinsdag 10 januari 2012 11:04 schreef Tijn het volgende:

[..]

Nee?
ja, want deze eerste zegt. Leg het neer bij de DB en de andere zegt doe het niet want dan ben je verkeerd bezig.
  dinsdag 10 januari 2012 @ 11:08:13 #293
12221 Tijn
Powered by MS Paint
pi_106634580
quote:
0s.gif Op dinsdag 10 januari 2012 11:07 schreef Pakspul het volgende:

[..]

ja, want deze eerste zegt. Leg het neer bij de DB en de andere zegt doe het niet want dan ben je verkeerd bezig.
Je begrijpt het verschil tussen server en client?
  dinsdag 10 januari 2012 @ 11:10:09 #294
75592 GlowMouse
l'état, c'est moi
pi_106634639
quote:
2s.gif Op dinsdag 10 januari 2012 11:00 schreef Tijn het volgende:

[..]

Ik denk eigenlijk dat de database een stuk efficiënter z'n eigen data kan manipuleren dan de applicatie die deze data verder verwerkt.
Dat is niet altijd een criterium omdat je vaak eenvoudig servers waar de applicatie op draaien kunt bijplaatsen.
quote:
0s.gif Op dinsdag 10 januari 2012 11:06 schreef Pakspul het volgende:

[..]

Het is rekenkracht wat je kwijt bent, bij 10 request per minuut maakt het geen fuck uit, maar als je request omhoog gaan dan wil je niet dat je DB server met dit soort dingen bezig is.
Geef me maar root-toegang op een server die 50.000 queries per seconde afhandelt, zal ik je 10 dingen aanwijzen die elk een miljoen keer meer opleveren.
quote:
Dat probeer ik hier te zeggen.
Niet waar, jij wilt het van je db-server naar je db-client verplaatsen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 10 januari 2012 @ 11:14:34 #295
4159 GI
Nee ik heet geen JOE
pi_106634769
Ah, dan las ik het verkeerd. Ik denk trouwens wel dat er geen gouden regel is voor deze problematiek.
  dinsdag 10 januari 2012 @ 11:15:49 #296
12221 Tijn
Powered by MS Paint
pi_106634811
quote:
3s.gif Op dinsdag 10 januari 2012 11:14 schreef GI het volgende:
Ah, dan las ik het verkeerd. Ik denk trouwens wel dat er geen gouden regel is voor deze problematiek.
Dat denk ik ook. Het is ook duidelijk dat je moet proberen een trage query te voorkomen natuurlijk. Maar dat doe je niet door de round-functie van je database te vermijden.
pi_106635092
quote:
10s.gif Op dinsdag 10 januari 2012 11:08 schreef Tijn het volgende:

[..]

Je begrijpt het verschil tussen server en client?
Ik weet niet wat jij bedoelt met DB-server en DB-client.

Maar ik heb even een test uitgevoerd. 100 x een query opgehaald waar 2x50 float in voorkomen. In de ene heb ik hem door PHP laten afronden en in de andere heb ik het door MySQL laten doen. En het verschil is dat PHP er 35% langer over doet wanneer deze zelf de getallen nog moet afronden.

Dan had Tijn het dus toch goed dat de DB-server zelf efficiënter zijn data kan manipuleren.

Nouja, daar zat ik er dus naast ik dacht altijd dat je zulke functie niet daar moest uitvoeren. Vraag ik mij nu alleen af of dit ook geldt voor berekeningen. :P Straks maar eens doen :+ eerst koffie!
pi_106635128
Kom op, een DB-server en een DB-client zijn twee hele normale, gangbare begrippen.
  dinsdag 10 januari 2012 @ 11:28:11 #299
12221 Tijn
Powered by MS Paint
pi_106635131
quote:
0s.gif Op dinsdag 10 januari 2012 11:26 schreef Pakspul het volgende:

[..]

Ik weet niet wat jij bedoelt met DB-server en DB-client.
De machine waar de database zelf op staat is de databaseserver. De machine waar de applicatie op draait die met de database verbinding heeft is de databaseclient.
pi_106635141
quote:
0s.gif Op dinsdag 10 januari 2012 11:26 schreef Pakspul het volgende:

[..]

Ik weet niet wat jij bedoelt met DB-server en DB-client.

Maar ik heb even een test uitgevoerd. 100 x een query opgehaald waar 2x50 float in voorkomen. In de ene heb ik hem door PHP laten afronden en in de andere heb ik het door MySQL laten doen. En het verschil is dat PHP er 35% langer over doet wanneer deze zelf de getallen nog moet afronden.

Dan had Tijn het dus toch goed dat de DB-server zelf efficiënter zijn data kan manipuleren.

Nouja, daar zat ik er dus naast ik dacht altijd dat je zulke functie niet daar moest uitvoeren. Vraag ik mij nu alleen af of dit ook geldt voor berekeningen. :P Straks maar eens doen :+ eerst koffie!
100x zegt niks. Doe hem eens 100.000 keer.
pi_106636378
quote:
0s.gif Op dinsdag 10 januari 2012 11:28 schreef Scorpie het volgende:

[..]

100x zegt niks. Doe hem eens 100.000 keer.
Bij 100.000 keer doet hij er 11% langer over in PHP dan wanneer je MySQL zelf de round functie laat uitvoeren.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')