abonnement Unibet Coolblue Bitvavo
pi_47858461
http://www.w3schools.com/sql/func_count_distinct.asp

SELECT COUNT(DISTINCT column(s)) FROM table
  zaterdag 31 maart 2007 @ 13:57:12 #92
65471 SkaterSam
Lurking Galore
pi_47859291
quote:
Op zaterdag 31 maart 2007 13:23 schreef HuHu het volgende:
http://www.w3schools.com/sql/func_count_distinct.asp

SELECT COUNT(DISTINCT column(s)) FROM table
Hmm ja, maar binnen deze query werkt het niet:

1
2
3
4
5
6
7
8
9
10
11
<?php
$query
= "
SELECT
  COUNT(DISTINCT c.cid) AS number,
  c.cid,
  c.naam
FROM comment AS c
GROUP BY c.cid
ORDER BY c.cid DESC
LIMIT 0, 15"
;
?>


Maar ik weet bijvoorbeeld niet waarom bij deze query het resultaat ( $result['number'] bijvoorbeeld... ) leeg blijft. Ik heb al gekeken of LIMIT of ORDER BY een fout maakten, maar het resultaat bleef leeg op een of andere manier... Andere resultaten trouwens niet, alleen NUMBER bleef leeg...

edit: ik wil het nog wel weten, maar ik heb het nu anders opgelost...

[ Bericht 6% gewijzigd door SkaterSam op 31-03-2007 14:34:38 ]
Let's make life easy
Typo's are the demon spawn from hell !
pi_47863819
quote:
Op zaterdag 31 maart 2007 10:08 schreef HuHu het volgende:

[..]

Bij de LIMIT moeten de getallen niet tussen ' staan. In je code staat echter wel:
[ code verwijderd ]

Die "'" moeten dus weg. Bij waarden die je in je query gebruikt, bijvoorbeeld na de WHERE moet het juist wel.
[ code verwijderd ]
De mysql_real_escape_string() is ook zinloos als het niet gebruikt wordt tussen quotjes. Je moet echt controleren of het een getal is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_47871433
Mag ik jullie hier vragen wat jullie van mijn statistieken van GFXPOLL vinden?

http://www.gfxpoll.nl/index.php?page=stats

Hebben jullie nog een idee voor een statistiek? zit zelf nog te denken welke dagen (maandag/zondag) en welke uren(00 / 24) voor bezoekers/polls zorgen

was ziek en wilde toch mijzelf nuttig maken

[ Bericht 12% gewijzigd door Chandler op 31-03-2007 21:35:14 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_47873489
klein vraagje m.b.t. sql:

ik zou een kort en bondig overzicht willen hebben van alle datatypes die je een veld kan geven, op mysql.com staat alles wel netjes verteld maar dat is ook niet "even" door te lezen.

iemand?
pi_47878256
quote:
Op zaterdag 31 maart 2007 21:18 schreef Chandler het volgende:
Mag ik jullie hier vragen wat jullie van mijn statistieken van GFXPOLL vinden?

http://www.gfxpoll.nl/index.php?page=stats

Hebben jullie nog een idee voor een statistiek? zit zelf nog te denken welke dagen (maandag/zondag) en welke uren(00 / 24) voor bezoekers/polls zorgen

was ziek en wilde toch mijzelf nuttig maken
Even geen idee voor de statistieken, maar wel een complimentje voor de verschillende layouts hoe heb je dat voor elkaar gekregen? Class per poll layout?
pi_47883887
@Jera; http://www.gfxpoll.nl/index.php?page=copy

Eingelijk best simpel hoor
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_47905071
Ik heb de volgende code, welke altijd gewerkt heeft.

1
2
3
<?php
$cmd = "convert logo: out.jpg";
exec("$cmd 2>&1", $output);


Dit maakte (icm ImageMagick) een plaatje aan van het logo van ImageMagick.

Echter (nadat ik TightVNC ge-installeerd had, waar het niet perse aan hoeft te liggen), kan ik alleen nog maar:

1exec("$cmd",$output);


Wanneer ik die 2>&1 erachter laat, wordt er niets uitgevoerd. Iemand enig idee hoe ik het weer kan laten werken met 2>&1.

Het systeem waar ik op draai is windows 2003 met Apache.
pi_47910681
Je moet variabelen altijd buiten de quotes houden ;)

Maak er eens van:

1exec($cmd . "2>&1", $output);


etc.
  zondag 1 april 2007 @ 23:43:51 #100
12880 CraZaay
prettig gestoord
pi_47910871
quote:
Op zondag 1 april 2007 23:38 schreef Frenkeman het volgende:
Je moet variabelen altijd buiten de quotes houden

Maak er eens van:
[ code verwijderd ]

etc.
Variabelen binnen dubbele quotes horen gewoon geparsed te worden, daar zijn het dubbele quotes voor (i.t.t. enkele quotes).
pi_47912317
quote:
Op zondag 1 april 2007 23:38 schreef Frenkeman het volgende:
Je moet variabelen altijd buiten de quotes houden

Maak er eens van:
[ code verwijderd ]

etc.
Heb ik geprobeerd. Zelfde resultaat
pi_47912415
inkoppertje:
heb je al geprobeerd TightVNC te verwijderen en te kijken wat hij dan doet?
is er een melding in je errorlog?
  maandag 2 april 2007 @ 00:40:45 #103
161108 JohannesPaulus
Divide and conquer
pi_47912796
Het gaat om een PHP inlogsysteem. Ik wil wanneer ik inlog mijn username kunnen zien.
Net als op FOK! dus: Je bent ingelogd als JohannesPaulus.

Met onderstaand code kun je zien welke leden er allemaal online zijn. Ik wil een apart query maken om alleen mijn eigen username te kunnen zien zodra ik ben ingelogd...anyone?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include("config.php");

