Toon posts:

[PHP] Foto boek!.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil het eens proberen, zelf maken dus. Iets zoals het 'fotoboek' van fok, maar dan zonder MySQL. Waarom geen MySQL, omdat het dan zo ie zo op iedere server werkt! en ik er zelf progies voor kan maken... (dos!/qb)

Maar ik heb al een beetje door wat ik moet doen, maken etc.. en op zich zelf lijkt het me niet zo moeilijk maar wil wel gelijk met een goed profiel beginnen want anders moet ik het zo vaak converteren als ik iets wil aanpassen (in het profiel etc) dus heb ik wat vraagjes..
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
RegDate   // datum van registratie
RegTime   // tijd van de registratie
RegIp     // Ip van de user
RegHost   // host van de user (ivm met misbruik enzo).
RegValidated
RegLevel

Username  // username
Password  // password (encrypted ofzo)
Cookie    // voor cookie use? (lijkt me handig ofzo :?)

Email     // email adres1
Email1    // email adres2
Homepage  // homepage1
Homepage1 // homepage2

ICQ  // icq + controle etc.
MSN  // msn + ""
IRC  // linkje?.. :)

Straatnaam  + nr // kan, hoeft niet :P
Postcode       // handig voor pc check :+
Stad         // altijd leuk mensen in de buurt ;)
Land         // Tja land, euh hehe :X
Telefoon       // handig :)
06 - tel       // Veel meer handig ;)
Geboorte datum.  // voor leeftijd enzo :)

favo1   // :? je moet wat...
favo2   // :? je moet wat...
favo3   // :? je moet wat...
favo4   // :? je moet wat...
favo5   // :? je moet wat...

Lijkt dit jullie ook een goed user profiel of kan het uitgebreider etc?..

Verder wil ik voor ieder gebruiker een appart bestand qua reacties etc.

dus..
code:
1
2
3
4
config --> config.dat ofzo?
     --> bannedlist.dat
     --> users.dat
users  --> userxxxxxxxxxx.dat (dus user1.dat, user2 etc)

weet niet of dit het goede fora is, maar me projectje gaat in php!

& add

voor de user reacties etc leek me dit wel handig...
code:
1
2
3
4
5
6
7
8
9
// reacties van de user

RegIP
RegHost
RegDate
RegTime

Username
Text

per reactie dan in userxxxxx.dat :)

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 06-11-2025

kvdveer

Z.O.Z.

Al je users in een apart bestand?
Al je reacties in een apart bestand?

Dat worden (bij een succesvol fotoboek) duizenden tot honderduizenden bestanden. De managebility daarvan is vrijwel niks.
Is het niet handiger om de reacties op een thread in een bestand te zetten? die heb je toch altijd allemaal gelijk nodig. Je kunt makklijk zoeken met behulp van regexp, wijzigen moet ook niet te moeilijk zijn.

In ieder geval moet je zoveel bestanden niet op een win machine hosten, die wordt dan helemaal gek.
Heb je query wel aan performace gedacht?

Localhost, sweet localhost


Verwijderd

Topicstarter
Nou ik zie het zo, voor windows machines is er niets mis met een directory en 500 bestanden, ik kan natuurlijk per 500 bestanden een directory aangeven en dan heb je daar helemaal geen last van!.

en ik zou 1 'flat-db' willen voor de users (allemaal).
en per user dan een reactie lijst en usertext.

en dit werkt niet fijn
PHP:
1
2
3
<?
$users[$prog[users]] = explode(";", $buffer);
?>

why niet...

$usrs[nummer][0] etc moet toch gewoon werken?
Heb je query wel aan performace gedacht?
nee, maar als ze steeds de 'userlijst' laden dan moet de machine dat zelf toch wel cachen en als die onder 1mb blijft is er niets aan de hand... ook een MySQL db moet swappen ;) toch?... en anders maak ik wel een 64mb ramdrive >:)

[dit is de output van users.dat, die er op dit moment nog lange niet uitziet :P]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
me
1 . 0mi
1 . 1mo
1 . 2la
1 . 3bla
1 . 4test
1 . 5text
1 . 6me
2 . 0mi
2 . 1mo
2 . 2la
2 . 3bla
2 . 4test
2 . 5text
2 . 6me
3 . 0mi
3 . 1mo
3 . 2la
3 . 3bla
3 . 4test
3 . 5text
3 . 6me
4 . 0mi
4 . 1mo
4 . 2la
4 . 3bla
4 . 4test
4 . 5text
4 . 6

en dit is de php code..
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?
function loadUsers() {
    global $users, $prog, $comments;
    
    $fd = fopen("users.dat", "r");
    
    while (!feof ($fd)) {
        $buffer = fgets($fd, 1024);

        $prog[users]++;
        $users[$prog[users]] = explode(";", $buffer);

    }
    fclose ($fd);

}


