abonnement Unibet Coolblue Bitvavo
pi_100889309


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 :)

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
  donderdag 18 augustus 2011 @ 11:45:09 #2
25889 Sitethief
Fulltime Flapdrol
pi_100889623
@Pakspul

Op die manier :D, misschien is dat een optie in de toekomst, maar ik wil het me nu nog niet te moeilijk maken.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht >:)
pi_100889884
Zeker een aanrader om eens na te kijken, want het past perfect in het MVC model: http://nl.wikipedia.org/wiki/Model-view-controller-model
  donderdag 18 augustus 2011 @ 12:02:37 #4
4159 GI
Nee ik heet geen JOE
pi_100890298
Wat is de meerwaarde eraan om iedere keer zelf de db classe aan te moeten roepen met geinstance ?

Ik heb een $db classe die ik kan benaderen door heel mijn code, wat ik wel in iedere classe moet doen is in de __construct zorgen dat $this->db een referentie is naar de $db.

Hierdoor kan ik overal (hoe diep ik ook zit) met $this->db->runSQL("SQL_SHORT",$parameter1,$parameter2) de query die ik wil uitvoeren...
pi_100890474
quote:
3s.gif Op donderdag 18 augustus 2011 12:02 schreef GI het volgende:
Wat is de meerwaarde eraan om iedere keer zelf de db classe aan te moeten roepen met geinstance ?

Ik heb een $db classe die ik kan benaderen door heel mijn code, wat ik wel in iedere classe moet doen is in de __construct zorgen dat $this->db een referentie is naar de $db.

Hierdoor kan ik overal (hoe diep ik ook zit) met $this->db->runSQL("SQL_SHORT",$parameter1,$parameter2) de query die ik wil uitvoeren...
Je doet het alleen op de plaatsen waar het nodig is. Sommige classes maken geen gebruik van de database, maar bij je voorbeeld geef je toch je database door en wordt er toch geheugen in genomen.

Door gebruik te maken van Singleton patroon kun je op de plaats waar je wil je database oproepen door $db = DataBase::GetInstance(); aan te roepen. De hele database is opgeslagen in de $_Instance variabel in de class en deze wordt tijdelijk doorgegeven aan de variabel.

Conclusie: je hoeft niet lastig steeds je database door te geven.
  donderdag 18 augustus 2011 @ 12:12:11 #6
4159 GI
Nee ik heet geen JOE
pi_100890635
quote:
0s.gif Op donderdag 18 augustus 2011 12:08 schreef Pakspul het volgende:

[..]

Je doet het alleen op de plaatsen waar het nodig is. Sommige classes maken geen gebruik van de database, maar bij je voorbeeld geef je toch je database door en wordt er toch geheugen in genomen.

Door gebruik te maken van Singleton patroon kun je op de plaats waar je wil je database oproepen door $db = DataBase::GetInstance(); aan te roepen. De hele database is opgeslagen in de $_Instance variabel in de class en deze wordt tijdelijk doorgegeven aan de variabel.

Conclusie: je hoeft niet lastig steeds je database door te geven.
Dat snap ik. Ik heb alleen geen classes waar de database niet in gebruikt wordt dus het heeft voor mij weinig tot geen meerwaarde. Maar is het niet zo dat ik met

1
2
3
4
5
6
7
8
<?php

function __construct(){
global 
$db;
$this->db=&$db
}

?>
Ook geen extra geheugen in gebruik neem en ik dus "eenmalig in een classe in de __construct opnemen" tegenover "iedere functie die hem nodig heeft een :getinstance() uit laten voeren" als gevolg heb ?
pi_100890875
De getinstance functie kijkt alleen maar of er een instance van is, anders zorgt hij er voor dat hij deze aanroept. Mocht die al bestaan dan geeft hij hem terug.

Global vind ik geen nette oplossing. Het is door PHP gemaakt om het programmeren makkelijker te maken. Daarom heb ik voor Singleton gekozen.
  donderdag 18 augustus 2011 @ 13:54:21 #8
4159 GI
Nee ik heet geen JOE
pi_100893250
quote:
0s.gif Op donderdag 18 augustus 2011 12:18 schreef Pakspul het volgende:
De getinstance functie kijkt alleen maar of er een instance van is, anders zorgt hij er voor dat hij deze aanroept. Mocht die al bestaan dan geeft hij hem terug.

Global vind ik geen nette oplossing. Het is door PHP gemaakt om het programmeren makkelijker te maken. Daarom heb ik voor Singleton gekozen.
Ja, dat snap ik, maar dat moet ik dan iedere keer doen dat ik de database aan wil spreken volgens jouw constructie. Dat vind ik niet echt een tijdbesparende oplossing eigenlijk.

Ik snap de use van de singleton wel, maar ik zou als ik hem zo gebruiken hem toch in mijn __construct aanroepen denk ik...
pi_100895046
quote:
3s.gif Op donderdag 18 augustus 2011 13:54 schreef GI het volgende:

[..]

Ja, dat snap ik, maar dat moet ik dan iedere keer doen dat ik de database aan wil spreken volgens jouw constructie. Dat vind ik niet echt een tijdbesparende oplossing eigenlijk.

Ik snap de use van de singleton wel, maar ik zou als ik hem zo gebruiken hem toch in mijn __construct aanroepen denk ik...
Tijd besparing valt echt reuze mee, je hebt het over een paar miljardste van een seconde wat ik zo heb getest :P
  donderdag 18 augustus 2011 @ 14:50:57 #10
4159 GI
Nee ik heet geen JOE
pi_100895662
quote:
0s.gif Op donderdag 18 augustus 2011 14:35 schreef Pakspul het volgende:

[..]

Tijd besparing valt echt reuze mee, je hebt het over een paar miljardste van een seconde wat ik zo heb getest :P
Ik had het vooral over ontwikkeltijdbesparing ;)
pi_100896084
quote:
3s.gif Op donderdag 18 augustus 2011 14:50 schreef GI het volgende:

[..]

Ik had het vooral over ontwikkeltijdbesparing ;)
Ik ontwikkel mijzelf om dit soort dingen te proberen :P
  vrijdag 19 augustus 2011 @ 11:24:12 #12
25889 Sitethief
Fulltime Flapdrol
pi_100931935
als in $_GET['test'] ÄÖ zit, dan maakt htmlentities($data,ENT_QUOTES,UTF-8) er Ã�Ã� van, ipv ÄÖ, hoe kan ik er nou voor zorgen dat dit wél goed gaat?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_100932008
Probeer eens wat met utf8_decode en utf8_encode te spelen over die GET-variabele :)
  vrijdag 19 augustus 2011 @ 11:29:59 #14
91039 mstx
2x1/2 = 1/2 x 1/2
pi_100932103
quote:
0s.gif Op vrijdag 19 augustus 2011 11:24 schreef Sitethief het volgende:
als in $_GET['test'] ÄÖ zit, dan maakt htmlentities($data,ENT_QUOTES,UTF-8) er Ã�Ã� van, ipv ÄÖ, hoe kan ik er nou voor zorgen dat dit wél goed gaat?
Probeer eens htmlentities($data,ENT_QUOTES,"UTF-8")
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_100932175
quote:
0s.gif Op vrijdag 19 augustus 2011 11:24 schreef Sitethief het volgende:
als in $_GET['test'] ÄÖ zit, dan maakt htmlentities($data,ENT_QUOTES,UTF-8) er Ã�Ã� van, ipv ÄÖ, hoe kan ik er nou voor zorgen dat dit wél goed gaat?
Is de metatag: <meta http-equiv="Content-Type" CONTENT="text/html; charset=UTF-8" /> aanwezig?

Dit kan eventueel ook: header("Content-type: text/html; charset=utf-8");
  vrijdag 19 augustus 2011 @ 11:32:21 #16
25889 Sitethief
Fulltime Flapdrol
pi_100932203
dank je mstx dat was idd het probleem :D . Komt waarschijnlijk omdat ENT_QUOTES zonder moet
:P .
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 22 augustus 2011 @ 10:37:47 #17
25889 Sitethief
Fulltime Flapdrol
pi_101032969
Waarom doet dit
1
2
3
4
5
6
<?php

$smt 
"SELECT * FROM products WHERE `ProductName` LIKE :name ";
$this->prepared->execute($smt);

?>
het wel, maar dit
$smt = "SELECT * FROM products WHERE `ProductName` LIKE %:name% ";
$this->prepared->execute($smt);
[/php]
niet?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 22 augustus 2011 @ 10:39:50 #18
25889 Sitethief
Fulltime Flapdrol
pi_101033007
Sorry voor de tag die verkeerde gaat, kan om een of andere reden vanaf werk geen posts editten. (alle Javascript op FOK is hier kaduuk)
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 22 augustus 2011 @ 10:40:29 #19
75592 GlowMouse
l'état, c'est moi
pi_101033021
Als hij nu :name in zou vullen, ontbreken de ' om de %. Volgens mij kun je dit alleen aanpakken door de % in de string waarmee je :name vult te stoppen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 22 augustus 2011 @ 10:41:42 #20
25889 Sitethief
Fulltime Flapdrol
pi_101033050
Ah ja, dat werkt. Stom dat ik daar niet aan gedacht heb. Dank je :) .
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101033842
quote:
0s.gif Op maandag 22 augustus 2011 10:39 schreef Sitethief het volgende:
Sorry voor de tag die verkeerde gaat, kan om een of andere reden vanaf werk geen posts editten. (alle Javascript op FOK is hier kaduuk)
op je werk worden ads geblokkeerd? :+
  maandag 22 augustus 2011 @ 11:15:50 #22
25889 Sitethief
Fulltime Flapdrol
pi_101033961
Yup, :( .
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101040498
Wat is een handige manier om veel files (foto's) te uploaden voor een foto-album?
En kan dat direct in een database?
Ik wil ze natuurlijk niet 1-voor-1 allemaal aanklikken.
Liever niet met ftp. Graag zou ik het foto album wat meer automatiseren, zodat anderen kunnen inloggen en een fotoalbum kunnen aanmaken.
Dus geen ftp, mapjes aanmaken op de server..dat soort dingen
  maandag 22 augustus 2011 @ 14:48:26 #24
302853 themole
graaft totaal door.
pi_101040575
quote:
0s.gif Op maandag 22 augustus 2011 14:46 schreef MrNiles het volgende:
Wat is een handige manier om veel files (foto's) te uploaden voor een foto-album?
En kan dat direct in een database?
Ik wil ze natuurlijk niet 1-voor-1 allemaal aanklikken.
Liever niet met ftp. Graag zou ik het foto album wat meer automatiseren, zodat anderen kunnen inloggen en een fotoalbum kunnen aanmaken.
Dus geen ftp, mapjes aanmaken op de server..dat soort dingen
Eh die foto's in de database opslaan is niet heel erg handig en snel. Je kan je foto's denk ik beter op de server opslaan en in de database een url naar het plaatje stoppen, mocht je nog meer informatie bij het plaatje willen opslaan.

Dus een tabel met:

Id | Beschrijving | URL | andere zinnige info die je wilt opslaan.

En snel veel foto's uploaden is meestal wel ftp. :P
Niet altijd serieus
pi_101040758
quote:
14s.gif Op maandag 22 augustus 2011 14:48 schreef themole het volgende:

[..]

Eh die foto's in de database opslaan is niet heel erg handig en snel. Je kan je foto's denk ik beter op de server opslaan en in de database een url naar het plaatje stoppen, mocht je nog meer informatie bij het plaatje willen opslaan.

Dus een tabel met:

Id | Beschrijving | URL | andere zinnige info die je wilt opslaan.

En snel veel foto's uploaden is meestal wel ftp. :P
en een zipje uploaden met foto's en deze laten unzippen op de server?
pi_101040858
quote:
0s.gif Op maandag 22 augustus 2011 14:53 schreef MrNiles het volgende:

[..]

en een zipje uploaden met foto's en deze laten unzippen op de server?
Jep, dat werkt prima, ook regelmatig ingebouwd. Het is natuurlijk niet erg laagdrempelig want niet iedere gebruiker weet hoe te zippen.
pi_101040908
quote:
0s.gif Op maandag 22 augustus 2011 14:56 schreef Intrepidity het volgende:

[..]

Jep, dat werkt prima, ook regelmatig ingebouwd. Het is natuurlijk niet erg laagdrempelig want niet iedere gebruiker weet hoe te zippen.
maar degene die ik het wil laten doen die is wel zo handig :)

welke functie is dat op de server want niet alles is enabled bij mij hosting
pi_101040976
quote:
0s.gif Op maandag 22 augustus 2011 14:57 schreef MrNiles het volgende:

[..]

maar degene die ik het wil laten doen die is wel zo handig :)

welke functie is dat op de server want niet alles is enabled bij mij hosting
http://www.php.net/manual/en/zip.requirements.php
pi_101040991
quote:
0s.gif Op maandag 22 augustus 2011 14:53 schreef MrNiles het volgende:

[..]

en een zipje uploaden met foto's en deze laten unzippen op de server?
Kan, maar als de bestanden groter worden, is dat niet handig meer. Het http-protocol is niet echt geschikt voor het uploaden van bestanden.
  maandag 22 augustus 2011 @ 15:01:36 #30
75592 GlowMouse
l'état, c'est moi
pi_101041046
quote:
0s.gif Op maandag 22 augustus 2011 15:00 schreef Light het volgende:

[..]

Kan, maar als de bestanden groter worden, is dat niet handig meer. Het http-protocol is niet echt geschikt voor het uploaden van bestanden.
Maar het werkt wel goed, zie youtube, flickr, picasa, etc.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 22 augustus 2011 @ 15:08:22 #31
58834 Catbert
The evil HR Director.
pi_101041300
quote:
0s.gif Op maandag 22 augustus 2011 15:00 schreef Light het volgende:
Kan, maar als de bestanden groter worden, is dat niet handig meer. Het http-protocol is niet echt geschikt voor het uploaden van bestanden.
Wat een onzin.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101041679
quote:
0s.gif Op maandag 22 augustus 2011 15:01 schreef GlowMouse het volgende:

[..]

Maar het werkt wel goed, zie youtube, flickr, picasa, etc.
Die gebruiken dan ook geen plain html file upload :) Als ze dat wel doen, zouden ze geen progress bar kunnen laten zien :)
pi_101041751
quote:
0s.gif Op maandag 22 augustus 2011 15:00 schreef Light het volgende:

[..]

Kan, maar als de bestanden groter worden, is dat niet handig meer. Het http-protocol is niet echt geschikt voor het uploaden van bestanden.
Wat is groot..
alle foto's worden al geresized voordat ze worden geupload
10MB max denk ik

enne..met zlib zou dat moeten kunnen?
  maandag 22 augustus 2011 @ 15:35:58 #34
25889 Sitethief
Fulltime Flapdrol
pi_101042260
Waarom mag dit:
1
2
3
4
5
6
<?php

SELECT 
`ProductName`
FROM `products`

?>
wel van MySQL, waar je de backticks bij ProductName weg mag laten, maar met net zo goed werkt.
Maar dit
SELECT `products.ProductName`
FROM `products`
[/php]
Mag niet, maar moet zo:
SELECT products.ProductName
FROM `products`
[/php]
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 22 augustus 2011 @ 15:36:11 #35
25889 Sitethief
Fulltime Flapdrol
pi_101042268
grr doe ik het weer.....
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 22 augustus 2011 @ 15:42:51 #36
58834 Catbert
The evil HR Director.
pi_101042521
Je kunt een post ook gewoon editen he? Ik vermoed dat `products.ProductName` niet mag omdat het uit 2 delen bestaat, tabel en kolom. Vermoed dat `products`.`ProductName` wel mag. Maar ik doe al jaren niks meer met MySQL.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  maandag 22 augustus 2011 @ 15:45:19 #37
25889 Sitethief
Fulltime Flapdrol
pi_101042596
Niet als je werkgever adds op FOK blokkeert, waardoor alle Javascript functies op FOK niet werken, inclusief, quote, edit etc.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101042602
Zo geef je aan dat je de kolom "products.ProductName" uit de tabel "products" wilt selecteren:
1
2
SELECT `products.ProductName`
FROM `products`

Zo geef je aan dat je kolom "ProductName" uit de tabel "products" wilt selecteren:
1
2
SELECT `products`.`ProductName`
FROM `products`
pi_101042607
quote:
0s.gif Op maandag 22 augustus 2011 15:45 schreef Sitethief het volgende:
Niet als je werkgever adds op FOK blokkeert, waardoor alle Javascript functies op FOK niet werken, inclusief, quote, edit etc.
Andere werkgever zoeken :+
  maandag 22 augustus 2011 @ 15:52:54 #40
25889 Sitethief
Fulltime Flapdrol
pi_101042819
Dank je Light, klinkt eigenlijk ook best logisch :D
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 22 augustus 2011 @ 16:20:52 #41
58834 Catbert
The evil HR Director.
pi_101043882
quote:
0s.gif Op maandag 22 augustus 2011 15:45 schreef Light het volgende:
Andere werkgever zoeken :+
Als je continue Fokt lost dat probleem zichzelf wel op ;)
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  maandag 22 augustus 2011 @ 16:26:52 #42
63192 ursel
"Het Is Hier Fantastisch!
pi_101044103
quote:
0s.gif Op maandag 22 augustus 2011 15:52 schreef Sitethief het volgende:
Dank je Light, klinkt eigenlijk ook best logisch :D
Op welke van de 2 posts reageer je nu? :')
  maandag 22 augustus 2011 @ 16:33:44 #43
25889 Sitethief
Fulltime Flapdrol
pi_101044373
@ursel, de eerste ;) .
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101048709
quote:
0s.gif Op maandag 22 augustus 2011 15:45 schreef Sitethief het volgende:
Niet als je werkgever adds op FOK blokkeert, waardoor alle Javascript functies op FOK niet werken, inclusief, quote, edit etc.
Niet in de tijd van je baas FOK!ken? :D
Of toch du vader?
pi_101129241
Weer een htaccess vraagje voor de experts; hoe kan ik er voor zorgen dat mijn 'dynamiche' subdomeinen die beginnen met www.subdomein.domein.nl terecht (geredirected worden naar) komen op subdomein.domein.nl?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  woensdag 24 augustus 2011 @ 15:29:40 #46
75592 GlowMouse
l'état, c'est moi
pi_101129559
Zoiets? Met %1 wijs je terug naar je RewriteCond