$sql "SELECT naam,status FROM gebruikers WHERE DATE_SUB(NOW(),INTERVAL 10 MINUTE) <= lastactive ORDER BY naam ASC";
$query mysql_query($sql);
$tellen mysql_num_rows($query);
$i 1;
while(
$rij mysql_fetch_object($query)) {
 
$naam htmlspecialchars($rij->naam);
 
$status htmlspecialchars($rij->status);
 if(
$status == 1) {
  
$naam "<b>".$naam."</b>";
 }
 echo 
$naam;
 if(
$i != $tellen) {
  echo 
", ";
 }
 
$i++;
}        
?>
In peace, sons bury their fathers; in war, fathers bury their sons. (484 BC–ca.425 BC, Herodotus)
He who knows when he can fight and when he cannot will be victorious. (c. 544 – 496 BC, Sun Tzu)
pi_47912800
Ja, tightvnc ook verwijderd, nog steeds hetzelfde probleem.
En niets in de error logs...
pi_47912864
Probeer het command op de machine eens in te typen?
pi_47912932
OP de command prompt werkt het gewoon. Dus het zit wel ergens in apache/php lijkt me..
pi_47915712
quote:
Op maandag 2 april 2007 00:40 schreef JohannesPaulus het volgende:
Het gaat om een PHP inlogsysteem. Ik wil wanneer ik inlog mijn username kunnen zien.
Net als op FOK! dus: Je bent ingelogd als JohannesPaulus.

Met onderstaand code kun je zien welke leden er allemaal online zijn. Ik wil een apart query maken om alleen mijn eigen username te kunnen zien zodra ik ben ingelogd...anyone?
[ code verwijderd ]
Op zich is heel die code niet eens nodig.

Je moet de naam waarmee de persoon is ingelogd opslaan in de session.

1
2
3
4
5
<?php
$_SESSION['user'] = htmlspecialchars($_POST['user']);
.......
echo $_SESSION['user'];
?>

(of een dergelijke code)

Gewoon de echo doen waar de tekst moet verschijnen, ik doe het ook altijd zo
pi_47918047
Let wel op de encoding, alleen encoden/decoden waar het nodig is. Zo dus:

1
2
3
4
5
<?php
$_SESSION['user'] = $_POST['user'];
.......
echo htmlspecialchars($_SESSION['user']);
?>
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_47918720
Zelf doe ik altijd mysql-real-escape-string voordat ik iets in een database invoer, en een htmlspecialchars als ik iets in de browser toon. Lijkt mij zelf het beste, toch?
  maandag 2 april 2007 @ 11:11:28 #110
12880 CraZaay
prettig gestoord
pi_47918776
quote:
Op maandag 2 april 2007 11:09 schreef Geqxon het volgende:
Zelf doe ik altijd mysql-real-escape-string voordat ik iets in een database invoer, en een htmlspecialchars als ik iets in de browser toon. Lijkt mij zelf het beste, toch?
Ja. SuperRembo bedoelt alleen dat je de rauwe data in je sessie moet stoppen, zodat je die ook nog eens voor iets anders kunt gebruiken dan enkel weergave van die naam.
  maandag 2 april 2007 @ 12:08:14 #111
161108 JohannesPaulus
Divide and conquer
pi_47920791
Dank jullie wel voor de hulp
Het werkt helaas niet

Ik heb eerst de puntjes "......." verwijderd want ik kreeg een error.
En daarna kreeg ik de volgende error:

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

En zelfs als ik bovenstaand error oplos dan nog werkt het niet want ik krijg ipv de username allen de user-id nummer te zien. Ipv "Piet" krijg ik nu een "1"

P.S, Ik hoop dat iemand mij kan helpen. Misschien dat een van jullie de script kan downloaden? De winnaar krijgt ¤25 euro van mij. (hey, rustig aan, ik ben maar een arme student )
In peace, sons bury their fathers; in war, fathers bury their sons. (484 BC–ca.425 BC, Herodotus)
He who knows when he can fight and when he cannot will be victorious. (c. 544 – 496 BC, Sun Tzu)
pi_47921043
Probeer eens de opvolger van dat script Johanners Paulus.
http://www.phphulp.nl/php/scripts/8/564/
Deze lijkt mij een stuk beter, en misschien is jouw 'probleem' daarin al opgelost.
  maandag 2 april 2007 @ 12:16:43 #113
