FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - deel 90
Feyenoordlifevrijdag 15 april 2011 @ 00:27
php.jpg

cd niet bijgeleverd

Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt :)

Vorige delen:
Via de zoekfunctie

Zie ook:
PHP Dataverwerking
Officiële PHP website
PHP Documentatie
MySQL Reference Manual
Yet Another PHP Faq
PHP Cheat Sheet
PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

Tutorials:
W3Schools PHP
W3Schools SQL

Deze OP en instructies voor nieuw topic: http://wiki.fok.nl/index.php/OP/PHP

En ik sloot af met de volgende post:

--
Ik ben bezig met een voetbalpool scriptje, en ik loop eventjes vast op het volgende: De pagina haalt de wedstrijden van de ingevoerde speelronde uit de database, zet deze vervolgens in een tabel met daarin 2 extra velden de scores in te vullen. Dit gedeelte werkt. Hierna moeten de ingevulde scores opgeslagen worden in de database, en hier gaat het (gedeeltelijk) mis. Hij pakt namelijk alleen het laatste resultaat. Dit zal waarschijnlijk via een while loop moeten gebeuren, maar daar kom ik even niet aan uit.

De 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
31
32
33
34
35
<table>
   <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
   <?php
include("database.php");

    
$speelronde $_POST['speelronde'];
    
$sql = ("SELECT * FROM Wedstrijden WHERE WSpeelronde='".$speelronde."' ORDER BY WWedstrijdID");
    
$uitvoer mysql_query($sql) or die (mysql_error());
    while(
$result mysql_fetch_array($uitvoer)){
    
?>
    <tr>
    <td><?php print $result['WThuisploeg']; ?><input name="WThuisploeg" value="<?php print $result['WThuisploeg']; ?>"  size="1" type="hidden"/></td>
    <td>-</td>
    <td><?php print $result['WUitploeg']; ?><input name="WUitploeg" value="<?php print $result['WUitploeg']; ?>"  size="1" type="hidden"/></td>
    <td><input name="ScoreThuis" size="1"  /></td>
    <td>-</td>
    <td><input name="ScoreUit" size="1" /></td></tr>    
    <?php ?>
    <tr><td><input type="submit" value="Invoeren"  /></td></tr></form></table>
    
    
    <?php
    
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    
    
$WScoreThuis $_POST['ScoreThuis'];
    
$WScoreUit $_POST['ScoreUit'];
    
$WThuisploeg $_POST['WThuisploeg'];
    
$WUitploeg $_POST['WUitploeg'];
    

    
$sql1 = ("UPDATE Wedstrijden SET WScoreThuis='".$WScoreThuis."', WScoreUit='".$WScoreUit."' WHERE WThuisploeg='".$WThuisploeg."' AND WUitploeg='".$WUitploeg."' ");
    
$invoer mysql_query($sql1) or die (mysql_error());
    }

?>

Zou iemand mij hier even mee willen helpen?
Feyenoordlifevrijdag 15 april 2011 @ 00:30
Had de laatste post in deeltje 89, hier verder dus.
Teganvrijdag 15 april 2011 @ 00:37
Maak een array van alle ingevoerde waarden.

[ Bericht 55% gewijzigd door Tegan op 15-04-2011 00:49:39 ]
Feyenoordlifevrijdag 15 april 2011 @ 01:17
quote:
1s.gif Op vrijdag 15 april 2011 00:37 schreef Tegan het volgende:
Maak een array van alle ingevoerde waarden.
Lukt nog niet echt lekker. Komt waarschijnlijk omdat ik een pleurishekel heb aan array's en ik ze zo veel mogelijk vermijd :P Zou je mij hier misschien een beetje mee op weg kunnen helpen? Leer ik zelf ook weer van :)
Diaboxvrijdag 15 april 2011 @ 01:45
Je snapt dat je gelijk je php gedeelte van die while loopt stopt met ?> en dat dus inderdaad alleen het laatste resultaat wordt weergegeven? Of is dit niet het geval? Heb nog maar 'n week ervaring met PHP :')

Edit: Zoiets dus:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
while($result mysql_fetch_array($uitvoer)){
    echo 
"<tr>\n";
    echo 
"    <td>" $result['WThuisploeg'] . "<input name='WThuisploeg' value='" $result['WThuisploeg'] . "' size='1' type='hidden' /></td>\n";
    echo 
"    <td>-</td>\n";
    echo 
"    <td>" $result['WUitploeg'] . "><input name='WUitploeg' value='" $result['WUitploeg'"'  size='1' type='hidden' /></td>\n";
    echo 
"    <td><input name='ScoreThuis' size='1'  /></td>\n";
    echo 
"    <td>-</td>\n";
    echo 
"    <td><input name='ScoreUit' size='1' /></td>\n";
    echo 
"</tr>\n";    
}
?>
Edit2: Laat maar, while loop stopt volgens mij niet na ?> negeer m'n comment :')

[ Bericht 31% gewijzigd door Diabox op 15-04-2011 02:02:50 ]
Pakspulvrijdag 15 april 2011 @ 08:56
quote:
1s.gif Op vrijdag 15 april 2011 01:17 schreef Feyenoordlife het volgende:

[..]

Lukt nog niet echt lekker. Komt waarschijnlijk omdat ik een pleurishekel heb aan array's en ik ze zo veel mogelijk vermijd :P Zou je mij hier misschien een beetje mee op weg kunnen helpen? Leer ik zelf ook weer van :)
Waarom heb je een hekel aan arrays? Geef eens wat voorbeelden waar je ze vermijd dan probeer ik arrays wel aan te prijzen. Of anders wat zou je willen zien.
lifeblindvrijdag 15 april 2011 @ 09:11
Je hebt lijstjes met data, en je probeert arrays zoveel mogelijk te vermijden?

Volgens mij snap je het concept van arrays nog niet helemaal.
Feyenoordlifevrijdag 15 april 2011 @ 09:58
quote:
1s.gif Op vrijdag 15 april 2011 08:56 schreef Pakspul het volgende:

[..]

Waarom heb je een hekel aan arrays? Geef eens wat voorbeelden waar je ze vermijd dan probeer ik arrays wel aan te prijzen. Of anders wat zou je willen zien.
Omdat ik van arrays weinig snap, het lukt maar niet. Verder vind ik PHP best lekker lopen. Ik ben ook begonnen met dit projectje om er nog wat mee te oefenen.
GIvrijdag 15 april 2011 @ 09:59
Als je dit wil doen zal je toch echt met arrays moeten gaan werken.
Pakspulvrijdag 15 april 2011 @ 10:02
quote:
3s.gif Op vrijdag 15 april 2011 09:59 schreef GI het volgende:
Als je dit wil doen zal je toch echt met arrays moeten gaan werken.
Je kunt een einde komen met lelijke code :P
lifeblindvrijdag 15 april 2011 @ 10:04
quote:
1s.gif Op vrijdag 15 april 2011 09:58 schreef Feyenoordlife het volgende:

[..]

Omdat ik van arrays weinig snap, het lukt maar niet. Verder vind ik PHP best lekker lopen. Ik ben ook begonnen met dit projectje om er nog wat mee te oefenen.
Zoek dan eens wat artikelen over Arrays op zou ik zeggen. Toen ik heel wat jaren geleden begon met programmeren snapte ik het ook niet zo heel erg goed, en toen ben ik gewoon wat rond gaan zoeken (toendertijd nog in de bibliotheek, want ik had toen nog geen internet :D ), opeens viel het kwartje en sinds ik arrays en de juiste toepassing er van ontdekt heb, kan ik niet meer zonder.
Intrepidityvrijdag 15 april 2011 @ 10:06
quote:
1s.gif Op vrijdag 15 april 2011 10:02 schreef Pakspul het volgende:

[..]

Je kunt een einde komen met lelijke code :P
Nee, met arrays werken levert mooie code op :') $haystack/$needle, $needle/$haystack, etcetera.
Ik mag hopen dat er binnenkort in SPL nog een OO array-alternatief komt, afgezien van specifiekere implementaties als de stack en de doubly linked list.
De array API voldoet anno 2011 niet meer imho :N

Hoe cool zou het zijn als je gewoon dingen als
1
2
3
4
5
6
7
8
<?php
$array 
= new SplArray();
$array->add($bar)->add($foo);
if(
$array->search($bar))
{
  
var_dump($array->pop());
}
?>
en dergelijke kon doen _O_
Pakspulvrijdag 15 april 2011 @ 10:17
quote:
1s.gif Op vrijdag 15 april 2011 10:06 schreef Intrepidity het volgende:

[..]

Nee, met arrays werken levert mooie code op :') $haystack/$needle, $needle/$haystack, etcetera.
Ik mag hopen dat er binnenkort in SPL nog een OO array-alternatief komt, afgezien van specifiekere implementaties als de stack en de doubly linked list.
De array API voldoet anno 2011 niet meer imho :N

Hoe cool zou het zijn als je gewoon dingen als

[ code verwijderd ]

en dergelijke kon doen _O_
Ben het met je eens dat arrays vele malen beter werken dan geen gebruik van arrays. Maar ik heb programmeurs oplossingen zien gebruiken waarvan ik dacht. Kerel alsjeblieft ga programmeren leren of ga wat anders doen. Bijvoorbeeld:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$var1 
'x';
$var2 'y';
$var3 'z';

for ( 
$i 1$i <= 3$i++ )
{
    
$varname 'var' $i;

    echo $
$varname;
}
?>

Zo kun je dus arrays vermijden, maar gvd zeg wat een gedrocht aan code krijg je dan.
lifeblindvrijdag 15 april 2011 @ 10:19
Terwijl in principe je hiermee gewoon het concept van arrays aan het nabouwen bent :')
Pakspulvrijdag 15 april 2011 @ 10:21
quote:
1s.gif Op vrijdag 15 april 2011 10:19 schreef lifeblind het volgende:
Terwijl in principe je hiermee gewoon het concept van arrays aan het nabouwen bent :')
Juist, daarom zei ik met lelijke code kun je een heel eind komen :P
Intrepidityvrijdag 15 april 2011 @ 10:35
Nogmaals; mensen hier die al wat dingen met symfony 2 geprobeerd hebben? Zit vast met inloggen met de entity userprovider. Meldt steeds dat user/wachtwoord onjuist is, terwijl er niet eens een doctrine query wordt uitgevoerd. Inloggen met de in-memory userprovider werkt wel prima.
GIvrijdag 15 april 2011 @ 10:43
Weet iemand hier toevallig hoe ik op een windows omgeving zonder veel moeite de tijd van mijn SQL server gelijk kan krijgen aan de systeemtijd ?
Intrepidityvrijdag 15 april 2011 @ 10:47
Nevermind, gelukt :D Had de salt verkeerd aan het wachtwoord toegevoegd :')
GlowMousevrijdag 15 april 2011 @ 10:59
quote:
3s.gif Op vrijdag 15 april 2011 10:43 schreef GI het volgende:
Weet iemand hier toevallig hoe ik op een windows omgeving zonder veel moeite de tijd van mijn SQL server gelijk kan krijgen aan de systeemtijd ?
Is de tijdzone onjuist? Volgens mij hoort hij synchroon te lopen, anders zou je na verloop van tijd altijd op problemen stuiten.
Feyenoordlifevrijdag 15 april 2011 @ 11:43
quote:
1s.gif Op vrijdag 15 april 2011 10:04 schreef lifeblind het volgende:

[..]

Zoek dan eens wat artikelen over Arrays op zou ik zeggen. Toen ik heel wat jaren geleden begon met programmeren snapte ik het ook niet zo heel erg goed, en toen ben ik gewoon wat rond gaan zoeken (toendertijd nog in de bibliotheek, want ik had toen nog geen internet :D ), opeens viel het kwartje en sinds ik arrays en de juiste toepassing er van ontdekt heb, kan ik niet meer zonder.
Heb ik gedaan, en ik krijg het maar niet voor elkaar om het goed te begrijpen :? Zou iemand misschien een voorbeeldje kunnen posten hoe het in mijn geval zou moeten? Dan kan ik van daaruit verder proberen te leren.
Pakspulvrijdag 15 april 2011 @ 11:47
Doe dit eens
1<input name="WThuisploeg[]"
Let op de blokhaken in de name!

En dan:
1
2
3
4
5
6
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    
print_r($_POST['WThuisploeg']);
}
?>

Nu heb je tabel gegevens als goed is in een array zitten.
GIvrijdag 15 april 2011 @ 12:03
quote:
1s.gif Op vrijdag 15 april 2011 10:59 schreef GlowMouse het volgende:

[..]

Is de tijdzone onjuist? Volgens mij hoort hij synchroon te lopen, anders zou je na verloop van tijd altijd op problemen stuiten.
Alle timezone tabellen staan leeg in de mysql database, dus ik gok niet dat het fout staat.
En hij loopt steevast een uur achter. Zelfs na een webserver en mysql herstart.
GlowMousevrijdag 15 april 2011 @ 12:05
Tijdzoneprobleem dus, als het precies een uur is. Kijk eens naar http://dev.mysql.com/doc/refman/5.5/en/time-zone-support.html
Feyenoordlifevrijdag 15 april 2011 @ 12:15
quote:
1s.gif Op vrijdag 15 april 2011 11:47 schreef Pakspul het volgende:
Doe dit eens
[ code verwijderd ]

Let op de blokhaken in de name!

En dan:
[ code verwijderd ]

Nu heb je tabel gegevens als goed is in een array zitten.
Dat gedeelte had ik dus goed gedaan zie ik net :) Nu alleen de array nog in de database plaatsen.
Teganvrijdag 15 april 2011 @ 12:20
Ik moest ooit gedwongen arrays gebruiken in een Java-opdracht voor school, en sindsdien heb ik wel ontdekt dat ze best wel heel handig zijn, eerder zou ik het idd ook zo gaan doen :P :+ .
quote:
1s.gif Op vrijdag 15 april 2011 10:17 schreef Pakspul het volgende:

[..]

Ben het met je eens dat arrays vele malen beter werken dan geen gebruik van arrays. Maar ik heb programmeurs oplossingen zien gebruiken waarvan ik dacht. Kerel alsjeblieft ga programmeren leren of ga wat anders doen. Bijvoorbeeld:
[ code verwijderd ]

Zo kun je dus arrays vermijden, maar gvd zeg wat een gedrocht aan code krijg je dan.
Pakspulvrijdag 15 april 2011 @ 12:52
quote:
1s.gif Op vrijdag 15 april 2011 12:15 schreef Feyenoordlife het volgende:

[..]

Dat gedeelte had ik dus goed gedaan zie ik net :) Nu alleen de array nog in de database plaatsen.
Array kun je dan weer doorlopen via loopje
1
2
3
4
5
6
<?php
for ( $i 0$i count($array); $i++ )
{
   echo 
$array[$i]; // om de waarde in de array weer te geven
}
?>
MrNilesvrijdag 15 april 2011 @ 12:52
Op een website heb ik 1 pagina waarbij de tekst vaak veranderd moet worden.
De rest van de pagina's is statisch, puur informatie en veranderd dus nauwlijks.

De ene pagina zou ik graag door andere mensen willen laten aanpassen dmv een heeeel simpel cms.
Hoeft geen moeilijke opmaak in te zitten, geen vette,cursief,unline tekst oid.

Wat is de eenvoudigste manier om de tekst van deze pagina te wijzigen voor een gebruiker?
Intrepidityvrijdag 15 april 2011 @ 13:29
quote:
11s.gif Op vrijdag 15 april 2011 13:06 schreef Chandler het volgende:
tvp! :)
Er is de laatste tijd zo'n heel mooi volgknopje onderaan het topic ^O^
Diaboxvrijdag 15 april 2011 @ 13:48
quote:
1s.gif Op vrijdag 15 april 2011 12:52 schreef MrNiles het volgende:
Op een website heb ik 1 pagina waarbij de tekst vaak veranderd moet worden.
De rest van de pagina's is statisch, puur informatie en veranderd dus nauwlijks.

De ene pagina zou ik graag door andere mensen willen laten aanpassen dmv een heeeel simpel cms.
Hoeft geen moeilijke opmaak in te zitten, geen vette,cursief,unline tekst oid.

Wat is de eenvoudigste manier om de tekst van deze pagina te wijzigen voor een gebruiker?
Heel simpel zou ik gewoon 'n input formuliertje maken die de input verstuurt naar de juiste pagina, en dan de gegevens ophalen met $_POST en dan dus opslaan in de DB. (of gewoon direct opslaan in de DB natuurlijk)
MrNilesvrijdag 15 april 2011 @ 13:58
quote:
Heel simpel zou ik gewoon 'n input formuliertje maken die de input verstuurt naar de juiste pagina, en dan de gegevens ophalen met $_POST en dan dus opslaan in de DB. (of gewoon direct opslaan in de DB natuurlijk)
Het is natuurlijk een kwestie van uitproberen
maar
worden enters wel onthouden in de DB of krijg ik dan alle tekst achterelkaardoor
Diaboxvrijdag 15 april 2011 @ 13:59
Gewoon <br /> gebruiken, als ie het later ophaalt en wordt geparsed naar html worden het enters, lijkt mij dan he.
Intrepidityvrijdag 15 april 2011 @ 14:00
quote:
1s.gif Op vrijdag 15 april 2011 13:58 schreef MrNiles het volgende:

[..]

Het is natuurlijk een kwestie van uitproberen
maar
worden enters wel onthouden in de DB of krijg ik dan alle tekst achterelkaardoor
Enters worden gewoon opgeslagen als CR+LF. Als je bij het afdrukken een nl2br() over de html heen haalt worden die weer netjes getoond :)
Diaboxvrijdag 15 april 2011 @ 14:03
quote:
1s.gif Op vrijdag 15 april 2011 14:00 schreef Intrepidity het volgende:

[..]

Enters worden gewoon opgeslagen als CR+LF. Als je bij het afdrukken een nl2br() over de html heen haalt worden die weer netjes getoond :)
Wat beter ja.
mafkees01vrijdag 15 april 2011 @ 15:15
quote:
Ik ben bezig met een voetbalpool scriptje, en ik loop eventjes vast op het volgende: De pagina haalt de wedstrijden van de ingevoerde speelronde uit de database, zet deze vervolgens in een tabel met daarin 2 extra velden de scores in te vullen. Dit gedeelte werkt. Hierna moeten de ingevulde scores opgeslagen worden in de database, en hier gaat het (gedeeltelijk) mis. Hij pakt namelijk alleen het laatste resultaat. Dit zal waarschijnlijk via een while loop moeten gebeuren, maar daar kom ik even niet aan uit.

De code:

[ code verwijderd ]

Zou iemand mij hier even mee willen helpen?
Zeer slechte code imo. Ten eerste is via $_POST[self] XSS mogelijk, en dit is eveneens nodig bij je form input. Je valideert helemaal niets. Gebruik hiervoor strip_tags() of htmlentities() om XSS te voorkomen. Daarnaast ben je ook 100% gevoelig voor SQL injection en kan ik je database zo leeg maken als ik dat wil. Gebruik mysql_real_escape_string() voor je $_POST variabelen of gebruik prepared statements icm mysqli.
quote:
1s.gif Op vrijdag 15 april 2011 12:52 schreef Pakspul het volgende:

[..]

Array kun je dan weer doorlopen via loopje
[ code verwijderd ]

Dit kan, maar er is niet voor niets de functie foreach() ;)
GlowMousevrijdag 15 april 2011 @ 15:49
quote:
2s.gif Op vrijdag 15 april 2011 15:15 schreef mafkees01 het volgende:

[..]

en kan ik je database zo leeg maken als ik dat wil
niet :6
Teganvrijdag 15 april 2011 @ 16:24
exploits_of_a_mom.png
GlowMousevrijdag 15 april 2011 @ 16:26
http://nl3.php.net/mysql_query
quote:
mysql_query() sends a unique query (multiple queries are not supported)
Feyenoordlifevrijdag 15 april 2011 @ 16:47
quote:
2s.gif Op vrijdag 15 april 2011 15:15 schreef mafkees01 het volgende:

[..]

Zeer slechte code imo. Ten eerste is via $_POST[self] XSS mogelijk, en dit is eveneens nodig bij je form input. Je valideert helemaal niets. Gebruik hiervoor strip_tags() of htmlentities() om XSS te voorkomen. Daarnaast ben je ook 100% gevoelig voor SQL injection en kan ik je database zo leeg maken als ik dat wil. Gebruik mysql_real_escape_string() voor je $_POST variabelen of gebruik prepared statements icm mysqli.

[..]

Dit kan, maar er is niet voor niets de functie foreach() ;)
Ja dit weet ik. Beveiliging heb ik nog niet aan gewerkt (en is in dit gedeelte van het systeem ook niet heel belangrijk omdat dit een beveiligde omgeving wordt waar alleen ik zelf in kan komen), maar dat komt er nog wel in ;) Het is voor mij nu even hoofdzaak om het werkend te krijgen, daarna ga ik kijken naar de beveiliging van alles.
mafkees01vrijdag 15 april 2011 @ 22:55
quote:
1s.gif Op vrijdag 15 april 2011 15:49 schreef GlowMouse het volgende:

[..]

niet :6
Alle gegevens ophalen dan..
quote:
1s.gif Op vrijdag 15 april 2011 16:47 schreef Feyenoordlife het volgende:

[..]

Ja dit weet ik. Beveiliging heb ik nog niet aan gewerkt (en is in dit gedeelte van het systeem ook niet heel belangrijk omdat dit een beveiligde omgeving wordt waar alleen ik zelf in kan komen), maar dat komt er nog wel in ;) Het is voor mij nu even hoofdzaak om het werkend te krijgen, daarna ga ik kijken naar de beveiliging van alles.
Ik vind dat altijd zo'n onzin hè.. "in dit gedeelte van het systeem ook niet heel belangrijk". Ik snap dat je t nog moet leren, maar een goed begin is het halve werk.. De code is enorm slecht en beter lees je je dan eerst in voordat je begint met schrijven..

Ten eerste zou ik PHP_SELF weghalen en daar gewoon je pad neerzetten naar je PHP bestand.
Wanneer je een bestand include, kijk dan eerst of het bestaat met file_exists() Dit voorkomt errors voor users indien er iets fout gaat. Ook hoef je bij ntegers geen ' ' omheen te zetten, dit is alleen nodig bij strings.
Zoals gezegd, gebruik strip_tags() op je post waarden want dit gaat geheid fout..
Zoals eerder gezegd, gebruik mysqli icm prepared statements. Je bent dan direct van je sql injection af en de kans dat het fout gaat is dan flink verkleint.. Het kost je vrijwel geen enkele moeite meer..
Succes
Sitethiefmaandag 18 april 2011 @ 10:28
Als je bij het leren van PHP jezelf al aanleert om veilig te programmeren, is de kans ook veel kleiner dat je het later steeds weer fout doet :).
Teganmaandag 18 april 2011 @ 10:29
Alleen jammer dat die twee dingen vaak losstaan van elkaar in de literatuur.
Diaboxmaandag 18 april 2011 @ 17:02
- Gepost in javascript voor dummies topic. -

[ Bericht 48% gewijzigd door Diabox op 18-04-2011 17:21:34 ]
lifeblindmaandag 18 april 2011 @ 17:14
quote:
0s.gif Op maandag 18 april 2011 17:02 schreef Diabox het volgende:
Ik heb de volgende regel code:

[ code verwijderd ]

Echter nu is het zo dat de hele td klikbaar is en dus verwijdert, i.p.v. alleen het plaatje. Dit is het geval in firefox en chrome... In Internet explorer werkt het wel alleen door op het daadwerkelijke plaatje te klikken (en zo wil ik het ook).

Hoe fix ik dit?
1) Wat doet die dynContent functie?
2) dit is javascript, geen php, dus nogal off-topic
Diaboxmaandag 18 april 2011 @ 17:21
Wist niet dat er 'n javascript voor dummies topic is, foutje.
GlowMousemaandag 18 april 2011 @ 17:24
Ik post toch ook geen vragen over sinterklaas hier als ik geen sinterklaastopic zie?
Diaboxdinsdag 19 april 2011 @ 15:08
Ik haal m'n $_GET's door de volgende functie alvorens ik er iets mee doe;
1
2
3
4
5
6
7
8
<?php
function make_safe($value){
    
$value htmlspecialchars(trim($value));
    if (
get_magic_quotes_gpc()) 
        
$value stripslashes($value);
    return 
$value;
}
?>

En nu vroeg ik mij af of dit veilig genoeg is, of dat deze functie nog veiliger kan.
GlowMousedinsdag 19 april 2011 @ 15:25
Het ligt er helemaal aan wat je met de variabele wilt doen.
Diaboxdinsdag 19 april 2011 @ 15:32
Ik set er sessions mee en/of ik gebruik ze om mee te rekenen, en/of ik print ze, het wordt in ieder geval niet gebruikt voor SQL queries. Het bevat overigens geen gevoelige informatie, geen gebruikersnamen/wachtwoorden/etc.
GlowMousedinsdag 19 april 2011 @ 16:09
Rekenen doe je met doubles of integers, en die hoeven hier niet uit te komen.
Chandlerdinsdag 19 april 2011 @ 20:26
TVP,

Gelijk simpel vraagje; PNG compressie middels ImageMagick, welke filter moet ik kiezen voor compressie?

http://eclecticdjs.com/mi(...)8/setcompression.php
http://eclecticdjs.com/mi(...)mpressionquality.php

php.net brengt mij geen duidelijkheid! :)
GlowMousedinsdag 19 april 2011 @ 23:35
png is geen lossy compressie; ik zou kijken naar http://nl.php.net/manual/en/function.imagick-setimageformat.php
-Datdus-woensdag 20 april 2011 @ 10:08
quote:
0s.gif Op vrijdag 15 april 2011 16:24 schreef Tegan het volgende:
[ afbeelding ]
Ik ben zo'n ontzettende nerd dat ik hier om moest lachen. :')
-Datdus-woensdag 20 april 2011 @ 10:09
Heeft hier iemand wel eens met oauth gewerkt?
stefan1218woensdag 20 april 2011 @ 15:12
niet mee gewerkt maar wel een handige manual gevonden
http://nl3.php.net/manual/en/book.oauth.php
ziet er wel handig uit.
Feyenoordlifewoensdag 20 april 2011 @ 16:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
foreach ($_POST['WThuisploeg'] as $key=>$WThuisploeg) {
            }
                foreach (
$_POST['WUitploeg'] as $key=>$WUitploeg) { 
                }
                        foreach (
$_POST['ScoreThuis'] as $key=>$ScoreThuis) { 
                    }
                        foreach (
$_POST['ScoreUit'] as $key=>$ScoreUit) { 
                        
                        }
                    
    
$sql1 = ("UPDATE Wedstrijden SET WScoreThuis='".$ScoreThuis."', WScoreUit='".$ScoreUit."' WHERE WThuisploeg='".$WThuisploeg."' AND WUitploeg='".$WUitploeg."' ");
    
$invoer mysql_query($sql1) or die (mysql_error());
?>

Waarom wordt nu alleen de laatste rij in mijn database geüpdate? Als ik de array uitlees klopt alles wel gewoon.
Intrepiditywoensdag 20 april 2011 @ 16:46
quote:
0s.gif Op woensdag 20 april 2011 16:44 schreef Feyenoordlife het volgende:

[ code verwijderd ]

Waarom wordt nu alleen de laatste rij in mijn database geüpdate? Als ik de array uitlees klopt alles wel gewoon.
Omdat je foreach leeg is en je query dus in de foreach moet. Nu loopt hij door de array heen, doet niks, en gebruikt na de hele loop de laatste waarden uit de array voor een enkele update.
Overigens is dit ook behoorlijk inefficient, 4 for-loops in elkaar is altijd een slecht idee. Dat moet te optimaliseren zijn ;)

Edit: never mind, er zitten niet eens 4 for-loops in elkaar, je hebt 4 lege for-loops ná elkaar. Je inspringing is een beetje brak.
Luchtkokerwoensdag 20 april 2011 @ 16:49
quote:
0s.gif Op woensdag 20 april 2011 16:44 schreef Feyenoordlife het volgende:

[ code verwijderd ]