RewriteCond %{HTTP_HOST} ^(.*)\.www\.(.*)$
RewriteRule .* http://%1.%2%{REQUEST_URI} [R=301,L]
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101146487
Ik heb even jullie hulp nodig, kom er zelf echt niet uit.
Ik krijg via een array data binnen met de volgende structuur:
1username (Voornaam Achternaam)

Nu wil ik dat PHP het eerste stukje pakt, dus de 'username'. Nu heb ik het met preg_replace voor elkaar gekregen om 'Voornaam Achternaam' te pakken, maar niet 'username'.

Iemand van jullie die de oplossing weet? :@
  woensdag 24 augustus 2011 @ 22:16:16 #48
75592 GlowMouse
l'état, c'est moi
pi_101146849
Kun je die array niet beter indelen? Je kunt gewoon alles pakken tot de eerste spatie, met strpos en substr.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  woensdag 24 augustus 2011 @ 23:30:40 #49
12221 Tijn
Powered by MS Paint
pi_101150988
quote:
0s.gif Op woensdag 24 augustus 2011 22:16 schreef GlowMouse het volgende:
Kun je die array niet beter indelen? Je kunt gewoon alles pakken tot de eerste spatie, met strpos en substr.
Tenzij de usernames natuurlijk spaties kunnen bevatten, zoals hier op Fok! :D
  FOK!-Schrikkelbaas woensdag 24 augustus 2011 @ 23:46:54 #50
862 Arcee
Look closer
pi_101151815
quote:
6s.gif Op woensdag 24 augustus 2011 23:30 schreef Tijn het volgende:
Tenzij de usernames natuurlijk spaties kunnen bevatten, zoals hier op Fok! :D
Dan doe je tot positie haakje minus 1. :s) (Hoewel... Jaap ( of Dirk?) :+)

Zo:
1substr($var, 0, strpos($var, '(')-1)
Never in the entire history of calming down did anyone ever calm down after being told to calm down.
  woensdag 24 augustus 2011 @ 23:54:36 #51
12221 Tijn
Powered by MS Paint
pi_101152168
Ik wist niet dat je zo'n PHP-held was, Arcee _O_
  donderdag 25 augustus 2011 @ 00:15:09 #52
75592 GlowMouse
l'état, c'est moi
pi_101153066
dan is strpos($var, ' (') foutongevoeliger
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101153179
quote:
0s.gif Op woensdag 24 augustus 2011 22:16 schreef GlowMouse het volgende:
Kun je die array niet beter indelen? Je kunt gewoon alles pakken tot de eerste spatie, met strpos en substr.
Array kan ik zelf niet veel aan doen, wordt geleverd vanuit Twitter. Maar ik ga even kijken naar je strpos/substr idee. Alvast bedankt! :)
quote:
6s.gif Op woensdag 24 augustus 2011 23:30 schreef Tijn het volgende:

[..]

Tenzij de usernames natuurlijk spaties kunnen bevatten, zoals hier op Fok! :D
Twitter kent (gelukkig) geen spaties in de usernames, dus dat zou het probleem niet moeten zijn.
Ik ga het nu proberen, zal laten weten hoe het gelukt is :)
  donderdag 25 augustus 2011 @ 00:18:38 #54
75592 GlowMouse
l'état, c'est moi
pi_101153196
welke twitter api gebruik je dan?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 25 augustus 2011 @ 00:19:31 #55
12221 Tijn
Powered by MS Paint
pi_101153224
quote:
0s.gif Op donderdag 25 augustus 2011 00:18 schreef dirkjo het volgende:

[..]

Twitter kent (gelukkig) geen spaties in de usernames, dus dat zou het probleem niet moeten zijn.
Ik ga het nu proberen, zal laten weten hoe het gelukt is :)
Dan kun je ook nog exploden op spatie. Het eerste element van de array die daaruit komt, is je username.
pi_101153509
quote:
0s.gif Op donderdag 25 augustus 2011 00:18 schreef GlowMouse het volgende:
welke twitter api gebruik je dan?
Oke ik ben blind, ik dacht dat de enige manier van zoeken op twitter de volgende was:
1http://search.twitter.com/search.atom?lang=en&q=fok!

Nu heb ik alleen de GET Search volledig over het hoofd gezien :@

Nu ga ik wel eerst proberen om het via de eerste methode te doen, deze heeft namelijk geen rate limit. Jullie horen nog wel wat het uiteindelijk is geworden, ga er nu mee aan de slag
pi_101154118
De explode manier werkt, alleen botste ik op het probleem dat de curl optie maar iets van 15 mensen geeft.

Ga dus toch gebruik maken van de GET Search. In ieder geval bedankt :)
  donderdag 25 augustus 2011 @ 00:48:48 #58
75592 GlowMouse
l'état, c'est moi
pi_101154356
Het enige wat je moet doen, is atom door json vervangen. En met rpp en page kun je pagineren.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101158693
Het is (zo goed als) af. Voor het eerst dat ik volledig zelf zo'n 'lasstig' script heb geschreven :9
Thanks guys :)
pi_101171598
1
2
3
4
5
6
7
8
9
10
11
<?php

<dl>
        <
dt><label>Afgeleverd op:</label></dt>
    <
dd>
        
Woensdag 24/08/2011
        op 14
:45
    
</dd>
</
dl>

?>

Vraagje hoe kan ik deze code van de pagina lenen? ik weet de pagina maar nu is de vraag hoe ik alles tussen <dd> en </dd> eraf kan halen met identifier: <dt><label>Afgeleverd op:</label></dt>

Probleem is dat ik de pagina niet zelf beheer waarop dit staat waardoor simpele preg _matches niet werken :o. en ik snap nog niet hoe ik het zo van een andere pagina kan halen.

[ Bericht 3% gewijzigd door cablegunmaster op 25-08-2011 15:08:48 ]
Redacted
  donderdag 25 augustus 2011 @ 15:30:15 #61
25889 Sitethief
Fulltime Flapdrol
pi_101172719
quote:
17s.gif Op donderdag 25 augustus 2011 14:59 schreef cablegunmaster het volgende:

[ code verwijderd ]

Vraagje hoe kan ik deze code van de pagina lenen? ik weet de pagina maar nu is de vraag hoe ik alles tussen <dd> en </dd> eraf kan halen met identifier: <dt><label>Afgeleverd op:</label></dt>

Probleem is dat ik de pagina niet zelf beheer waarop dit staat waardoor simpele preg _matches niet werken :o. en ik snap nog niet hoe ik het zo van een andere pagina kan halen.
Pak de source code en gooi deze door een custom geschreven parser?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101172764
quote:
0s.gif Op donderdag 25 augustus 2011 15:30 schreef Sitethief het volgende:

[..]

Pak de source code en gooi deze door een custom geschreven parser?
probleem 1 parser? :P ergens een begin eraan :)?
hoe begin ik hieraan ^^?
Redacted
pi_101172795
quote:
17s.gif Op donderdag 25 augustus 2011 14:59 schreef cablegunmaster het volgende:

[ code verwijderd ]

Vraagje hoe kan ik deze code van de pagina lenen? ik weet de pagina maar nu is de vraag hoe ik alles tussen <dd> en </dd> eraf kan halen met identifier: <dt><label>Afgeleverd op:</label></dt>

Probleem is dat ik de pagina niet zelf beheer waarop dit staat waardoor simpele preg _matches niet werken :o. en ik snap nog niet hoe ik het zo van een andere pagina kan halen.
DOM standaard in PHP kun je hier heel mooi voor gebruiken, dan pak je gewoon de waarde van bepaalde elementen.

http://www.php.net/manual/en/book.dom.php

Google even naar wat voorbeelden en je kunt het zo toepassen.,
  donderdag 25 augustus 2011 @ 15:37:45 #64
91039 mstx
2x1/2 = 1/2 x 1/2
pi_101172980
quote:
0s.gif Op donderdag 25 augustus 2011 15:32 schreef Pakspul het volgende:

[..]

DOM standaard in PHP kun je hier heel mooi voor gebruiken, dan pak je gewoon de waarde van bepaalde elementen.

http://www.php.net/manual/en/book.dom.php

Google even naar wat voorbeelden en je kunt het zo toepassen.,
Ik gebruik deze: http://simplehtmldom.sourceforge.net/
Werkt super simpel.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  donderdag 25 augustus 2011 @ 16:28:56 #65
25889 Sitethief
Fulltime Flapdrol
pi_101174751
quote:
0s.gif Op donderdag 25 augustus 2011 15:37 schreef mstx het volgende:

[..]

Ik gebruik deze: http://simplehtmldom.sourceforge.net/
Werkt super simpel.
Oeh vet handig, thanks voor de link. Alleen jammer dat het JQuery style is en niet MooTools, maar dan nog.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 25 augustus 2011 @ 16:35:38 #66
91039 mstx
2x1/2 = 1/2 x 1/2
pi_101175013
quote:
0s.gif Op donderdag 25 augustus 2011 16:28 schreef Sitethief het volgende:

[..]

Oeh vet handig, thanks voor de link. Alleen jammer dat het JQuery style is en niet MooTools, maar dan nog.
De Mootools $$() functie werkt (bijna) hetzelfde als de JQuery $() functie. Dus in dit geval zit er geen verschil tussen "JQuery style" en "Mootools style".
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  donderdag 25 augustus 2011 @ 16:56:33 #67
25889 Sitethief
Fulltime Flapdrol
pi_101175731
Kijk, dat wist ik dan weer niet :). Mooi ^O^ .
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101223159
Ik heb een probleem.

Ik heb een online applicatie.

Deze applicatie zorgt ervoor dat een andere applicatie aangeroepen wordt.
Deze draait op de server en genereerd een PDF bestand.

De site moet checken of de PDF gegenereerd is. Zodra dit klaar is moet die automatisch geopend worden. Dat PDF bestand genereren duurt ongeveer 45 seconden. Ik wil gedurende 90 seconden elke vijf seconden een query op een database uitvoeren, want daaruit kan ik halen of de pdf klaar is.

Als die klaar is, moet hij gelijk geopend worden. Als hij na 90 seconden nog niet klaar is moet er een time-out error komen.

Hoe moet ik dit in hemelsnaam doen.
Enschede, onze stad! ons domein!
pi_101223276
quote:
0s.gif Op vrijdag 26 augustus 2011 17:25 schreef Lamzak_ het volgende:
Ik heb een probleem.

Ik heb een online applicatie.

Deze applicatie zorgt ervoor dat een andere applicatie aangeroepen wordt.
Deze draait op de server en genereerd een PDF bestand.

De site moet checken of de PDF gegenereerd is. Zodra dit klaar is moet die automatisch geopend worden. Dat PDF bestand genereren duurt ongeveer 45 seconden. Ik wil gedurende 90 seconden elke vijf seconden een query op een database uitvoeren, want daaruit kan ik halen of de pdf klaar is.

Als die klaar is, moet hij gelijk geopend worden. Als hij na 90 seconden nog niet klaar is moet er een time-out error komen.

Hoe moet ik dit in hemelsnaam doen.
roep applicatie op server aan en retouneer aan de gebruiker een"even wachten" pagina waar je met Jquery elke 5 seconden een check doet op de database?

geen idee of het de meest efficiente manier is, maar denk ik wel de meest gebruikersvriendelijke manier :P
pi_101223279
quote:
0s.gif Op vrijdag 26 augustus 2011 17:25 schreef Lamzak_ het volgende:
Ik heb een probleem.

Ik heb een online applicatie.

Deze applicatie zorgt ervoor dat een andere applicatie aangeroepen wordt.
Deze draait op de server en genereerd een PDF bestand.

De site moet checken of de PDF gegenereerd is. Zodra dit klaar is moet die automatisch geopend worden. Dat PDF bestand genereren duurt ongeveer 45 seconden. Ik wil gedurende 90 seconden elke vijf seconden een query op een database uitvoeren, want daaruit kan ik halen of de pdf klaar is.

Als die klaar is, moet hij gelijk geopend worden. Als hij na 90 seconden nog niet klaar is moet er een time-out error komen.

Hoe moet ik dit in hemelsnaam doen.
Heb je ervaring met PHP of is het stellen van deze vraag in dit topic een gokje? Wat is trouwens het doel dat je wilt bereiken met het openen van de PDF als hij klaar is?
pi_101223490
ik krijg de hele tijd met een count query de verkeerde waarde's eruit. nu vraag ik me af of dit aan de join kan liggen? Ik krijg gekke waarde's als 7- 15, terwijl er maar 3 rijen aan de query voldoen als ik gewoon alle velden oproep met een *.
Redacted
pi_101223527
quote:
17s.gif Op vrijdag 26 augustus 2011 17:39 schreef cablegunmaster het volgende:
ik krijg de hele tijd met een count query de verkeerde waarde's eruit. nu vraag ik me af of dit aan de join kan liggen? Ik krijg gekke waarde's als 7- 15, terwijl er maar 3 rijen aan de query voldoen als ik gewoon alle velden oproep met een *.
JOIN verkeerd? Vooral handig dat je de query niet toont dan kunnen we je heel goed helpen :')
pi_101223580
quote:
0s.gif Op vrijdag 26 augustus 2011 17:40 schreef Pakspul het volgende:

[..]

JOIN verkeerd? Vooral handig dat je de query niet toont dan kunnen we je heel goed helpen :')
nah de join is goed :) , kwam erop neer dat hij de count uitvoert op de tabel waar FROM staat.
zit de hele tijd in phpmyadmin uit te testen. query is niet belangrijk.
count negeert de left join. :{

1
2
3
4
5
6
SELECT *
FROM product_prijzen
LEFT JOIN levering_datum
ON product_prijzen.lever_id = levering_datum.id
WHERE product_id = '45'
group by levering
Dit wil hij gewoon doen. maar zodra ik er een count bij zet count hij alleen
waar product_id = 45 en negeert hij de hele join. dat is het geval.

Resultaat is 37 terwijl er maar 3 regels staan als ik de hele left join weghaal geeft hij alle 37 regels weer die ik niet wil hebben maar alleen de join count wil ik hebben.

dus probeerde ik te specificeren met
1
2
3
4
5
SELECT count( levering_datum.levering )
FROM product_prijzen
LEFT JOIN levering_datum ON product_prijzen.lever_id = levering_datum.id
WHERE product_id = '45'
GROUP BY levering

krijg ik er 7, 15,15 uit wat eigenlijk hetzelfde is.

[ Bericht 14% gewijzigd door cablegunmaster op 26-08-2011 17:52:43 ]
Redacted
pi_101223666
Vooral geen code posten, waarom zou je het makkelijker maken dan nodig is?
pi_101224069
quote:
17s.gif Op vrijdag 26 augustus 2011 17:41 schreef cablegunmaster het volgende:

[..]

nah de join is goed :) , kwam erop neer dat hij de count uitvoert op de tabel waar FROM staat.
zit de hele tijd in phpmyadmin uit te testen. query is niet belangrijk.
count negeert de left join. :{
[ code verwijderd ]

Dit wil hij gewoon doen. maar zodra ik er een count bij zet count hij alleen
waar product_id = 45 en negeert hij de hele join. dat is het geval.

Resultaat is 37 terwijl er maar 3 regels staan als ik de hele left join weghaal geeft hij alle 37 regels weer die ik niet wil hebben maar alleen de join count wil ik hebben.

dus probeerde ik te specificeren met
[ code verwijderd ]

krijg ik er 7, 15,15 uit wat eigenlijk hetzelfde is.
En als je een right join doet ipv een left join?
pi_101224136
quote:
0s.gif Op vrijdag 26 augustus 2011 17:56 schreef The_Terminator het volgende:

[..]

En als je een right join doet ipv een left join?
Dan krijg ik het hetzelfde eruit het probleem is als volgt.

ik wil een count uitvoeren; alleen door de group by krijg ik heel mooi 3 regels terug.
Alleen de count negeert de group by en telt alle regels bij elkaar.

Zal ik het anders moeten ombouwen tot een sub-query, ach kan het altijd proberen =).

Fixed met subquery , voor interesse alsnog een antwoord weten of dit kan met een join :) .

[ Bericht 2% gewijzigd door cablegunmaster op 26-08-2011 18:12:10 ]
Redacted
pi_101224672
quote:
11s.gif Op vrijdag 26 augustus 2011 17:58 schreef cablegunmaster het volgende:

[..]


Fixed met subquery , voor interesse alsnog een antwoord weten of dit kan met een join :) .
Ik was er net achter idd, subquery met enkel een COUNT(*) geeft het aantal terug van de query die erbinnen zit.
pi_101226617
quote:
0s.gif Op vrijdag 26 augustus 2011 17:56 schreef The_Terminator het volgende:

[..]

En als je een right join doet ipv een left join?
Dan schrijf je slecht onderhoudbare code.
pi_101230342
quote:
0s.gif Op vrijdag 26 augustus 2011 19:12 schreef Light het volgende:

[..]

Dan schrijf je slecht onderhoudbare code.
True, echter was het maar een probeersel wat uiteindelijk niet bleek te werken. Ik heb namelijk een keer hetzelfde probleem gehad en wist niet meer hoe ik het had opgelost. Mocht het wel werken dan is de boel altijd nog aan te passen zodat het wel duidelijk en goed te onderhouden is.

Als ik dingen ga testen dan is het in den beginne sowieso nooit de meest elegante code, ik pas het dan aan zodra het naar wens functioneerd.
  vrijdag 26 augustus 2011 @ 21:11:54 #80
75592 GlowMouse
l'état, c'est moi
pi_101231697
quote:
0s.gif Op vrijdag 26 augustus 2011 19:12 schreef Light het volgende:

[..]

Dan schrijf je slecht onderhoudbare code.
wie heeft je dat verteld?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101232228
quote:
10s.gif Op vrijdag 26 augustus 2011 21:11 schreef GlowMouse het volgende:

[..]

wie heeft je dat verteld?
_O-
Redacted
pi_101236123
quote:
10s.gif Op vrijdag 26 augustus 2011 21:11 schreef GlowMouse het volgende:

[..]

wie heeft je dat verteld?
Ik zelf :) Maar da's gewoon simpel beredeneerd. Left joins zijn bekend en worden veel gebruikt. Right joins worden een stuk minder (lees: vrijwel nooit) gebruikt. Alleen al daarom zijn right joins minder onderhoudbaar. En, maar dat kan ook aan mijn beperkte kennis liggen, volgens mij is er niets wat wel kan met een right join en niet met een left join.
  vrijdag 26 augustus 2011 @ 23:07:21 #83
75592 GlowMouse
l'état, c'est moi
pi_101237671
da's waar, je kunt altijd de tabellen omdraaien in je query
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 27 augustus 2011 @ 00:41:37 #84
63192 ursel
"Het Is Hier Fantastisch!
pi_101241770
Wat kan een mens toch blij worden als een geniaal stukje code nog eens blijkt te werken, *O*
pi_101264266
quote:
0s.gif Op zaterdag 27 augustus 2011 00:41 schreef ursel het volgende:
Wat kan een mens toch blij worden als een geniaal stukje code nog eens blijkt te werken, *O*
"Op Fok! val je pas op als je normaal bent." -mazaru
pi_101264676
Iemand trouwens nog goede tutorials/trucjes voor betere leesbaarheid/kortere code?
Ik heb bijvoorbeeld nooit geweten dat:
1
2
3
4
5
6
7
8
9
10
<?php
$rows 
$db->getALL('SELECT "shit" FROM "database" ');
$i="";
foreach ( 
$rows as $row )

      
$var[$i] = $row["lol"];
      
$i++;
}
print_r($var);
?>
Ook kan als:
1
2
3
4
5
6
7
8
<?php
$rows 
$db->getALL('SELECT "shit" FROM "database" ');
foreach ( 
$rows as $row )

      
$var[] = $row["lol"];
}
print_r($var);
?>
Als ik zoek op shorthand php kom ik alleen maar dingen tegen voor controle structuren / andere basic dingen.
"Op Fok! val je pas op als je normaal bent." -mazaru
  zaterdag 27 augustus 2011 @ 20:40:52 #87
12221 Tijn
Powered by MS Paint
pi_101265648
quote:
14s.gif Op zaterdag 27 augustus 2011 20:15 schreef Flepke het volgende:
Iemand trouwens nog goede tutorials/trucjes voor betere leesbaarheid/kortere code?
Ik heb bijvoorbeeld nooit geweten dat:
[ code verwijderd ]

Ook kan als:
[ code verwijderd ]

Als ik zoek op shorthand php kom ik alleen maar dingen tegen voor controle structuren / andere basic dingen.
Die curly braces zijn ook niet nodig, evenals het opslaan van het resultaat van $db->getALL in een aparte variabele.

Het zou dus zelfs op één regel kunnen :P

1
2
3
4
5
<?php