161108 JohannesPaulus
Divide and conquer
pi_47921099
quote:
Op maandag 2 april 2007 12:15 schreef Darkomen het volgende:
Probeer eens de opvolger van dat script Johanners Paulus.
http://www.phphulp.nl/php/scripts/8/564/
Deze lijkt mij een stuk beter, en misschien is jouw 'probleem' daarin al opgelost.
Ja ik had het al geupload op mijn server en de script geinstalleerd maar mijn probleem is nog niet opgelost Thanks.
In peace, sons bury their fathers; in war, fathers bury their sons. (484 BC–ca.425 BC, Herodotus)
He who knows when he can fight and when he cannot will be victorious. (c. 544 – 496 BC, Sun Tzu)
pi_47943066
1
2
3
4
if (count($error) != 0) {
   foreach ($error as $errors)
   {$this->content .= $errors;}
   $this->content .= $this-aanmelden;


Ik heb hier wat vreemds, als ik $this->aanmelden toevoeg op deze manier dan komt er een 1 te staan in plaats van de inhoud van $this->aanmelden. Als ik $this->aanmelden op deze plaats echo dan laat hij gewoon de correcte string zien.
pi_47943417
quote:
Op maandag 2 april 2007 21:58 schreef ExCibular het volgende:

[ code verwijderd ]

Ik heb hier wat vreemds, als ik $this->aanmelden toevoeg op deze manier dan komt er een 1 te staan in plaats van de inhoud van $this->aanmelden. Als ik $this->aanmelden op deze plaats echo dan laat hij gewoon de correcte string zien.
Er staat ook $this MIN aanmelden, niet $this pijltje aanmelden
pi_47943981
quote:
Op maandag 2 april 2007 22:05 schreef JeRa het volgende:

[..]

Er staat ook $this MIN aanmelden, niet $this pijltje aanmelden
thanx die had ik gemist
pi_47944757
Wel vreemd dat php dit gewoon slikt en geen foutmelding geeft.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_47945226
quote:
Op maandag 2 april 2007 22:33 schreef SuperRembo het volgende:
Wel vreemd dat php dit gewoon slikt en geen foutmelding geeft.
PHP ziet een minteken staan dus convert zowel de linkerkant als de rechterkant naar integers. De linkerkant is convertable (gek genoeg) en wordt 1, de rechterkant een constante die niet bestaat en wordt dus 0. De vraag in deze is dus waarom (int)$this gelijk is aan 1 het heeft verder ook niets met identifiers te maken, onafhankelijk van het aantal instanties krijg je altijd 1 terug
pi_47955173
Wie van jullie gebruikt er multiviews? Is het handiger/sneller/makkelijker dan .htaccess? Wat zijn de voor en nadelen er van?
  dinsdag 3 april 2007 @ 17:37:52 #120
157229 Boschkabouter
Met puntmuts.
pi_47971135
Maakt het eigenlijk wat uit of je Apache of IIS gebruikt om PHP pagina's te draaien?
Ik heb namelijk interesse om eens wat PHP te gaan leren, maar geen zin om Apache te instaleren en te gebruiken naast IIS. (en vooral omdat ik geen ruk van dat apache snap.)
pi_47972371
quote:
Op dinsdag 3 april 2007 17:37 schreef Boschkabouter het volgende:
Maakt het eigenlijk wat uit of je Apache of IIS gebruikt om PHP pagina's te draaien?
Ik heb namelijk interesse om eens wat PHP te gaan leren, maar geen zin om Apache te instaleren en te gebruiken naast IIS. (en vooral omdat ik geen ruk van dat apache snap.)
Apache is snel en gemakkelijk geïnstalleerd en die geef ik normaal dan ook de voorkeur. Aangezien ik momenteel echter ook met Visual Basic, ASP en .NET bezig ben zit ik vrijwel aan IIS vast gezien ASP daar voornamelijk op draait.
pi_47980490
Mensen,

Het is toch onmogelijk om middels PHP een fake IP adres te gebruiken als je bv via fsockopen gegevens verstuurd naar webservers?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_47995304
quote:
Op dinsdag 3 april 2007 21:29 schreef Chandler het volgende:
Mensen,

Het is toch onmogelijk om middels PHP een fake IP adres te gebruiken als je bv via fsockopen gegevens verstuurt naar webservers?
Nee. Je kan geen fake adres gebruiken om iets te versturen via fsockopen. fsockopen is gewoon een wrapper voor connect() en daarmee heb je die optie niet.
In de eerste 8bit van een IPv4 header staat o.a. source & destination IP adres en dat is dus afgeschermd voor normale applicaties zoals PHP e.d.
pi_48014890
Hey,

Ik ben bezig met een script en ik heb nu een foutmelding, deze is als volgt:

uitgevoerde query: SELECT * FROM tbl_inschrijving INNER JOIN tbl_artikelregel ON tbl_artikelregel.inschrijf_id = tbl_inschrijving.inschrijf_id WHERE inschrijf_id = 1 .
MySQL-foutnummer: 1052
MySQL-melding: Column 'inschrijf_id' in where clause is ambiguous

Weet iemand toevallig wat er dan fout is. De query ziet er als volgt uit:

$query = "SELECT * FROM tbl_inschrijving INNER JOIN tbl_artikelregel ON tbl_artikelregel.inschrijf_id = tbl_inschrijving.inschrijf_id WHERE inschrijf_id = $inschrijf_id";
  woensdag 4 april 2007 @ 19:16:46 #125
51748 H4ze
wait...what?
pi_48015204
Kijk is naar de inschrijf_id in je WHERE clause MySQL weet niet welke inschrijf_id hij nu precies moet pakken (aangezien inschrijf_id dus in meerdere tabellen voorkomt). FFtjes de tabelnaam er dus nog voorzetten.
*BURP*
pi_48015377
Och... dat ik daar zelf niet aan gedacht heb.. bedankt!!! het werkt
pi_48022326
oke vraagje:
als ik op een bepaalde site zoek krijg ik een lijst met matches, deze lijst wil ik importeren/invoegen in mijn eigen omgeving (die nog ongedefineerd is, dus lekker soepel)
wat wil ik precies:
ik tik in een zoek forumlier bij mijn site een naam in, er wordt door php een get request gedaan met de juiste url en vervolgens plukt hij de resultaten uit de gekregen pagina.
dit een voorbeeltje van een zoek term op de site:
http://www.animenewsnetwo(...)h.php?searchbox=love
  woensdag 4 april 2007 @ 22:07:40 #128
85514 ralfie
!Yvan eht nioj
pi_48022953
quote:
Op woensdag 4 april 2007 21:54 schreef mschol het volgende:
oke vraagje:
als ik op een bepaalde site zoek krijg ik een lijst met matches, deze lijst wil ik importeren/invoegen in mijn eigen omgeving (die nog ongedefineerd is, dus lekker soepel)
wat wil ik precies:
ik tik in een zoek forumlier bij mijn site een naam in, er wordt door php een get request gedaan met de juiste url en vervolgens plukt hij de resultaten uit de gekregen pagina.
dit een voorbeeltje van een zoek term op de site:
http://www.animenewsnetwo(...)h.php?searchbox=love
en wat is nu je vraag?
pi_48023760
quote:
Op woensdag 4 april 2007 22:07 schreef ralfie het volgende:

[..]

en wat is nu je vraag?
hoe ik dat voor elkaar kan krijgen
dat hij dus alleen de resultaten eruit pakt en dat ik deze vervolgens kan hergebruiken in mijn omgeving..
pi_48026298
quote:
Op woensdag 4 april 2007 22:24 schreef mschol het volgende:

[..]

hoe ik dat voor elkaar kan krijgen
dat hij dus alleen de resultaten eruit pakt en dat ik deze vervolgens kan hergebruiken in mijn omgeving..
En wat lukt je niet? Het downloaden van de pagina? Het parsen van de resultaten? Het opslaan van de resultaten? Het weergeven van de resultaten?
pi_48036737
quote:
Op woensdag 4 april 2007 23:24 schreef JeRa het volgende:

[..]

En wat lukt je niet? Het downloaden van de pagina? Het parsen van de resultaten? Het opslaan van de resultaten? Het weergeven van de resultaten?
ik weet dat er een functie voor was maar welke weet ik dus niet meer
(en op die manier kan ik nie eens beginnen )
pi_48037121
Hoe ik dat zou doen:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$lines 
file($showurl);

if (
$lines){
    foreach (
$lines as $line_num => $line){            
        if (
eregi("<a href="(.*)">(.*)</a>"$line$found)){
            
$name    $found[2];
            
$url     $found[1];
            echo 
$name " - " $url;
        }
    }
}
?>
  donderdag 5 april 2007 @ 12:26:22 #133
85514 ralfie
!Yvan eht nioj
pi_48038006
quote:
Op donderdag 5 april 2007 12:03 schreef Geqxon het volgende:
Hoe ik dat zou doen:
[ code verwijderd ]
twee problemen heb je dan wel:
1) eregi is veel trager als bijv preg_match_all
2) je neemt alle links mee, ook die van advertenties etc