Waarom wordt nu alleen de laatste rij in mijn database geüpdate? Als ik de array uitlees klopt alles wel gewoon.
Wat is er met die rare indenting van je sluitende brackets? Op dit moment sluiten je foreaches voor ze uberhaupt iets hebben gedaan. Ik snap niet helemaal wat je bedoeling is. ;(

-edit ah ik snap het al. Je probeert je POST vars door te loopen in die foreaches te initialiseren in vars, en dan die query elke keer uit te voeren? Dan moet je inderdaad zoals de poster boven mij zegt je query in de for-loop zetten. Op dit moment loopt hij door alles, en zodra hij dus de loops uit komt staan $WThuisploeg, $WUitploeg etc allemaal op hun laatste waarden geintializeerd (vlak voordat ze de loop uit gingen dus).

Als je het voor elke combo wilt moet je ze niet sequentieel plaatsen, maar genest.

-edit2- Sowieso, zijn die $_POST vars arrays?
Feyenoordlifewoensdag 20 april 2011 @ 16:55
quote:
0s.gif Op woensdag 20 april 2011 16:49 schreef Luchtkoker het volgende:

[..]

Wat is er met die rare indenting van je sluitende brackets? Op dit moment sluiten je foreaches voor ze uberhaupt iets hebben gedaan. Ik snap niet helemaal wat je bedoeling is. ;(

-edit ah ik snap het al. Je probeert je POST vars door te loopen in die foreaches te initialiseren in vars, en dan die query elke keer uit te voeren? Dan moet je inderdaad zoals de poster boven mij zegt je query in de for-loop zetten. Op dit moment loopt hij door alles, en zodra hij dus de loops uit komt staan $WThuisploeg, $WUitploeg etc allemaal op hun laatste waarden geintializeerd (vlak voordat ze de loop uit gingen dus).

Als je het voor elke combo wilt moet je ze niet sequentieel plaatsen, maar genest.

-edit2- Sowieso, zijn die $_POST vars arrays?
De $_POST vars zijn inderdaad arrays. En de inspringing zal ik even opnieuw doen, wordt het iets overzichtelijker.

Wat ik op dit moment gedaan heb is de sluit-accolades onder de query gezet, en dit levert als resultaat op dat de laatst ingevulde uitslag in elke rij komt te staan.
Intrepiditywoensdag 20 april 2011 @ 16:57
quote:
0s.gif Op woensdag 20 april 2011 16:55 schreef Feyenoordlife het volgende:

[..]

De $_POST vars zijn inderdaad arrays. En de inspringing zal ik even opnieuw doen, wordt het iets overzichtelijker.

Wat ik op dit moment gedaan heb is de sluit-accolades onder de query gezet, en dit levert als resultaat op dat de laatst ingevulde uitslag in elke rij komt te staan.
Zolang je geen associaties hebt in je array tussen welke scores bij welke ploegen horen houd je dat probleem.
lifeblindwoensdag 20 april 2011 @ 17:05
volgens mij kom je al een heel stuk verder als je dit probeert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
foreach ($_POST['WThuisploeg'] as $key=>$WThuisploeg) {
                foreach ($_POST['WUitploeg'] as $key=>$WUitploeg) { 
                        foreach ($_POST['ScoreThuis'] as $key=>$ScoreThuis) { 
                             foreach ($_POST['ScoreUit'] as $key=>$ScoreUit) { 
                     
                  
    $sql1 = ("UPDATE Wedstrijden SET WScoreThuis='".$ScoreThuis."', WScoreUit='".$ScoreUit."' WHERE WThuisploeg='".$WThuisploeg."' AND WUitploeg='".$WUitploeg."' ");
    $invoer = mysql_query($sql1) or die (mysql_error());
                            }
                        }
                }
}
?>
GlowMousewoensdag 20 april 2011 @ 17:31
En dan nog iets leuks met sql injection.
Feyenoordlifewoensdag 20 april 2011 @ 18:01
quote:
0s.gif Op woensdag 20 april 2011 17:05 schreef lifeblind het volgende:
volgens mij kom je al een heel stuk verder als je dit probeert:

[ code verwijderd ]

Dat gedeelte had ik ondertussen ja. Nu moet ik er dan volgens mij nog een associatieve array van maken.
Chandlerwoensdag 20 april 2011 @ 18:55
quote:
0s.gif Op dinsdag 19 april 2011 23:35 schreef GlowMouse het volgende:
png is geen lossy compressie; ik zou kijken naar http://nl.php.net/manual/en/function.imagick-setimageformat.php
Helaas, ik moet de plaatjes behouden als PNG! maar hoopte dat er een oplossing was om er toch een beetje compressie overheen te gooien, zoals photoshop en andere paketten ook doen!
GlowMousewoensdag 20 april 2011 @ 19:08
http://en.wikipedia.org/w(...)ics#Optimizing_tools
Daar staan wat truukjes om een png kleiner te maken.
MrNileswoensdag 20 april 2011 @ 21:55
hoe kan ik bij een bijv een agenda of gastenboek de regels om en om een bepaalde kleur geven.
Zodat duidelijker het verschil tussen regels ontstaat.

Beetje lastige uitgeleg...en ik kan snel ff geen voorbeeld vinden
maar ik hoop dat iemand snapt wat ik bedoel
Lightwoensdag 20 april 2011 @ 22:01
Geef ze in PHP om en om een class mee, en style die vervolgens in css met verschillende (achtergrond)kleuren.
mafkees01woensdag 20 april 2011 @ 22:38
quote:
0s.gif Op woensdag 20 april 2011 22:01 schreef Light het volgende:
Geef ze in PHP om en om een class mee, en style die vervolgens in css met verschillende (achtergrond)kleuren.
Eensch, maak 2 classes aan in CSS en geef ze beiden een andere achtergrondkleur. Weet niet waar je mee werkt, maar ik zou in je loop een counter doen die gewoon elke keer optelt. Maak een variabele $i = 0; en na elke loop doe je $i++; Vervolgens kijk je in de regel of het getal even is of oneven (% modulo operator) en aan de hand daarvan geef je de juiste class mee aan je div/tabel/whatever...
Lightwoensdag 20 april 2011 @ 22:46
quote:
2s.gif Op woensdag 20 april 2011 22:38 schreef mafkees01 het volgende:

[..]

Eensch, maak 2 classes aan in CSS en geef ze beiden een andere achtergrondkleur. Weet niet waar je mee werkt, maar ik zou in je loop een counter doen die gewoon elke keer optelt. Maak een variabele $i = 0; en na elke loop doe je $i++; Vervolgens kijk je in de regel of het getal even is of oneven (% modulo operator) en aan de hand daarvan geef je de juiste class mee aan je div/tabel/whatever...
Het is trouwens ook volledig in css uit te werken, bedenk ik me. Dan heb je in php helemaal niets nodig met extra classes. Alleen jammer dat de css-uitwerking niet in alle browsers (lees: IE) werkt.

Voorbeeld:
1
2
3
4
5
6
tr:nth-child(2n+1) {
  background-color: blue;
}
tr:nth-child(2n) {
  background-color: red;
}
In plaats van 2n+1 mag je ook odd schrijven, en in plaats van 2n mag je ook even schrijven. Maar da's meer iets voor in het css-topic.
mafkees01woensdag 20 april 2011 @ 22:54
Hmm oke, dat wist ik niet.
Ik elk geval zou ik het in PHP oplossen, dan ben je niet afhankelijk van de browser en oudere versies en in PHP is het ook zo gefixt :)
Luchtkokerwoensdag 20 april 2011 @ 23:51
quote:
0s.gif Op woensdag 20 april 2011 22:46 schreef Light het volgende:

[..]

Het is trouwens ook volledig in css uit te werken, bedenk ik me. Dan heb je in php helemaal niets nodig met extra classes. Alleen jammer dat de css-uitwerking niet in alle browsers (lees: IE) werkt.

Voorbeeld:

[ code verwijderd ]

In plaats van 2n+1 mag je ook odd schrijven, en in plaats van 2n mag je ook even schrijven. Maar da's meer iets voor in het css-topic.
Is dat CSS3 ofzo? Ik ken het namelijk helemaal niet (niet dat ik zó'n CSS expert ben :D)
Diaboxdonderdag 21 april 2011 @ 00:04
quote:
One saving grace here is that if you are using jQuery, which supports all CSS selector including :nth-child, the selector will work, even in Internet Explorer.
GlowMousedonderdag 21 april 2011 @ 00:14
Ja, achteraf met JS wat classes toevoegen. Zullen die oude browsers blij van worden. Ga nou geen oplossing aandragen voor een probleem dat er niet is.
Lightdonderdag 21 april 2011 @ 08:15
quote:
0s.gif Op woensdag 20 april 2011 23:51 schreef Luchtkoker het volgende:

[..]

Is dat CSS3 ofzo? Ik ken het namelijk helemaal niet (niet dat ik zó'n CSS expert ben :D)
Dat is CSS3, ja. Leuk speelgoed ook :)
Intrepiditydonderdag 21 april 2011 @ 08:18
quote:
0s.gif Op donderdag 21 april 2011 00:14 schreef GlowMouse het volgende:
Ja, achteraf met JS wat classes toevoegen. Zullen die oude browsers blij van worden. Ga nou geen oplossing aandragen voor een probleem dat er niet is.
Graceful degradation. Styles moet je toewijzen met CSS, niet met PHP. Werkt het niet, dan maar met een javascript-achtige fallback. Sowieso voegen dat soort operaties nou niet bepaald extreem veel overhead toe, zeker niet als je jQuery uberhaupt al actief hebt.
Zeker op drukke websites is het niet verstandig dat soort duidelijke client-side operaties aan de server over te laten.
mstxdonderdag 21 april 2011 @ 08:59
Ik zou alsnog voor de PHP oplossing gaan ((on)even regels een andere class geven). Werkt in alle browsers en je hebt geen javascript nodig. Qua PHP performance maakt het ook geen reet uit, tenzij je 1 miljoen regels hebt maar dan is javascript nog veel trager.
Pakspuldonderdag 21 april 2011 @ 09:24
quote:
0s.gif Op donderdag 21 april 2011 08:59 schreef mstx het volgende:
Ik zou alsnog voor de PHP oplossing gaan ((on)even regels een andere class geven). Werkt in alle browsers en je hebt geen javascript nodig. Qua PHP performance maakt het ook geen reet uit, tenzij je 1 miljoen regels hebt maar dan is javascript nog veel trager.
idd, aangezien het maar één ifstatement is valt het echt reuze mee.

1
2
3
<?php
$className 
= ( (($i 2) == 0) === true ) ? 'classX' 'classY';
?>

En that's it :P
lifeblinddonderdag 21 april 2011 @ 09:28
quote:
0s.gif Op donderdag 21 april 2011 08:18 schreef Intrepidity het volgende:

[..]

Graceful degradation. Styles moet je toewijzen met CSS, niet met PHP. Werkt het niet, dan maar met een javascript-achtige fallback. Sowieso voegen dat soort operaties nou niet bepaald extreem veel overhead toe, zeker niet als je jQuery uberhaupt al actief hebt.
Zeker op drukke websites is het niet verstandig dat soort duidelijke client-side operaties aan de server over te laten.
En op een site/pagina die zonder javascript moet werken waar je wel die stijlen wilt hebben? Nooit er van uit gaan dat iedereen javascript aan heeft staan. Sowieso dit soort dingen d.m.v. javascript toevoegen is een beetje overkill.

Nog een tipje m.b.t. dit, als je een template-engine zoals smarty gebruikt, kun je dit min of meer automatisch laten doen. Als je dan je data in je template zet, kun je gewoon aangeven welke class die om de x-aantal iterations moet doen, werkt veel simpeler. Op deze manier hou je ook logica van je code (data ophalen, er iets leuks mee doen etc.) gescheiden van je weergave (want dat doe je allemaal in je template).
mafkees01donderdag 21 april 2011 @ 12:17
quote:
0s.gif Op donderdag 21 april 2011 09:24 schreef Pakspul het volgende:

[..]

idd, aangezien het maar één ifstatement is valt het echt reuze mee.
[ code verwijderd ]

En that's it :P
1
2
3
<?php
$className 
$i === 'classX' 'classY';
?>
;) nog korter...
Intrepiditydonderdag 21 april 2011 @ 12:33
quote:
0s.gif Op donderdag 21 april 2011 09:28 schreef lifeblind het volgende:

[..]

En op een site/pagina die zonder javascript moet werken waar je wel die stijlen wilt hebben? Nooit er van uit gaan dat iedereen javascript aan heeft staan. Sowieso dit soort dingen d.m.v. javascript toevoegen is een beetje overkill.

Nog een tipje m.b.t. dit, als je een template-engine zoals smarty gebruikt, kun je dit min of meer automatisch laten doen. Als je dan je data in je template zet, kun je gewoon aangeven welke class die om de x-aantal iterations moet doen, werkt veel simpeler. Op deze manier hou je ook logica van je code (data ophalen, er iets leuks mee doen etc.) gescheiden van je weergave (want dat doe je allemaal in je template).
Ik ben van mening dat dit soort dingen een toevoeging zijn en dat graceful degradation hier dus op zijn plaats is. Mensen die JS uit hebben staan zijn er nauwelijks (en moeten tevens dood, want paranoide), en die zien dan geen zebra-striping in een tabel, big deal.
Gewoon nooit dat soort weergavezaken serverside laten afhandelen. Werkt leuk en snel, maar als je een paar miljoen hits per dag te verwerken krijgt en je hebt overal dat soort truucjes in je code zitten kunnen al die cycles al snel een hele server schelen. Niet dat ik verwacht dat je je daar direct mee bezig houdt, maar verkeerde dingen aanleren is nooit een goed plan.
GlowMousedonderdag 21 april 2011 @ 12:35
quote:
2s.gif Op donderdag 21 april 2011 12:17 schreef mafkees01 het volgende:

[..]
[ code verwijderd ]

;) nog korter...
1
2
3
<?php
$className 
= ($i 2) ? 'classX' 'classY';
?>
;) nog korter...
mstxdonderdag 21 april 2011 @ 12:39
quote:
0s.gif Op donderdag 21 april 2011 12:35 schreef GlowMouse het volgende:

[..]
[ code verwijderd ]

;) nog korter...
Moet je alleen X en Y omdraaien. O-)
lifeblinddonderdag 21 april 2011 @ 12:41
quote:
0s.gif Op donderdag 21 april 2011 12:33 schreef Intrepidity het volgende:

[..]

Ik ben van mening dat dit soort dingen een toevoeging zijn en dat graceful degradation hier dus op zijn plaats is. Mensen die JS uit hebben staan zijn er nauwelijks (en moeten tevens dood, want paranoide), en die zien dan geen zebra-striping in een tabel, big deal.
Gewoon nooit dat soort weergavezaken serverside laten afhandelen. Werkt leuk en snel, maar als je een paar miljoen hits per dag te verwerken krijgt en je hebt overal dat soort truucjes in je code zitten kunnen al die cycles al snel een hele server schelen. Niet dat ik verwacht dat je je daar direct mee bezig houdt, maar verkeerde dingen aanleren is nooit een goed plan.
En dingen als drempelsvrij en dergelijke zeggen je niets? Sowieso, als je miljoenen hits per dag te verwerken krijgt moet je meer aan caching enzo denken, als je dan iedere keer de pagina's serverside opnieuw gaat opbouwen doe je sowieso al iets niet goed.
Intrepiditydonderdag 21 april 2011 @ 12:47
quote:
0s.gif Op donderdag 21 april 2011 12:41 schreef lifeblind het volgende:

[..]

En dingen als drempelsvrij en dergelijke zeggen je niets? Sowieso, als je miljoenen hits per dag te verwerken krijgt moet je meer aan caching enzo denken, als je dan iedere keer de pagina's serverside opnieuw gaat opbouwen doe je sowieso al iets niet goed.
Zebrastriping op een braillemachine, goed idee! Ik snap je punt, maar ik zit in de B2B-hoek, en daar is dat eigenlijk geen prioriteit, maar vooruit.
Tuurlijk doe je aan caching, maar bij een site die inherent dynamisch is ben je toch continue je pagina's aan het verversen. Niet iedere hit, maar bij een website als facebook (ik noem maar een dwarsstraat) is het cachen van pagina's over het algemeen een vrij zinloze exercitie. Hooguit blokken.
Maar kom op, we hebben het hier over het kleuren van een paar rijen, is dat werkelijk iets waar je serverside technologie wilt inzetten? CSS-selectoren gebruiken, en als dat niet ondersteund wordt een regeltje javascript en klaar is kees. Het is niet alsof onder IE7 die hele website ineens onbruikbaar wordt van een regel javascript.
mafkees01donderdag 21 april 2011 @ 12:47
quote:
0s.gif Op donderdag 21 april 2011 12:35 schreef GlowMouse het volgende:

[..]
[ code verwijderd ]

;) nog korter...
Zo zie je maar, waarom moeilijk doen in CSS als het zo prima kan :)
Intrepiditydonderdag 21 april 2011 @ 12:47
quote:
2s.gif Op donderdag 21 april 2011 12:47 schreef mafkees01 het volgende:

[..]

Zo zie je maar, waarom moeilijk doen in CSS als het zo prima kan :)
Omdat CSS er voor bedoeld is, dat is waarom.
Pakspuldonderdag 21 april 2011 @ 12:52
quote:
2s.gif Op donderdag 21 april 2011 12:17 schreef mafkees01 het volgende:

[..]
[ code verwijderd ]

;) nog korter...
Het oog wil ook wat :P
mafkees01donderdag 21 april 2011 @ 12:58
quote:
0s.gif Op donderdag 21 april 2011 12:47 schreef Intrepidity het volgende:

[..]

Omdat CSS er voor bedoeld is, dat is waarom.
Ach, als je er 10 regels code voor nodig hebt en 2 loops geef ik je gelijk, maar als de oplossing zo simpel is zie ik in waarom je het niet met PHP zou oplossen. Om nog maar niet te beginnen over het feit dat de CSS oplossing erg browser afhankelijk is...
Intrepiditydonderdag 21 april 2011 @ 13:02
quote:
2s.gif Op donderdag 21 april 2011 12:58 schreef mafkees01 het volgende:

[..]

Ach, als je er 10 regels code voor nodig hebt en 2 loops geef ik je gelijk, maar als de oplossing zo simpel is zie ik in waarom je het niet met PHP zou oplossen. Om nog maar niet te beginnen over het feit dat de CSS oplossing erg browser afhankelijk is...
Misschien ben ik wel een ongelofelijk zeikende purist hoor, maar PHP is afaik een serverside-taal en dus niet bedoeld voor dergelijke weergavezaken. Ik gebruik PHP om semantisch juiste HTML uit te poepen (en overal lukraak css-klassen aanhangen valt daar imo niet onder), en hoe dat geïnterpreteerd wordt en uiteindelijk weergegeven wordt is het pakkie aan voor de clientside-talen zoals css en javascript.
Het zou wat wezen dat je je PHP script moet aanpassen om je website er anders uit te laten zien, dat hoort imho niet.
Daarnaast heeft het voorbeeld hierboven met de zebra striping natuurlijk nauwelijks toegevoegde waarde. Jammer dat IE gebruikers die eventueel niet zien bij zowel gebrek aan CSS3 als JS-ondersteuning, maar dat is zo'n kleine doelgroep dat mij dat niet relevant lijkt (en dan nog is alles gewoon functioneel en missen ze niks).
MrNilesdonderdag 21 april 2011 @ 16:12
ik heb wel een discussie opgang gebracht met mijn vraagje..
bedankt voor alle respons op de zebra-striping...mooi woord voor galgje, ga ik onthouden
afrodinsdag 26 april 2011 @ 14:00
Weet iemand hoe ik dit moet gaan doen?

Ik heb tien input velden, zoals hieronder, deze moeten allemaal de database doorzoeken en aparte resultaten krijgen. Nu is het probleem dat alleen de eerste werkt (logisch).

1
2
3
<input type="text" name="Artikelnummer[1]">
<input type="text" name="Artikelnummer[2]">
<input type="text" name="Artikelnummer[3]">

PHP
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
<?php
$sql
="SELECT Artikelnummer, Naam, Prijs FROM Producten WHERE Artikelnummer = '".$q."'" ;
$result mysql_query($sql)or die(mysql_error());
$rows mysql_num_rows($result);