foreach ($db->getALL('SELECT "shit" FROM "database" ') as $row$var[] = $row["lol"];

?>
  zaterdag 27 augustus 2011 @ 20:44:43 #88
12221 Tijn
Powered by MS Paint
pi_101265753
Wat ik zelf trouwens vaak gebruik is de alternatieve if syntax, zeker om bv een variabele te zetten op basis van een voorwaarde. Ipv van dit:

1
2
3
4
5
6
7
8
9
10
11
12
<?php

if(voorwaarde)
{
    
$var iets;
}
else
{
    
$var iets_anders;
}

?>

doe ik vaak dit

1
2
3
4
5
<?php

$var 
= (voorwaarde) ? iets iets_anders;

?>
pi_101265801
quote:
14s.gif Op zaterdag 27 augustus 2011 20:15 schreef Flepke het volgende:
Iemand trouwens nog goede tutorials/trucjes voor betere leesbaarheid/kortere code?
Ik heb bijvoorbeeld nooit geweten dat:
[ code verwijderd ]

Ook kan als:
[ code verwijderd ]

Als ik zoek op shorthand php kom ik alleen maar dingen tegen voor controle structuren / andere basic dingen.
Dat is best wel basic :P.

quote:
14s.gif Op zaterdag 27 augustus 2011 20:44 schreef Tijn het volgende:
Wat ik zelf trouwens vaak gebruik is de alternatieve if syntax, zeker om bv een variabele te zetten op basis van een voorwaarde. Ipv van dit:
[ code verwijderd ]

doe ik vaak dit
[ code verwijderd ]

Kan ook zo:

1
2
3
<?php
($is_dit_waar) && (print 'ja') || print 'nee'
?>

En nog een grappige:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

$a 
'hoi';

// i.p.v. het volgende
echo isset($a) ? "a" "b"// geeft a

unset($a);

// doe dit
echo $a ?: "b"// geeft "b"

?>
  maandag 29 augustus 2011 @ 11:36:56 #90
25889 Sitethief
Fulltime Flapdrol
pi_101325237
Klopt het dat in MyISAM je met PDO->execute alleen parameters kunt meegeven aan SELECT statements en niet aan bijv. INSERT, want daar gaat het bij mij mis. SELECT gaat prima, maar INSERT weigert gewoon de parameters te gebruiken die ik meegeef.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101329134
quote:
0s.gif Op maandag 29 augustus 2011 11:36 schreef Sitethief het volgende:
Klopt het dat in MyISAM je met PDO->execute alleen parameters kunt meegeven aan SELECT statements en niet aan bijv. INSERT, want daar gaat het bij mij mis. SELECT gaat prima, maar INSERT weigert gewoon de parameters te gebruiken die ik meegeef.
Nergens last van, ik gebruik het gewoon bij ieder soort query. Krijg je een melding terug van je database en/of PDO?
  maandag 29 augustus 2011 @ 14:13:10 #92
25889 Sitethief
Fulltime Flapdrol
pi_101329834
Nee
1
2
3
4
5
<?php

INSERT INTO 
`products`  (`ProductName`) VALUES (':name')

?>

Alles wat er gebeurt is dat :name in de database wordt ingevuld, ipv wat ik meegeef. Als ik precies dezelfde functions gebruik om een SELECT te doen werkt het wel.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101329930
quote:
0s.gif Op maandag 29 augustus 2011 14:13 schreef Sitethief het volgende:
Nee
[ code verwijderd ]

Alles wat er gebeurt is dat :name in de database wordt ingevuld, ipv wat ik meegeef. Als ik precies dezelfde functions gebruik om een SELECT te doen werkt het wel.
Moet je geen $name gebruiken?
pi_101329939
quote:
0s.gif Op maandag 29 augustus 2011 14:13 schreef Sitethief het volgende:
Nee
[ code verwijderd ]

Alles wat er gebeurt is dat :name in de database wordt ingevuld, ipv wat ik meegeef. Als ik precies dezelfde functions gebruik om een SELECT te doen werkt het wel.
Je moet :name niet tussen aanhalingstekens zetten, dit doet PDO zelf. Nu gebruik je de string :name als waarde.
Dus gewoon:
quote:
INSERT INTO `products` (`ProductName`) VALUES (:name)
  maandag 29 augustus 2011 @ 14:22:17 #95
25889 Sitethief
Fulltime Flapdrol
pi_101330084
Ah, dat ging er dus fout, dank je, en bij de SELECT werd de query al wel correct opgebouwd... :D
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101451044
ik kijk er volgens mij helemaal langs..

error: Undefined index: file

dit is het form:
1
2
3
4
5
6
7
8
<?php
<form method="post" action="verwijderext.php" enctype="multipart/form-data">
<
label for="file">Filename:</label>
<
input type="file" name="file" id="file" />
<
br />
<
input type="submit" name="submit" value="Submit" />
</
form>
?>

in de verwijdersext.php staat oa
echo $_FILES["file"]["name"]
maar dan krijg ik dus error: Undefined index: file

print_r ($_FILES); geeft
Array ( [Name] => Array ( [name] => blabla.zip

maar ik krijg er de naam niet uit
waar ga ik fout?
  donderdag 1 september 2011 @ 16:12:52 #97
75592 GlowMouse
l'état, c'est moi
pi_101451326
$_FILES['Name'] werkt, aan je print_r te zien. Ik geloof daarom niet dat je het eerste script voor uploaden gebruikt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 1 september 2011 @ 18:10:42 #98
58834 Catbert
The evil HR Director.
pi_101454794
quote:
2s.gif Op vrijdag 26 augustus 2011 22:35 schreef Light het volgende:
Ik zelf :) Maar da's gewoon simpel beredeneerd.
Nogal ja :')
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101486888
quote:
0s.gif Op donderdag 1 september 2011 16:12 schreef GlowMouse het volgende:
$_FILES['Name'] werkt, aan je print_r te zien. Ik geloof daarom niet dat je het eerste script voor uploaden gebruikt.
dit is de juiste print_r
Array ( [file] => Array ( [name] => mrniles.zip [type] => application/x-zip-compressed [tmp_name] => /tmp/phpUldFUG [error] => 0 [size] => 45758 ) )
  vrijdag 2 september 2011 @ 13:46:10 #100
75592 GlowMouse
l'état, c'est moi
pi_101486919
dan werkt echo $_FILES["file"]["name"]; gewoon.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101487029
quote:
0s.gif Op vrijdag 2 september 2011 13:46 schreef GlowMouse het volgende:
dan werkt echo $_FILES["file"]["name"]; gewoon.
$Name= $_FILES['file'];
echo$Name;

geeft op scherm: Array
  vrijdag 2 september 2011 @ 13:51:09 #102
12221 Tijn
Powered by MS Paint
pi_101487063
quote:
0s.gif Op vrijdag 2 september 2011 13:50 schreef MrNiles het volgende:

[..]

$Name= $_FILES['file'];
echo$Name;

geeft op scherm: Array
Dat is heel wat anders dan dit

1
2
3
<?php
echo $_FILES["file"]["name"]
?>
pi_101487102
quote:
2s.gif Op vrijdag 2 september 2011 13:51 schreef Tijn het volgende:

[..]

Dat is heel wat anders dan dit
[ code verwijderd ]

ik kom er nu achter :)
wat is het verschil precies?
  vrijdag 2 september 2011 @ 13:53:25 #104
75592 GlowMouse
l'état, c'est moi
pi_101487126
$Name= $_FILES['file'];
echo$Name;

is hetzelfde als:
$bla = $_FILES['file'];
echo $bla;

of als:
echo $_FILES['file'];
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101487208
$_FILES["file"]["name"] is gewoon een array array's waar $Name= $_FILES['file']; een array een andere naam geven is ofzo
pi_101487229
quote:
0s.gif Op vrijdag 2 september 2011 13:53 schreef GlowMouse het volgende:
$Name= $_FILES['file'];
echo$Name;

is hetzelfde als:
$bla = $_FILES['file'];
echo $bla;

of als:
echo $_FILES['file'];
dat snap ik maar wat gebeurt er nu extra als er $_FILES['file'][name'] staat
pi_101487276
Niets want $_FILES['file'][name'] bestaat nog niet neem ik aan. Dus error?
pi_101487297
quote:
0s.gif Op vrijdag 2 september 2011 13:57 schreef Tegan het volgende:
Niets want $_FILES['file'][name'] bestaat nog niet neem ik aan. Dus error?
toch wel...dan krijg ik mrniles.zip te zien
  vrijdag 2 september 2011 @ 14:00:09 #109
75592 GlowMouse
l'état, c'est moi
pi_101487346
wat wil je dan?
$bla = $_FILES['file'];
echo $bla['naam'];
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101487351
quote:
0s.gif Op vrijdag 2 september 2011 13:58 schreef MrNiles het volgende:

[..]

toch wel...dan krijg ik mrniles.zip te zien
Dan bestond die array array's al wel.

Maar het punt blijft dat die twee dingen niet gelijk aan elkaar zijn :).
pi_101487356
quote:
0s.gif Op vrijdag 2 september 2011 13:58 schreef MrNiles het volgende:

[..]

toch wel...dan krijg ik mrniles.zip te zien
Als je een print_r van $_FILES doet, zie je precies hoe de array er na de POST uitziet. En let op hoofdletters. Is PHP gevoelig voor.
  zondag 4 september 2011 @ 21:51:19 #112
298746 Dalando
18, niet meer gefrustreerd
pi_101570964
Hoe kan ik kijken of een string in een externe webpagina zit?
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  FOK!-Schrikkelbaas zondag 4 september 2011 @ 21:53:20 #113
1972 Swetsenegger
Egocentrische Narcist
pi_101571110
quote:
7s.gif Op zondag 4 september 2011 21:51 schreef Dalando het volgende:
Hoe kan ik kijken of een string in een externe webpagina zit?
http://nl.php.net/manual/en/function.file.php
  zondag 4 september 2011 @ 21:56:44 #114
298746 Dalando
18, niet meer gefrustreerd
pi_101571355
quote:
1
2
3
4
5
6
7
8
<?php


if(stristr(file('http://google.com'), 'zoek')){
//doorgaan
}

?>

werkt hier niet.
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  FOK!-Schrikkelbaas zondag 4 september 2011 @ 22:02:58 #115
1972 Swetsenegger
Egocentrische Narcist
pi_101571748
quote:
7s.gif Op zondag 4 september 2011 21:56 schreef Dalando het volgende:

[..]
[ code verwijderd ]

werkt hier niet.
Als je die link goed bekeken had, had je kunnen lezen dat 'file' content in een array inleest die jij vervolgens met een stristr probeert te doorzoeken. Er staat ook bij dat file_get_contents precies hetzelfde doet, maar de boel dan in een string zet....
  zondag 4 september 2011 @ 22:10:26 #116
298746 Dalando
18, niet meer gefrustreerd
pi_101572354
quote:
4s.gif Op zondag 4 september 2011 22:02 schreef Swetsenegger het volgende:

[..]

Als je die link goed bekeken had, had je kunnen lezen dat 'file' content in een array inleest die jij vervolgens met een stristr probeert te doorzoeken. Er staat ook bij dat file_get_contents precies hetzelfde doet, maar de boel dan in een string zet....
1
2
3
4
5
6
<?php


if(in_array('zoek'file('http://google.nl/'))){

?>

doet het ook niet.
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  zondag 4 september 2011 @ 22:21:17 #117
136730 PiRANiA
All thinking men are atheists.
pi_101573179
file -> file_get_contents ^O^.
pi_101573235
quote:
7s.gif Op zondag 4 september 2011 22:10 schreef Dalando het volgende:

[..]
[ code verwijderd ]

doet het ook niet.
En als je even handmatig de array nakijkt dan zie je wel dat 'zoek' er in voorkomt? Weet niet of in_array hoofdletter gevoelig is.
  zondag 4 september 2011 @ 22:23:24 #119
298746 Dalando
18, niet meer gefrustreerd
pi_101573324
quote:
14s.gif Op zondag 4 september 2011 22:21 schreef PiRANiA het volgende:
file -> file_get_contents ^O^.
ik heb ze beiden geprobeerd. :{
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  FOK!-Schrikkelbaas zondag 4 september 2011 @ 22:28:44 #120
1972 Swetsenegger
Egocentrische Narcist
pi_101573669
quote:
7s.gif Op zondag 4 september 2011 22:10 schreef Dalando het volgende:

[..]
[ code verwijderd ]

doet het ook niet.
1
2
3
4
5
6
7
8
9
10
<?php

$iets
=file_get_contents('http://google.nl/');
if(
stristr($iets'poep') === FALSE) {
echo 
'nee';
}else{
echo 
'ja';
}

?>
1nee

1
2
3
4
5
6
7
8
9
10
<?php

$iets
=file_get_contents('http://google.nl/');
if(
stristr($iets'zoeken') === FALSE) {
echo 
'nee';
}else{
echo 
'ja';
}

?>
1ja
  zondag 4 september 2011 @ 22:32:03 #121
75592 GlowMouse
l'état, c'est moi
pi_101573887
als je http://nl3.php.net/manual/en/function.strstr.php goed leest, leer je nog meer
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zondag 4 september 2011 @ 22:32:38 #122
298746 Dalando
18, niet meer gefrustreerd
pi_101573920
quote:
0s.gif Op zondag 4 september 2011 22:28 schreef Swetsenegger het volgende:

[..]
[ code verwijderd ]


[ code verwijderd ]


[ code verwijderd ]


[ code verwijderd ]

Hehe :') Er zat iets fout aan mijn kant, sorry :@ Maar het werkt wel, ik nogsteeds te kloten met file. Dankje alsnog voor alle hulp ^O^
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  zondag 4 september 2011 @ 22:32:55 #123
298746 Dalando
18, niet meer gefrustreerd
pi_101573939
quote:
14s.gif Op zondag 4 september 2011 22:32 schreef GlowMouse het volgende:
als je http://nl3.php.net/manual/en/function.strstr.php goed leest, leer je nog meer
Gelukkig had ik het ook over stristr en niet strstr :*
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  zondag 4 september 2011 @ 23:01:03 #124
75592 GlowMouse
l'état, c'est moi
pi_101575432
quote:
7s.gif Op zondag 4 september 2011 22:32 schreef Dalando het volgende:

[..]

Gelukkig had ik het ook over stristr en niet strstr :*
Gelukkig ben ik niet blind.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 5 september 2011 @ 16:21:25 #125
25889 Sitethief
Fulltime Flapdrol
pi_101594606
Waarom duurt een SELECT query op 1 miljoen records met een ORDER BY tot 5650 records (5601-5650 in de LIMIT) onder de 1 seconde (+/- 0,3), en zodra je hoger dan dat gaat duurt het eeuwig..... Is dit een of andere magische grens ofzo? Zonder ORDER BY duurt deze query altijd rond de 0,3 seconde...

Database is MyISAM trouwens op een lokale dev machine.

Query:
1
2
3
<?php
SELECT products
.ProductNameproducts.ProductID FROM `productsWHERE products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5650,5700
?>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 5 september 2011 @ 16:23:21 #126
25889 Sitethief
Fulltime Flapdrol
pi_101594677
Heel erg vaag dit

1
2
3
4
5
6
7
8
<?php

SELECT products
.ProductNameproducts.ProductID FROM `productsWHERE products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5650,5700;
/* 0 rows affected, 5.700 rows found. Duration for 1 query: 42,125 sec. (+ 0,562 sec. network) */
SELECT products.ProductNameproducts.ProductID FROM `productsWHERE products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5601,5650;
/* 0 rows affected, 5.650 rows found. Duration for 1 query: 0,156 sec. (+ 0,125 sec. network) */

?>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 5 september 2011 @ 16:35:41 #127
75592 GlowMouse
l'état, c'est moi
pi_101595086
Er wordt een index op ProductID gebruikt he? Hij stopt zodra hij 5700 rijen gevonden heeft met %la%. Hij kan de eerste 5650 heel snel vinden, en de laatste heel langzaam omdat er dan veel rijen zijn die er niet aan voldoen. Doet het maar eens zo, dan zie je het gebeuren:

SET @a:=1;
SELECT @a,products.ProductName, products.ProductID FROM `products` WHERE (@a:=@a+1) AND products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5650,5700;
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 5 september 2011 @ 16:40:49 #128
25889 Sitethief
Fulltime Flapdrol
pi_101595284
1
2
3
4
5
6
7
<?php

SET 
@a:=1;
 
SELECT @a,products.ProductNameproducts.ProductID FROM `productsWHERE (@a:=@a+1) AND products.ProductName LIKE '%la%' ORDER BY products.ProductID ASC LIMIT 5650,5700;
/* 0 rows affected, 5.700 rows found. Duration for 2 queries: 3,203 sec. (+ 0,016 sec. network) */

?>
Dit gaat mijn MySQL kennis te boven..... :P. Maar hier op de afdeling werd ook al gezegd dat ik eens naar de index moet kijken.... Maar idd, ID is de index. Grappig genoeg sorteerd een query zonder ORDER BY automatisch op de index..... maar ja, ik wil sorteerbare collums in mijn HTML :X
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 5 september 2011 @ 16:43:00 #129
75592 GlowMouse
l'état, c'est moi
pi_101595372
Wel kijken naar wat hij teruggeeft voor @a!
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  maandag 5 september 2011 @ 16:49:27 #130
25889 Sitethief
Fulltime Flapdrol
pi_101595602
1.031.768
(precies het aantal records met eentje meer)
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 5 september 2011 @ 16:50:04 #131
75592 GlowMouse
l'état, c'est moi
pi_101595634
Per rij natuurlijk, en dan met de limiet spelen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101625300
Kan iemand mij makkelijk uitleggen hoe ik een array laat loopen met foreach? Het wil niet lukken met gegevens uit de database. -O-
  dinsdag 6 september 2011 @ 10:45:13 #133
75592 GlowMouse
l'état, c'est moi
pi_101625303
wat is je huidige code?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 10:48:01 #134
12221 Tijn
Powered by MS Paint
pi_101625372
quote:
7s.gif Op dinsdag 6 september 2011 10:44 schreef -Datdus- het volgende:
Kan iemand mij makkelijk uitleggen hoe ik een array laat loopen met foreach? Het wil niet lukken met gegevens uit de database. -O-
Kun je een stukje output laten zien van print_r($jouw_array)?

En wil je de inhoud van de array alleen weergeven of wil je de inhoud van de array wijzigen?
pi_101625487
1
2
3
4
5
6
7
8
9
Array
(
    [posts] => Array
        (
            [title] => Dit is een test
            [body] => Body
        )

)

Print_r geeft het bovenstaande terug. Hij haalt op dit moment alleen het eerste item op.

Code:

1
2
3
4
5
6
7
8
9
10
        $sql = mysql_query("SELECT * FROM posts");
        
        $row = mysql_fetch_assoc($sql);
             
        $posts = array('posts' => array('title' => $row['title'], 'body' => $row['body']));
        
        foreach($posts as $post){
            echo $post['title']."<br>";
            echo $post['body'];
        }
  dinsdag 6 september 2011 @ 11:07:01 #136
91039 mstx
2x1/2 = 1/2 x 1/2
pi_101625880
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

        $sql 
mysql_query("SELECT title, body FROM posts");
        
        
$posts = array();
        while (
$row mysql_fetch_assoc($sql)){
            
$posts[] = $row;
        }

        
        foreach(
$posts as $post){
            echo 
$post['title']."<br>";
            echo 
$post['body'];
        }

?>
Direct in de while{} echo-en kan natuurlijk ook (8>
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_101625976
quote:
0s.gif Op dinsdag 6 september 2011 11:07 schreef mstx het volgende:

[ code verwijderd ]

Het werkt. Ik snap alleen niet wat die while loop doet. :)
  dinsdag 6 september 2011 @ 11:19:55 #138
25889 Sitethief
Fulltime Flapdrol
pi_101626248
Zolang mysql_fetch_assoc($sql) rows terug geeft, blijft de loop die in $posts stoppen. Zo stop je row voor row in $posts.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_101626345
quote:
0s.gif Op dinsdag 6 september 2011 11:19 schreef Sitethief het volgende:
Zolang mysql_fetch_assoc($sql) rows terug geeft, blijft de loop die in $posts stoppen. Zo stop je row voor row in $posts.
Ah, oke ik denk dat ik het snap dankjewel. :)
pi_101626354
Waarom gebruik je niet de uitleg van php.net?

http://nl.php.net/array
http://nl.php.net/while
http://nl.php.net/foreach

het zou mooier zijn om het zo te doen!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

        
        $sql 
"SELECT title, body FROM posts";
        
$query mysql_query($sql);
        
$items mysql_num_rows($query); 

        for (
$x 0$x $items$x++)
        {
            
$post mysql_fetch_assoc($query);

            echo 
$post['title']."<br>";
            echo 
$post['body'];
        }

?>

http://nl.php.net/for
http://nl.php.net/mysql_num_rows

ps... als je een query opbouwt plaats je die in $sql
als je een query uitvoert noem je die in het algemeen $query (is logischer)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_101626401
quote:
6s.gif Op dinsdag 6 september 2011 11:23 schreef Chandler het volgende:
Waarom gebruik je niet de uitleg van php.net?

http://nl.php.net/array
http://nl.php.net/while
http://nl.php.net/foreach

het zou mooier zijn om het zo te doen!
[ code verwijderd ]

http://nl.php.net/for
http://nl.php.net/mysql_num_rows

ps... als je een query opbouwt plaats je die in $sql
als je een query uitvoert noem je die in het algemeen $query (is logischer)
Dankje. :)
  dinsdag 6 september 2011 @ 11:28:22 #142
75592 GlowMouse
l'état, c'est moi
pi_101626467
Dat is zeker niet mooier.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101626492
quote:
4s.gif Op dinsdag 6 september 2011 11:28 schreef GlowMouse het volgende:
Dat is zeker niet mooier.
Fijn dat je alles direct zo mooi onderbouwt :P
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  dinsdag 6 september 2011 @ 11:30:15 #144
25889 Sitethief
Fulltime Flapdrol
pi_101626518
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  dinsdag 6 september 2011 @ 11:42:23 #145
4159 GI
Nee ik heet geen JOE
pi_101626859
quote:
4s.gif Op dinsdag 6 september 2011 11:28 schreef GlowMouse het volgende:
Dat is zeker niet mooier.
Het kan wel nuttig zijn in situaties, die ook leesbaarheid van code bevorderd. Maar das niet in deze situatie zo iig.
  dinsdag 6 september 2011 @ 14:35:54 #146
58834 Catbert
The evil HR Director.
pi_101631728
quote:
4s.gif Op dinsdag 6 september 2011 11:28 schreef GlowMouse het volgende:
Dat is zeker niet mooier.
Wel beter. Het is compleet nutteloos om eerst alles in een array te stoppen in een loop, en daarna in een andere loop dit weer te geven. Verspilling van geheugen.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101631910
quote:
0s.gif Op dinsdag 6 september 2011 14:35 schreef Catbert het volgende:

[..]

Wel beter. Het is compleet nutteloos om eerst alles in een array te stoppen in een loop, en daarna in een andere loop dit weer te geven. Verspilling van geheugen.
Als je het OO programmeert kun je er bijna niet omheen. Je voert eerst een query uit en deze geeft een datatable op en met deze datatable ga je de output opbouwen. Dan ram je dus eerst alle query informatie in een class (mogelijk de class nog in een collectie) en dan ga je er pas mee werken.
  dinsdag 6 september 2011 @ 14:43:18 #148
75592 GlowMouse
l'état, c'est moi
pi_101631982
quote:
0s.gif Op dinsdag 6 september 2011 14:35 schreef Catbert het volgende:

[..]

Wel beter. Het is compleet nutteloos om eerst alles in een array te stoppen in een loop, en daarna in een andere loop dit weer te geven. Verspilling van geheugen.
Als je je code een beetje overzichtelijk opbouwt dan verspil je inderdaad geheugen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 14:46:52 #149
58834 Catbert
The evil HR Director.
pi_101632095
quote:
0s.gif Op dinsdag 6 september 2011 14:40 schreef Pakspul het volgende:
Als je het OO programmeert kun je er bijna niet omheen. Je voert eerst een query uit en deze geeft een datatable op en met deze datatable ga je de output opbouwen. Dan ram je dus eerst alle query informatie in een class (mogelijk de class nog in een collectie) en dan ga je er pas mee werken.
Dan nog hoef je helemaal niet perse eerst alle classes op te bouwen en ze daarna te gebruiken, dat kun je prima per row doen. Als het kleine sets data zijn is het zeker geen issue, maar bij grote recordsets wel, dan wil je die echt niet eerst allemaal in 't geheugen opbouwen.

quote:
0s.gif Op dinsdag 6 september 2011 14:43 schreef GlowMouse het volgende:
Als je je code een beetje overzichtelijk opbouwt dan verspil je inderdaad geheugen.
Wat bedoel je? Stel elke row is een kb aan data, en je hebt 1000 rows. Het maakt nogal uit of je script 1MB aan geheugen moet alloceren of max 1kb. Vergeet niet dat je zo 100 requests tegelijkertijd af te handelen kunt hebben.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101632100
quote:
0s.gif Op dinsdag 6 september 2011 14:43 schreef GlowMouse het volgende:

[..]

Als je je code een beetje overzichtelijk opbouwt dan verspil je inderdaad geheugen.
Daar ben ik het dus niet geheel mee eens! juist door overzichtelijk te scripten (programmeren wil ik het niet noemen...) kun je juist geheugen besparen doordat je sneller je 'foutjes' ziet.

Maar goed, mijn voorbeeld is goed genoeg maar dat vind jij niet... dus vertel eens waarom? kritiek geven ok!? maar dan ook graag uitleg waarom en hoe jij het zou doen!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  dinsdag 6 september 2011 @ 14:49:18 #151
58834 Catbert
The evil HR Director.
pi_101632176
quote:
0s.gif Op dinsdag 6 september 2011 14:47 schreef Chandler het volgende:
Daar ben ik het dus niet geheel mee eens! juist door overzichtelijk te scripten (programmeren wil ik het niet noemen...) kun je juist geheugen besparen doordat je sneller je 'foutjes' ziet.
Sowieso is het gewoon dom om je zulke verkeerde dingen aan te leren als in een keer alles in een grote array plempen. Dat schaalt voor geen meter.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101632177
quote:
0s.gif Op dinsdag 6 september 2011 14:46 schreef Catbert het volgende:

[..]

Dan nog hoef je helemaal niet perse eerst alle classes op te bouwen en ze daarna te gebruiken, dat kun je prima per row doen. Als het kleine sets data zijn is het zeker geen issue, maar bij grote recordsets wel, dan wil je die echt niet eerst allemaal in 't geheugen opbouwen.
Daarom moet je eerst berg werk investeren om je code zo te krijgen dat je dataset dynamisch kunt krijgen. Zelf hoef ik geen query's meer te schrijven. Alleen even de classes aanmaken en die daar heb ik ook een script voor geschreven die dat doet voor mij, dus dat is gewoon een druk op de knop :P
  dinsdag 6 september 2011 @ 14:49:25 #153
12221 Tijn
Powered by MS Paint
pi_101632181
Twee loops is nergens voor nodig, lijkt mij. Maar ik gebruik wel liever foreach-loops dan for-loops, omdat het een simpelere syntax heeft en er daardoor overzichtelijker uitziet.
pi_101632421
quote:
0s.gif Op dinsdag 6 september 2011 14:49 schreef Catbert het volgende:

[..]

Sowieso is het gewoon dom om je zulke verkeerde dingen aan te leren als in een keer alles in een grote array plempen. Dat schaalt voor geen meter.
Dat ben ik met je eens, vandaar mijn voorbeeld *)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  dinsdag 6 september 2011 @ 14:56:05 #155
75592 GlowMouse
l'état, c'est moi
pi_101632434
quote:
0s.gif Op dinsdag 6 september 2011 14:46 schreef Catbert het volgende:

[..]

Wat bedoel je? Stel elke row is een kb aan data, en je hebt 1000 rows. Het maakt nogal uit of je script 1MB aan geheugen moet alloceren of max 1kb. Vergeet niet dat je zo 100 requests tegelijkertijd af te handelen kunt hebben.
De tijd dat een server net 100 MB geheugen tekort komt ligt alweer een decennium achter ons. Je redenering klopt ook niet: al voordat mysql_fetch_assoc wordt aangeroepen, zit de hele resultset in het geheugen van de webserver (of in het geheugen van de dbserver bij een unbuffered query).

Veel ontwikkelaars vinden het overzichtelijker om de code en de opmaak van elkaar te scheiden, en met een echo en een mysql_fetch_assoc in dezelfde loop gebeurt dat niet.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 15:03:48 #156
91039 mstx
2x1/2 = 1/2 x 1/2
pi_101632674
quote:
14s.gif Op dinsdag 6 september 2011 14:49 schreef Tijn het volgende:
Twee loops is nergens voor nodig, lijkt mij.
quote:
0s.gif Op dinsdag 6 september 2011 14:56 schreef GlowMouse het volgende:
Veel ontwikkelaars vinden het overzichtelijker om de code en de opmaak van elkaar te scheiden, en met een echo en een mysql_fetch_assoc in dezelfde loop gebeurt dat niet.
Dat is voor mij inderdaad de reden om alles in 1 array te stoppen. En dan heb je ook 2 loopjes; 1 om de data op te halen en 1 in de template om het te presenteren.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  dinsdag 6 september 2011 @ 15:05:02 #157
75592 GlowMouse
l'état, c'est moi
pi_101632709
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 15:13:54 #158
58834 Catbert
The evil HR Director.
pi_101633007
quote:
0s.gif Op dinsdag 6 september 2011 14:56 schreef GlowMouse het volgende:
De tijd dat een server net 100 MB geheugen tekort komt ligt alweer een decennium achter ons. Je redenering klopt ook niet: al voordat mysql_fetch_assoc wordt aangeroepen, zit de hele resultset in het geheugen van de webserver (of in het geheugen van de dbserver bij een unbuffered query).
Het is gewoon niet waar dat die hele resultset per definitie al in 't geheugen zit. Databaseservers zijn daar veel slimmer in. Als 2 queries dezelfde table benaderen hoeft deze niet 2 keer volledig in 't geheugen te zitten.

quote:
Veel ontwikkelaars vinden het overzichtelijker om de code en de opmaak van elkaar te scheiden, en met een echo en een mysql_fetch_assoc in dezelfde loop gebeurt dat niet.
Zal best, maar als je appserver onderuit gaat omdat je koste wat 't kost je code 'overzichtelijk' moet houden doe je echt iets fout. En met een fatsoenlijke template engine kun je prima je code en layout gescheiden houden zonder eerst volledige query results in 't geheugen te moeten laden.

quote:
Beide zaken zijn met template engines prima te combineren. Jezelf aanleren alles eerst in 't geheugen te laden en er daarna wat mee te gaan doen is gewoon onverstandig.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  dinsdag 6 september 2011 @ 15:16:52 #159
12221 Tijn
Powered by MS Paint
pi_101633112
quote:
0s.gif Op dinsdag 6 september 2011 15:13 schreef Catbert het volgende:

Beide zaken zijn met template engines prima te combineren.
Hoe geef je je data aan je template engine door zonder het in het geheugen te laden dan?
pi_101633204
quote:
5s.gif Op dinsdag 6 september 2011 15:16 schreef Tijn het volgende:

[..]

Hoe geef je je data aan je template engine door zonder het in het geheugen te laden dan?
Weg te schrijven op de HDD en deze haalt de template engine weer op en zal deze echoen? :')
  dinsdag 6 september 2011 @ 15:24:51 #161
75592 GlowMouse
l'état, c'est moi
pi_101633381
quote:
0s.gif Op dinsdag 6 september 2011 15:13 schreef Catbert het volgende:

[..]

Het is gewoon niet waar dat die hele resultset per definitie al in 't geheugen zit. Databaseservers zijn daar veel slimmer in. Als 2 queries dezelfde table benaderen hoeft deze niet 2 keer volledig in 't geheugen te zitten.
Als jij twee queries uitvoert op MySQL dan wordt er twee keer geheugen gealloceerd voor de resultset.
Het is wel waar dat wanneer je zelf een array vult, er meer geheugen nodig is om die op te slaan omdat het opslaan minder efficiënt gebeurt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 15:33:04 #162
58834 Catbert
The evil HR Director.
pi_101633630
quote:
5s.gif Op dinsdag 6 september 2011 15:16 schreef Tijn het volgende:
Hoe geef je je data aan je template engine door zonder het in het geheugen te laden dan?
Door de template gewoon iedere keer de row te voeren in plaats van de hele resultset? Zelf doe ik al tijden niks meer met PHP maar in Java met bijvoorbeeld Spring of JSF is het prima mogelijk om data en layout volledig te scheiden maar wel een pagina per row op te bouwen.

Natuurlijk is het voor een hobbyist die z'n eigen CMSje bouwt geen groot issue, maar jezelf aanleren alles eerst in geheugen te laden is m.i. niet de juiste weg.

quote:
0s.gif Op dinsdag 6 september 2011 15:24 schreef GlowMouse het volgende:
Als jij twee queries uitvoert op MySQL dan wordt er twee keer geheugen gealloceerd voor de resultset.
Het is wel waar dat wanneer je zelf een array vult, er meer geheugen nodig is om die op te slaan omdat het opslaan minder efficiënt gebeurt.
Ik weet niet hoe MySQL er mee omgaat maar in MSSQL gaat 'ie met 2 parallelle queries de intersectie van de data maar 1 keer in 't geheugen houden. Je hebt uiteindelijk eigenlijk alleen de rowids van de desbetreffende tables maar nodig, de rest van de data kun je aan de hand daarvan op de cursor doorgeven.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  dinsdag 6 september 2011 @ 15:36:20 #163
75592 GlowMouse
l'état, c'est moi
pi_101633725
Ik geloof er helemaal niks van, dan zou MSSQL eerst moeten bepalen of resultsets wel gelijk zijn. Dat is met het oog op MVCC vrij inefficient.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 15:37:48 #164
12221 Tijn
Powered by MS Paint
pi_101633796
quote:
0s.gif Op dinsdag 6 september 2011 15:33 schreef Catbert het volgende:

[..]

Door de template gewoon iedere keer de row te voeren in plaats van de hele resultset?
Maar je template engine moet al die data toch gevoerd krijgen voordat 'ie kan gaan beginnen met weergeven ervan? Wanneer je 'em de tweede row voert, waar slaat 'ie de eerste dan op als dat niet in het geheugen is?
  dinsdag 6 september 2011 @ 15:44:23 #165
58834 Catbert
The evil HR Director.
pi_101634014
quote:
5s.gif Op dinsdag 6 september 2011 15:37 schreef Tijn het volgende:
Maar je template engine moet al die data toch gevoerd krijgen voordat 'ie kan gaan beginnen met weergeven ervan? Wanneer je 'em de tweede row voert, waar slaat 'ie de eerste dan op als dat niet in het geheugen is?
Hij kan prima een row renderen, net zoals je dat "met de hand" doet.

quote:
0s.gif Op dinsdag 6 september 2011 15:36 schreef GlowMouse het volgende:
Ik geloof er helemaal niks van, dan zou MSSQL eerst moeten bepalen of resultsets wel gelijk zijn. Dat is met het oog op MVCC vrij inefficient.
Als een bepaalde tabel veel benaderd wordt gaat 'ie data cachen. Als beide resultsets de row behorende bij rowid X benaderen wordt die data gewoon via een lookup beschikbaar gemaakt. Als je naar een query explain kijkt zie je dat 'ie vaak joins e.d. eerst afhandelt, en pas daarna de data er bij gaat zoeken. Die data komt dan of van disk, of uit de cache. Zowel MSSQL als Oracle doen dat. Of MySQL dat ook doet weet ik niet, maar daar hoef ik gelukkig niet mee te werken.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  dinsdag 6 september 2011 @ 15:54:30 #166
75592 GlowMouse
l'état, c'est moi
pi_101634244
Raar verhaal, bij een query met een aggregated functie heb je het niet meer over rows in een tabel tenzij je de resultset als tabel beschouwt en dan de overhead wilt van het testen op gelijkheid. En heb je dan elke keer een roundtrip als je een rij ophaalt?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 6 september 2011 @ 17:27:23 #167
58834 Catbert
The evil HR Director.
pi_101637482
quote:
0s.gif Op dinsdag 6 september 2011 15:54 schreef GlowMouse het volgende:
Raar verhaal, bij een query met een aggregated functie heb je het niet meer over rows in een tabel tenzij je de resultset als tabel beschouwt en dan de overhead wilt van het testen op gelijkheid. En heb je dan elke keer een roundtrip als je een rij ophaalt?
Da's een ander verhaal. Ik zei in het begin al dat dit een issue is bij grote resultsets. Nu hebben we het bovendien over randzaken. Punt is dat het m.i. verkeerd is jezelf aan te leren iedere keer eerst alles in geheugen te lezen omdat het in veel gevallen relatief inefficient is. Dat je het doet op plekken waar het niet inefficient is, of soms juist efficienter; prima. Het gaat mij puur om wat een beginner zichzelf aanleert. Of in ieder geval dat die beginner weet waar hij mee bezig is.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101704551
Kan iemand me helpen met deze formule:

1
2
3
4
5
6
cijfer | weging | totaal 
6,5        1          6,5
7,0        3          21
totaal:    4         27,5

totaal / weging = uiteindelijk cijfer

De weging wordt bij elkaar opgeteld en maakt 4.
6,5 keer 1 is 6,5 en 7 keer 3 is 21 en wordt bij elkaar 27,5
nu moet het totaal gedeeld worden door de weging en dan komt het uiteindelijke cijfer eruit. Ik hoop dat jullie met nog snappen.

Ik heb met een mysql query dit gedaan maar geeft niet het goeie antwoord.

1
2
3
4
$query = mysql_query("SELECT     
    SUM(weging) as wtotal, 
    SUM(cijfer * weging) as itotaal,
    SUM(weging / itotaal) as totaal FROM cijfers");

AAH IK WORD GEK!
pi_101704624
Je moet ook wtotal gebruiken en niet weging.
  donderdag 8 september 2011 @ 12:16:56 #170
75592 GlowMouse
l'état, c'est moi
pi_101704637
quote:
14s.gif Op donderdag 8 september 2011 12:16 schreef Tegan het volgende:
Je moet ook wtotal gebruiken en niet weging.
En de laatste SUM weglaten.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101704715
Ja dat dus. Dacht even dat je nog SUM(itotaal) moest hebben, maar dat is niet :).
pi_101705088
Even proberen. :)
pi_101706289
probeer een file te unzippen maar werkt niet...krijg ook geen foutmelding wat er fout zou kunnen gaan. Path is goed, daar geeft ie wel een foutmelding op als de niet komt

1
2
3
4
5
6
7
<?php
require_once("pclzip.lib.php");
$zip = new PclZip("uploads/".$filename);

if(
$zip->extract() == 0)
  die(
"Error : " $zip->errorInfo(true));
?>
  donderdag 8 september 2011 @ 13:05:40 #174
75592 GlowMouse
l'état, c'est moi
pi_101706355
'werkt niet' :')
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101706423
quote:
0s.gif Op donderdag 8 september 2011 13:04 schreef MrNiles het volgende:
probeer een file te unzippen maar werkt niet...krijg ook geen foutmelding wat er fout zou kunnen gaan. Path is goed, daar geeft ie wel een foutmelding op als de niet komt
[ code verwijderd ]

Hoever ben je zelf al gekomen met debuggen? Error_reporting(E_ALL); al keertje aangepleurd?
pi_101707017
volgende n00b vraag dan

wat is de max size van een te uploaden zip
30files in zip, totaal 2,01MB = geen probleem
40files in zip, totaal 2,45MB = Missing archive file 'uploads/40f245.zip'

het bestand wordt niet geupload
ligt dat aan de grootte van het bestand?

[ Bericht 71% gewijzigd door MrNiles op 08-09-2011 14:52:17 ]
pi_101710282
quote:
0s.gif Op donderdag 8 september 2011 13:25 schreef MrNiles het volgende:
volgende n00b vraag dan

wat is de max size van een te uploaden zip
Even mijn glazen bol zoeken om te zien hoe jij je server hebt ingesteld, BRB!
pi_101710426
quote:
7s.gif Op donderdag 8 september 2011 12:30 schreef -Datdus- het volgende:
Even proberen. :)
itotaal/wtotaal dus.
pi_101710561
quote:
0s.gif Op donderdag 8 september 2011 13:25 schreef MrNiles het volgende:
volgende n00b vraag dan