Met andere woorden, probeer eens iets als

1
2
3
4
5
6
<?php
$contents
=file_get_contents('http://www.animenewsnetwork.com/encyclopedia/search.php?searchbox=love');
$to_match=substr($contents,($a=strpos($contents,'<!-- google_ad_section_start -->')),(strpos($contents,'<!-- google_ad_section_end -->')-$a));
preg_match_all('#<a href="(.*?)">(.*?)</a>#i',$to_match$matches);
var_dump($matches);
?>
pi_48038146
Ik had nog niet op de link geklikt, de eregi zoals ik hem heb pakt inderdaad alles. Het was puur een richtlijn

Verder is mijn voorbeeld uiteraard basic, om te laten zien hoe het kan. Verdere optimalisatie is een stap verder.
  donderdag 5 april 2007 @ 12:53:44 #135
85514 ralfie
!Yvan eht nioj
pi_48038945
quote:
Op donderdag 5 april 2007 12:30 schreef Geqxon het volgende:
Ik had nog niet op de link geklikt, de eregi zoals ik hem heb pakt inderdaad alles. Het was puur een richtlijn

Verder is mijn voorbeeld uiteraard basic, om te laten zien hoe het kan. Verdere optimalisatie is een stap verder.
je hebt gelijk, ik ben veel te aardig anderen hun werk te doen
pi_48041228
Non de ju, ik wist dat preg_match sneller was, maar waar ik nu mee bezig bent, daar scheelt het gewoon seconden

Ik vroeg mij alleen wel af of preg_match_all niet multiline kan werken, dus dat hij over meerdere regels naar het einde zoekt?
  donderdag 5 april 2007 @ 14:24:40 #137
85514 ralfie
!Yvan eht nioj
pi_48042335
ja, dat kan

met de 'm' modifier matchen ^ en $ begin en einde van de string, ipv de regel
met de 's' modifier matched . ook newlines
pi_48042999
Het wordt denk ik maar eens tijd voor een regex boek. Ik heb totaal geen problemen met PHP, maar van regular expressions wordt ik vaak knettergek
pi_48043384
Zo ga ik het nu toch echt lijn voor lijn met eregi doen
pi_48043763
@ralfie

De preg_* alternatieven voor ereg* functies zijn inderdaad vaak sneller, maar niet altijd. Zo heb ik ondervonden dat als je snel tekens wilt vervangen die niet in een subset van characters voorkomen ([^abc123etc]) de eregi véél sneller is dan de preg_replace
  donderdag 5 april 2007 @ 15:23:22 #141
85514 ralfie
!Yvan eht nioj
pi_48044479
quote:
Op donderdag 5 april 2007 15:02 schreef JeRa het volgende:
@ralfie

De preg_* alternatieven voor ereg* functies zijn inderdaad vaak sneller, maar niet altijd. Zo heb ik ondervonden dat als je snel tekens wilt vervangen die niet in een subset van characters voorkomen ([^abc123etc]) de eregi véél sneller is dan de preg_replace
interessant. Ben benieuwd of er een lijstje is met gevallen waarin ereg() sneller is als preg_replace? Heb met google in ieder geval niks gevonden.

Persoonlijk ga ik er gewoon van uit dat preg_* altijd sneller is, ik geloof niet dat ik ereg() ooit gebruikt heb
pi_48049561
Hoi,

Stel ik heb een klasse.
Met daarin in ieder geval een static (private) variabele en een static (public) method.

In mijn code roep ik op eens die method op zonder een object te maken. Is het dan mogelijk dat er een constructor uitgevoerd zal worden? Zodat die variabele dan een keer gezet zal worden, en daarna niet meer (check in de constructor)?

Dit alles, uiteraard, in PHP5.
pi_48049888
quote:
Op donderdag 5 april 2007 17:36 schreef CiQNiZ het volgende:
Hoi,

Stel ik heb een klasse.
Met daarin in ieder geval een static (private) variabele en een static (public) method.

In mijn code roep ik op eens die method op zonder een object te maken. Is het dan mogelijk dat er een constructor uitgevoerd zal worden? Zodat die variabele dan een keer gezet zal worden, en daarna niet meer (check in de constructor)?

Dit alles, uiteraard, in PHP5.
Voor zover ik weet ondersteunt PHP5 geen static constructors. Je zou het eventueel wél zo kunnen doen:
1
2
3
4
5
6
7
8
<?php
Voorbeeld
::waarde 3;

class 
Voorbeeld
{
    
public static $waarde;
}
?>
pi_48050232
@ralfie, Geqxon:

bedankt voor de voorbeeldjes, hiermee ga ik verder uitzoeken
pi_48050416
quote:
Op donderdag 5 april 2007 17:46 schreef JeRa het volgende:

[..]

Voor zover ik weet ondersteunt PHP5 geen static constructors. Je zou het eventueel wél zo kunnen doen:
[ code verwijderd ]
Ja... Maar...

Laat ik het anders zeggen...

Wat nou, als ik in diezelfde klasse nou eens 30 methodes heb! Die allemaal afhangen of die ene variabele gezet is, of niet. Nou zou ik het volgende kunnen doen:

1
2
3
4
5
6
7
<?php
//niet statisch, dus wel een object aanmaken:
$handle = new handler(); // zet de private var via de __construct()
$handle->execA();
$handle->execB();
//enz.
?>


Of dit:
1
2
3
4
5
6
7
<?php
//statisch, en eerst maar dan die check uitvoeren en variabele zetten:
handler::checkIt();
handler::execA();
handler::execB();
//enz.
?>


Dan werkt het zoals ik wil. Maar is dit te omzeilen (dat ik dus niet eerst die check hoef uit te voeren voordat ik een methode uit die klasse aanroep)?
pi_48050634
quote:
Op donderdag 5 april 2007 17:59 schreef CiQNiZ het volgende:

[..]

Dan werkt het zoals ik wil. Maar is dit te omzeilen (dat ik dus niet eerst die check hoef uit te voeren voordat ik een methode uit die klasse aanroep)?
Als je 30 methodes in een class hebt die aangeroepen kunnen worden terwijl je variabele niet geïnitialiseerd is moet je je toch eens ernstig afvragen of je wel het goede design te pakken hebt maar waarom lukt het volgende niet?