loadUsers();

for ($i = 1; $i <= $prog[users]; $i++) {
    for ($x = 0; $x <= 6; $x++) {
         echo $users[$i][$x];
         echo "<br>$i . $x";
    }
}
?>

en users.dat is
code:
1
2
3
4
me;mi;mo;la;bla;test;text;u;ha;haa;
me;mi;mo;la;bla;test;text;u;ha;haa;
me;mi;mo;la;bla;test;text;u;ha;haa;
me;mi;mo;la;bla;test;text;u;ha;haa;

:D

Verwijderd

Topicstarter
:X Iemand goede ideeen? :D

  • grhmpf
  • Registratie: December 2000
  • Laatst online: 29-05-2022

grhmpf

Android <3

Gebruik xml om het op te slaan. Ook handig als je later met andere progs je datafiles wilt lezen. Voor php zijn er vast wel mooie classes voor dat soortzaken, bijv phpXML(.org).

Verwijderd

Topicstarter
maar zou graag comments willen over de db die ik wil gaan gebruiken, heeft iemand beter ideetjes etc? :D

Verwijderd

Download ikonboard kijk hoe zij met hun db (textfiles) omgaan...

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
En hoeveel hosts ken jij die wel php hebben maar geen mysql? imo komt dat niet al te vaak voor :?

Verwijderd

Tegen woordig zit mysql overal bijna standaard bij.. (bij php hosts) en anders freesql.org ofzo :S

Verwijderd

Topicstarter
Ik weet het, maar heb toch geen zin in MySQL dus doe ik het toch nog op deze manier, tis leuk anders en nog nooit geprobeerd (denk ik) opdeze manier dan :D

Verwijderd

Topicstarter
Op donderdag 27 december 2001 11:25 schreef GDOG het volgende:
Download ikonboard kijk hoe zij met hun db (textfiles) omgaan...
ik heb gekeken, alleen is dat CGI jammer genoeg en zie dat ze nu ook bezig zijn met MySQL en pgSQL ofzo :?... wie heeft meer info?

Verwijderd

Topicstarter
Nu heb ik contact gehad met meerdere mensen en ze zeggen allemaal dat ik beter met MySQL kan gaan beginnen, het probleem is alleen dat ik het niet helemaal aan de praat krijg. Vragen post ik hier maar antwoord op echt diepgaande vragen krijg ik niet (niet deze thead).

Is het echt zo dat MySQL 1001x beter is dan alleen PHP, want ook met PHP en files kan je snel zoeken etc... toch?... Systemen worden steeds sneller dus kan me bijna niet voorstellen dat php alleen niet snel genoeg zou zijn voor een fotoboekie...mja

iemand ideetjes/comments/tips kom op!

Verwijderd

Op donderdag 27 december 2001 12:59 schreef Xtentic het volgende:
Is het echt zo dat MySQL 1001x beter is dan alleen PHP
Wie zegt dat? Het is 'handiger' als je bijvoorbeeld een database-georienteerde site wilt maken.. Met PHP alleen kun je ook van alles.. maar met mysql erbij net even iets meer.

Verwijderd

Topicstarter
maar de echte voordelen zijn?

Tis sneller :?
Tis gemakkelijker :?
ER zijn veel routines voor? :?

:?

Verwijderd

Op donderdag 27 december 2001 12:59 schreef Xtentic het volgende:
Nu heb ik contact gehad met meerdere mensen en ze zeggen allemaal dat ik beter met MySQL kan gaan beginnen, het probleem is alleen dat ik het niet helemaal aan de praat krijg. Vragen post ik hier maar antwoord op echt diepgaande vragen krijg ik niet (niet deze thead).
Let op ... :Y)
Is het echt zo dat MySQL 1001x beter is dan alleen PHP, want ook met PHP en files kan je snel zoeken etc... toch?... Systemen worden steeds sneller dus kan me bijna niet voorstellen dat php alleen niet snel genoeg zou zijn voor een fotoboekie...mja

iemand ideetjes/comments/tips kom op!
Ten eerste moet je begrijpen wat MySQL is.

MySQL is een database systeem (maar er zijn er meer, bijv PostrgreSQL). Een database systeem is een stuk software waarmee je databases kun aanmaken, beheren wijzigen en verwijderen. Een database is een zichzelf beschrijvende verzameling gegevens, d.w.z. dat het gegevens bevat, maar ook zogeheten meta-gegevens. Meta-gegevens zijn de gegevens die je gegevensverzameling omschrijven.