wat is de max size van een te uploaden zip
30files in zip, totaal 2,01MB = geen probleem
40files in zip, totaal 2,45MB = Missing archive file 'uploads/40f245.zip'

het bestand wordt niet geupload
ligt dat aan de grootte van het bestand?
phpinfo();

iets van max_upload_size .. of file_upload .. weet zo uit mijn hoofd niet meer welke het is.
pi_101710882
quote:
14s.gif Op donderdag 8 september 2011 15:04 schreef KomtTijd... het volgende:

[..]

Even mijn glazen bol zoeken om te zien hoe jij je server hebt ingesteld, BRB!
fijn als je dat weet maar je kan me toch ook zeggen dat dat in phpinfo te vinden is

thanx remi

het is dus
upload_max_filesize 10M

blijft mijn vraag staan..waarom de zipfile niet kan worden geupload
pi_101711141
quote:
0s.gif Op donderdag 8 september 2011 15:24 schreef MrNiles het volgende:

[..]

fijn als je dat weet maar je kan me toch ook zeggen dat dat in phpinfo te vinden is

thanx remi

het is dus
upload_max_filesize 10M

blijft mijn vraag staan..waarom de zipfile niet kan worden geupload
Als je na de POST een print_r van $_FILES doet, staat het bestand er dan wel?

Zo ja:
Pak je het bestand direct vanuit de tmp map uit? Of verplaats je het bestand eerst naar een "vaste" locatie op de server? (move_uploaded_file)

Ik zou dat laatste doen, en dan het bestand uitpakken.
pi_101711271
quote:
0s.gif Op donderdag 8 september 2011 15:31 schreef remi1986 het volgende:

[..]

Als je na de POST een print_r van $_FILES doet, staat het bestand er dan wel?

Zo ja:
Pak je het bestand direct vanuit de tmp map uit? Of verplaats je het bestand eerst naar een "vaste" locatie op de server? (move_uploaded_file)

Ik zou dat laatste doen, en dan het bestand uitpakken.
idd dat laatste

ik ga ff proberen

het lijkt "spontaan" te zijn opgelost :)
kan het zijn dat een slechte verbinding oorzaak kan hebben, heb al heel de dag last van slechte verbinding met FOK!, opnieuw inloggen etc
naja...vreemd..maar het werkt na alleen koffie drinken
misschien meer koffie ga drinken
pi_101723552
quote:
0s.gif Op donderdag 8 september 2011 15:24 schreef MrNiles het volgende:

[..]

fijn als je dat weet maar je kan me toch ook zeggen dat dat in phpinfo te vinden is

thanx remi

het is dus
upload_max_filesize 10M

blijft mijn vraag staan..waarom de zipfile niet kan worden geupload
Ondanks dat het al opgelost is een opmerking, een verkeerd ingestelde max_post_size wil ook wel eens voor problemen zorgen. Als die bijvoorbeeld op 2M staat kun je je max filesize wel op een terabyte zetten, als je het niet naar je server toe mag posten houdt het op.
Kort gezegd beïnvloedt upload_max_filesize de maximale grootte per bestand, en max_post_size de maximale grootte van de hele post.
pi_101741582
Ik heb het zelfde gezeur met een website van een klant, uploaden gaat goed (move_uploaded_file geeft geen error en zegt dat het bestand is 'gemoved') maar als ik dan op de volgende pagina kom en in de directory kijk waar het bestand zou moeten staan staat er niets!!!!

Hoster heeft wel meer vage problemen dus gaan we eerst een verhuizen en het dan nog eens proberen! (toch geen pcextreme hé :P)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_101743837
quote:
5s.gif Op vrijdag 9 september 2011 09:26 schreef Chandler het volgende:
Ik heb het zelfde gezeur met een website van een klant, uploaden gaat goed (move_uploaded_file geeft geen error en zegt dat het bestand is 'gemoved') maar als ik dan op de volgende pagina kom en in de directory kijk waar het bestand zou moeten staan staat er niets!!!!

Hoster heeft wel meer vage problemen dus gaan we eerst een verhuizen en het dan nog eens proberen! (toch geen pcextreme hé :P)
lijkt mij dan een rechtenprobleem?
pi_101748156
Inderdaad, mapje even 777 chmodden, testen ofdat het dan wel werkt, zoja dan de rechten goed instellen.
"Op Fok! val je pas op als je normaal bent." -mazaru
pi_101761679
bij deze
1
2
3
<?php
echo '<img src=".$album."/thumbs/klein_".$files[$rand]. "title=".$afbeelding['basename'] ."alt=".$afbeelding['basename']. "class='thumbs' "> ';
?>

krijg ik

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'

ik zie m niet..iemand anders wel?
pi_101761834
Lekker inconsequent gebruik van ' en ". Loop die allemaal maar eens na.
pi_101761995
quote:
0s.gif Op vrijdag 9 september 2011 20:21 schreef MrNiles het volgende:
bij deze
[ code verwijderd ]

krijg ik

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'

ik zie m niet..iemand anders wel?
1
2
3
4
5
6
7
8
9
10
<?php

printf
('<img src="%s" title="%s" alt="%s" class="%s">', array(
      
$album.'/thumbs/klein_'.$files[$rand]
    , 
$afbeelding['basename']
    , 
$afbeelding['basename']
    , 
'thumbs'
));

?>
pi_101762008
quote:
0s.gif Op vrijdag 9 september 2011 20:24 schreef Tegan het volgende:
Lekker inconsequent gebruik van ' en ". Loop die allemaal maar eens na.
dat heb ik dus gedaan..maar ik ben ff de draad kwijt :(
pi_101762015
quote:
0s.gif Op vrijdag 9 september 2011 20:21 schreef MrNiles het volgende:
bij deze
[ code verwijderd ]

krijg ik

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'

ik zie m niet..iemand anders wel?
Hou eens op met developen in notepad.exe.
Zelfs de syntaxhighlighter van FOK! pikt 'm er feilloos uit.
pi_101762113
quote:
0s.gif Op vrijdag 9 september 2011 20:29 schreef MrNiles het volgende:

[..]

dat heb ik dus gedaan..maar ik ben ff de draad kwijt :(
In HTML tags altijd "" gebruiken, en strings met daarin HTML tags moeten dus tussen '' staan.
pi_101762172
quote:
13s.gif Op vrijdag 9 september 2011 20:29 schreef KomtTijd... het volgende:

[..]

Hou eens op met developen in notepad.exe.
Zelfs de syntaxhighlighter van FOK! pikt 'm er feilloos uit.
sorry :@
ik zal eens iets opzoeken..roep eens iets
pi_101762217
Notepad++.
pi_101762227
SRSLY?

Ik dacht ik maak een grapje 8)7

Probeer geany of notepad++. Voor PHP vind ik geany relaxter.
pi_101762397
quote:
11s.gif Op vrijdag 9 september 2011 20:33 schreef KomtTijd... het volgende:
SRSLY?

Ik dacht ik maak een grapje 8)7

Probeer geany of notepad++. Voor PHP vind ik geany relaxter.
ik zit in plesk te klooien omdat ik ook in een vrij uurtje op het werk iets kan doen..daar mag ik niets installeren op de pc en geen eigen laptop op het netwerk kan aansluiten
pi_101762495
quote:
0s.gif Op vrijdag 9 september 2011 20:37 schreef MrNiles het volgende:

[..]

ik zit in plesk te klooien omdat ik ook in een vrij uurtje op het werk iets kan doen..daar mag ik niets installeren op de pc en geen eigen laptop op het netwerk kan aansluiten
Je kunt ook offline programmeren. Sterker nog, dat zou je moeten doen. En pas online gooien als je jezelf hebt overtuigd dat het wel gaat werken.
pi_101762686
quote:
0s.gif Op vrijdag 9 september 2011 20:37 schreef MrNiles het volgende:

[..]

ik zit in plesk te klooien omdat ik ook in een vrij uurtje op het werk iets kan doen..daar mag ik niets installeren op de pc en geen eigen laptop op het netwerk kan aansluiten
NP++ laat zich heel makkelijk portable installeren. Geany is volgens mij ook een portable variant van.

en anders: http://www.cdolivet.com/editarea/
pi_101763238
quote:
14s.gif Op vrijdag 9 september 2011 20:44 schreef KomtTijd... het volgende:

[..]

NP++ laat zich heel makkelijk portable installeren. Geany is volgens mij ook een portable variant van.

en anders: http://www.cdolivet.com/editarea/
thanx voor de tips
ga ik zeker iets mee doen
  zaterdag 10 september 2011 @ 00:15:52 #200
75592 GlowMouse
l'état, c'est moi
pi_101772462
quote:
13s.gif Op vrijdag 9 september 2011 20:29 schreef KomtTijd... het volgende:

[..]

Zelfs de syntaxhighlighter van FOK! pikt 'm er feilloos uit.
http://nl3.php.net/manual/en/function.highlight-string.php
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 10 september 2011 @ 02:10:33 #201
137776 boem-dikkie
Jedi Mind Baby!
pi_101775568
quote:
0s.gif Op vrijdag 9 september 2011 20:29 schreef MrNiles het volgende:

[..]