1
2
3
4
5
6
<?php
class Voorbeeld
{
    
public static $waarde 2;
}
?>


Op die manier is je waarde altijd geïnitialiseerd en hoef je niets te checken in je methodes. Wil je echter een object initialiseren in die variabele, dan zul je het moeten doen op de manier die ik in mijn vorige post beschreef
pi_48053738
quote:
Op donderdag 5 april 2007 18:07 schreef JeRa het volgende:

[..]

Als je 30 methodes in een class hebt die aangeroepen kunnen worden terwijl je variabele niet geïnitialiseerd is moet je je toch eens ernstig afvragen of je wel het goede design te pakken hebt maar waarom lukt het volgende niet?
[ code verwijderd ]

Op die manier is je waarde altijd geïnitialiseerd en hoef je niets te checken in je methodes. Wil je echter een object initialiseren in die variabele, dan zul je het moeten doen op de manier die ik in mijn vorige post beschreef
Hmm ja, met constante waardes ja.

1
2
3
4
<?php
// dus dit gaat nooit werken ;)
private static $handle = self::getHandle();
?>


Nou is het wel zo dat in elke method eenzelfde andere method (uit een andere klasse) uitgevoerd wordt. Ik zou in die method dan die variabel kunnen controleren en als het dan nodig is zetten.

Dus
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
<?php
class stranger
{
  
private static $handle;

  
public static function handler()
  {
    if (empty(
self::handle)) {
      
self::handle = somereallyspecialclass::getHandle();
    }
  }

  
public static function execA()
  {
    
someclass::specialExec(0,10);
    
doSomething();
  }

  
public static function execB()
  {
    
someclass::specialExec(60, 100);
    
doSomethingElse();
    
doSomethingMore();
    
takeOverTheWorld();
  }
}

class
someclass
{
  
public static function specialExec($x, $y)
  {
    
// tada:
    
stranger::handler();

    
doSomethingWithXandY($x, $y);
    
doSomethingMoreWith($x, stranger::handle);
    
doSomethingMoreWith($y, stranger::handle);
  }
}

// en in normale code ziet het er dan zo uit:
stranger::execA();
stranger::execB();
stranger::execA();
stranger::execB();
/* precies hoe ik het hebben wil dus.
** de methodes worden normaal opgeroepen en de
** (private en static) $handle wordt gewoon geupdate
*/
?>


Uiteraard is dit niet echt een bruikbaar voorbeeld, en een beetje raar, maar je moet toch wat met een voorbeeld he.

Het gaat er gewoon om dat bij uitbreidingen eventueel gewoon niet nagedacht hoeft te worden over die $handle. Als je een methode uit die klasse oproept dan moet dat gewoon automatisch gaan.

Volgens dit concept moet het gewoon werken, echter, verdient het wmb niet echt een schoonheidsprijs.
pi_48055570
quote:
Op donderdag 5 april 2007 19:50 schreef CiQNiZ het volgende:

[..]

Hmm ja, met constante waardes ja.
Tja, je gaf nergens een definitie
quote:
Het gaat er gewoon om dat bij uitbreidingen eventueel gewoon niet nagedacht hoeft te worden over die $handle. Als je een methode uit die klasse oproept dan moet dat gewoon automatisch gaan.

Volgens dit concept moet het gewoon werken, echter, verdient het wmb niet echt een schoonheidsprijs.
Probeer eens voor jezelf duidelijk te maken wat je precies wilt bereiken (en of het design tot dan toe wel afdoende is) en zet de scenario's uit hier heb je wat voorbeelden die volgens mij het dichtste bij jouw probleem liggen:

1) Het private static object mag altijd geïnitialiseerd worden en verandert niet in de loop van de tijd: doe gewoon zoiets:

1
2
3
4
5
6
7
8
<?php
StaticVoorbeeld
::mijnObject = new DOTTObject();

class
StaticVoorbeeld
{
    
public static $mijnObject;
}
?>


2) Het private static object mag niet worden geïnitialiseerd als er geen methodes van de static class worden aangeroepen: elke methode moet een initialisatie aanroepen

3) Het private static object moet kunnen veranderen tussen twee aanroepen van methodes van de static class: elke methode moet een initialisatie aanroepen

Voor 2) en 3) kun je ook een iets minder nette oplossing verzinnen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
class StaticVoorbeeld
{
    
private static $mijnObject;

    
public function roepFunctieAan($functienaam, $args)
    {
        
// Initialiseer object
        
StaticVoorbeeld::initialiseerMijnObject();

        
// Roep functie aan
        
call_user_func_array('StaticVoorbeeld::' . $functienaam, $args); // ofzo
    
}

    
// overige methodes
}

Staticvoorbeeld::roepFunctieAan('purpleTentacle', array('take', 'over', 'the', 'world!'));
?>
pi_48056182
quote:
Op donderdag 5 april 2007 20:35 schreef JeRa het volgende:

[..]

Tja, je gaf nergens een definitie
[..]

Probeer eens voor jezelf duidelijk te maken wat je precies wilt bereiken (en of het design tot dan toe wel afdoende is) en zet de scenario's uit hier heb je wat voorbeelden die volgens mij het dichtste bij jouw probleem liggen:

1) Het private static object mag altijd geïnitialiseerd worden en verandert niet in de loop van de tijd: doe gewoon zoiets:
[ code verwijderd ]
Klopt. Ik gaf nergens een definitie .

Het gaat dus om 1. Eenmaal geinitialiseerd is geinitialiseerd. Done = done. Jouw methode kan natuurlijk wel, maar ik wil (omdat dit de enige klasse is waarvan geen object gemaakt wordt), ook zo min mogelijk code om de daadwerkelijke 'aanspreekcode' (de daadwerkelijke code die de functies in de klasses tussen de HTML door zeg maar implementeerd). Bij eventuele uitbreidingen of meerdere mensen die aan het project werken wil ik gewoon dat als je die methode nodig hebt, JIJ niet eerst moet kijken of die static 'handle' (om het zo maar weer even te noemen) nodig is of niet. Het is gewoon onnodige code. En past m.i. minder mooi in een mooi schema (wat ik nu aan het opzetten ben voordat ik daadwerkelijk begin te coden straks).