Gegevens zullen in databases meestal op een bepaalde manier worden opgeslagen, nl. in een tabel. Een tabel bevat 1 of meer kolommen. Ieder kolom heeft een eigen datatype, zoals string, int, date en ga zo maar door. Tevens zijn er in een tabel 0 of meer rijen, ook wel records genoemd. Deze rijen zijn de werkelijke gegevens die je opslaat.

Hieronder volgt een voorbeeld om het idee van een tabel te verduidelijken.
code:
1
2
3
4
5
6
7
PERSOON
-----------------------------------------------
PersoonID | PersoonNaam | PersoonTelefoonnummer
-----------------------------------------------
1      | Jantje | 010-1234567
2      | Pietje | 06-98765432
-----------------------------------------------

Deze tabel heet dus PERSOON en bevat 3 kolommen en 2 rijen. De naam van de tabel, kolomnamen en types hiervan zijn de eerder genoemde meta-informatie. Ook is het zinvol om een zogeheten 'sleutel' vast te leggen, een waarde die een record uniek identificeerd. Dit wordt ook wel de 'key' of 'ID' genoemd.

De gegevens in de tabel kan je nu met een speciale taal, SQL genaamd, uitlezen. Zo kan je bijvoorbeeld het telefoonnummer van Jantje te weten komen m.b.v. de volgende query:
code:
1
2
3
SELECT PersoonTelefoonnummer
FROM PERSOON
WHERE PersoonNaam = 'Jantje'

In een database kunnen ook meer dan 1 tabel zitten, en de gegevens in deze tabellen kunnen aan elkaar gerelateerd zijn. Zie het volgende voorbeeld van een tabel die gerelateerd kan zijn aan de eerder genoemde tabel:
code:
1
2
3
4
5
6
7
8
FOTO
------------------------------
FotoID | PersoonID | FotoFile
------------------------------
1   | 1    | c:\foto\1.jpg
2   | 1    | c:\foto\2.jpg
3   | 2    | c:\foto\3.jpg
------------------------------

Als je de relatie (op de kolom PersoonID in beide tabellen) expliciet vastlegd in de database, dan noem je deze een relationele database. Aangezien MySQL dat niet kan, mag je een MySQL database ook geen relationele database noemen.

Toch kun je in je SQL query wel van de impliciete relatie gebruik maken, door bijvoorbeeld het volgende:
code:
1
2
3
SELECT F.FotoFile
FROM Persoon P LEFT JOIN Foto F ON P.PersoonID = F.PersoonID
WHERE P.PersoonNaam = 'Jantje'

Deze query zal alle file names van foto's waar Jantje op staat teruggeven.

Het verdelen van gegevens over tabellen op een slimme manier heet gegevensmodellering. Een methode die vaak gebruikt wordt om dit goed te doen heet normaliseren.
Op donderdag 27 december 2001 15:30 schreef Xtentic het volgende:
maar de echte voordelen zijn?

Tis sneller :?
Tis gemakkelijker :?
ER zijn veel routines voor? :?

:?
Goeie vragen.

Databases hebben veel voordelen boven file based data storage. Niet alle voordelen gelden overigens voor alle databases, want er zijn ook verschillen tussen de mogelijkheden van databases onderling.

Ik zal er een paar belangrijke uitlichten:
1) snelheid
Databases zijn erg snel in het zoeken, filteren en sorteren van gegevens, maar ook in inserten, updaten en deleten van records.

2) concurrency:
Als een gebruiker gegevens wijzigt in een file, zullen andere gebruikers helemaal geen toegang hebben tot die file. Met databases is het vaak mogelijk om records in verschillende tabellen onafhankelijk van elkaar te wijzigen, en in goede database systemen (maar niet in MySQL >:) (tenzij je InnoDB gebruikt, BLaH(c))) kun je zelfs records in dezelfde tabel tegelijk wijzigen.

3) security:
Je kunt in databases rechten geven aan verschillende gebruikers om verschillende dingen wel of niet te mogen zien / aanvullen / wijzigen / verwijderen.

4) reliability:
Als een machine crashed terwijl deze een file leest of schrijft, is de kans groot dat de file corrupt is. Met goede databases is dat niet het geval.

Overtuigd? :+

Databases die SQL gebruiken zijn overigens vanuit vrijwel alle serieuze programmeertalen te benaderen. Voor SQL is er een standaard waar door de meeste queries ook goed uitwisselbaar zijn te gebruiken.

HTH :)

Verwijderd

Topicstarter
Mrx, bedankt voor je uitleg. Al snap ik er nog weinig van ik begrijp dat het webdesign leven toch ietsje gemakkelijker maakt enzo... en zal er zelf ook mee gaan beginnen zodra ik mijn MySQL database enzo aan het werk heb gekregen (odbc32.dll error :()

Verwijderd

Topicstarter
:{ heeft iemand nog comments over mijn profile?
Pagina: 1