dat heb ik dus gedaan..maar ik ben ff de draad kwijt :(
Voor het geval je er nog niet uit bent.

".$album."/thumbs/klein_".$files[$rand]. "

Kijk daar nog eens goed naar.

Je sluit je stukje php met " waardoor /thumbs/klein_ nergens meer tussen staat.

Dit moet wel werken denk ik.

1
2
3
<?php
echo '<img src="'.$album.'/thumbs/klein_'.$files[$rand]. '"title="'.$afbeelding['basename'] .'" alt="'.$afbeelding['basename']. '" class="thumbs"> ';
?>
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_101832456
quote:
14s.gif Op zaterdag 10 september 2011 02:10 schreef boem-dikkie het volgende:

[..]

Voor het geval je er nog niet uit bent.

".$album."/thumbs/klein_".$files[$rand]. "

Kijk daar nog eens goed naar.

Je sluit je stukje php met " waardoor /thumbs/klein_ nergens meer tussen staat.

Dit moet wel werken denk ik.
[ code verwijderd ]

het is min of meer gelukt
alle foutmeldingen zijn verdwenen maar het script doet niet wat ik had gehoopt :(
http://www.phphulp.nl/php(...)h-fotoalbum-v3/1491/ is een fotoalbum die vanuit mapjes zelf "sub"albums aanmaakt
werkt prima
maar
op de voorbeeld pagina is het de overzichtspagina met linkjes EN plaatjes. In het script van phphulp heb ik alleen linkjes
Ik had gehoopt met een aangepast script wat erbij stond dit te kunnen maken..maar helaas..
ook gaat mijn php kennis lang niet vergenoeg om zoiets zelf te maken
pi_101832772
Wij kunnen het wel weer voorkauwen maar wellicht kun je het hele project beter uitbesteden.
pi_101833462
quote:
1s.gif Op zondag 11 september 2011 21:03 schreef Tegan het volgende:
Wij kunnen het wel weer voorkauwen maar wellicht kun je het hele project beter uitbesteden.
ik vraag er toch ook niet om, leg alleen even uit waar ik mee bezig ben
als het me verder niet meer lukt..so be it..dan maar alleen linkjes
tis maar voor de hobby..gelukkig hoef ik er niet rijk van te worden :)
pi_101833571
Heb je wellicht GD niet geinstalleerd staan? [/wilde suggestie]

En waarom maak je niet gewoon lekker een picasa-album ofzo?
  zondag 11 september 2011 @ 21:16:30 #206
137776 boem-dikkie
Jedi Mind Baby!
pi_101833593
quote:
0s.gif Op zondag 11 september 2011 20:58 schreef MrNiles het volgende:

[..]

het is min of meer gelukt
alle foutmeldingen zijn verdwenen maar het script doet niet wat ik had gehoopt :(
http://www.phphulp.nl/php(...)h-fotoalbum-v3/1491/ is een fotoalbum die vanuit mapjes zelf "sub"albums aanmaakt
werkt prima
maar
op de voorbeeld pagina is het de overzichtspagina met linkjes EN plaatjes. In het script van phphulp heb ik alleen linkjes
Ik had gehoopt met een aangepast script wat erbij stond dit te kunnen maken..maar helaas..
ook gaat mijn php kennis lang niet vergenoeg om zoiets zelf te maken
Wat voor aangepast script wat erbij stond?
Ik weet niks van Hindoes. Wel van Samoerai en andere dingen.
pi_101834049
quote:
0s.gif Op zondag 11 september 2011 21:16 schreef KomtTijd... het volgende:
Heb je wellicht GD niet geinstalleerd staan? [/wilde suggestie]

En waarom maak je niet gewoon lekker een picasa-album ofzo?
Wat is GD? (edit: GD support = enabled)

Ik ben zelf een beetje aan het pielen met php als hobby
daarom eigenlijk geen picasa,
Heb nu zo gemaakt dat er een zipje wordt geupload naar de site
deze wordt uitgepakt in de juiste dir en zo een fotoboek ontstaat
Het is gewoon om te spelen eigenlijk, beetje bezig in m'n vrije tijd

@boem-dikkie: verder omlaag in de comments staat er een aangepast script,
ik wist niet precies wat het ging doen, de omschrijving was niet heel goed erbij
als ik het nu terug lees is het denk ik een oplossing voor een ander probleem
maar dit was de extra code erin
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
<?php
// Nieuw Nieuw Nieuw Nieuw //
      
$exts 'jpg jpeg png gif';
      
$files = array();
      
$i = - 1;
      if (
'' == $album)
        
$album './';
      
$handle opendir($album);
      
$exts explode(' '$exts);
      while (
false !== ($file readdir($handle))) {
        foreach (
$exts as $ext) {
          if (
preg_match('/\.' $ext '$/i'$file$test)) {
            
$files[] = $file;
            ++
$i;
          }
        }
      }
      
closedir($handle);
      
mt_srand((double) microtime() * 1000000);
      
$rand mt_rand(0$i);
// Eind Eind Eind Eind Eind //

      
echo '<img src="'.$album.'/thumbs/klein_'.$files[$rand]. '"title="'.$afbeelding['basename'] .'" alt="'.$afbeelding['basename']. '" class="thumbs"> ';
      echo 
'<a href='?pagina=fotoalbum&album=' . $album . ''>' ucfirst(basename($album)) . '</a><br><br />' PHP_EOL;
?>


[ Bericht 2% gewijzigd door MrNiles op 12-09-2011 10:23:34 ]
  donderdag 15 september 2011 @ 10:32:37 #208
107418 wdn
Elfen lied O+
pi_101969175
MySQL...

Ik heb een display van `relaties` en daarnaast een tabel van enkele miljoenen (10+) records waarbij op basis van een veld `relatie` en `jaartal` moet gaan controleren wat de `omzet` (sum) is over 3 jaren.
Dus... relatie, naam. omzet 2011, omzet 2010, omzet 2009.

Maar zelfs met `indexering` op de tabel is het veel en veels te langzaam (30+ secondes) om alles bij elkaar te rapen.

Nu ben ik een beetje aan het rondkijken en kwam ik `stored procedures` tegen. Is dit wat ik nodig heb om hiermee bijvoorbeeld een schaduwtabel te maken die real time ge-update wordt als de hoofdtabel opgebouwd wordt?

Of is er een betere oplossing? Ik weiger om in de tabel `relaties` een veld op te nemen met de omzetgegevens voor die jaren ;-)
Beatus vir qui suffert tentationem.
PSN Rinzewind en Cadsuana Melaidhrin
Stellar Blade *O* Sea of Stars *O* Trails Daybreak *O*
  donderdag 15 september 2011 @ 10:38:55 #209
75592 GlowMouse
l'état, c'est moi
pi_101969316
Onduidelijk verhaal. Wat is de output van SHOW CREATE TABLE, en wat is je query?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 15 september 2011 @ 12:04:39 #210
58834 Catbert
The evil HR Director.
pi_101971738
Ik vermoed dat 'ie een overzicht wil tonen van alle relaties met de omzet daarbij. Als hij geen index heeft op het veld wat die informatie bevat in de grote tabel zal 'ie voor zo'n overzicht iedere keer die hele tabel door moeten ploegen.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  donderdag 15 september 2011 @ 12:14:48 #211
75592 GlowMouse
l'état, c'est moi
pi_101972014
quote:
0s.gif Op donderdag 15 september 2011 12:04 schreef Catbert het volgende:
Ik vermoed dat 'ie een overzicht wil tonen van alle relaties met de omzet daarbij. Als hij geen index heeft op het veld wat die informatie bevat in de grote tabel zal 'ie voor iedere rij uit zo'n overzicht iedere keer die hele tabel door moeten ploegen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 15 september 2011 @ 12:18:23 #212
58834 Catbert
The evil HR Director.
pi_101972132
Nee, want hij heeft vermoedelijk wel een index op relatie id. Tenminste, dat hoop ik, anders is het wel heel erg dom.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  donderdag 15 september 2011 @ 12:28:01 #213
75592 GlowMouse
l'état, c'est moi
pi_101972417
Zelfs met zo'n index is het goed mogelijk dat hij voor elke relatie in zijn overzicht de hele tabel doorloopt. Doorlopen moet je dan zien elke datapage raadplegen (als is het maar voor een record per page).
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 15 september 2011 @ 12:30:45 #214
12221 Tijn
Powered by MS Paint
pi_101972482
quote:
0s.gif Op donderdag 15 september 2011 10:32 schreef wdn het volgende:

Maar zelfs met `indexering` op de tabel is het veel en veels te langzaam (30+ secondes) om alles bij elkaar te rapen.
Dan heb je niet de juiste indices geplaatst.
  donderdag 15 september 2011 @ 12:43:51 #215
75592 GlowMouse
l'état, c'est moi
pi_101972823
quote:
3s.gif Op donderdag 15 september 2011 12:30 schreef Tijn het volgende:

[..]

Dan heb je niet de juiste indices geplaatst.
Wat een snelle conclusie, een kenner?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  donderdag 15 september 2011 @ 13:27:51 #216
12221 Tijn
Powered by MS Paint
pi_101974172
quote:
7s.gif Op donderdag 15 september 2011 12:43 schreef GlowMouse het volgende:

[..]

Wat een snelle conclusie, een kenner?
Als er verder geen informatie wordt gegeven, kun je verder niet zoveel zeggen dan "je hebt het verkeerd gedaan" :P
pi_101975232
Probeer eens een 'explain' voor je query te gooien om te kijken waar prestatiewinst te behalen valt.
http://dev.mysql.com/doc/refman/5.0/en/explain.html
pi_101976377
quote:
0s.gif Op donderdag 15 september 2011 14:02 schreef Intrepidity het volgende:
Probeer eens een 'explain' voor je query te gooien om te kijken waar prestatiewinst te behalen valt.
http://dev.mysql.com/doc/refman/5.0/en/explain.html
Ik heb net query gemaakt en gekeken met explain wat hij toevoegt, maar ik zie wat hij doet, maar niet waar hoeveel tijd inging zitten en hoeveel percentage de belasting van een onderdeel was. Zou wel tof zijn als hij zegt dat een bepaalde join 60% van de belasting vraagt en dat je daar kunt beginnen voor verbetering.
  donderdag 15 september 2011 @ 14:45:24 #219
58834 Catbert
The evil HR Director.
pi_101976671
Je weet niks als hij niet post welke indices hij heeft.

De MSSQL query explain geeft overigens gewoon aan hoe zwaar een bepaald deel is.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
pi_101977778
quote:
0s.gif Op donderdag 15 september 2011 14:45 schreef Catbert het volgende:
Je weet niks als hij niet post welke indices hij heeft.

De MSSQL query explain geeft overigens gewoon aan hoe zwaar een bepaald deel is.
MySQL geeft echt weinig informatie ;(
  donderdag 15 september 2011 @ 15:17:27 #221
75592 GlowMouse
l'état, c'est moi
pi_101977871
Je kunt het gewoon niet lezen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_101977896
quote:
0s.gif Op donderdag 15 september 2011 15:17 schreef GlowMouse het volgende:
Je kunt het gewoon niet lezen.
Geef dan eens een mooi voorbeeld.
  donderdag 15 september 2011 @ 15:31:51 #223
75592 GlowMouse
l'état, c'est moi
pi_101978434
Nee, want het kost gewoon tijd voor je het kunt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 16 september 2011 @ 15:47:31 #224
267443 Cue_
Cuecumbergirl
pi_102020043
Oke ik zit met het volgende, vanuit een pakket wordt de volgende code gegenereerd die ik in mijn database moet gooien:

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
/* Drop stored procedure task_generate_sales_invoice first. */

if exists (select 1 from sysobjects
           where name = 'task_generate_sales_invoice' and type = 'P')
   drop procedure task_generate_sales_invoice
go

create procedure task_generate_sales_invoice
(

   @until_date    date   ,
   @customer_id   id     
)
as
begin

  -- Do not count affected rows for performance
  SET NOCOUNT ON

   -- Generate sales invoice
   
   insert into sales_invoice
   select isnull((select max(sales_invoice_no) + 1
                  from sales_invoice), 1),
          customer_id,
          getdate(),
          dateadd(day, 30, getdate()),
          0,
          0,
          0
   from customer c
   where c.customer_id = @customer_id
     and exists (select 1
                 from hour h
                 join project p on (p.project_id = h.project_id)
                 where h.sales_invoice_id is null
                   and p.customer_id = c.customer_id)
   
   -- Connect hours to sales invoice.
   
   update h
   set sales_invoice_id = (select max(sales_invoice_id)
                           from sales_invoice i
                           where i.customer_id = p.customer_id)
   from hour h
   join project p on (p.project_id = h.project_id)
   where h.sales_invoice_id is null
     and p.customer_id = @customer_id
     and h.date       <= @until_date
   
end
go

Nu krijg ik de volgende foutmelding:
1
2
Msg 213, Level 16, State 1, Procedure task_generate_sales_invoice, Line 16
Insert Error: Column name or number of supplied values does not match table definition.
  vrijdag 16 september 2011 @ 16:05:16 #225
52200 ViPeRII
It's a good day to die
pi_102020671
Een van je tabelnamen die geselecteerd worden, bestaat niet
-- ViPeRII --
  vrijdag 16 september 2011 @ 16:12:34 #226
58834 Catbert
The evil HR Director.
pi_102020948
quote:
0s.gif Op vrijdag 16 september 2011 16:05 schreef ViPeRII het volgende:
Een van je tabelnamen die geselecteerd worden, bestaat niet
Kolomnaam volgens mij.
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  vrijdag 16 september 2011 @ 16:16:28 #227
267443 Cue_
Cuecumbergirl
pi_102021104
de kolommen/tabellen komen overeen met het datamodel
  vrijdag 16 september 2011 @ 17:13:51 #228
107418 wdn
Elfen lied O+
pi_102023207
quote:
3s.gif Op donderdag 15 september 2011 12:30 schreef Tijn het volgende:

[..]

Dan heb je niet de juiste indices geplaatst.
Onzin. Echt.
quote:
0s.gif Op donderdag 15 september 2011 12:04 schreef Catbert het volgende:
Ik vermoed dat 'ie een overzicht wil tonen van alle relaties met de omzet daarbij. Als hij geen index heeft op het veld wat die informatie bevat in de grote tabel zal 'ie voor zo'n overzicht iedere keer die hele tabel door moeten ploegen.
Nee, de index staat op de relatie natuurlijk (als ik die niet zet gaat mysql onderuit ;) ).
Het is puur de hoeveelheid data (op dit moment 12.3 miljoen records) en hoeveelheid geheugen die ik kan gebruiken.

Maar uit de discussie hier kan ik al bepalen dat mijn vraag met 'nee' beantwoord moet worden: stored procedures is niet de oplossing.

relaties kent een 1500 records.
factuur historie 12.3m records.

factuur historie wordt op bedrijf, debiteur, contract factuur, regel doorlopen (en dat is de volledige primary key met debiteur ertussen). Geforceerd met een USE INDEX.

Ik had het idee om een soort van afgeleide tabel boven op deze tabel te leggen (met een PK bedrijf, debiteur, jaar, omzet).
Beatus vir qui suffert tentationem.
PSN Rinzewind en Cadsuana Melaidhrin
Stellar Blade *O* Sea of Stars *O* Trails Daybreak *O*
pi_102023251
quote:
0s.gif Op vrijdag 16 september 2011 17:13 schreef wdn het volgende:

[..]

Onzin. Echt.

[..]

Nee, de index staat op de relatie natuurlijk (als ik die niet zet gaat mysql onderuit ;) ).
Het is puur de hoeveelheid data (op dit moment 12.3 miljoen records) en hoeveelheid geheugen die ik kan gebruiken.

Maar uit de discussie hier kan ik al bepalen dat mijn vraag met 'nee' beantwoord moet worden: stored procedures is niet de oplossing.

relaties kent een 1500 records.
factuur historie 12.3m records.

factuur historie wordt op bedrijf, debiteur, contract factuur, regel doorlopen (en dat is de volledige primary key met debiteur ertussen). Geforceerd met een USE INDEX.

Ik had het idee om een soort van afgeleide tabel boven op deze tabel te leggen (met een PK bedrijf, debiteur, jaar, omzet).
Idee om je factuur historie tabel te gaan sharden? Dat zou de boel een stuk moeten versnellen.
pi_102096658
Ik gebruik op dit moment voor m'n website een paging system:

1
2
3
4
5
        if($pages >= 1 && $page <= $pages){
            for ($x=1; $x<=$pages; $x++) {
                echo ($x == $page) ? "<strong><a href='/nieuws/overzicht&page=".$x."'>".$x."</a></strong>  " : "<a href='/nieuws/overzicht&page=".$x."'>".$x."</a>  ";
            }
        }

Alleen er zijn nu zoveel pagina's dat de hele pagina wordt gevuld ermee. Nu heb ik zitten denken hoe ik ervoor kan zorgen dat ik '1 2 3 ... 30 31 32' krijg (of iets dergelijks), maar ik kom er niet uit.

Iemand die mij kan helpen?
pi_102103415
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zondag 18 september 2011 @ 18:53:57 #232
12221 Tijn
Powered by MS Paint
pi_102106592
Gewoon een ifje in je for-loop die kijkt of $x kleiner is dan 3 en een ifje die kijkt of $x groter is dan $pages - 3 toch?
pi_102107009
Ik ga eens even kijken naar een if statement :)
  zondag 18 september 2011 @ 19:29:14 #234
75592 GlowMouse
l'état, c'est moi
pi_102107880
quote:
5s.gif Op zondag 18 september 2011 18:53 schreef Tijn het volgende:
Gewoon een ifje in je for-loop die kijkt of $x kleiner is dan 3 en een ifje die kijkt of $x groter is dan $pages - 3 toch?
Dat is erg inefficiënt, je kunt beter in die for-loop $x in 1x flink ophogen als je bij de puntjes aanbelandt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102110569
Het is me nu gelukt op de volgende manier;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if($pages >= 1 && $page <= $pages){
            if($page >= 2){
                $nextpage = $page+1;
                $previouspage = $page-1;
                if($page == $pages){
                    echo "<a href='overzicht&page=1'>Eerste</a> | <a href='overzicht&page=$previouspage'>Vorige</a> <strong>...<a href='overzicht&page=$page'>$page</a></strong>";
                }
                else{                
                    echo "<a href='overzicht&page=1'>Eerste</a> | <a href='overzicht&page=$previouspage'>Vorige</a> <strong>...<a href='overzicht&page=$page'>$page</a>...</strong> <a href='overzicht&page=".$nextpage."'>Volgende</a> | <a href='overzicht&page=$pages'>Laatste</a>";
                }            
            }
            else{
                $nextpage = $page+1;
                echo "<strong><a href='overzicht&page=$page'> $page</a>...</strong> <a href='overzicht&page=".$nextpage."'>Volgende</a> | <a href='overzicht&page=$pages'>Laatste</a>";
            }
        }