Draaf ik nu gewoon te ver door? Stel ik te veel (strenge) eisen aan mijzelf/de code? Is het gewoon heel erg vies en ranzig, of heb ik mijzelf nu goedgepraat?

Dit is mijn eerste serieuze poging tot OOP in PHP5 mag ik er wel even bij zeggen...
pi_48058579
@CiQNiZ
quote:
Het gaat dus om 1. Eenmaal geinitialiseerd is geinitialiseerd. Done = done.
Dan kun je toch prima die eerste methode plaatsen in dezelfde include als de static class zelf? Maar wat ik een beetje mis in dit verhaal is de semantiek, het idee achter een grote class met 30 static methodes. In PHP is (mijns inziens) vaak minder OOP nodig dan wordt aangehaald, of in ieder geval, in mindere mate. Graag hoor ik het 'waarom' achter de static methodes en de handle
pi_48060126
Hola, ik heb deze functie geschreven:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function input_dag($dag){
    
$output "
        <select name="
dag">
            <option value="">dag</option>"
;
            
    for ( 
$day 1$day <= 31$day += 1) {
        if(
$day == $dag) { $output .= "
                <option value="
$day" selected>$day</option>";}
        else { 
$output .= "
                <option value="
$day">$day</option>";}
    }

    
$output .= "
        </select>"
;
    return 
$output;
}
?>


Maar zou graag willen dat de dagen 1 t/m 9 met een voorloop nul getoond zouden worden. Iemand een idee hoe ik dit voor elkaar krijg?
pi_48060335
ik heb toevallig zoiets vandaag gedaan, maar dat betrof wel een string: http://nl3.php.net/strpad
Het lijkt me dat hier ook wel een numerieke functie voor zal zijn?
pi_48061043
De sprintf()-functie is daar ideaal voor
pi_48061389
Kijk, daar kan ik geloof ik wel wat mee
pi_48067230
De oplossing was:
1
2
3
<?php
$value 
sprintf("%02s",$day);
?>
pi_48076784
Hoe kan ik een bestand voor een bepaalde tijd geupload hebben? Dus iemand upload een foto, word verkleint en krijg die weer voorgeschoteld in de browser, en daarna word de afbeelding van de server verwijderd.
pi_48077438
quote:
Op vrijdag 6 april 2007 12:57 schreef super-muffin het volgende:
Hoe kan ik een bestand voor een bepaalde tijd geupload hebben? Dus iemand upload een foto, word verkleint en krijg die weer voorgeschoteld in de browser, en daarna word de afbeelding van de server verwijderd.
Na hij verkleind is, en je hem niet nodig hebt:

1
2
3
<?php
unlink
($filename);
?>


:)
pi_48077599
Gelijk nog een vraagje: Ik wil graag een XML achtig bestand parsen, en met eregi gaat dat dus te traag. De opbouw is in de trant van:
1
2
3
4
<persoon>
<voornaam>Hans</voornaam>
<achternaam>Anders</achternaam>
</persoon>


Op het moment kijk ik lijn voor lijn wat voor data de lijn bevat, maar dat is dus behoorlijk traag. Ik zat zelf te denken aan een preg_match_all op <persoon>(*.)</persoon>, en binnen de array van matches te preg_matchen op <voornaam(*.)</voornaam>. Ik ben alleen totaal geen held als het op regexs en preg_match neer komt, dus heeft iemand misschien een klein duwtje in de goede richting? Alvast bedankt :)
pi_48078305
quote:
Op vrijdag 6 april 2007 13:20 schreef Geqxon het volgende:
Gelijk nog een vraagje: Ik wil graag een XML achtig bestand parsen, en met eregi gaat dat dus te traag. De opbouw is in de trant van:
[ code verwijderd ]

Op het moment kijk ik lijn voor lijn wat voor data de lijn bevat, maar dat is dus behoorlijk traag. Ik zat zelf te denken aan een preg_match_all op <persoon>(*.)</persoon>, en binnen de array van matches te preg_matchen op <voornaam(*.)</voornaam>. Ik ben alleen totaal geen held als het op regexs en preg_match neer komt, dus heeft iemand misschien een klein duwtje in de goede richting? Alvast bedankt
Optie 1: http://nl2.php.net/XML

Optie 2: inderdaad met regular expressions, je hebt de punt en de asterisk verkeerd om staan:

#<voornaam>(.*)</voornaam>#Ui
pi_48078380
Ik ben al met de XML parser aan de gang gegaan, maar in verband met een database koppeling, en omdat mijn file vrij simpel is, wil ik het het liefst zelf parsen

Ik ga even met optie twee aan de slag, bedankt!

Edit:

1
2
3
4
5
<?php
$pslfile 
file_get_contents("/files/persoonlijst.psl");
preg_match_all('#<persoon>(.*)</persoon>#Ui',$pslfile$output);
print_r($output);
?>



Dit is waar ik zelf aan zat te denken, alleen vindt hij daar niks op. En ja, het laden van $pslfile gaat prima. Wat doe ik hier eigenlijk fout?

[ Bericht 19% gewijzigd door Geqxon op 06-04-2007 13:50:50 ]
  FOK!-Schrikkelbaas vrijdag 6 april 2007 @ 14:01:13 #161
1972 Swetsenegger
Egocentrische Narcist
pi_48078898
mysql -> mssql migratie probleempje.

Ik heb een table:
1
2
3
4
5
menu_id  |  name  |  lft  |  rgt  |
---------+--------+-------+-------+ 
    1    | test   |   0   |   5   |
    2    | child  |   1   |   2   |
    3    | child2 |   3   |   4  |


Waarmee je een hierarchisch model kan bouwen.

In mysql betrek je alle nodes in de juiste hierarchische volgorde met de volgende query:

1
2
3
4
5
6
SELECT parent.name AS parentname, node.menu_id, node.name, node.lft, node.rgt, 
       COUNT( parent.name ) AS depth
       FROM nested_menu AS node, nested_menu AS parent
       WHERE node.lft BETWEEN parent.lft AND parent.rgt
       GROUP BY node.menu_id
       ORDER BY node.lft


In mssql krijg ik daarmee echter de volgende foutmelding(en)

1
2
3
4
Column 'parent.name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Column 'node.name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Column 'node.lft' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Column 'node.rgt' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.