If(
$rows == 0) {
echo 
"<td class='productnaam'>";
echo 
"Nummer niet gevonden";
echo 
"</td>";

echo 
"<td class='prijs'>";
echo 
"";
echo 
"</td>";

else 
{
$fetch mysql_fetch_assoc($result);
echo 
"<td class='productnaam'>";
echo 
$fetch['Naam'];
echo 
"</td>";

echo 
"<td class='Prijs'>";
echo 
"&euro; ";
echo 
$fetch['Prijs'];
echo 
"</td>";
}
?>

Hoe zorg ik ervoor dat het voor elke input apart word "verwerkt".
mstxdinsdag 26 april 2011 @ 14:03
quote:
0s.gif Op dinsdag 26 april 2011 14:00 schreef afro het volgende:
Weet iemand hoe ik dit moet gaan doen?

Ik heb tien input velden, zoals hieronder, deze moeten allemaal de database doorzoeken en aparte resultaten krijgen. Nu is het probleem dat alleen de eerste werkt (logisch).
[ code verwijderd ]

PHP
[ code verwijderd ]

Hoe zorg ik ervoor dat het voor elke input apart word "verwerkt".
1
2
3
4
5
<?php
foreach ( $_POST['Artikelnummer'] as $k=>$v ) {
 
// hier de code die bij elk veld in de database gaat zoeken, $v is de waarde van het veld en $k de index
}
?>
afrodinsdag 26 april 2011 @ 15:01
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
34
35
36
<form method="post">
<textarea name="Artikelnummer[]"></textarea>
<textarea name="Artikelnummer[]"></textarea>
<input type="submit">
</form>
<?php
foreach($_POST['Artikelnummer'] as $Artikelnummer)
{
include 
'Jalalalala.php';
@
$sql="(SELECT Artikelnummer, Naam, Prijs FROM producten WHERE Artikelnummer =('$Artikelnummer'))";
$result mysql_query($sql)or die(mysql_error());
$rows mysql_num_rows($result);

If(
$rows == 0) {
echo 
"<td class='productnaam'>";
echo 
"Nummer niet gevonden";
echo 
"</td>";

echo 
"<td class='prijs'>";
echo 
"";
echo 
"</td>";

else 
{
$fetch mysql_fetch_assoc($result);
echo 
"<td class='productnaam'>";
echo 
$fetch['Naam'];
echo 
"</td>";

echo 
"<td class='Prijs'>";
echo 
"&euro; ";
echo 
$fetch['Prijs'];
echo 
"</td>";
}
     }
?>

Gelukt ^O^ Dank u!

[ Bericht 38% gewijzigd door afro op 26-04-2011 16:10:15 ]
mafkees01dinsdag 26 april 2011 @ 17:42
Ten eerste: zwaar onveilig de manier die je nu gebruikt..
Ten tweede: dit is nou precies een situatie waar prepared staments voor ontwikkeld is...
GlowMousedinsdag 26 april 2011 @ 17:45
Ten derde: wat een rare include
Ten vierde: een query binnen een loop is in dit geval erg onnodig
Luchtkokerdinsdag 26 april 2011 @ 20:45
Hey GlowMouse, wat me opvalt, je zit altijd zo te muggenziften (no offense) op kleine foutjes/dingen die niet zo net zijn, maar ik zie je nooit beginnen over dat mensen de oude MySQL libs gebruiken en geen MySQLi.

Dit terwijl het (erg) ontmoedigd wordt om nog deze oude MySQL libraries te gebruiken, en volgens mij deze zelfs niet meer compatible zullen zijn met PHP6. Zou je daar niet eens op gaan hameren?

gr gr
GlowMousedinsdag 26 april 2011 @ 21:07
Zolang je de extra features van MySQLi niet gebruikt, biedt MySQLi geen voordelen. Bovendien zie ik MySQL niet verdwijnen. Daarnaast moet je een database-class gebruiken, zodat mysql door mysqli vervangen nauwelijks tijd kost.
Luchtkokerdinsdag 26 april 2011 @ 21:18
Oracle ontmoedigt zelf de oude MySQL libs nog te gebruiken voor nieuwe projecten, en jij, als man van netheid en correctheid, zou daar toch waarde aan moeten hechten? :D
Luchtkokerdinsdag 26 april 2011 @ 21:26
En inderdaad, na nader onderzoek bleek dat er 'sprake' was van het verwijderen van de klassieke MySQL libs in PHP6, maar dat ze daarvan hebben afgezien i.v.m. teveel actieve gebruikers ervan.

Maar goed, als je hier kijkt, zie je halverwege zo'n Comparison, waar MySQLi/PDO wordt aangeraden voor nieuwe projecten, en de oude MySQL libs niet.
Sitethiefwoensdag 27 april 2011 @ 09:00
Ten vijfde: leer te indenten
mstxwoensdag 27 april 2011 @ 09:11
Ten zesde: onderdruk fouten niet met @ maar zorg dat je in eerste instantie geen fouten krijgt.
Intrepiditywoensdag 27 april 2011 @ 09:20
quote:
0s.gif Op dinsdag 26 april 2011 21:07 schreef GlowMouse het volgende:
Zolang je de extra features van MySQLi niet gebruikt, biedt MySQLi geen voordelen. Bovendien zie ik MySQL niet verdwijnen. Daarnaast moet je een database-class gebruiken, zodat mysql door mysqli vervangen nauwelijks tijd kost.
Database-class als in: PDO. Eigen databasewrappers schrijven is tegenwoordig ook nergens meer voor nodig, daar hebben we PDO voor. Jammer alleen dat het een hoop hosters onvoldoende drivers aanbieden.
Als iedereen gewoon fijntjes leert met prepared statements te werken heb je in 1 klap de helft minder problemen in het kader van SQL-injectie en dergelijke.

quote:
14s.gif Op woensdag 27 april 2011 09:11 schreef mstx het volgende:
Ten zesde: onderdruk fouten niet met @ maar zorg dat je in eerste instantie geen fouten krijgt.
Ben ik in principe met je eens, maar er zijn uitzonderingsgevallen, zoals verschillen tussen de Linux en Windows-API's die errors veroorzaken, en andere randgevallen waarbij onderdrukking in plaats van rete-ingewikkelde foutafhandeling beter is. Maar inderdaad, bij in 99% van de gevallen is dat niet nodig. Samenvatting: onderdrukking voor tekortkomingen van PHP zelf is prima, maar voor fouten aan je eigen kant niet.

[ Bericht 10% gewijzigd door Intrepidity op 27-04-2011 09:26:11 ]
afrowoensdag 27 april 2011 @ 10:22
quote:
0s.gif Op woensdag 27 april 2011 09:00 schreef Sitethief het volgende:
Ten vijfde: leer te indenten
Indenten?

quote:
14s.gif Op woensdag 27 april 2011 09:11 schreef mstx het volgende:
Ten zesde: onderdruk fouten niet met @ maar zorg dat je in eerste instantie geen fouten krijgt.
1
2
3
4
5
6
7
8
<?php
if (empty($_POST['Artikelnummer'])) {
    echo 
'';
}
else {    foreach(
$_POST['Artikelnummer'] as $Artikelnummer

{
?>

Zo goed opgelost?

1
2
3
<?php
$sql
=("SELECT Artikelnummer, Naam, Prijs FROM producten WHERE Artikelnummer =    '".mysql_real_escape_string($Artikelnummer)."'")
?>

En is dit veiliger?

[ Bericht 19% gewijzigd door afro op 27-04-2011 10:42:58 ]
mstxwoensdag 27 april 2011 @ 10:28
quote:
0s.gif Op woensdag 27 april 2011 10:22 schreef afro het volgende:

[..]

Indenten?

[..]
[ code verwijderd ]

Zo goed opgelost?
echo ''; is nogal nutteloos he. :P
1
2
3
4
5
6
<?php
if (!empty($_POST['Artikelnummer'])) {
  foreach(
$_POST['Artikelnummer'] as $Artikelnummer){
  }
}
?>
afrowoensdag 27 april 2011 @ 10:37
quote:
0s.gif Op woensdag 27 april 2011 10:28 schreef mstx het volgende:

[..]

echo ''; is nogal nutteloos he. :P
[ code verwijderd ]

Dat is waar :D,
Bedankt!
Intrepiditywoensdag 27 april 2011 @ 11:00
quote:
0s.gif Op woensdag 27 april 2011 10:22 schreef afro het volgende:

[..]

Indenten?

http://en.wikipedia.org/wiki/Indent_style
-Datdus-donderdag 28 april 2011 @ 11:33
Weet iemand hoe je multiple dimensional array output?
PiRANiAdonderdag 28 april 2011 @ 11:35
quote:
99s.gif Op donderdag 28 april 2011 11:33 schreef -Datdus- het volgende:
Weet iemand hoe je multiple dimensional array output?
Hoe wil je hem outputten? Alleen even bekijken? var_dump($aMultiDimensional);
Intrepiditydonderdag 28 april 2011 @ 11:46
Als je 'm daadwerkelijk netjes op het scherm wilt weergeven kun je denken aan geneste for-loops (alleen als je het aantal dimensies van tevoren weet), maar nog netter een recursieve methode (ook bruikbaar bij onbekend aantal dimensies)
-Datdus-donderdag 28 april 2011 @ 11:47
quote:
0s.gif Op donderdag 28 april 2011 11:35 schreef PiRANiA het volgende:

[..]

Hoe wil je hem outputten? Alleen even bekijken? var_dump($aMultiDimensional);
outputten! :)
mafkees01donderdag 28 april 2011 @ 23:34
quote:
16s.gif Op donderdag 28 april 2011 11:47 schreef -Datdus- het volgende:

[..]

outputten! :)
Met print / echo dus...
remi1986vrijdag 29 april 2011 @ 09:16
gebruik altijd print_r i.c.m. <pre> </pre>
GIvrijdag 29 april 2011 @ 10:40
quote:
0s.gif Op vrijdag 29 april 2011 09:16 schreef remi1986 het volgende:
gebruik altijd print_r i.c.m. <pre> </pre>
Same.
Pakspulvrijdag 29 april 2011 @ 10:48
quote:
0s.gif Op vrijdag 29 april 2011 09:16 schreef remi1986 het volgende:
gebruik altijd print_r i.c.m. <pre> </pre>
var_dump geeft mij ook iets teveel informatie terug, wel handig als het om type casting gaat dat je precies weet waar je mee werkt. Maar als je in een MVC framework werkt bouw je je models zo dat er een stuk type casting in zit, zodat je er vanuit kunt gaan dat de objecten waarmee je werkt ook daadwerkelijk het type hebben wat je verwacht i.p.v. dat losse type casting waar PHP mee werkt.
Intrepidityvrijdag 29 april 2011 @ 11:11
quote:
0s.gif Op vrijdag 29 april 2011 10:48 schreef Pakspul het volgende:

[..]

var_dump geeft mij ook iets teveel informatie terug, wel handig als het om type casting gaat dat je precies weet waar je mee werkt. Maar als je in een MVC framework werkt bouw je je models zo dat er een stuk type casting in zit, zodat je er vanuit kunt gaan dat de objecten waarmee je werkt ook daadwerkelijk het type hebben wat je verwacht i.p.v. dat losse type casting waar PHP mee werkt.
Gelukkig zit type hinting voor scalar variables in de pijplijn voor een volgende PHP-versie ^O^
Pakspulvrijdag 29 april 2011 @ 11:13
quote:
0s.gif Op vrijdag 29 april 2011 11:11 schreef Intrepidity het volgende:

[..]

Gelukkig zit type hinting voor scalar variables in de pijplijn voor een volgende PHP-versie ^O^
Bron? Want ik ben echt zwaar benieuwd naar de uitwerking. Liefste zie ik zoiets als c# want dat verschil niet erg veel van PHP.

Mooiste zal zijn als string,integer,float etc ook classes zijn of structures zodat deze ook in functies worden geaccepteerd.
Farenjivrijdag 29 april 2011 @ 11:32
quote:
0s.gif Op vrijdag 29 april 2011 11:13 schreef Pakspul het volgende:

Mooiste zal zijn als string,integer,float etc ook classes zijn of structures zodat deze ook in functies worden geaccepteerd.
Dat geeft vooral overhead, en zeker in een weakly typed taal als php heeft het andere nadelen. Zelfs in een taal als java zijn integers en floats etc gewoon primitives, die je eventueel wel in een Integer/Float etc class kan vatten. Maar dat riekt bij mij al snel naar overengineering. Niks mis met primitives. Misschien dat het voor strings handig kan zijn, bijv zoals het in javascript werkt bijvoorbeeld, waar een string een object en ook een pseudo array is. Voor de rest: keep it simple, stupid.
Intrepidityvrijdag 29 april 2011 @ 11:41
quote:
0s.gif Op vrijdag 29 april 2011 11:13 schreef Pakspul het volgende:

[..]

Bron? Want ik ben echt zwaar benieuwd naar de uitwerking. Liefste zie ik zoiets als c# want dat verschil niet erg veel van PHP.

Mooiste zal zijn als string,integer,float etc ook classes zijn of structures zodat deze ook in functies worden geaccepteerd.
Zie o.a. http://sebastian-bergmann(...)s-in-PHP-5.3.99.html
Kortom kun je geen variabelen zoals "int $foo" declareren, maar wel types verplicht stellen in methodes, zoals nu ook al mogelijk is met arrays en objecten.
Scalar types worden hopelijk nooit classes. Heeft nauwelijks toegevoegde waarde en voegt inderdaad alleen maar overhead toe.
Wat ik wel erg jammer vind is dat de checking niet automatisch gebeurt. Je kunt wel methoden als "public function foo(int $parameter)" declareren, maar vervolgens moet je zélf met de reflection-API checken of die variabele wel van dat type is.
Farenjivrijdag 29 april 2011 @ 11:53
Je moet PHP ook niet proberen te veranderen in wat het niet is en wat nooit de bedoeling was. Het is oorspronkelijk gemaakt als een zeer laagdrempelige, ubersimpele scriptingtaal. Als je er echt een stricte en volledige programmeertaal van wil maken inclusief type checking etc dan kun je beter met een schone lei beginnen, zodat je ook alle nare erfenissen uit de voorbije tijd kunt kwijtraken. Maar ja, dan kom je waarschijnlijk uit op iets zoals Python...
Intrepidityvrijdag 29 april 2011 @ 11:57
quote:
0s.gif Op vrijdag 29 april 2011 11:53 schreef Farenji het volgende:
Je moet PHP ook niet proberen te veranderen in wat het niet is en wat nooit de bedoeling was. Het is oorspronkelijk gemaakt als een zeer laagdrempelige, ubersimpele scriptingtaal. Als je er echt een stricte en volledige programmeertaal van wil maken inclusief type checking etc dan kun je beter met een schone lei beginnen, zodat je ook alle nare erfenissen uit de voorbije tijd kunt kwijtraken. Maar ja, dan kom je waarschijnlijk uit op iets zoals Python...
Een ubersimpele scriptingtaal is het al jaren niet meer. Loosely typed is het inderdaad, maar dat is een bewuste keuze geweest. Een volledige taal is het al een heel poosje. Wat voor dingen mis jij zoal in de API dan? Dat het niet geleverd wordt met een compleet framework zoals bijvoorbeeld ASP.net dat doet klopt, maar dat zie ik als een groot voordeel, omdat ik dan zelf een framework kan kiezen.
Ben het met je eens dat PHP out-of-the-box niet klaar is voor enterprise toepassingen, maar juist het feit dat je zelf je componenten, opcode caching, frameworks en dergelijke kunt kiezen is een groot voordeel, iets wat ik bij ASP.net en dergelijke talen grotendeels mis.
Dit uiteraard afgezien van het feit dat je het kúnt gebruiken als een houtje-touwtje scripttaaltje, maar de mensen die dat doen kan ik uberhaupt niet serieus nemen.
Ik zeg niet dat PHP een stricte taal moet worden, maar als je type hinting wilt introduceren, doe het dan wel volledig en niet halfgebakken. Of maak automatische checking ten minste een configuratieoptie.
mafkees01zondag 1 mei 2011 @ 21:53
Gebruikte eerst ook altijd print_r, maar tegenwoordig altijd var_dump omdat ik veel gebruik maak van arrays :) Vind die weergave altijd enorm duidelijk :)
themolezondag 1 mei 2011 @ 21:55
quote:
2s.gif Op zondag 1 mei 2011 21:53 schreef mafkees01 het volgende:
Gebruikte eerst ook altijd print_r, maar tegenwoordig altijd var_dump omdat ik veel gebruik maak van arrays :) Vind die weergave altijd enorm duidelijk :)
Idd qua weergave is var_dump wel de betere. :)
mafkees01zondag 1 mei 2011 @ 22:05
quote:
14s.gif Op zondag 1 mei 2011 21:55 schreef themole het volgende:

[..]

Idd qua weergave is var_dump wel de betere. :)
Ligt er dan ook wel enorm aan.. Als ik een dynamische SQL query bouw dan vind ik een var_dump erg onhanding omdat er quotes omheen staan, welke type casting en de length. Dan is de eventuele fout in je query moeilijk te vinden..
Dan gebruik ik gewoon print weer.. Ligt er net aan wat ik wil debuggen :)
Intrepiditymaandag 2 mei 2011 @ 09:31
Gebruik toch in godsnaam gewoon xdebug :') Af en toe wat gepruts om het te installeren maar ik beloof je dat je 10x sneller debugged dan met var_dump en dergelijke.
GImaandag 2 mei 2011 @ 09:40
quote:
0s.gif Op maandag 2 mei 2011 09:31 schreef Intrepidity het volgende:
Gebruik toch in godsnaam gewoon xdebug :') Af en toe wat gepruts om het te installeren maar ik beloof je dat je 10x sneller debugged dan met var_dump en dergelijke.
Waarom zou ik ? Ik heb een eigen db-debugger in mijn db-class ingebouwd en kom met print_r verder gewoon waar ik wil komen.
Intrepiditymaandag 2 mei 2011 @ 10:13
quote:
3s.gif Op maandag 2 mei 2011 09:40 schreef GI het volgende:

[..]

Waarom zou ik ? Ik heb een eigen db-debugger in mijn db-class ingebouwd en kom met print_r verder gewoon waar ik wil komen.
En als je niet weet op welke code je programma crasht? Kun je ook fijn je methodes in stappen met print_r en dergelijke? Tuurlijk heb je het niet persee nodig, maar het scheelt een hele hoop tijd.
Dan zouden we met z'n allen net zo goed in notepad assemblycode kunnen gaan zitten tikken, maar dat doen we ook niet.
Pakspulmaandag 2 mei 2011 @ 13:43
quote:
0s.gif Op maandag 2 mei 2011 09:31 schreef Intrepidity het volgende:
Gebruik toch in godsnaam gewoon xdebug :') Af en toe wat gepruts om het te installeren maar ik beloof je dat je 10x sneller debugged dan met var_dump en dergelijke.
wtf is xdebug? Ik heb mijn code zo gemaakt dat als er iets mis gaat dat ik een exception krijg en met de stacktrace kan ik dan zien waar het fout gaat. Persoonlijk vind ik debug programma's ook brak. Zend heeft er ook 1 maar kan daar echt niet mee overweg aangezien ik mijn variabelen best diep heb zitten en dan ben ik met een print_r velen malen sneller.
Intrepiditymaandag 2 mei 2011 @ 14:54
quote:
0s.gif Op maandag 2 mei 2011 13:43 schreef Pakspul het volgende:

[..]

wtf is xdebug? Ik heb mijn code zo gemaakt dat als er iets mis gaat dat ik een exception krijg en met de stacktrace kan ik dan zien waar het fout gaat. Persoonlijk vind ik debug programma's ook brak. Zend heeft er ook 1 maar kan daar echt niet mee overweg aangezien ik mijn variabelen best diep heb zitten en dan ben ik met een print_r velen malen sneller.
xdebug is een php-plugin die ook ondersteund wordt door de meeste IDE's waarbij je bij een exception of error meteen naar de betreffende regel springt in je IDE en waarna je alle variabelen en de loop van je programma kunt inspecteren. M.a.w. volledige debugging zoals je dat o.a. ook in visual studio .net hebt.
Keiichizondag 8 mei 2011 @ 13:59
Ik ben op zoek naar een makkelijk middel op MySQL tabellen om te zetten in PHP classes zodat ik hier vrij makkelijk CRUD operaties mee kan doen, zonder dat ik een mysql query hoef in te voeren.

Ik heb wel het eea gevonden dat het van PHP classes naar MySQL tabellen gaat (Vrijwel alle MVC frameworks).

Rede waarom ik dit wil is dat mijn database gewoon als uitgangspunt genomen moet worden, die heb ik immers al ontworpen met alle bijhorende relaties tussen tabellen. Naast parent-child relaties, heb ik ook een relatie die bedoelt is voor inheritance. (Ik heb eigenlijk ook geen MVC framework gezien die dit als zodanig ondersteund)

Wie weet een toolkit die kan doen wat ik wil?
Intrepidityzondag 8 mei 2011 @ 21:16
Doctrine2 kan proxyklassen genereren uit een bestaande database, maar ik vermoed dat dit enigszins overkill is voor je.
Keiichimaandag 9 mei 2011 @ 07:49
Ik zie niet zo snel waar de overkill zou zitten, ik heb vanavond iets om me even goed in te verdiepen ;)
dirkjodonderdag 12 mei 2011 @ 20:53
Ik heb een vraagje betreft het automatisch wissen van data uit m'n tabel.
Ik run een server waarbij ik graag wil dat account's na bijvoorbeeld 30 dagen inactiviteit verwijderd worden. Nu weet ik dat je met behulp van een cronjob iets kan uitvoeren op een bepaald moment, tenminste voor zover ik heb gelezen. Maar in hoeverre kun je doormiddel van het checken van een datum in de tabel kijken of die 30 dagen niet actief is geweest.