pi_102114805
Tijdje geleden heb ik een functie geschreven dit tot de dag van vandaag nog goed te gebruiken is. Volledig aanpasbaar door opgeven van parameters en hij poept netjes de pagina string uit.
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?php
/**
 * 
 * Format base_url: 'pages.php?id=1&start=%d'
 * The %d string is for the count element
 * 
 * Decoration array parameters
 * - param: Boolean $add_prevnext_text
 * - param: String $selected_format
 * - param: String $base_url_html
 * - param: String $spacer
 * - param: String $breaker
 *
 * @param String $base_url
 * @param Integer $num_items
 * @param Integer $per_page
 * @param Integer $start_item
 * @param Array $add_prevnext_text
 * @return String
 */
function GeneratePagination($base_url$num_items$per_page$start_item$decoration = array())
{
    
$add_prevnext_text false;
    
$selected_format '<b>%d</b>';
    
$base_url_html sprintf('<a href="%s">%s</a>'$base_url'%s');
    
    
$spacer            ' ';
    
$breaker        ' ... ';
    
$previous_text    'Previous';
    
$next_text        'Next';
    
    if ( 
$num_items == )
    {
        throw new 
Exception('mag geen 0 zijn want die kun je niet delen door een getal.');
    }
    
    if ( isset(
$decoration['add_prevnext_text']) === true )
    {
        
$add_prevnext_text true;
    }
    
    if ( isset(
$decoration['previous_text']) === true )
    {
        
$previous_text $decoration['previous_text'];
    }
    
    if ( isset(
$decoration['next_text']) === true )
    {
        
$next_text $decoration['next_text'];
    }
    
    if ( isset(
$decoration['selected_format']) === true )
    {
        
$selected_format $decoration['selected_format'];
    }
    
    if ( isset(
$decoration['base_url_html']) === true )
    {
        
$base_url_html sprintf($decoration['base_url_html'], $base_url'%s');
    }
    
    if ( isset(
$decoration['spacer']) === true )
    {
        
$spacer $decoration['spacer'];
    }
    
    if ( isset(
$decoration['breaker']) === true )
    {
        
$breaker $decoration['breaker'];
    }
    
    
$total_pages ceil($num_items/$per_page);

    if ( 
$total_pages == )
    {
        return 
'';
    }

    
$on_page floor($start_item $per_page) + 1;

    
$page_string '';
    if ( 
$total_pages 10 )
    {
        
$init_page_max = ( $total_pages ) ? $total_pages;

        for(
$i 1$i $init_page_max 1$i++)
        {
            
$page_string .= ( $i == $on_page ) ? sprintf($selected_format$i) : sprintf($base_url_html, ( ( $i ) * $per_page ), $i);
            if ( 
$i <  $init_page_max )
            {
                
$page_string .= $spacer;
            }
        }

        if ( 
$total_pages )
        {
            if ( 
$on_page && $on_page $total_pages )
            {
                
$page_string .= ( $on_page ) ? $breaker $spacer;

                
$init_page_min = ( $on_page ) ? $on_page 5;
                
$init_page_max = ( $on_page $total_pages ) ? $on_page $total_pages 4;

                for(
$i $init_page_min 1$i $init_page_max 2$i++)
                {
                    
$page_string .= ($i == $on_page) ? sprintf($selected_format$i) : sprintf($base_url_html, ( ( $i ) * $per_page ), $i);
                    if ( 
$i <  $init_page_max )
                    {
                        
$page_string .= $spacer;
                    }
                }

                
$page_string .= ( $on_page $total_pages ) ? $breaker $spacer;
            }
            else
            {
                
$page_string .= $breaker;
            }

            for(
$i $total_pages 2$i $total_pages 1$i++)
            {
                
$page_string .= ( $i == $on_page ) ? sprintf($selected_format$i)  : sprintf($base_url_html, ( ( $i ) * $per_page ), $i);
                
                if( 
$i $total_pages )
                {
                    
$page_string .= $spacer;
                }
            }
        }
    }
    else
    {
        for( (int) 
$i 1$i $total_pages 1$i++ )
        {
            
$page_string .= ( $i == $on_page ) ? sprintf($selected_format$i) : sprintf($base_url_html, ( $i ) * $per_page$i);
            
            if ( 
$i $total_pages )
            {
                
$page_string .= $spacer;
            }
        }
    }

    if ( 
$add_prevnext_text )
    {
        if ( 
$on_page )
        {
            
$page_string sprintf($base_url_html, ( $on_page ) * $per_page$previous_text) . ' ' $page_string;
        }

        if ( 
$on_page $total_pages )
        {
            
$page_string .= (string) ' ' sprintf($base_url_html$on_page $per_page$next_text);
        }
    }

    return 
$page_string;
}
?>


:)
  zondag 18 september 2011 @ 22:30:24 #237
85514 ralfie
!Yvan eht nioj
pi_102120910
isset($decoration['breaker']) === true

isset poept toch alleen maar true of false? waarom die === true ?
  zondag 18 september 2011 @ 23:58:08 #238
12221 Tijn
Powered by MS Paint
pi_102125902
Met een beetje geluk mag ik binnenkort een applicatie gaan schrijven die mailtjes moet importeren uit een POP3 mailbox (dmv van de imap-functies) en data moet exporteren naar iCalender voor gebruik in Google Calender en Apple iCal. Best tof lijkt me, want het zijn allebei dingen die ik nog nooit gedaan heb, maar volgens mij ook niet supermoeilijk te bouwen zijn :)
pi_102129656
quote:
5s.gif Op zondag 18 september 2011 22:30 schreef ralfie het volgende:
isset($decoration['breaker']) === true

isset poept toch alleen maar true of false? waarom die === true ?
Ik vind
1
2
3
<?php
if( functie($parameter) === true ) { }
?>
fijner lezen als
1
2
3
<?php
if( functie($parameter)) { }
?>

Maar dat is persoonlijk :P En de === i.p.v. de == die gebruikelijk is in een statement: http://www.php.net/manual/en/language.operators.comparison.php. Die controleert ook of het type hetzelfde is.
  maandag 19 september 2011 @ 08:17:27 #240
91039 mstx
2x1/2 = 1/2 x 1/2
pi_102129952
quote:
0s.gif Op maandag 19 september 2011 07:47 schreef Pakspul het volgende:
En de === i.p.v. de == die gebruikelijk is in een statement: http://www.php.net/manual/en/language.operators.comparison.php. Die controleert ook of het type hetzelfde is.
Bij isset() is dat nutteloos want die returned sowieso alleen true of false.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_102129964
quote:
0s.gif Op maandag 19 september 2011 08:17 schreef mstx het volgende:

[..]

Bij isset() is dat nutteloos want die returned sowieso alleen true of false.
En dan komt reden 1 om de hoek kijken :P
  dinsdag 20 september 2011 @ 11:14:15 #242
37634 wobbel
Da WoBBeL King
pi_102173640
Ik heb een tabel met producten, en een tabel met verkocht.

Tabel "producten"
1 | Product A | 25,-
2 | Product B | 100,-
3 | Product C | 33,-

Tabel "verkocht"
1 | 25-8-2011
1 | 26-8-2011
1 | 27-8-2011
2 | 27-8-2011
2 | 28-8-2011
3 | 25-8-2011

Hoe krijg ik nu een overzicht hoeveel producten er verkocht zijn van elk?

Dus ongeveer dit:

Product A | 3x
Product B | 2x
Product C | 1x
  dinsdag 20 september 2011 @ 11:16:34 #243
91039 mstx
2x1/2 = 1/2 x 1/2
pi_102173690
SELECT producten.naam, SUM(*) FROM verkocht LEFT JOIN producten ON verkocht.pro_id=producten.pro_id GROUP BY verkocht.pro_id

zoiets?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  dinsdag 20 september 2011 @ 11:19:16 #244
75592 GlowMouse
l'état, c'est moi
pi_102173768
SELECT producten.naam, COUNT(*)
FROM verkocht
LEFT JOIN producten ON verkocht.pro_id=producten.pro_id
GROUP BY producten.pro_id
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 20 september 2011 @ 11:22:32 #245
37634 wobbel
Da WoBBeL King
pi_102173845
quote:
3s.gif Op dinsdag 20 september 2011 11:19 schreef GlowMouse het volgende:
SELECT producten.naam, COUNT(*)
FROM verkocht
LEFT JOIN producten ON verkocht.pro_id=producten.pro_id
GROUP BY producten.pro_id
Bedankt :) ik was alleen vergeten het in een while loop te gooien waardoor ik maar 1 resultaat kreeg. Had al dezelfde query als jou gebouwd :')

Array
(
[Naam] => Draytek Vigor 2710N-A
[Aantal] => 1
)
Array
(
[Naam] => EnGenius M36
[Aantal] => 1
)
Array
(
[Naam] => Draytek Vigor 2820N-A
[Aantal] => 2
)
pi_102173858
quote:
3s.gif Op dinsdag 20 september 2011 11:19 schreef GlowMouse het volgende:
SELECT producten.naam, COUNT(*)
FROM verkocht
LEFT JOIN producten ON verkocht.pro_id=producten.pro_id
GROUP BY producten.pro_id
Geen COUNT(*) maar COUNT(id) doen. Bij * pakt hij de index niet mee ;)
  dinsdag 20 september 2011 @ 11:22:59 #247
91039 mstx
2x1/2 = 1/2 x 1/2
pi_102173860
quote:
3s.gif Op dinsdag 20 september 2011 11:19 schreef GlowMouse het volgende:
SELECT producten.naam, COUNT(*)
FROM verkocht
LEFT JOIN producten ON verkocht.pro_id=producten.pro_id
GROUP BY producten.pro_id
Oja het moet inderdaad een count zijn, foutje. :P
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  dinsdag 20 september 2011 @ 11:34:47 #248
75592 GlowMouse
l'état, c'est moi
pi_102174170
quote:
0s.gif Op dinsdag 20 september 2011 11:22 schreef Intrepidity het volgende:

[..]

Geen COUNT(*) maar COUNT(id) doen. Bij * pakt hij de index niet mee ;)
COUNT(*) is exact hetzelfde als COUNT(kolom die NOT NULL is)
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 20 september 2011 @ 11:35:20 #249
75592 GlowMouse
l'état, c'est moi
pi_102174184
quote:
0s.gif Op dinsdag 20 september 2011 11:22 schreef mstx het volgende:

[..]

Oja het moet inderdaad een count zijn, foutje. :P
En de GROUP BY is ook op een andere tabel, anders krijg je producten met 0 bestellingen niet te zien.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102174230
quote:
0s.gif Op dinsdag 20 september 2011 11:34 schreef GlowMouse het volgende:

[..]

COUNT(*) is exact hetzelfde als COUNT(kolom die NOT NULL is)
Klopt, maar toch pakt hij een eventuele index niet mee tenzij je expliciet een kolom met index specificeert. MySQL is een hacky stuk code. Zolang je gewoon de PK in een COUNT gebruikt is er niets aan het handje :)
  dinsdag 20 september 2011 @ 11:43:45 #251
37634 wobbel
Da WoBBeL King
pi_102174413
Ik heb verkocht en producten al omgewisseld bij de LEFT JOIN, maar hoe krijg ik ook de producten waarvan er 0 zijn verkocht? :P Als ik ze omwissel staat overal 1 achter :'(
pi_102174451
Overigens is het ook een stuk sneller om de relatie om te draaien. selecten uit producten en verkocht hieraan joinen. Dit omdat er een stuk meer records in verkocht dan in producten zitten.
  dinsdag 20 september 2011 @ 11:56:49 #253
75592 GlowMouse
l'état, c'est moi
pi_102174791
quote:
0s.gif Op dinsdag 20 september 2011 11:36 schreef Intrepidity het volgende:

[..]

Klopt, maar toch pakt hij een eventuele index niet mee tenzij je expliciet een kolom met index specificeert. MySQL is een hacky stuk code. Zolang je gewoon de PK in een COUNT gebruikt is er niets aan het handje :)
Ik heb hier aardig wat mee getest en dit heb ik nog nooit gezien. Heb je een dataset, een query, en een MySQL-versienummer waarbij dit optreedt?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102174803
GlowMouse, hoe ben jij ooit zon MySQL-baas geworden als ik mag vragen? Ik kan zelf nog steeds niet altijd voorspellen wat het query plan wordt van bepaalde queries, is dat een kwestie van de source erop naslaan of heb je misschien een handige referentie voor me? De manual behandelt dit niet echt in-depth volgens mij :)

Concrete vraag; ik heb zoiets:

1
2
3
4
5
6
7
8
CREATE TABLE `comments` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `content_id` timestamp NULL DEFAULT NULL, -- timestamp ja :D
  *snip* hoop blabla *snip*
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `by_content_id` (`content_id`,`created_at`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

Ik wil een ordening van alle items waarnaar content_id refereert op basis van MAX(created_at), stel ik heb dus 1 bepaald content_id, hoe bepaal ik dan de "offset", d.w.z. hoeveel content_id's zijn er met lagere MAX(created_at)?

Zelf heb ik dit
1
2
3
4
5
6
7
8
9
10
11
SELECT COUNT(*)
FROM (
       SELECT 1
       FROM comments
       GROUP BY content_id
       HAVING MAX(created_at) > (
               SELECT MAX(created_at)
               FROM comments
               WHERE content_id = FROM_UNIXTIME(1316465786)
       )
) AS predecessors

Werkt prima maar ik vind het, a: spuuglelijk, b: ik heb een vermoeden dat het beter/korter/mooier moet kunnen.

EDIT: Ik vind het ook vervelend dat ik FROM_UNIXTIME / UNIX_TIMESTAMP telkens moet gebruiken, ik werk met UTC timestamps dus de conversie van/naar is onnodig en vervelend. Is er een instelling voor de default weergave als UTC stamp? (ik heb hem niet kunnen vinden)
pi_102174816
quote:
0s.gif Op dinsdag 20 september 2011 11:56 schreef GlowMouse het volgende:

[..]

Ik heb hier aardig wat mee getest en dit heb ik nog nooit gezien. Heb je een dataset, een query, en een MySQL-versienummer waarbij dit optreedt?
Ik heb nu geen tijd (@ werk), maar zal vanavond eens wat gaan testen :)
Kan idd ook wezen dat het al lang weer uit MySQL is. Het is een behoorlijke legacy-werkwijze van mij :P Stamt nog uit het 4.x tijdperk afaik.
  dinsdag 20 september 2011 @ 12:04:41 #256
75592 GlowMouse
l'état, c'est moi
pi_102174999
quote:
3s.gif Op dinsdag 20 september 2011 11:57 schreef Thomass het volgende:
GlowMouse, hoe ben jij ooit zon MySQL-baas geworden als ik mag vragen?
:o
http://shop.oreilly.com/product/9780596101718.do en http://www.mysqlperformanceblog.com/ helemaal lezen, en veel uitproberen. De meeste kennis heb ik in een maandje of 2-3 wel verworven.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102175026
En het is ook een kwestie van veel EXPLAIN gebruiken en kijken waar je kunt optimaliseren. Nadat je dat 10 keer hebt uitgevonden doe je het volautomatisch :P
  dinsdag 20 september 2011 @ 12:09:01 #258
75592 GlowMouse
l'état, c'est moi
pi_102175123
zo?
1
2
3
4
5
6
7
SELECT COUNT(DISTINCT content_id)
FROM comments
WHERE created_at > (
        SELECT MAX(created_at)
        FROM comments
        WHERE content_id = FROM_UNIXTIME(1316465786)
)
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 20 september 2011 @ 12:14:37 #259
75592 GlowMouse
l'état, c'est moi
pi_102175287
Volgens mij bedoel je op regel 6 een < ipv een >. Voor een < kun je zoiets doen:
1
2
3
4
SELECT COUNT(DISTINCT c1.content_id)
FROM comments c1
LEFT JOIN c2 ON(c1.content_id=c2.content_id AND c2.created_at>[subquery eerst uitvoeren en het resultaat hier zetten])
WHERE c2.content_id IS NULL
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 20 september 2011 @ 12:17:36 #260
75592 GlowMouse
l'état, c'est moi
pi_102175366
quote:
0s.gif Op dinsdag 20 september 2011 12:04 schreef GlowMouse het volgende:

[..]

:o
http://shop.oreilly.com/product/9780596101718.do en http://www.mysqlperformanceblog.com/ helemaal lezen, en veel uitproberen. De meeste kennis heb ik in een maandje of 2-3 wel verworven.
Deel 3 komt eraan: http://www.xaprb.com/blog(...)mysql-third-edition/
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 20 september 2011 @ 12:51:54 #261
25889 Sitethief
Fulltime Flapdrol
pi_102176356
Is EXPLAIN ook goed in te zetten als je een PDO class hebt opgebouwd waarmee je al je queries afhandelt?
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_102176659
quote:
0s.gif Op dinsdag 20 september 2011 12:51 schreef Sitethief het volgende:
Is EXPLAIN ook goed in te zetten als je een PDO class hebt opgebouwd waarmee je al je queries afhandelt?
Binnen je applicatie heb je er niet zo veel aan afaik. Je gebruikt het direct op MySQL om je queries te optimaliseren voordat je ze in je applicatie gaat gebruiken.
pi_102176937
quote:
0s.gif Op dinsdag 20 september 2011 12:14 schreef GlowMouse het volgende:
Volgens mij bedoel je op regel 6 een < ipv een >. Voor een < kun je zoiets doen:
[ code verwijderd ]

Het is verwarrend ja maar ik bedoelde wel een groter dan. Item met meest recent comment heeft 0 predecessors, t item met het op-ena-meest recente comment heeft 1 predecessor enz.

Bedankt i.i.g. voor je bijdrage, maar ik heb wel de indruk dat het meer werk doet dan mijn oplossing. Kan dat kloppen?

Als ik zo een tabelletje bouw en er wat data in prop:
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
mysql> show create table comments2\G
*************************** 1. row ***************************
       Table: comments2