En ik ben even volledig blanco hoe ik dat kan oplossen. :{
Iemand een bijdrage?
  vrijdag 6 april 2007 @ 14:08:08 #162
85514 ralfie
!Yvan eht nioj
pi_48079116
quote:
Op vrijdag 6 april 2007 13:44 schreef Geqxon het volgende:
Ik ben al met de XML parser aan de gang gegaan, maar in verband met een database koppeling, en omdat mijn file vrij simpel is, wil ik het het liefst zelf parsen

Ik ga even met optie twee aan de slag, bedankt!

Edit:
[ code verwijderd ]

Dit is waar ik zelf aan zat te denken, alleen vindt hij daar niks op. En ja, het laden van $pslfile gaat prima. Wat doe ik hier eigenlijk fout?
gebruik de s modifier om ervoor te zorgen dat . ook newlines matched. Dat doet ie standaard niet
pi_48079161
quote:
Op vrijdag 6 april 2007 14:08 schreef ralfie het volgende:

[..]

gebruik de s modifier om ervoor te zorgen dat . ook newlines matched. Dat doet ie standaard niet
De /s-modifier is voor de punt, die matcht vervolgens ook newlines. Maar ik mag hopen dat er geen ouders zijn geweest die hun kind met een newline in hun voornaam hebben laten registreren op het gemeentehuis
pi_48079219
quote:
Op vrijdag 6 april 2007 14:01 schreef Swetsenegger het volgende:
mysql -> mssql migratie probleempje.

Ik heb een table:
[ code verwijderd ]

Waarmee je een hierarchisch model kan bouwen.

In mysql betrek je alle nodes in de juiste hierarchische volgorde met de volgende query:
[ code verwijderd ]

In mssql krijg ik daarmee echter de volgende foutmelding(en)
[ code verwijderd ]

En ik ben even volledig blanco hoe ik dat kan oplossen.
Iemand een bijdrage?
Er is een simpele regel in SQL-land die door MySQL absoluut niet nageleefd wordt maar waar je je waar mogelijk wel aan zou moeten houden en hij luidt:

Bij een GROUP BY moet je alle kolomnamen die je niet in een aggregaatfunctie gebruikt maar wel wilt ophalen noemen.

Dus het volgende gaat fout:
1
2
3
SELECT a, b, c
FROM tabel voorbeeld
GROUP BY b


En het volgende gaat goed:
1
2
3
SELECT MAX(a), b, c
FROM tabel voorbeeld
GROUP BY b, c
pi_48079387
quote:
Op vrijdag 6 april 2007 14:09 schreef JeRa het volgende:

[..]

De /s-modifier is voor de punt, die matcht vervolgens ook newlines. Maar ik mag hopen dat er geen ouders zijn geweest die hun kind met een newline in hun voornaam hebben laten registreren op het gemeentehuis
"Mijn kind heet Hans backslash n Anders"

Ik wist eerst even niet wat je met die s-modifier bedoelt, maar ik heb hem er simpelweg achter geplakt en het werkt nu. Nu rijst bij mij weer de vraag: Waarom werkt preg_match_all met hekjes, en preg_match met slashes?
pi_48079630
quote:
Op vrijdag 6 april 2007 14:17 schreef Geqxon het volgende:

[..]

Nu rijst bij mij weer de vraag: Waarom werkt preg_match_all met hekjes, en preg_match met slashes?
Dat zijn delimiters en die mag je zelf kiezen ik kies voor het hekje (#) zodat als ik met HTML werk ik niet alle forwardslashes hoef te escapen.
pi_48079676
Tof, weer wat geleerd. Mijn script leest nu 1200 personen (400kb) in 1.7 seconden in plaats van 8 seconden. Dat is op een mensenleven niet veel ,maar het totale process is er wel sneller door geworden.
  FOK!-Schrikkelbaas vrijdag 6 april 2007 @ 15:00:57 #168
1972 Swetsenegger
Egocentrische Narcist
pi_48080595
quote:
Op vrijdag 6 april 2007 14:11 schreef JeRa het volgende:

[..]

Er is een simpele regel in SQL-land die door MySQL absoluut niet nageleefd wordt maar waar je je waar mogelijk wel aan zou moeten houden en hij luidt:

Bij een GROUP BY moet je alle kolomnamen die je niet in een aggregaatfunctie gebruikt maar wel wilt ophalen noemen.

Dus het volgende gaat fout:
[ code verwijderd ]

En het volgende gaat goed:
[ code verwijderd ]
Dit geeft inderdaad geen foutmeldingen meer:
1
2
3
4
5
6
SELECT parent.name AS parentname, node.menu_id, node.name, node.lft, node.rgt,
       COUNT( parent.name ) AS depth
       FROM nested_menu AS node, nested_menu AS parent
       WHERE node.lft BETWEEN parent.lft AND parent.rgt
       GROUP BY node.menu_id,parent.name, node.name,node.lft,node.rgt
       ORDER BY node.lft

Maar geeft wel mijn child 2 keer terug
En mijn depth gaat niet goed....

en als ik de parent.name uit de GROUP BY houdt krijg ik weer de foutmelding, ondanks dat een COUNT toch een aggregate is?

[ Bericht 5% gewijzigd door Swetsenegger op 06-04-2007 15:12:10 ]
pi_48080871
quote:
Op vrijdag 6 april 2007 15:00 schreef Swetsenegger het volgende:

[..]

Dit geeft inderdaad geen foutmeldingen meer:
[ code verwijderd ]

Maar geeft wel mijn child 2 keer terug
En mijn depth gaat niet goed....
Je moet niet zomaar alle kolommen in de GROUP BY gooien, als je bepaalde waarden verwacht voor een kolom kun je ze soms beter in een aggregaatfunctie stoppen
  FOK!-Schrikkelbaas vrijdag 6 april 2007 @ 15:19:48 #170
1972 Swetsenegger
Egocentrische Narcist
pi_48081067
quote:
Op vrijdag 6 april 2007 15:11 schreef JeRa het volgende:

[..]

Je moet niet zomaar alle kolommen in de GROUP BY gooien
Dat vermoeden had ik al :P
quote:
, als je bepaalde waarden verwacht voor een kolom kun je ze soms beter in een aggregaatfunctie stoppen :)
Nou, met deze data:

1
2
3
4
menu_id  |  name  |  lft  |  rgt  |
---------+--------+-------+-------+ 
    1    | test   |   1   |   4   |
    2    | child  |   2   |   3   |


verwacht ik deze waarden terug

1
2
3
parentname  menu_id  name   lft  rgt  depth
test        1        test   1    4    1
child       2        child  2    3    2

terug, maar ik krijg
1
2
3
4
parentname  menu_id  name   lft  rgt  depth
test        1        test   1    4    1
child       2        child  2    3    1
child       2        child  2    3    1

terug
  FOK!-Schrikkelbaas vrijdag 6 april 2007 @ 16:14:58 #171
1972 Swetsenegger
Egocentrische Narcist
pi_48082574
Iemand?
pi_48082753
Je kunt niet op die manier de naam van de parent er bij krijgen zonder de group te verzieken. Ik vraag me af of dat in MySQL op deze manier wel echt goed werkt.
In MSSQL kan je de parent er wel met een subselect bij zoeken:

1
2
3
4
5
6
7
8
9
SELECT n.menu_id, n.name, n.lft, n.rgt, COUNT(p.menu_id) AS depth,
   (SELECT TOP 1 m.name 
      FROM nested_menu m 
      WHERE n.lft BETWEEN m.left AND m.right 
      ORDER BY m.left DESC) AS parent_name
FROM nested_menu AS p
INNER JOIN nested_menu AS n ON n.lft BETWEEN p.lft AND p.rgt
GROUP BY n.menu_id, n.name, n.lft, n.rgt
ORDER BY n.lft
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_48082874
Swets, ik gebruik nu voor m'n nieuwe werk ook voornamelijk ASP/VB.NET in combinatie met MSSQL. Heb je beschikking over Microsoft SQL Server (2005 gebruik ik)? Met Stored Procedures kun je heel veel.
  FOK!-Schrikkelbaas vrijdag 6 april 2007 @ 16:37:27 #174
1972 Swetsenegger
Egocentrische Narcist
pi_48083277
quote:
Op vrijdag 6 april 2007 16:20 schreef SuperRembo het volgende:
Je kunt niet op die manier de naam van de parent er bij krijgen zonder de group te verzieken. Ik vraag me af of dat in MySQL op deze manier wel echt goed werkt.
Ja dat werkt perfect, komt zelfs van mysql website
quote:
In MSSQL kan je de parent er wel met een subselect bij zoeken:
[ code verwijderd ]
ga ik proberen
pi_48083940
quote:
Op vrijdag 6 april 2007 16:37 schreef Swetsenegger het volgende:
Ja dat werkt perfect, komt zelfs van mysql website
Nou, het werkt bij jou. Maar een kolom die niet in een group by en niet in een aggegate staat is niet goed gedefinieerd. De waarde die je terug krijgt kan van allerlei dingen afhangen zoals de indexen op de tabel of zelfs de volgorde waarin de regels in de tabel gezet zijn.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas vrijdag 6 april 2007 @ 18:11:51 #176
1972 Swetsenegger
Egocentrische Narcist
pi_48086194
quote:
Op vrijdag 6 april 2007 16:58 schreef SuperRembo het volgende:

[..]

Nou, het werkt bij jou. Maar een kolom die niet in een group by en niet in een aggegate staat is niet goed gedefinieerd. De waarde die je terug krijgt kan van allerlei dingen afhangen zoals de indexen op de tabel of zelfs de volgorde waarin de regels in de tabel gezet zijn.
Hmz, nou ja ik heb dit zoals gezegd van de mysql website bij een uitleg over hierarchische data.
Maar die van jou werkt prima, en mysql ondersteunt toch vanaf 4.2 ofzo subqueries? Dan kan ik 'm weer omzetten
  FOK!-Schrikkelbaas vrijdag 6 april 2007 @ 18:13:27 #177
1972 Swetsenegger
Egocentrische Narcist
pi_48086235
Na het weekend meer, ik ben nu een paar dagen afwezig. Bedankt weer voor de hulp!
  zaterdag 7 april 2007 @ 15:57:21 #178
161108 JohannesPaulus
Divide and conquer
pi_48111422
Wie kan mij helpen? Mijn bod van 25 euro is nog geldig hoor
In peace, sons bury their fathers; in war, fathers bury their sons. (484 BC–ca.425 BC, Herodotus)
He who knows when he can fight and when he cannot will be victorious. (c. 544 – 496 BC, Sun Tzu)
pi_48111711
quote:
Op zaterdag 7 april 2007 15:57 schreef JohannesPaulus het volgende:
Wie kan mij helpen? Mijn bod van 25 euro is nog geldig hoor
Zet je Messenger client aan
pi_48169868
Ik heb een vraag... qua database gebruik.

Voor een startpagina concept gebruik ik nu meerdere tabellen.

cats - voor de categorieen
html - voor html blokken
link - voor de links
user - voor gebruiker info

nu vraag ik mij af of het niet handiger is om HTML en LINK samen te voegen... of zeggen jullie dat dit preformance technisch beter is dat je gebruik maakt van 2 tabellen ipv 1?

Iemand een idee?

Ter vergelijking de tabellen.

HTML
1
2
3
4
5
6
7
8
9
10
CREATE TABLE `html` (
  `id` int(11) NOT NULL auto_increment,
  `sub_id` int(11) NOT NULL default '0',
  `cat_id` int(11) NOT NULL default '0',
  `sort_id` tinyint(4) NOT NULL default '0',
  `type_id` enum('html','image','rss','php') NOT NULL default 'html',
  `html` text NOT NULL,
  KEY `id` (`id`),
  KEY `sub_id` (`sub_id`,`cat_id`,`sort_id`)
) ENGINE=MyISAM ;


en LINK
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE `link` (
  `id` int(11) NOT NULL auto_increment,
  `sub_id` int(11) NOT NULL default '0',
  `cat_id` int(11) NOT NULL default '0',
  `sort_id` tinyint(4) NOT NULL default '0',
  `title` varchar(64) NOT NULL default '',
  `link` varchar(255) NOT NULL default '',
  `tip` enum('yes','no') NOT NULL default 'no',
  `image` enum('yes','no') NOT NULL default 'no',
  `views` int(11) NOT NULL default '0',
  KEY `id` (`id`),
  KEY `sub_id` (`sub_id`,`cat_id`,`sort_id`)
) ENGINE=MyISAM ;


The people who lost my respect will never get a capital letter for their name again.
Like trump...
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')