Op dit moment bevat m'n tabel al een kolom waar elke keer de datum word aangepast als die inlogt.

Iemand die me kan helpen? :@
GlowMousedonderdag 12 mei 2011 @ 20:54
Dat gaat met een WHERE in je query.
dirkjodonderdag 12 mei 2011 @ 21:19
quote:
0s.gif Op donderdag 12 mei 2011 20:54 schreef GlowMouse het volgende:
Dat gaat met een WHERE in je query.
Moet ik PHP dan bijvoorbeeld elke 24 uur de hele database checken en elk account met een datum van 30 dagen geleden laten verwijderen?

Dus ff letterlijk getypt: elke 24 > check DB > datum - 30 = DELETE

Ben nog geen prof in php/sql :)
GlowMousedonderdag 12 mei 2011 @ 21:49
Precies, om de zoveel tijd met PHP een delete-query draaien.
dirkjodonderdag 12 mei 2011 @ 22:17
quote:
0s.gif Op donderdag 12 mei 2011 21:49 schreef GlowMouse het volgende:
Precies, om de zoveel tijd met PHP een delete-query draaien.
Het is soms echt te makkelijk, thanks :)
Ga even uitzoeken hoe ik een datum kan checken en er dagen vanaf halen ;)
Lightdonderdag 12 mei 2011 @ 22:54
quote:
0s.gif Op donderdag 12 mei 2011 22:17 schreef dirkjo het volgende:

[..]

Het is soms echt te makkelijk, thanks :)
Ga even uitzoeken hoe ik een datum kan checken en er dagen vanaf halen ;)
Als je in de database datetime velden gebruikt, zou je eens kunnen kijken naar de mysql-functie datediff()
dirkjodonderdag 12 mei 2011 @ 23:11
quote:
0s.gif Op donderdag 12 mei 2011 22:54 schreef Light het volgende:

[..]

Als je in de database datetime velden gebruikt, zou je eens kunnen kijken naar de mysql-functie datediff()
Het zijn inderdaad datetime fields, zal eens even kijken. Thanks :)
dirkjodonderdag 12 mei 2011 @ 23:19
quote:
0s.gif Op donderdag 12 mei 2011 22:54 schreef Light het volgende:

[..]

Als je in de database datetime velden gebruikt, zou je eens kunnen kijken naar de mysql-functie datediff()
Even snel lopen kijken naar de datedriff() functie, maar als ik er zo naar kijk dan zou het ook moeten kunnen wanneer je gewoon gebruik maakt van de algemene varchar velden?
remi1986vrijdag 13 mei 2011 @ 09:40
Snel testje gedaan.

Als je dit doet

1SELECT `date_veld` FROM `tabel` WHERE DATEDIFF(`date_veld`, NOW()) < -30 

Krijg je data die ouder zijn dan 30 dagen. Wel verwarrend met < -30.

Dit kan je natuurlijk gebruiken met een DELETE WHERE query.
GlowMousevrijdag 13 mei 2011 @ 10:39
Als je varchar voor een datum gebruikt dan is het je eigen schuld.
Intrepidityvrijdag 13 mei 2011 @ 11:19
quote:
0s.gif Op vrijdag 13 mei 2011 10:39 schreef GlowMouse het volgende:
Als je varchar voor een datum gebruikt dan is het je eigen schuld.
Of van je voorganger waarmee je vanwege legacy-code maar moet zien te leven.
dirkjovrijdag 13 mei 2011 @ 16:09
quote:
0s.gif Op vrijdag 13 mei 2011 10:39 schreef GlowMouse het volgende:
Als je varchar voor een datum gebruikt dan is het je eigen schuld.
Doe ik niet, zijn gewoon datetime fields ;)
dirkjovrijdag 13 mei 2011 @ 16:10
quote:
0s.gif Op vrijdag 13 mei 2011 09:40 schreef remi1986 het volgende:
Snel testje gedaan.

Als je dit doet

[ code verwijderd ]

Krijg je data die ouder zijn dan 30 dagen. Wel verwarrend met < -30.

Dit kan je natuurlijk gebruiken met een DELETE WHERE query.
Dankje! Ga er vanavond/dit weekend eens even mee kloten :)
dirkjovrijdag 13 mei 2011 @ 22:07
Ik kom er niet uit, zal waarschijnlijk wel komen door m'n lage kennis van sql :@. Ik wou kijken wat het script van remi nou precies als result gaf dus flatste het volgende in elkaar:
1
2
3
4
5
<?php
    $result 
mysql_query("SELECT * FROM `ftpuser` WHERE DATEDIFF(`accessed`, NOW()) < -30");
    
$row mysql_fetch_array($result);
    echo (
$row['userid']);
?>

Dit geeft mij alleen het volgende als resultaat:
1 "gebruikersnaam"
(waarbij gebruikersnaam een waarde is die in 'userid' staat)

Wanneer ik dan bijvoorbeeld ga spelen met de waarde < -30 blijf ik constant dezelfde gebruikersnaam houden, terwijl ik zeer zeker weet dat er meerdere moeten verschijnen.

Iemand die mij uit de knoei kan helpen?

[ Bericht 2% gewijzigd door dirkjo op 13-05-2011 22:15:21 ]
Chandlervrijdag 13 mei 2011 @ 22:09
Kan iemand mij het volgende uitleggen, ik heb een tabel met 4 velden (expire_date [timestamp], user_id [int], action [varchar=50], value [text]) en wil deze tabel gebruiken om acties voor een bepaalde tijd in een database in te voeren. Echter werkt de volgende insert niet zoals verwacht

insert into `actions` (`expiredate`, `userID`, `action`, `value`)
VALUES (CUR_TIJD + $time,
$userID,
$action,
$value);

waar CUR_TIJD de huidige tijd (time()) + $time in seconden is. Wat doe ik fout?
Chandlervrijdag 13 mei 2011 @ 22:15
$dirkjo: gebruik eens print_r :P ipv vardump :P

en DATEDIFF(`accessed`, NOW()) < -30 lijkt me leuker om dit te hebben

`accessed` >= DATE_SUB(CURDATE(),INTERVAL 30 DAYS)

zo pak je alles wat binnen 30 dagen valt ;) en wil je anders om dan doe je < :P
GlowMousevrijdag 13 mei 2011 @ 22:25
quote:
0s.gif Op vrijdag 13 mei 2011 22:07 schreef dirkjo het volgende:
Wanneer ik dan bijvoorbeeld ga spelen met de waarde < -30 blijf ik constant dezelfde gebruikersnaam houden, terwijl ik zeer zeker weet dat er meerdere moeten verschijnen.
je echo't maar 1x, zie de voorbeelden op http://nl3.php.net/mysql_fetch_array
quote:
0s.gif Op vrijdag 13 mei 2011 22:09 schreef Chandler het volgende:
Kan iemand mij het volgende uitleggen, ik heb een tabel met 4 velden (expire_date [timestamp], user_id [int], action [varchar=50], value [text]) en wil deze tabel gebruiken om acties voor een bepaalde tijd in een database in te voeren. Echter werkt de volgende insert niet zoals verwacht

insert into `actions` (`expiredate`, `userID`, `action`, `value`)
VALUES (CUR_TIJD + $time,
$userID,
$action,
$value);

waar CUR_TIJD de huidige tijd (time()) + $time in seconden is. Wat doe ik fout?
Een timestamp veld vul je niet met een unix timestamp, en je wilt waarschijnlijk datetime gebruiken, zie http://dev.mysql.com/doc/refman/5.0/en/datetime.html
quote:
en DATEDIFF(`accessed`, NOW()) < -30 lijkt me leuker om dit te hebben

`accessed` >= DATE_SUB(CURDATE(),INTERVAL 30 DAYS)

zo pak je alles wat binnen 30 dagen valt ;) en wil je anders om dan doe je < :P
En dat is beter voor indices.
Chandlervrijdag 13 mei 2011 @ 22:30
Wist niet dat het beter was ;) maar leek mij meer logisch en begrijpelijk ;)

Ja ik wil het liefst werken met time() van php en timestamp maar zie dat datetime inderdaad een betere oplossing is, i'll try!
Chandlervrijdag 13 mei 2011 @ 22:44
Raar :{ maar dit werkt dus niet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
function()
{
        
$extime = (is_numeric($extime) && 
                   
$extime 0) ? time() + $extime 
                                
time() + 60;
        
        
$query $this->db->query("INSERT INTO `actions` (`expiredate`, `user_id`, `action`, `value`, `validate`)
                                   VALUES ('" 
date("Y-m-d H:i:s"$extime) . "',
                                           '" 
$this->db->escape($userID) . "',
                                           '" 
$this->db->escape($action) . "',
                                           '" 
$this->db->escape($value) . "',
                                           '" 
$this->db->escape($validate) . "')");
}
?>
waarbij $extime 60 is, dit zou dus 1 minuut extra moeten zijn maar dat is het dus niet?! en gewoon time() gaat ook niet werken :P wat doe ik nou fout? wil gewoon een datum in de toekomst in mijn tabel invoeren ;)
dirkjovrijdag 13 mei 2011 @ 22:49
quote:
0s.gif Op vrijdag 13 mei 2011 22:25 schreef GlowMouse het volgende:

[..]

je echo't maar 1x, zie de voorbeelden op http://nl3.php.net/mysql_fetch_array

[..]

Een timestamp veld vul je niet met een unix timestamp, en je wilt waarschijnlijk datetime gebruiken, zie http://dev.mysql.com/doc/refman/5.0/en/datetime.html

[..]

En dat is beter voor indices.
Misschien erbij moeten vermelden dat ik 'printf' ook al heb geprobeerd.
GlowMousevrijdag 13 mei 2011 @ 22:50
quote:
0s.gif Op vrijdag 13 mei 2011 22:49 schreef dirkjo het volgende:

[..]

Misschien erbij moeten vermelden dat ik 'printf' ook al heb geprobeerd.
Nee, dat had niet gehoeven.
Chandlervrijdag 13 mei 2011 @ 22:51
Had ik gedaan maar resultaat was precies het zelfde :{ daarna veranderde ik de $extime = door het toevoegen van time() ?
GlowMousevrijdag 13 mei 2011 @ 22:52
quote:
0s.gif Op vrijdag 13 mei 2011 22:51 schreef Chandler het volgende:
Had ik gedaan maar resultaat was precies het zelfde :{ daarna veranderde ik de $extime = door het toevoegen van time() ?
echo $query eens, ik zie geen fout
dirkjovrijdag 13 mei 2011 @ 22:53
quote:
0s.gif Op vrijdag 13 mei 2011 22:50 schreef GlowMouse het volgende:

[..]

Nee, dat had niet gehoeven.
Oke in dat geval zie ik door de bomen het bos niet meer :@
Op de een of andere manier krijg ik elke keer dezelfde user, dus ook wanneer ik bijvoorbeeld als query het volgende gebruik:
1    $result = mysql_query("SELECT * FROM `ftpuser`");
GlowMousevrijdag 13 mei 2011 @ 22:53
quote:
0s.gif Op vrijdag 13 mei 2011 22:53 schreef dirkjo het volgende:

[..]

Oke in dat geval zie ik door de bomen het bos niet meer :@
Op de een of andere manier krijg ik elke keer dezelfde user, dus ook wanneer ik bijvoorbeeld als query het volgende gebruik:

[ code verwijderd ]

ja en je wilt meer users zien dus dan moet je meerdere keren echo'en, zie de codevoorbeelden op de eerder gegeven pagina
dirkjovrijdag 13 mei 2011 @ 22:55
quote:
0s.gif Op vrijdag 13 mei 2011 22:53 schreef GlowMouse het volgende:

[..]

ja en je wilt meer users zien dus dan moet je meerdere keren echo'en, zie de codevoorbeelden op de eerder gegeven pagina
Ja heb ik geprobeerd, volgens mij dan, maar ik krijg elke keer de zelfde user. Terwijl die user niet eens boven aan staat ofzo.
Maar oke, zal de pagina nog wel keertje doorlezen
Chandlervrijdag 13 mei 2011 @ 22:55
LOL

Dit is output van

2011-05-13 22:42:51;;;2011-05-14 22:42:51
1
2
3
4
        echo date("Y-m-d H:i:s", time());
        echo ';;;';
        echo date("Y-m-d H:i:s", $extime);        
        print_r($this->db->queries);

en de query

1
2
3
4
5
6
7
8
9
10
11
NSERT INTO `actions` (`expiredate`, `user_id`, `action`, `value`, `validate`)

                                   VALUES ('2011-05-14 22:42:51',

                                           '',

                                           'password',

                                           '******@hotmail.com',

                                           '3372f4821e2757d7f9d38f958bc89ca1')
Chandlervrijdag 13 mei 2011 @ 22:56
quote:
0s.gif Op vrijdag 13 mei 2011 22:55 schreef dirkjo het volgende:

[..]

Ja heb ik geprobeerd, volgens mij dan, maar ik krijg elke keer de zelfde user. Terwijl die user niet eens boven aan staat ofzo.
Maar oke, zal de pagina nog wel keertje doorlezen
php.net/mysql_num_rows :P
php.net/mysql_fetch_assoc (bv $list = mysql_fetch_assoc($query) geeft $list['veldnaam1'], etc)
dirkjovrijdag 13 mei 2011 @ 22:56
quote:
0s.gif Op vrijdag 13 mei 2011 22:55 schreef dirkjo het volgende:

[..]

Ja heb ik geprobeerd, volgens mij dan, maar ik krijg elke keer de zelfde user. Terwijl die user niet eens boven aan staat ofzo.
Maar oke, zal de pagina nog wel keertje doorlezen
Ow, volgens mij heb ik het al :@
GlowMousevrijdag 13 mei 2011 @ 22:57
quote:
0s.gif Op vrijdag 13 mei 2011 22:56 schreef Chandler het volgende:

[..]

php.net/mysql_num_rows :P
php.net/mysql_fetch_assoc (bv $list = mysql_fetch_assoc($query) geeft $list['veldnaam1'], etc)
nee dat is het niet.
En met je query is niks mis.
Chandlervrijdag 13 mei 2011 @ 23:00
Klopt!!! Als je niet goed kijkt zie je dat er een dag verschil in zit :X :N :7 :Z :z tis tijd om de laptop dicht te doen :Y

Was gezellig, prettige avond! :)
dirkjovrijdag 13 mei 2011 @ 23:02
Hé het werkt, was de "while", en zijn functie, gewoon totaal vergeten. Doet toch niet goed, zo'n tijd niks schrijven
Chandlerzaterdag 14 mei 2011 @ 23:22
Ik wil kijken of een afbeelding in grijstinten (zwart-grijs-wit) is opgemaakt met liefst GD hoe kan ik dit het beste aanpakken? alle kleuren analyseren en kijken of 90+% in zwart-grijs-wit waarden zit? of is er een andere manier? :D
Teganzondag 15 mei 2011 @ 01:05
quote:
5s.gif Op zaterdag 14 mei 2011 23:22 schreef Chandler het volgende:
Ik wil kijken of een afbeelding in grijstinten (zwart-grijs-wit) is opgemaakt met liefst GD hoe kan ik dit het beste aanpakken? alle kleuren analyseren en kijken of 90+% in zwart-grijs-wit waarden zit? of is er een andere manier? :D
http://bubble.ro/How_to_c(...)rayscale_in_PHP.html
GlowMousezondag 15 mei 2011 @ 08:32
http://nl.php.net/getimagesize
Misschien kun je wat met de tweede parameter.

Bij GIF heb je alleen het palette nodig.

Met jouw methode zou ik random wat pixels controleren, misschien slim via een Latin hypercube, want anders zal een controle erg langzaam gaan.
Chandlerzondag 15 mei 2011 @ 09:28
Ik dacht altijd dat ik ook bij PNG het palette kon uitlezen ;) lol..

En die Latin hypercube zal ik eens gaan doornemen maar denk dat dat iets te hoog gegrepen is voor mijn brein :@ :D
Crutchmaandag 16 mei 2011 @ 13:16
Stel ik heb een database:

2dqijv6.jpg

Hoe kan ik via mySQL alle unieke projectnamen in een array krijgen?

Dus in totaal drie waarden in de array: test, test2 en test3
mstxmaandag 16 mei 2011 @ 13:18
quote:
14s.gif Op maandag 16 mei 2011 13:16 schreef Crutch het volgende:
Stel ik heb een databasetabel:

[ afbeelding ]

Hoe kan ik via mySQL alle unieke projectnamen in een array krijgen?

Dus in totaal drie waarden in de array: test, test2 en test3
SELECT project FROM tabel GROUP BY project
Of met DISTINCT, ik weet niet wat sneller is.
urselmaandag 16 mei 2011 @ 13:27
Ben op een test server even bezig met Zend Server. Alleen nu draaide er al default een PHP installatie en kom maar niet tegen waar ik kan aangeven dat apache de PHP engine van Zend Server moet gebruiken.

Iemand een idee?
Gaat om een Centos omgeving. PHP 5.1 geinstalleerd, probeern 5.3 van Zend Server.
Crutchmaandag 16 mei 2011 @ 13:37
quote:
0s.gif Op maandag 16 mei 2011 13:18 schreef mstx het volgende:

[..]

SELECT project FROM tabel GROUP BY project
Of met DISTINCT, ik weet niet wat sneller is.
GROUP BY :D

Stom, ik had het kunnen bedenken, thanks. :)
Intrepiditymaandag 16 mei 2011 @ 14:02
quote:
14s.gif Op maandag 16 mei 2011 13:37 schreef Crutch het volgende:

[..]

GROUP BY :D

Stom, ik had het kunnen bedenken, thanks. :)
Doe wel even een indexje leggen op project dan. :)
Crutchmaandag 16 mei 2011 @ 14:07
quote:
0s.gif Op maandag 16 mei 2011 14:02 schreef Intrepidity het volgende:

[..]

Doe wel even een indexje leggen op project dan. :)
Mwah, het werkt zo prima (SQLite in Android).
Ik heb de projectnamen alleen maar nodig voor hun String value en die vang ik in een lijst om verderop in de app met een andere query alle rijen e.d. te vangen van het project waar op geklikt is. :P
MrNileswoensdag 18 mei 2011 @ 10:36
hoe kun je rekenen met datums?

Bijv zoveel dagen tot verjaardag
of nu zoveel dd hh:mm:ss (lopende klok) tot pensioen
dat soort dingen
Intrepiditywoensdag 18 mei 2011 @ 10:38
quote:
0s.gif Op woensdag 18 mei 2011 10:36 schreef MrNiles het volgende:
hoe kun je rekenen met datums?

Bijv zoveel dagen tot verjaardag
of nu zoveel dd hh:mm:ss (lopende klok) tot pensioen
dat soort dingen
Ligt er aan wat voor type je datums hebben. Bij MySQL datetime-velden kun je gebruik maken van functies als datediff. Bij unix-timestamps zoals teruggegeven door time() kun je gewoon de getallen van elkaar aftrekken en delen door 24*60*60 (=aantal seconden in een dag).
Bij datum strings (foei) eerst converteren naar een timestamp met bijvoorbeeld strtotime() en dan rekenen met bovenstaande methode.
MrNileswoensdag 18 mei 2011 @ 10:42
quote:
0s.gif Op woensdag 18 mei 2011 10:38 schreef Intrepidity het volgende:

[..]

Ligt er aan wat voor type je datums hebben. Bij MySQL datetime-velden kun je gebruik maken van functies als datediff. Bij unix-timestamps zoals teruggegeven door time() kun je gewoon de getallen van elkaar aftrekken en delen door 24*60*60 (=aantal seconden in een dag).
dus als ik data in een sql database zet dan kan ik dat met datediff doen
huidige tijd moet ik ophalen met time() ?
Mag ik die 2 doorelkaar gebruiken?
Intrepiditywoensdag 18 mei 2011 @ 10:46
quote:
0s.gif Op woensdag 18 mei 2011 10:42 schreef MrNiles het volgende:

[..]

dus als ik data in een sql database zet dan kan ik dat met datediff doen
huidige tijd moet ik ophalen met time() ?
Mag ik die 2 doorelkaar gebruiken?
In PHP reken je in principe altijd met timestamps (aantal seconden sinds 1 januari 1970). MySQL gebruikt het datetime-type, wat in principe een soort string-representatie van de datum is, maar dan geschikt om mee te rekenen. Waarschijnlijk intern ook een timestamp.
Op het moment dat je een timestamp uit php in je mysql-database wilt stoppen gooi je je er eerst een date('Y-m-d H:i:s', $timestamp) overheen. Je converteert het dus naar een datum-string die MySQL snapt. Als je het weer uit je database haalt gooi je er strototime() overheen zodat het weer een integer wordt :)
Ook MySQL beschikt over een timestamp veld, maar de timestamps hierin zijn niet gelijk aan die van PHP (ander beginpunt afaik) en die moet je dus niet gebruiken.

Wil je dan rekenen met de data in MySQL kun je bijvoorbeeld doen:
SELECT DATEDIFF(geboortedatum, CURDATE()) FROM tabelletje
Je krijgt dan het verschil terug uitgedrukt in hele dagen.
MrNileswoensdag 18 mei 2011 @ 11:13
quote:
0s.gif Op woensdag 18 mei 2011 10:46 schreef Intrepidity het volgende:

[..]

SELECT DATEDIFF(geboortedatum, CURDATE()) FROM tabelletje
rekenen gaat nog niet zo best :(
heb een schop in de goeie richting nodig

dit heb ik (gevonden op internet)
1
2
3
4
5
6
7
8
9
10
<?php
$date1 
time();
$date2 mktime(0,0,0,10,20,2006);
$date3 strtotime($array["E_date"]);
$dateDiff    $date1 $date3;
$fullDays    floor($dateDiff/(60*60*24));
$fullHours   floor(($dateDiff-($fullDays*60*60*24))/(60*60));
$fullMinutes floor(($dateDiff-($fullDays*60*60*24)-($fullHours*60*60))/60);
echo 
"Differernce is $fullDays days, $fullHours hours and $fullMinutes minutes.";
?>

Doet wat het moet doen
maar
hoe kan ik nu 2 data (zonder jaren) van elkaar aftrekken
als er morgen iemand jarig is (19-05 - 18-05=1) zoiets dus..maar hoe kom ik daar?

[ Bericht 46% gewijzigd door MrNiles op 18-05-2011 11:44:35 ]
Lightwoensdag 18 mei 2011 @ 19:56
quote:
0s.gif Op woensdag 18 mei 2011 10:38 schreef Intrepidity het volgende:

[..]

Ligt er aan wat voor type je datums hebben. Bij MySQL datetime-velden kun je gebruik maken van functies als datediff. Bij unix-timestamps zoals teruggegeven door time() kun je gewoon de getallen van elkaar aftrekken en delen door 24*60*60 (=aantal seconden in een dag).
Op zich is het wel handiger om Date / DateTime kolommen in MySQL te gebruiken. Daar kan MySQL zelf ook meer mee en het is waarschijnlijk beter te indexen dan een functieresultaat. In PHP heb je ook een DateTime class (sinds PHP 5.2) en een DateInterval class (sinds 5.3). Erg handig om met datums te rekenen, en je hoeft geen rekening te houden met zomertijd/wintertijd. Een dag telt namelijk niet altijd 24 * 60 * 60 ( = 86.400 ) seconden. 27 maart 2011 kwam niet verder dan 82.800 seconden.
MrNilesdonderdag 19 mei 2011 @ 11:11
ben dus wat aan het spelen met datums
bij een verjaardag heb ik dus geen jaartal nodig om aan te geven je bent over x dagen jarig

waarom werkt dit zo niet?

1
2
3
4
5
6
<?php
$date3 
date("d-m",strtotime($array["E_date"])); //datum uit db
$today=date("d-m");
$verjaardag=$date3-$today;
echo 
$verjaardag;
?>

Ik dacht zo het jaartal weg te laten
alleen met rekenen neemt ie nu niet de maanden mee
mstxdonderdag 19 mei 2011 @ 11:14
quote:
0s.gif Op donderdag 19 mei 2011 11:11 schreef MrNiles het volgende:
ben dus wat aan het spelen met datums
bij een verjaardag heb ik dus geen jaartal nodig om aan te geven je bent over x dagen jarig

waarom werkt dit zo niet?
[ code verwijderd ]

Ik dacht zo het jaartal weg te laten
alleen met rekenen neemt ie nu niet de maanden mee
$date3 wordt nu bijv. "25-11", daar kun je niet mee rekenen aangezien het geen getal is.
boem-dikkiedonderdag 19 mei 2011 @ 11:16
Even een vraagje. PHP heb ik redelijk onder de knie nu, in ieder geval de basis e.d. Ik ben wat aan het lezen over OOP maar heb nog geen idee hoe ik dit handig kan toepassen of uitproberen. Heeft iemand een goede tutorial die een beetje duidelijk maakt hoe je handig met classes e.d. leert omgaan?
MrNilesdonderdag 19 mei 2011 @ 11:16
quote:
0s.gif Op donderdag 19 mei 2011 11:14 schreef mstx het volgende:

[..]

$date3 wordt nu bijv. "25-11", daar kun je niet mee rekenen aangezien het geen getal is.
hmm..jammer...tekort door de bocht
hoe kan ik dan van iemand die op 20-05-1980 geboren is uitrekenen dat ie morgen jarig is?
Intrepiditydonderdag 19 mei 2011 @ 11:21
quote:
0s.gif Op donderdag 19 mei 2011 11:16 schreef MrNiles het volgende:

[..]

hmm..jammer...tekort door de bocht
hoe kan ik dan van iemand die op 20-05-1980 geboren is uitrekenen dat ie morgen jarig is?
20-05-1980 converteren naar een timestamp (hint: strtotime), dit aftrekken van de timestamp van nu, jaren uit de vergelijking halen met de modulo-operator en het aantal seconden in een jaar (365*24*60*60) en uitrekenen hoeveel dagen er nog in de overgebleven seconden zitten.

Kortom:
1
2
3
4
5
6
7
8
9
10
<?php
 $geboortedatum 
strtotime('20-05-1980');
 
$seconden time() - $geboortedatum;

 
// Jaren weghalen
 
$seconden $seconden % (365*24*60*60);

 
// Aantal dagen tot verjaardag uitrekenen
 
$dagen floor($seconden / (24*60*60));
?>

Edit:
Uit het hoofd, kan zijn dat er een foutje in zit.
% is de modulo-operator en betekent zoveel als de restant na deling.

[ Bericht 29% gewijzigd door Intrepidity op 19-05-2011 11:26:45 ]
MrNilesdonderdag 19 mei 2011 @ 11:23
een modulo-operator :?
Intrepiditydonderdag 19 mei 2011 @ 11:28
Excuus, officieel heet ie modulus, geen modulo :P
En overigens is die berekening hierboven niet bepaald accuraat aangezien het geen rekening houdt met schrikkeljaren en dergelijke. Je kunt met 365.25 rekenen, maar dat is ook niet geheel juist. Maargoed, het zou je in ieder geval op weg moeten helpen met het soort berekening wat je uit moet voeren.
MrNilesdonderdag 19 mei 2011 @ 11:32
quote:
0s.gif Op donderdag 19 mei 2011 11:28 schreef Intrepidity het volgende:
Excuus, officieel heet ie modulus, geen modulo :P
En overigens is die berekening hierboven niet bepaald accuraat aangezien het geen rekening houdt met schrikkeljaren en dergelijke. Je kunt met 365.25 rekenen, maar dat is ook niet geheel juist. Maargoed, het zou je in ieder geval op weg moeten helpen met het soort berekening wat je uit moet voeren.
Niet echt betrouwbaar dus eigenlijk...d'r zit ook een foutje ergens in...ff zoeken
Intrepiditydonderdag 19 mei 2011 @ 11:32
Je kunt het beste gebruik maken van de DateTime klasse. Deze biedt hier ingebouwde functionaliteit voor die wel nauwkeurig genoeg is.
Sitethiefdonderdag 19 mei 2011 @ 11:32
quote:
5s.gif Op donderdag 19 mei 2011 11:16 schreef boem-dikkie het volgende:
Even een vraagje. PHP heb ik redelijk onder de knie nu, in ieder geval de basis e.d. Ik ben wat aan het lezen over OOP maar heb nog geen idee hoe ik dit handig kan toepassen of uitproberen. Heeft iemand een goede tutorial die een beetje duidelijk maakt hoe je handig met classes e.d. leert omgaan?
http://bit.ly/mj4zSR
MrNilesdonderdag 19 mei 2011 @ 11:43
quote:
0s.gif Op donderdag 19 mei 2011 11:32 schreef Intrepidity het volgende:
Je kunt het beste gebruik maken van de DateTime klasse. Deze biedt hier ingebouwde functionaliteit voor die wel nauwkeurig genoeg is.
DateTime ....ben benieuwd of het iets wordt :)
echt fatsoenlijke uitleg/voorbeelden zijn schaars
-Datdus-donderdag 19 mei 2011 @ 12:34
Kan iemand mij helpen? Ik heb de jqflot plugin om grafieken mee te maken maar ik wil uitrekenen waar een bepaald punt moet komen.

Ik heb in mijn grafiek 4 periodes van 3 maanden. Nu wil ik een tijdstip bijvoorbeeld 18-01-11 als punt. Dit wordt in de code bijvoorbeeld [10.0, 1.2] het dikgedrukte is het punt waar de datum moet staan. Ik heb echt geen idee hoe ik dat zou moeten uitrekenen. -O-
Intrepiditydonderdag 19 mei 2011 @ 12:44
Ik denk dat je daarvoor beter in het javascript topic terecht kunt :)
-Datdus-donderdag 19 mei 2011 @ 13:09
quote:
0s.gif Op donderdag 19 mei 2011 12:44 schreef Intrepidity het volgende:
Ik denk dat je daarvoor beter in het javascript topic terecht kunt :)
Maar de data wordt met php geladen...
remi1986vrijdag 20 mei 2011 @ 09:13
quote:
0s.gif Op donderdag 19 mei 2011 11:11 schreef MrNiles het volgende:
ben dus wat aan het spelen met datums
bij een verjaardag heb ik dus geen jaartal nodig om aan te geven je bent over x dagen jarig

waarom werkt dit zo niet?
[ code verwijderd ]

Ik dacht zo het jaartal weg te laten
alleen met rekenen neemt ie nu niet de maanden mee
Hey Niels ;),

je kan ook gebruik maken van DATEDIFF in de MySQL query. Eerder dit topic had ik daar een voorbeeld van gepost. Je pakt de datum van vandaag en vergelijkt dat met de verjaardag die in de database staat.

Of je maakt er timestamps van en gaat daar mee rekenen.

EDIT:

http://stackoverflow.com/(...)-two-dates-using-php

hier nog een voorbeeld waar ze met timestamps rekenen
MrNilesvrijdag 20 mei 2011 @ 13:29
misschien dat iemand me toch ff kan helpen

1
2
3
4
5
<?php
$resultaat 
mysql_query('SELECT DATEDIFF(E_date,CURDATE()) AS AantalDagen FROM events') or die(mysql_error());
while (
$record mysql_fetch_array($resultaat)) {
$verjaardag=$record['AantalDagen'];
?>

maar hoe kan ik nu het jaar opheffen
nu bereken ik hoeveel dagen geleden iemand is geboren
Farenjivrijdag 20 mei 2011 @ 13:58
quote:
0s.gif Op vrijdag 20 mei 2011 13:29 schreef MrNiles het volgende:
misschien dat iemand me toch ff kan helpen
[ code verwijderd ]

maar hoe kan ik nu het jaar opheffen
nu bereken ik hoeveel dagen geleden iemand is geboren
Je moet niet het jaartal opheffen, want dan maak je het jezelf te moeilijk. Je kan beter gewoon het huidige jaartal gebruiken. Dus bijv iemand is geboren op 27 mei 1980, dan bereken je het verschil tussen 27 mei 2011 en de huidige datum. Dat is het aantal dagen tot de persoon jarig is.
Als dat verschil negatief is dan is die persoon dit jaar al jarig geweest.
MrNilesvrijdag 20 mei 2011 @ 14:08
quote:
3s.gif Op vrijdag 20 mei 2011 13:58 schreef Farenji het volgende:

[..]

Je moet niet het jaartal opheffen, want dan maak je het jezelf te moeilijk. Je kan beter gewoon het huidige jaartal gebruiken. Dus bijv iemand is geboren op 27 mei 1980, dan bereken je het verschil tussen 27 mei 2011 en de huidige datum. Dat is het aantal dagen tot de persoon jarig is.
Als dat verschil negatief is dan is die persoon dit jaar al jarig geweest.
misschien heel dom
maar hoe vertel ik dat 1980 2011 moet worden?
Farenjivrijdag 20 mei 2011 @ 14:36
quote:
0s.gif Op vrijdag 20 mei 2011 14:08 schreef MrNiles het volgende:

[..]

misschien heel dom
maar hoe vertel ik dat 1980 2011 moet worden?
Ik zou het zo doen:

1select DATE_ADD('1980-05-27', INTERVAL YEAR(CURDATE()) - YEAR('1980-05-27') YEAR);
MrNilesvrijdag 20 mei 2011 @ 14:52
maar de $event_2 mag niet zo
Unknown column in fieldlist error krijg ik terug
hoe wel?

$resultaat2 = mysql_query('SELECT DATEDIFF($event_2,CURDATE()) AS AantalDagen');
Chandlerzaterdag 21 mei 2011 @ 21:34
Simpele vraag hoop ik maar ik breek er al even mijn koppie over ;{

Ik wil een postcode uitlezen uit een tekst met een volledig adres (straatnaam 1 1234 AA Ergens Nederland) en dat probeer ik zo

preg_match('/^(\d{4}[ ][a-zA-Z]{2})/', $adres, $out);

maar dit werkt niet? ik heb al veel andere stukjes geprobeerd maar kom er maar niet uit..
Farenjizaterdag 21 mei 2011 @ 21:38
Je zoekt nu naar een string die *begint* met een postcode.
Pakspulzaterdag 21 mei 2011 @ 21:43
quote:
5s.gif Op zaterdag 21 mei 2011 21:34 schreef Chandler het volgende:
Simpele vraag hoop ik maar ik breek er al even mijn koppie over ;{

Ik wil een postcode uitlezen uit een tekst met een volledig adres (straatnaam 1 1234 AA Ergens Nederland) en dat probeer ik zo

preg_match('/^(\d{4}[ ][a-zA-Z]{2})/', $adres, $out);

maar dit werkt niet? ik heb al veel andere stukjes geprobeerd maar kom er maar niet uit..
'/(.+?)(0-9){4}(a-zA-Z){2}(.+?)/'

Zo even uit mijn hoofd.
Chandlerzaterdag 21 mei 2011 @ 21:53
Oh, dat ik op het begin zocht wist ik niet, had al wel alles met \w+ \w* \* etc geprobeerd, en bovenstaande werkt helaas niet :{

-edit-

deze werkt wel, '/(.+?)([0-9]{4})[ ]([a-zA-Z]{2})(.+?)/' alleen krijg ik dan de postcode in 2 delen ;) maar goed beter iets dan niets!
GlowMousezaterdag 21 mei 2011 @ 22:01
^ is het begin van een regel
[ ] is hetzelfde als gewoon een spatie
je krijgt hem in 2 delen vanwege je haakjes, probeer dit eens:

'/([0-9]{4}\\s?[a-z]{2})/i'
Chandlerzaterdag 21 mei 2011 @ 22:06
Zal het morgen proberen, heb het reeds opgelost met de oplossing in mijn post maar dat was maar een batch van 70 adressen :D er komen er hopelijk nog honderden bij :@
iwannabehighzaterdag 21 mei 2011 @ 22:08
He, ik heb 'n vraag en omdat ik niet een heel topic wil openen in DIG SW even hier.. Wie weet hoe je met Mozilla firefox foto's kan opslaan in je bestanden of kan dat niet?
Faux.zaterdag 21 mei 2011 @ 22:47
quote:
0s.gif Op zaterdag 21 mei 2011 22:08 schreef iwannabehigh het volgende:
He, ik heb 'n vraag en omdat ik niet een heel topic wil openen in DIG SW even hier.. Wie weet hoe je met Mozilla firefox foto's kan opslaan in je bestanden of kan dat niet?
Rechtermuisknop -> Save As/Opslaan als :') Of ik begrijp je fout :')
iwannabehighzaterdag 21 mei 2011 @ 23:47
quote:
10s.gif Op zaterdag 21 mei 2011 22:47 schreef Faux. het volgende:

[..]

Rechtermuisknop -> Save As/Opslaan als :') Of ik begrijp je fout :')
Ja, zo bedoelde ik het niet :P Het zit namelijk zo: ik kan met Mozilla Firefox geen afbeeldingen opslaan vanaf Facebook (en meerdere sites). Als ik dan op rechter muisknop klik, staat er geen afbeelding opslaan maar pagina opslaan. Misschien iemand die hier iets vanaf weet?
boem-dikkiezaterdag 21 mei 2011 @ 23:56
quote:
0s.gif Op zaterdag 21 mei 2011 23:47 schreef iwannabehigh het volgende:

[..]

Ja, zo bedoelde ik het niet :P Het zit namelijk zo: ik kan met Mozilla Firefox geen afbeeldingen opslaan vanaf Facebook (en meerdere sites). Als ik dan op rechter muisknop klik, staat er geen afbeelding opslaan maar pagina opslaan. Misschien iemand die hier iets vanaf weet?
Je kunt op Facebook gewoon onder de foto op 'foto downloaden (oid)' klikken toch?
iwannabehighzondag 22 mei 2011 @ 00:00
quote:
14s.gif Op zaterdag 21 mei 2011 23:56 schreef boem-dikkie het volgende:

[..]

Je kunt op Facebook gewoon onder de foto op 'foto downloaden (oid)' klikken toch?
Ja, ik zie 't nu pas.. :') Bedankt. ^O^
Tijnzondag 22 mei 2011 @ 11:45
Ik zit weer eens met reguliere expressies te stunten :') Ik probeer tekst te vangen tussen "[tabel]" en "[/tabel]". Dus ik dacht, dat doe je zo:

1preg_match_all("/\[tabel\](.*)\[\/tabel\]/", $string, $tables);

Daarbij is $tables dan een array met alle stukken uit $string die tussen eerder genoemde [tabel] tags zit. Althans, dat was m'n plan, want de array is nu altijd leeg -O-

Iemand een idee?
PiRANiAzondag 22 mei 2011 @ 11:50
quote:
2s.gif Op zondag 22 mei 2011 11:45 schreef Tijn het volgende:
Ik zit weer eens met reguliere expressies te stunten :') Ik probeer tekst te vangen tussen "[tabel]" en "[/tabel]". Dus ik dacht, dat doe je zo:

[ code verwijderd ]

Daarbij is $tables dan een array met alle stukken uit $string die tussen eerder genoemde [tabel] tags zit. Althans, dat was m'n plan, want de array is nu altijd leeg -O-

Iemand een idee?
1
2
3
4
5
6
7
8
9
10
11
12
<?php $string="test1
test2
test3
[tabel]haha[/tabel]
test4
test5
[tabel]haha2[/tabel]
"
;

preg_match_all("/\[tabel\](.*)\[\/tabel\]/"$string$tables);

var_dump($tables);

output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(19) "[tabel]haha[/tabel]"
    [1]=>
    string(20) "[tabel]haha2[/tabel]"
  }
  [1]=>
  array(2) {
    [0]=>
    string(4) "haha"
    [1]=>
    string(5) "haha2"
  }
}
PiRANiAzondag 22 mei 2011 @ 11:53
Doe
1
2
3
<?php
preg_match_all
("/\[tabel\](.*)\[\/tabel\]/msU"$string$tables);
?>
voor multiline :Y
Tijnzondag 22 mei 2011 @ 11:55
quote:
0s.gif Op zondag 22 mei 2011 11:53 schreef PiRANiA het volgende:
Doe

[ code verwijderd ]

voor multiline :Y
Ah! Dat is 'em :) Dank u _O_
Faux.zondag 22 mei 2011 @ 16:52
Hoe kan je in PHP zien of een getal even of oneven is? :@
PiRANiAzondag 22 mei 2011 @ 16:53
quote:
5s.gif Op zondag 22 mei 2011 16:52 schreef Faux. het volgende:
Hoe kan je in PHP zien of een getal even of oneven is? :@
Sec, ik maak even een snippet voor je.
PiRANiAzondag 22 mei 2011 @ 16:56
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function is_even($getal){
    if(
floor($getal)%==0)
        return 
true;
    else
        return 
false;
}

var_dump(
    
is_even(0),
    
is_even(1),
    
is_even(2)
    );

Output:
1
2
3
bool(true)
bool(false)
bool(true)

Je kijkt dus of een getal deelbaar is door 2. Met de '%' kijk je of er bij de deling door 2 wat over blijft (rest van de deling). Als hij het netjes door 2 deelt (en er dus niets over blijft) is het een even getal.
Faux.zondag 22 mei 2011 @ 17:00
Dus

1
2
3
4
5
6
7
8
<?php
if(is_even($id) == "true")
{
getal is even
}else{
getal is oneven
}
?>

is goede code? :@
PiRANiAzondag 22 mei 2011 @ 17:01
Dat
== "true"
kan weg.
Faux.zondag 22 mei 2011 @ 17:01
quote:
0s.gif Op zondag 22 mei 2011 17:01 schreef PiRANiA het volgende:
Dat
== "true"
kan weg.
Oke, danku :*
GlowMousezondag 22 mei 2011 @ 17:06
1
2
3
4
5
<?php
function is_even($getal) {
  return (
$getal%== 0);
}
?>
MrNilesdinsdag 24 mei 2011 @ 20:33
Remi wees me op een scripje wat doet wat ik eerder vroeg..rekenen met data/verjaardagen

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
$resultaat 
mysql_query("SELECT * FROM events");
while(
$array=mysql_fetch_array($resultaat)){
echo 
date("d-m-Y",strtotime($array["E_date"])) ."<br/>";

// count number of leap years between birthday and today

function numOfLeapDays($from$to) {
    if((
checkdate(2,29,date("Y",$from))) && ($from mktime(0,0,0,2,29,date("Y",$from)))) {
        
$fromYear date("Y",$from)+1;
    } else {
        
$fromYear date("Y",$from);
    }

    if((
checkdate(2,29,date("Y",$to))) && ($to mktime(0,0,0,2,29,date("Y",$to)))) {
        
$toYear date("Y",$to)-1;
    } else {
        
$toYear date("Y",$to);
    }

    
$numOfLeapDays 0;

    for(
$i $fromYear$i <= $toYear$i++) {
        if (((
$i 4) == 0) AND ((($i 400) == 0) OR (($i 100) <> 0))) $numOfLeapDays++;
    }
    return 
$numOfLeapDays;
}

// calculate age, including fix for dates before 1-1-1970
function age($born,$now,$bornyear) {
    
$leapDays numOfLeapDays($born$now);
    
$age intval(((($now $born)/(60*60*24)) - $leapDays) / 365 );
    if(
$bornyear 1970) {
        
$age $age + (1970 $bornyear);
    }
    return 
$age;
}

// retrieve age and number of days till next birthday
function agenext($birthday){
    
// format dd-mm-yyyy -> [0] = day, [1] = month, [2] = year
    
$datekey explode("-",$birthday);

    
// basic variables
    
$born mktime(0,0,0,$datekey[1],$datekey[0],$datekey[2]);
    
$now mktime(0,0,0,date("m"),date("d"),date("Y"));
    
$nextbirthday mktime(0,0,0,$datekey[1],$datekey[0],date("Y"));
    if(
$nextbirthday $now) {
        
$nextbirthday $nextbirthday + (60*60*24*365);
    }

    
// days till next birthday
    
$days intval(($nextbirthday $now) / (60*60*24));

    
$agenext "(".age($born,$now,$datekey[2]).", next birthday in ".$days." day".($days == "":"s").")";
    return 
$agenext;
}

// call function with: agenext($birthday)
$birthday date("d-m-Y",strtotime($array["E_date"]));
echo 
agenext($birthday)."<br/>";
}
?>

dit werkt wel maar alleen met de eerste regel uit de database
hoe kan ik dit nu maken dat ie alle regels meeneemt?
GlowMousedinsdag 24 mei 2011 @ 20:37
je functies niet in een loop definieren
MrNilesdinsdag 24 mei 2011 @ 20:38
quote:
0s.gif Op dinsdag 24 mei 2011 20:37 schreef GlowMouse het volgende:
je functies niet in een loop definieren
maar hoe kan ik dan $array["E_date"]) gebruiken?
GlowMousedinsdag 24 mei 2011 @ 20:45
staat $array["E_date"]) in een functie dan?
MrNilesdinsdag 24 mei 2011 @ 20:48
quote:
0s.gif Op dinsdag 24 mei 2011 20:45 schreef GlowMouse het volgende:
staat $array["E_date"]) in een functie dan?
aub GlowMouse...ik ben een amateur en ik snap je cryptische aanwijzingen eerlijk gezegd niet
ik doe de titel van het topic echt eer aan...voor dummies..that's me

zou je me misschien een concreet voorbeeld kunnen geven hoe dit op te lossen
Tegandinsdag 24 mei 2011 @ 20:49
Als je dat scriptje niet begrijpt moet je er misschien niet mee gaan rommelen...

Maw, probeer eerst eens te begrijpen wat dat script precies doet voordat je het gaat aanpassen aan jouw wensen :).
MrNilesdinsdag 24 mei 2011 @ 20:51
quote:
0s.gif Op dinsdag 24 mei 2011 20:49 schreef Tegan het volgende:
Als je dat scriptje niet begrijpt moet je er misschien niet mee gaan rommelen...

Maw, probeer eerst eens te begrijpen wat dat script precies doet voordat je het aan wil passen aan jouw wensen :).
-O-

opzich snap ik wel wat het script doet
ik vraag alleen hoe ik dit om kan zetten zodat ik dit kan laten uitvoeren op elke regel van de db en niet alleen van de eerste regel
Tegandinsdag 24 mei 2011 @ 20:54
Ok, je snapt het script.

Waarom werkt het nu niet dan denk je?
MrNilesdinsdag 24 mei 2011 @ 20:56
quote:
0s.gif Op dinsdag 24 mei 2011 20:54 schreef Tegan het volgende:
Ok, je snapt het script.

Waarom werkt het nu niet dan denk je?
waarschijnlijk omdat $birthday = $array['E_date'] niet met elkaar overweg kan
GlowMousedinsdag 24 mei 2011 @ 20:59
Het script werkt niet goed met schrikkeljaren.
MrNilesdinsdag 24 mei 2011 @ 21:00
quote:
11s.gif Op dinsdag 24 mei 2011 20:59 schreef GlowMouse het volgende:
Het script werkt niet goed met schrikkeljaren.
is dat zo...hoe dat zo dan?
als je op een schrikkeldag jarig bent?
GlowMousedinsdag 24 mei 2011 @ 21:00
ik zie op regel 49 het getal 365 staan
KomtTijd...dinsdag 24 mei 2011 @ 21:00
quote:
0s.gif Op dinsdag 24 mei 2011 20:56 schreef MrNiles het volgende:

[..]

waarschijnlijk omdat $birthday = $array['E_date'] niet met elkaar overweg kan
Nee, omdat:
goto #222
MrNilesdinsdag 24 mei 2011 @ 21:02
quote:
3s.gif Op dinsdag 24 mei 2011 21:00 schreef KomtTijd... het volgende:

[..]

Nee, omdat:
goto #222
dat zal ongetwijfeld het antwoord zijn..maar voor mij is dat niet de oplossing :)
maw..ik heb iets meer uitleg erbij nodig
KomtTijd...dinsdag 24 mei 2011 @ 21:03
quote:
0s.gif Op dinsdag 24 mei 2011 21:02 schreef MrNiles het volgende:

[..]

dat zal ongetwijfeld het antwoord zijn..maar voor mij is dat niet de oplossing :)
maw..ik heb iets meer uitleg erbij nodig
Heb je het al geprobeerd dan?
MrNilesdinsdag 24 mei 2011 @ 21:04
quote:
0s.gif Op dinsdag 24 mei 2011 21:00 schreef GlowMouse het volgende:
ik zie op regel 49 het getal 365 staan
volgens de omschrijving http://www.pfz.nl/scripts(...)-verjaardag/#file100 zou een schrikkeljaar moeten kloppen
MrNilesdinsdag 24 mei 2011 @ 21:04
quote:
5s.gif Op dinsdag 24 mei 2011 21:03 schreef KomtTijd... het volgende:

[..]

Heb je het al geprobeerd dan?
ik weet niet wat ik moet proberen
Tegandinsdag 24 mei 2011 @ 21:06
quote:
0s.gif Op dinsdag 24 mei 2011 21:00 schreef GlowMouse het volgende:
ik zie op regel 49 het getal 365 staan
Leap year = schrikkeljaar.
KomtTijd...dinsdag 24 mei 2011 @ 21:06
quote:
0s.gif Op dinsdag 24 mei 2011 21:04 schreef MrNiles het volgende:

[..]

ik weet niet wat ik moet proberen
Je moet proberen je functies niet..
goto #222
GlowMousedinsdag 24 mei 2011 @ 21:06
quote:
0s.gif Op dinsdag 24 mei 2011 21:04 schreef MrNiles het volgende:

[..]

volgens de omschrijving http://www.pfz.nl/scripts(...)-verjaardag/#file100 zou een schrikkeljaar moeten kloppen
en waarom zou ik een verhaal van Steven Goos moeten geloven?
GlowMousedinsdag 24 mei 2011 @ 21:06
quote:
0s.gif Op dinsdag 24 mei 2011 21:06 schreef Tegan het volgende:

[..]

Leap year = schrikkeljaar.
en nu?
Tegandinsdag 24 mei 2011 @ 21:07
quote:
0s.gif Op dinsdag 24 mei 2011 21:04 schreef MrNiles het volgende:

[..]

ik weet niet wat ik moet proberen
Ik zal het voor je vertalen.

Definities van functies stop je niet in een (while) loop. Blijkbaar.
Tegandinsdag 24 mei 2011 @ 21:09
quote:
0s.gif Op dinsdag 24 mei 2011 21:06 schreef GlowMouse het volgende:

[..]

en nu?
Hij trekt die schrikkeldagen er al vanaf voor hij verder rekent. Dus dan is 365 goed.
GlowMousedinsdag 24 mei 2011 @ 21:12
quote:
0s.gif Op dinsdag 24 mei 2011 21:09 schreef Tegan het volgende:

[..]

Hij trekt die schrikkeldagen er al vanaf voor hij verder rekent. Dus dan is 365 goed.
Nee, die berekening wordt nooit uitgevoerd voor $days.
Tegandinsdag 24 mei 2011 @ 21:16
quote:
0s.gif Op dinsdag 24 mei 2011 21:12 schreef GlowMouse het volgende:

[..]

Nee, die berekening wordt nooit uitgevoerd voor $days.
IC. Had niet echt verder gelezen enzo :P.
GlowMousedinsdag 24 mei 2011 @ 21:16
Deze functie is veel simpeler, vervangt drie andere functies, en zonder te testen denk ik dat hij altijd goed werkt:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// retrieve age and number of days till next birthday
function agenext($birthday){
    
// format dd-mm-yyyy -> [0] = day, [1] = month, [2] = year
    
$datekey explode("-",$birthday);

    
// basic variables
    
$age date('Y') - $datekey[2] - 1;
    
$born mktime(0,0,0,$datekey[1],$datekey[0],$datekey[2]);
    
$now mktime(0,0,0,date("m"),date("d"),date("Y"));
    
$nextbirthday mktime(0,0,0,$datekey[1],$datekey[0],date("Y"));
    if(
$nextbirthday <= $now) {
        
$age++;
        
$nextbirthday mktime(0,0,0,$datekey[1],$datekey[0],date("Y")+1);
    }

    
// days till next birthday
    
$days intval(($nextbirthday $now) / (60*60*24));

    
$agenext "(".$age.", next birthday in ".$days." day".($days == "":"s").")";
    return 
$agenext;
}
?>
PiRANiAdinsdag 24 mei 2011 @ 21:24
quote:
0s.gif Op dinsdag 24 mei 2011 21:16 schreef GlowMouse het volgende:
Deze functie is veel simpeler, vervangt drie andere functies, en zonder te testen denk ik dat hij altijd goed werkt:

[ code verwijderd ]

Als je wel test werkt hij minder goed?
GlowMousedinsdag 24 mei 2011 @ 21:26
quote:
12s.gif Op dinsdag 24 mei 2011 21:24 schreef PiRANiA het volgende:

[..]

Als je wel test werkt hij minder goed?
Nee, anders schreef ik wel 'slechts zonder te testen werkt hij altijd goed'.
Lightdinsdag 24 mei 2011 @ 22:10
quote:
0s.gif Op dinsdag 24 mei 2011 21:26 schreef GlowMouse het volgende:

[..]

Nee, anders schreef ik wel 'slechts zonder te testen werkt hij altijd goed'.
Dankzij de zomertijd hebben niet alle dagen 24 uur, dat zou nog problemen kunnen opleveren. Ik heb het niet getest, maar 't is wel het eerste waar ik aan denk bij datum-tijdrekenen.
GlowMousedinsdag 24 mei 2011 @ 22:17
intval moet round zijn idd
Tijnwoensdag 25 mei 2011 @ 13:48
Ik zit met een vervelend probleem wat zich specifiek in Firefox 3.6 lijkt voor te doen. Het gaat om deze pagina. In alle andere browsers die ik geprobeerd heb (Chrome 11, Opera 11, Firefox 4, Safari 5, IE7/8/9) gaat het allemaal prima en ziet die pagina er altijd wel okay uit. Maar in Firefox 3.6 gaat het soms mis. Soms ook niet. Dat is het vervelende. Als ik een paar keer op F5 druk, ziet het er meestal wel een keer niet goed uit. Maar in de meeste gevallen gaat het wel goed.

Wanneer het mis gaat en ik de bron bekijk, klopt er ook niks van de HTML-code. Het lijkt wel alsof er iets is wat de output door de war gooit, maar ik kan niet vinden hoe dat dan komt.

De webpagina maakt gebruik van PHP5 en Smarty 3. Normaal gesproken verzamel en compress ik de CSS en JS-files met Google Minify. Dat heb ik nu voor het debuggen echter even uitgezet. Het probleem komt echter net zo weinig / vaak voor, of dat nu aan of uit staat.

Heeft iemand enig idee waar ik naar zou kunnen kijken? De enige hint die ik tot nu toe heb kunnen vinden is dat als ik in PHP ob_gzhandler aanzet, het altijd mis gaat in Firefox 3.6, terwijl het in de andere browsers dan nog steeds (zoals altijd) goed gaat.

Ik begrijp dat ik niet erg concreet kom met een specifieke vraag, maar ik weet echt niet waar ik dit in moet zoeken :?

Dit is hoe het eruit hoort te zien en zoals het er ook meestal uit ziet: ff36_normaal.png

Dit is hoe het er soms ook uitziet ;(
ff36_buggy.png

[ Bericht 12% gewijzigd door Tijn op 25-05-2011 13:56:53 ]
MrNileswoensdag 25 mei 2011 @ 15:37
quote:
0s.gif Op dinsdag 24 mei 2011 21:16 schreef GlowMouse het volgende:
Deze functie is veel simpeler, vervangt drie andere functies, en zonder te testen denk ik dat hij altijd goed werkt:

[ code verwijderd ]

bedankt GlowMouse...je script werkt
en ik snap nu ook wat je eerder bedoelde :) thanx

als ik hier nog even op verder mag gaan...
hoe kan ik nu de volgorde op scherm beinvloeden?
ik wil namelijk dat degene die het eerste jarig is bovenaan in de lijst komt te staan (afhankelijk van de huidige datum)
dit ORDER BY `E_date` DESC werkt dus niet omdat die niet de huidige datum meeneemt
GlowMousewoensdag 25 mei 2011 @ 15:42
@tijn kijk eens welke http-headers er worden meegestuurd; ik vermoed dat het in een cluster draait en er een webserver verkeerd is afgesteld
@mrniles je moet daarvoor in php in je while loop een array opbouwen, die sorteren, en daarna pas echo'en
MrNileswoensdag 25 mei 2011 @ 16:04
quote:
0s.gif Op woensdag 25 mei 2011 15:42 schreef GlowMouse het volgende:
@tijn kijk eens welke http-headers er worden meegestuurd; ik vermoed dat het in een cluster draait en er een webserver verkeerd is afgesteld
@mrniles je moet daarvoor in php in je while loop een array opbouwen, die sorteren, en daarna pas echo'en
$datum_array[] = $array['E_event'];
asort($datum_array);
zoiets :@
maar dan???
GlowMousewoensdag 25 mei 2011 @ 16:08
Misschien wil je de naam ook nog in de array opslaan. En na het sorteren:
quote:
0s.gif Op woensdag 25 mei 2011 15:42 schreef GlowMouse het volgende:
en daarna pas echo'en
Faux.donderdag 26 mei 2011 @ 17:11
Ik heb nu als URL /discussie/topic.php?id=1. Hoe kan ik dit wijzigen naar /discussie/topic/1? :@
remi1986donderdag 26 mei 2011 @ 17:23
quote:
5s.gif Op donderdag 26 mei 2011 17:11 schreef Faux. het volgende:
Ik heb nu als URL /discussie/topic.php?id=1. Hoe kan ik dit wijzigen naar /discussie/topic/1? :@
http://www.mod-rewrite.nl/
Faux.donderdag 26 mei 2011 @ 17:29
quote:
0s.gif Op donderdag 26 mei 2011 17:23 schreef remi1986 het volgende:

[..]

http://www.mod-rewrite.nl/
Dank je :)
Ik heb nu:

1
2
RewriteEngine On
RewriteRule ^topic/(.*)/ topic.php?id=$1

(en dan .htaccess geplaatst in de discussie-map), alleen dat werkt niet. Ziet iemand het probleem?
GlowMousedonderdag 26 mei 2011 @ 17:35
^topic/(.*)/

die laatste backslash?
Faux.donderdag 26 mei 2011 @ 17:37
quote:
0s.gif Op donderdag 26 mei 2011 17:35 schreef GlowMouse het volgende:
^topic/(.*)/

die laatste backslash?
Nee, die is helaas niet het probleem :N
GlowMousedonderdag 26 mei 2011 @ 17:44
mod rewrite heeft gelukkig veel loggingmogelijkheden om fouten te vinden
Faux.donderdag 26 mei 2011 @ 17:45
quote:
6s.gif Op donderdag 26 mei 2011 17:44 schreef GlowMouse het volgende:
mod rewrite heeft gelukkig veel loggingmogelijkheden om fouten te vinden
Waar vind ik die? :@
Intrepiditydonderdag 26 mei 2011 @ 18:34
Wilde gok, maar heeft je hostingboer uberhaupt wel mod_rewrite geinstalleerd? En draait je hoster Apache? Want je rewriteregel ziet er okay uit opzich.
Luchtkokerdonderdag 26 mei 2011 @ 18:34
quote:
11s.gif Op donderdag 26 mei 2011 17:45 schreef Faux. het volgende:

[..]

Waar vind ik die? :@
Apache error logs? Gokje.
Intrepiditydonderdag 26 mei 2011 @ 18:34
quote:
0s.gif Op donderdag 26 mei 2011 17:35 schreef GlowMouse het volgende:
^topic/(.*)/

die laatste backslash?
Dat gaat het probleem niet vormen. Heeft hooguit als nadeel dat een URL zonder een trailing slash een 404 gaat geven. Ik zou 'm weghalen.
Faux.donderdag 26 mei 2011 @ 19:13
quote:
0s.gif Op donderdag 26 mei 2011 18:34 schreef Intrepidity het volgende:
Wilde gok, maar heeft je hostingboer uberhaupt wel mod_rewrite geinstalleerd? En draait je hoster Apache? Want je rewriteregel ziet er okay uit opzich.
Probleem gevonden, host draait geen Apache :')
Sorry voor het verdoen van jullie tijd, ik zal voortaan beter opletten :')
PiRANiAdonderdag 26 mei 2011 @ 19:17
quote:
7s.gif Op donderdag 26 mei 2011 19:13 schreef Faux. het volgende:

[..]

Probleem gevonden, host draait geen Apache :')
Sorry voor het verdoen van jullie tijd, ik zal voortaan beter opletten :')
Da's nog best lastig tegenwoordig, een host zonder apache vinden.
Lightdonderdag 26 mei 2011 @ 22:23
quote:
7s.gif Op donderdag 26 mei 2011 19:17 schreef PiRANiA het volgende:

[..]

Da's nog best lastig tegenwoordig, een host zonder apache vinden.
Tenzij de server op windows draait
henrivodonderdag 26 mei 2011 @ 23:43
quote:
0s.gif Op donderdag 26 mei 2011 22:23 schreef Light het volgende:

[..]

Tenzij de server op windows draait
Apache draait ook gewoon op Windows hoor?
GIvrijdag 27 mei 2011 @ 07:03
quote:
0s.gif Op donderdag 26 mei 2011 23:43 schreef henrivo het volgende:

[..]

Apache draait ook gewoon op Windows hoor?
Maar is niet de meest logische keuze voor een windowshoster. Je zal bij een windowshoster vaker IIS vinden.
Apekoekvrijdag 27 mei 2011 @ 13:19
Iemand een simpele code voor alleen het week nummer te laten zien? Ik ben zelf een n00b met programmeren, dus ik zoek gewoon de simpelste maar doeltreffendste code die er voor is. Deze wil ik samen laten werken met een php plugin van wordpress.
GlowMousevrijdag 27 mei 2011 @ 13:23
echo date('W');
Apekoekvrijdag 27 mei 2011 @ 13:40
quote:
0s.gif Op vrijdag 27 mei 2011 13:23 schreef GlowMouse het volgende:
echo date('W');
Maarja, ik heb geen verstand van programmeren, ik neem aan dat er meer codes omheen zitten? het zal toch niet <php>echo date('W');</php> zijn?
Teganvrijdag 27 mei 2011 @ 13:41
1<?php echo date('W'); ?>
henrivovrijdag 27 mei 2011 @ 13:45
Ik heb even een korte vraag. Ik heb in mijn MySQL table een kolom met verschillende timestamps. Nu wil ik met een query alléén de timestamps ophalen van de huidige dag (vanaf 0:00). Iemand een ideetje? Ik programmeer nog niet zo gek lang in PHP.
Teganvrijdag 27 mei 2011 @ 14:15
Zoiets?

Weet niet of het werkt hoor/de makkelijkste manier is :P.

1
2
3
4
<?php
$time1 
mktime(000,  date('n'), date('j'),  date('Y'));
$time2 mktime(235959,  date('n'), date('j'),  date('Y'));
?>

1SELECT * FROM table WHERE unixtimestamp BETWEEN $time1 AND $time2
GlowMousevrijdag 27 mei 2011 @ 14:21
een timestamp-kolom heeft geen integer-representatie
henrivovrijdag 27 mei 2011 @ 14:30
Nee je hebt het verkeerd begrepen, al begrijp ik je reactie wel :P

Wat die code doet, is timestamps ophalen van de laatste 24 uur, terwijl ik graag timestamps van enkel de huidige dag wil ophalen :)

Maar ik wist niet dat BETWEEN ook een optie was, maargoed zelfs dáár weet ik weinig op eigenlijk :@
Teganvrijdag 27 mei 2011 @ 14:32
quote:
0s.gif Op vrijdag 27 mei 2011 14:30 schreef henrivo het volgende:
Nee je hebt het verkeerd begrepen, al begrijp ik je reactie wel :P

Wat die code doet, is timestamps ophalen van de laatste 24 uur, terwijl ik graag timestamps van enkel de huidige dag wil ophalen :)

Maar ik wist niet dat BETWEEN ook een optie was, maargoed zelfs dáár weet ik weinig op eigenlijk :@
Echt niet.
Teganvrijdag 27 mei 2011 @ 14:33
Hij haalt timestamps op van 0:00:00 vandaag tot 23:59:59 vandaag.
henrivovrijdag 27 mei 2011 @ 14:33
Oeps! Foutje :X
-Datdus-vrijdag 27 mei 2011 @ 14:37
Grrr... ik kom er niet uit..

Ik heb dus de tabellen:

sections
id
section_name

grades
id
user_id
section_id
grade
date

en ik wil het laatst toegevoegde cijfer dus laten zien met de bijbehorende section_name.

Dus bijvoorbeeld:

Nederlands 6.0
Wiskunde 8.5
Economie 7.5

Er kunnen dus meerdere cijfers zijn van economie maar ik wil alleen de laatste laten zien.
GlowMousevrijdag 27 mei 2011 @ 14:38
http://dev.mysql.com/doc/(...)olumn-group-row.html
henrivovrijdag 27 mei 2011 @ 14:40
Ik wil Tegan nog even bedanken, dit was precíes wat ik zocht! :D
GlowMousevrijdag 27 mei 2011 @ 14:41
quote:
14s.gif Op vrijdag 27 mei 2011 14:40 schreef henrivo het volgende:
dit was precíes wat ik zocht! :D
dan is je kolomtype verkeerd
Teganvrijdag 27 mei 2011 @ 14:42
quote:
16s.gif Op vrijdag 27 mei 2011 14:41 schreef GlowMouse het volgende:

[..]

dan is je kolomtype verkeerd
:P .
henrivovrijdag 27 mei 2011 @ 14:43
Zie reactie van Tegan -> :P
Teganvrijdag 27 mei 2011 @ 14:44
Anders moet het blijkbaar zo http://mysql.databases.as(...)-unix-timestamp.html .
GlowMousevrijdag 27 mei 2011 @ 14:46
quote:
0s.gif Op vrijdag 27 mei 2011 14:44 schreef Tegan het volgende:
Anders moet het blijkbaar zo http://mysql.databases.as(...)-unix-timestamp.html .
Nee, je kunt (oa.) BETWEEN $time1 AND $time2 vervangen door BETWEEN FROM_UNIXTIME($time1) AND FROM_UNIXTIME($time2)
Teganvrijdag 27 mei 2011 @ 14:48
Timestamps zijn overigens gewoon opgeslagen als UnixTimestamp...

http://www.w3schools.com/sql/sql_datatypes.asp
-Datdus-vrijdag 27 mei 2011 @ 14:51
Ik moet echt mijn mysql gaan bijspijkeren.
Teganvrijdag 27 mei 2011 @ 14:52
quote:
14s.gif Op vrijdag 27 mei 2011 14:40 schreef henrivo het volgende:
Ik wil Tegan nog even bedanken, dit was precíes wat ik zocht! :D
Graag gedaan trouwens :).
Teganvrijdag 27 mei 2011 @ 14:53
quote:
99s.gif Op vrijdag 27 mei 2011 14:37 schreef -Datdus- het volgende:
Grrr... ik kom er niet uit..

Ik heb dus de tabellen:

sections
id
section_name

grades
id
user_id
section_id
grade
date

en ik wil het laatst toegevoegde cijfer dus laten zien met de bijbehorende section_name.

Dus bijvoorbeeld:

Nederlands 6.0
Wiskunde 8.5
Economie 7.5

Er kunnen dus meerdere cijfers zijn van economie maar ik wil alleen de laatste laten zien.
Waarom zou je nou weer de laatste willen zien ipv het gemiddele ofzo :o ?

Sorteren op waarde en dan LIMIT 1 ofzo?
GlowMousevrijdag 27 mei 2011 @ 14:54
quote:
0s.gif Op vrijdag 27 mei 2011 14:53 schreef Tegan het volgende:

[..]

Waarom zou je nou weer de laatste willen zien ipv het gemiddele ofzo :o ?

Sorteren op waarde en dan LIMIT 1 ofzo?
er is geen groupwise limit
Teganvrijdag 27 mei 2011 @ 14:55
Dan doe je aparte query per vak?

En dan in een loop ofzo?
GlowMousevrijdag 27 mei 2011 @ 14:56
quote:
0s.gif Op vrijdag 27 mei 2011 14:55 schreef Tegan het volgende:
Dan doe je aparte query per vak?

En dan in een loop ofzo?
Lelijk. Ik had de mooie oplossing al gegeven.
Teganvrijdag 27 mei 2011 @ 14:57
Mooi vs. begrijpbaar :P.
GlowMousevrijdag 27 mei 2011 @ 14:59
quote:
0s.gif Op vrijdag 27 mei 2011 14:57 schreef Tegan het volgende:
Mooi vs. begrijpbaar :P.
Die eerste is heel begrijpelijk, die laatste ook als je hem een keer uitvoert met SELECT * en zonder WHERE, en die middelste moet je wat langer naar kijken.
Teganvrijdag 27 mei 2011 @ 15:01
Ik heb het niet gelezen maar baseerde mijn mening enkel hierop.
quote:
99s.gif Op vrijdag 27 mei 2011 14:51 schreef -Datdus- het volgende:
Ik moet echt mijn mysql gaan bijspijkeren.
-Datdus-vrijdag 27 mei 2011 @ 15:03
quote:
0s.gif Op vrijdag 27 mei 2011 14:54 schreef GlowMouse het volgende:

[..]

er is geen groupwise limit
Dit, want dan krijg je alleen één vak terug. :)
Teganvrijdag 27 mei 2011 @ 15:05
Dan moet je die link maar gaan bestuderen :P.