Create Table: CREATE TABLE `comments2` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `content_id` int(10) unsigned DEFAULT NULL,
  `created_at` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `by_content_id` (`content_id`,`created_at`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

mysql> select count(*) from comments2;
+----------+
| count(*) |
+----------+
|  2359296 |
+----------+
1 row in set (0.02 sec)

mysql> select content_id, max(created_at) from comments2 group by content_id order by max(created_at) asc;
+------------+-----------------+
| content_id | max(created_at) |
+------------+-----------------+
|          1 |               3 |
|          2 |               6 |
*snip*
|    2654208 |         5308416 |
|    3981312 |         7962624 |
+------------+-----------------+
95 rows in set (0.04 sec)

Dan krijg ik bij jouw resp. mijn query dit (subquery apart doen en invullen maakt geen verschil)
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
mysql> SELECT COUNT(DISTINCT content_id)
    -> FROM comments2
    -> WHERE created_at > (
    ->         SELECT MAX(created_at)
    ->         FROM comments2
    ->         WHERE content_id = 2654208
    -> );
+----------------------------+
| COUNT(DISTINCT content_id) |
+----------------------------+
|                          1 |
+----------------------------+
1 row in set (1.58 sec)

mysql> SELECT COUNT(*)
    -> FROM (
    ->   SELECT 1
    ->   FROM comments2
    ->   GROUP BY content_id
    ->   HAVING MAX(created_at) > (
    ->     SELECT MAX(created_at)
    ->     FROM comments2
    ->     WHERE content_id = 2654208
    ->   )
    -> ) AS predecessors;
+----------+
| COUNT(*) |
+----------+
|        1 |
+----------+
1 row in set (0.01 sec)

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
mysql> explain SELECT COUNT(*)
    -> FROM (
    ->   SELECT 1
    ->   FROM comments2
    ->   GROUP BY content_id
    ->   HAVING MAX(created_at) > (
    ->     SELECT MAX(created_at)
    ->     FROM comments2
    ->     WHERE content_id = 2654208
    ->   )
    -> ) AS predecessors;
+----+-------------+-----------+-------+---------------+---------------+---------+------+------+------------------------------+
| id | select_type | table     | type  | possible_keys | key           | key_len | ref  | rows | Extra                        |
+----+-------------+-----------+-------+---------------+---------------+---------+------+------+------------------------------+
|  1 | PRIMARY     | NULL      | NULL  | NULL          | NULL          | NULL    | NULL | NULL | Select tables optimized away |
|  2 | DERIVED     | comments2 | range | NULL          | by_content_id | 5       | NULL |   95 | Using index for group-by     |
|  3 | SUBQUERY    | NULL      | NULL  | NULL          | NULL          | NULL    | NULL | NULL | Select tables optimized away |
+----+-------------+-----------+-------+---------------+---------------+---------+------+------+------------------------------+
3 rows in set (0.01 sec)

mysql> explain SELECT COUNT(DISTINCT content_id)
    -> FROM comments2
    -> WHERE created_at > (
    ->         SELECT MAX(created_at)
    ->         FROM comments2
    ->         WHERE content_id = 2654208
    -> );
+----+-------------+-----------+-------+---------------+---------------+---------+------+---------+------------------------------+
| id | select_type | table     | type  | possible_keys | key           | key_len | ref  | rows    | Extra                        |
+----+-------------+-----------+-------+---------------+---------------+---------+------+---------+------------------------------+
|  1 | PRIMARY     | comments2 | index | NULL          | by_content_id | 9       | NULL | 2359296 | Using where; Using index     |
|  2 | SUBQUERY    | NULL      | NULL  | NULL          | NULL          | NULL    | NULL |    NULL | Select tables optimized away |
+----+-------------+-----------+-------+---------------+---------------+---------+------+---------+------------------------------+
2 rows in set (0.00 sec)
  dinsdag 20 september 2011 @ 13:11:18 #264
25889 Sitethief
Fulltime Flapdrol
pi_102176964
Hmm, ik doe mijn JOINS toch bijna alleen op de resultset, of daar nou heel veel snelheidsverbetering in zit vraag ik me af.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  dinsdag 20 september 2011 @ 14:11:33 #265
75592 GlowMouse
l'état, c'est moi
pi_102178738
Mijn query zou bij weinig resultaten idd sneller draaien als er ook een index stond op (created_at,comment_id).
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102226024
quote:
0s.gif Op dinsdag 20 september 2011 12:51 schreef Sitethief het volgende:
Is EXPLAIN ook goed in te zetten als je een PDO class hebt opgebouwd waarmee je al je queries afhandelt?
quote:
0s.gif Op dinsdag 20 september 2011 13:00 schreef Intrepidity het volgende:

[..]

Binnen je applicatie heb je er niet zo veel aan afaik. Je gebruikt het direct op MySQL om je queries te optimaliseren voordat je ze in je applicatie gaat gebruiken.
Dat hangt er maar net vanaf. Wij werken hier bv aan een behoorlijk grote (web)applicatie met enkele duizenden query's waarvan ook een flink deel automatisch gegenereerd is. We hebben pagina's met meer dan 100 query's en dan is het nogal fijn als je niet alles met de hand hoeft na te lopen. We hebben daarom op de devservers gewoon een analyser meelopen die voor iedere query ook een explain uitvoert en deze analyseert. Als het systeem denkt dat het beter kan zet hij netjes een warnings icoontje bij onze query log die onder iedere pagina staat met de values, tijd etc. Klik je er op krijg je de explain, backtraces en nog veel meer debug informatie :)
  woensdag 21 september 2011 @ 17:40:13 #267
75592 GlowMouse
l'état, c'est moi
pi_102226322
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102226594
Nosql
"Op Fok! val je pas op als je normaal bent." -mazaru
  woensdag 21 september 2011 @ 17:50:55 #269
75592 GlowMouse
l'état, c'est moi
pi_102226662
quote:
3s.gif Op woensdag 21 september 2011 17:48 schreef Flepke het volgende:
Nosql
HandlerSocket
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102227136
quote:
Hmm een automatische tool die een samenvatting op iedere pagina zet vs een losse tool die je handmatig moet draaien, eerst een netwerk dump maken en dan analyseren. Ik weet het wel :P De nuttige informatie die er uit komt is vrijwel hetzelfde.

Die tool heeft imo meer zn nut om op productieservers te draaien zodat je een snapshot kan nemen over vele requests en zo de zware query's er uit te vissen, niet voor development :)

quote:
3s.gif Op woensdag 21 september 2011 17:48 schreef Flepke het volgende:
Nosql
Je klinkt imo als een random persoon die gewoon de laatste hype na blaat.
  woensdag 21 september 2011 @ 18:18:08 #271
75592 GlowMouse
l'état, c'est moi
pi_102227626
EXPLAIN is in het begin nog wel handig om de echte ondingen eruit te vissen. Je moet dan bij development je database al wel goed vullen. Bij draaiende servers is hij met name handig omdat hij ook relatief snelle queries eruit vist die heel vaak draaien.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102227809
Klopt, je hebt uiteraard data nodig. Wij hebben gewoon een paar maanden oude (geanonimiseerde) kopie van productie draaien.
  woensdag 21 september 2011 @ 21:20:51 #273
37634 wobbel
Da WoBBeL King
pi_102237474
Ik heb een hele domme, maar ik ben moe en komer niet meer op :P

SELECT *
FROM producten

en dan waarvan 'prijs' 15 EN/OF 25 is

Ik wil een array krijgen met alle producten die 15 EN/OF 25 euro zijn :P
  woensdag 21 september 2011 @ 21:24:44 #274
12221 Tijn
Powered by MS Paint
pi_102237700
Wat is het verschil tussen en/of en gewoon of?

1SELECT * FROM `producten` WHERE `prijs` = 15 OR `prijs` = 25;
  woensdag 21 september 2011 @ 21:26:46 #275
37634 wobbel
Da WoBBeL King
pi_102237803
:') dat bedoel ik...ik moet slapen :P

Ik doe trouwens altijd WHERE (veld = 'waarde' OR veld = 'waarde2') met haakjes. Moet niet uitmaken toch? :P
pi_102237936
Maakt niet uit, zolang je maar consistent blijft in gebruik ervan (wel zo netjes).
  woensdag 21 september 2011 @ 21:30:06 #277
37634 wobbel
Da WoBBeL King
pi_102237979
quote:
7s.gif Op woensdag 21 september 2011 21:29 schreef Diabox het volgende:
Maakt niet uit, zolang je maar consistent blijft in gebruik ervan (wel zo netjes).
Dat ben ik altijd wel gelukkig :) niks vervelender dan iemand anders z'n programmeerwerk aanpassen en dan elke keer andere zaken tegenkomen. Lastig te lezen voor een eventuele opvolger van mijn werk ;)
  woensdag 21 september 2011 @ 23:45:04 #278
298746 Dalando
18, niet meer gefrustreerd
pi_102246356
Ik heb een getal. 1940239315. En ik moet het leesbaar maken via PHP, dus 1.940.239.315 ofzo. Hoe?
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  woensdag 21 september 2011 @ 23:52:35 #279
284294 BBQSausage
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
pi_102246706
quote:
7s.gif Op woensdag 21 september 2011 23:45 schreef Dalando het volgende:
Ik heb een getal. 1940239315. En ik moet het leesbaar maken via PHP, dus 1.940.239.315 ofzo. Hoe?
number_format();
  woensdag 21 september 2011 @ 23:58:42 #280
298746 Dalando
18, niet meer gefrustreerd
pi_102246949
quote:
14s.gif Op woensdag 21 september 2011 23:52 schreef BBQSausage het volgende:

[..]

number_format();
quote:
7s.gif Op woensdag 21 september 2011 23:58 schreef Dalando het volgende:

[..]

_O_
Spel-, taal- en grammaticafouten voorbehouden.
994a040db3f025e25771e045468fc121
  donderdag 22 september 2011 @ 09:33:25 #281
58834 Catbert
The evil HR Director.
pi_102252120
Helpt ook als je weet waarop je moet zoeken, formatting dus ;)
"[...] a large number of the teenagers claiming Asperger's are, in fact, merely dicks."
  donderdag 22 september 2011 @ 10:03:17 #282
37634 wobbel
Da WoBBeL King
pi_102252739
- dom geneuzel, niet gelezen -
pi_102263752
Weet iemand hoe ik het volgende vrij simpel kan maken?

Ik heb 1 database met een paar velden.

gebruiker, type, naam en inhoud.

nu wil ik deze tabel uitlezen maar tegelijk in de zelfde query bepalen of er van de naam meerdere in het tabel voorkomen met de gegeven where

voorbeeld:
1
2
3
4
5
SELECT count(t2.naam) AS totaal,
              t1.*
FROM t1
LEFT JOIN t2 ON t1.naam = t2.naam
WHERE gebruiker = 1

inhoud van database
1
2
3
4
5
6
1 - fruit - appels - aard 1
1 - fruit - appels - aard 2
1 - fruit - appels - aard 3
1 - fruit - bananen - chiqita
1 - fruit - peren - peer
1 - fruit - kiwi - kiwi

nu zie je dat appels er 3x in voorkomt met gebruikers id 1 dus wil ik als uitkomst van de query het volgende hebben.

1
2
3
4
5
6
1 - fruit - appels - aard 1 - 3
1 - fruit - appels - aard 2 - 3
1 - fruit - appels - aard 3 - 3
1 - fruit - bananen - chiqita - 1
1 - fruit - peren - peer - 1
1 - fruit - kiwi - kiwi - 1

Hoe krijg ik dit voor elkaar? zit er al een tijd mee te pielen, ook geprobeerd met FROM t1, t1 t2

Iemand?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 22 september 2011 @ 16:36:42 #284
75592 GlowMouse
l'état, c'est moi
pi_102263906
SELECT t1.*,count(*) AS totaal
FROM t1
JOIN t2 ON (t1.naam = t2.naam AND t1.gebruiker = t2.gebruiker)
GROUP BY t1.gebruiker,t1.type,t1.naam
WHERE t1.gebruiker = 1
ORDER BY t1.gebruiker,t1.type,t1.naam
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_102269570
Duidelijk, die gaat in de verzameldoos! :)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 23 september 2011 @ 10:25:43 #286
267443 Cue_
Cuecumbergirl
pi_102291243
Vraagje

Ik heb een connectie naar mijn database in mijn command prompt. Voer daar dus leuk mijn qrys uit en alles. Maar hoe krijg ik de output die ik daar heb naar bv excel?
  vrijdag 23 september 2011 @ 10:32:30 #287
12221 Tijn
Powered by MS Paint
  vrijdag 23 september 2011 @ 10:35:33 #288
267443 Cue_
Cuecumbergirl
pi_102291474
Is leuk bij kleine lijstjes, maar bij grote bv?
Geen leuke command voor?
  vrijdag 23 september 2011 @ 10:38:52 #289
12221 Tijn
Powered by MS Paint
pi_102291545
Ik maak zelf meestal een CSV-file als het nodig is om data in Excel te importeren. fputcsv() kan je daarbij helpen, maar je zult er wel een klein scriptje omheen moeten schrijven om de juiste data in de juiste file te krijgen.
  vrijdag 23 september 2011 @ 10:47:34 #290
267443 Cue_
Cuecumbergirl
pi_102291746
oke, via php script doen dus. :)
pi_102291853
quote:
0s.gif Op vrijdag 23 september 2011 10:47 schreef Cue_ het volgende:
oke, via php script doen dus. :)
Er zijn ook PHP classes voor

http://phpexcel.codeplex.com/


of simpel met de juiste headers

http://forums.digitalpoint.com/showthread.php?t=60681
  vrijdag 23 september 2011 @ 11:08:08 #292
267443 Cue_
Cuecumbergirl
pi_102292315
tnx O+
pi_102292914
Heeft iemand een simpel regexje liggen die het volgende doet?

ik heb een blog url
http://www.blog.nl/mijnblog/123-dit-is-mijn-titel.html

nu wil ik alleen het cijfer gedeelte van 123 ophalen en niets meer en niets minder. Nu kan ik natuurlijk opzoek gaan naar de eerste - maar wil dit eigenlijk liever met een regexje doen :P en zoals standaard lukt het mij niet.

Regexje net gedeleted door overschrijven van pagina :{ iemand een linkje/voorbeeldje?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_102295616
quote:
0s.gif Op vrijdag 23 september 2011 11:30 schreef Chandler het volgende:
Heeft iemand een simpel regexje liggen die het volgende doet?

ik heb een blog url
http://www.blog.nl/mijnblog/123-dit-is-mijn-titel.html

nu wil ik alleen het cijfer gedeelte van 123 ophalen en niets meer en niets minder. Nu kan ik natuurlijk opzoek gaan naar de eerste - maar wil dit eigenlijk liever met een regexje doen :P en zoals standaard lukt het mij niet.

Regexje net gedeleted door overschrijven van pagina :{ iemand een linkje/voorbeeldje?
In woorden: match een forward slash, dan een of meer getallen, dan een of meer niet-forward slashes, dan het einde van de string.

Lukt het daarmee?
  vrijdag 23 september 2011 @ 13:01:11 #295
4159 GI
Nee ik heet geen JOE
  vrijdag 23 september 2011 @ 13:02:41 #296
91039 mstx
2x1/2 = 1/2 x 1/2
pi_102295778
quote:
0s.gif Op vrijdag 23 september 2011 11:30 schreef Chandler het volgende:
Nu kan ik natuurlijk opzoek gaan naar de eerste - maar wil dit eigenlijk liever met een regexje doen :P
Waarom?
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_102296061
quote:
0s.gif Op vrijdag 23 september 2011 11:30 schreef Chandler het volgende:
Heeft iemand een simpel regexje liggen die het volgende doet?

ik heb een blog url
http://www.blog.nl/mijnblog/123-dit-is-mijn-titel.html

nu wil ik alleen het cijfer gedeelte van 123 ophalen en niets meer en niets minder. Nu kan ik natuurlijk opzoek gaan naar de eerste - maar wil dit eigenlijk liever met een regexje doen :P en zoals standaard lukt het mij niet.

Regexje net gedeleted door overschrijven van pagina :{ iemand een linkje/voorbeeldje?
gebruik strpos om de eerste - (streepje) op te zoeken en substr dan vanaf aantal karakters dat je URL lang is tot de positie van het eerste streepje.
  vrijdag 23 september 2011 @ 13:29:04 #298
25889 Sitethief
Fulltime Flapdrol
pi_102296555
Iemand ervaring met PDO + InnoDB? Insert queries die met PDO + MyISAM goed liepen doen het met InnoDB niet via PDO, wel direct in de database. Kheb al flink gezocht naar informatie hier over maar kan niet echt specifiek deze case vinden.

Bij Inserts via PDO met InnoDB met gebruik van BindParam() gaat het mis. BindParam() geeft wél true terug, en debugDumpParams () geeft ook aan dat de parameters ook gebonden zijn. Maar er wordt gewoon ':name' ipv 'NaamVanObject' geinsert. Iets wat nog vervelender is als ':key' als string ipv als int in een foreign key veld geinsert wordt (of iig een poging).

Ik heb geen zin om de functionaliteiten van PDO volledig te om zeilen alleen maar omdat Innodb hier blijkbaar niet goed mee om gaat.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  vrijdag 23 september 2011 @ 13:49:50 #299
4159 GI
Nee ik heet geen JOE
pi_102297141
quote:
0s.gif Op vrijdag 23 september 2011 13:13 schreef Pakspul het volgende:

[..]

gebruik strpos om de eerste - (streepje) op te zoeken en substr dan vanaf aantal karakters dat je URL lang is tot de positie van het eerste streepje.
Of een implode van de url op / en dan het laatste resultaat imploden op - en dan de eerste pakken ?
pi_102297549
quote:
3s.gif Op vrijdag 23 september 2011 13:49 schreef GI het volgende:

[..]

Of een implode van de url op / en dan het laatste resultaat imploden op - en dan de eerste pakken ?
1
2
3
<?php
current
(explode("-"end(explode("/""http://www.blog.nl/mijnblog/123-dit-is-mijn-titel.html"))));
?>

Zeer leesbaar uiteraard
  vrijdag 23 september 2011 @ 14:27:56 #301
4159 GI
Nee ik heet geen JOE
pi_102298294
quote:
0s.gif Op vrijdag 23 september 2011 14:04 schreef Thomass het volgende:

[..]
[ code verwijderd ]

Zeer leesbaar uiteraard
Ja, want leesbare code krijg je natuurlijk door op die manier te coderen...
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')