abonnement Unibet Coolblue Bitvavo
pi_61241544
Dat had ik idd ook verwacht maar helaas, ook heb ik net geprobeerd om alle _id's te indexeren maar dat resulteerde ook niet in een snellere site... het tegenovergestelde zelfs
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 30 augustus 2008 @ 11:30:08 #154
75592 GlowMouse
l'état, c'est moi
pi_61241578
Zeg eens welke velden nu allemaal geïndexeerd staan (of beter, geef je CREATE TABLE query), en toon EXPLAIN eens met die FORCE INDEX.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61241666
Ik heb even een create table dump gemaakt:
http://www.bruggema.nl/tables.sql

Dit zijn alle tabellen die gebruikt worden.

Force index snap ik nog niet geheel, ben de documentatie nog aan het doorspitten
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 30 augustus 2008 @ 11:40:29 #156
75592 GlowMouse
l'état, c'est moi
pi_61241730
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT fish.id,
               fish.user_id,
               fish.catchdate,
               fish_categories.name,
               users.username,
               media.id AS photo_id
        FROM fish FORCE INDEX(id)
        LEFT JOIN users ON users.id = fish.user_id
        LEFT JOIN media ON media.source_id = fish.id
        LEFT JOIN fish_categories ON fish_categories.id = fish.fish_id
        GROUP BY fish.id
        ORDER BY fish.id DESC
        LIMIT 0,4


En zoveel keys zijn het nog niet. Inserts/updates gaan wel wat trager nu, dus als je relatief veel inserts of updates hebt, moet je het aantal indices tot een minimum beperken. En indices die je helemaal niet gebruikt kun je sowieso beter helemaal weglaten.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61241767
Nu heb ik die query gedaan en kreeg opeens te zien dat na het weghalen van de FORCE het opeens geen filesystem meer gebruikt als sorteer optie!? hoe kan dat?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 30 augustus 2008 @ 11:47:02 #158
75592 GlowMouse
l'état, c'est moi
pi_61241807
Filesort hoeft niet van het filesystem gebruik te maken hoor. En hoe het kan? Indices stonden net toch verkeerd, of heb je een analyze table gedaan?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61241949
ik had niets aangepast, maar blijkbaar had MySQL zelf even de indexes aangemaakt oid.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 30 augustus 2008 @ 11:58:40 #160
75592 GlowMouse
l'état, c'est moi
pi_61241980
Is dat even makkelijk
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61242015
Maar toch is de site nog sloom, maar goed; dan heb ik weer wat te doen.

-edit-doethetal
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 30 augustus 2008 @ 12:02:07 #162
75592 GlowMouse
l'état, c'est moi
pi_61242032
Laat hij standaard gewoon zien. Maar ik zou er een scriptje voor maken. Voeg dan wel SQL_NO_CACHE toe aan je query, anders zul je zien dat de meest complexe queries anders in no-time worden uitgevoerd. En houd er ook rekening mee dat tabellen op een gegeven moment in het geheugen zitten, en het dan een stuk sneller gaat dan wanneer iemand je site bezoekt wanneer die tabel niet meer in het geheugen zit.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61276095
Nu we toch bezig zijn met indexes, heb ik het volgende; dit heb ik ergens gelezen op het internet en wilde eens weten of dit klopt

Stel je hebt een tabel waarin je personen zet.
voornaam,
achternaam
leeftijd,
woonplaats

en nu heb je op deze tabel heel veel queries draaien, maar je wilt zorgen dat dit alles snel gaat. De meeste queries zoeken op voornaam, achternaam en of woonplaats.

Dan moest je volgens het artikel de volgorde van je INDEXES volgen (bij gecombineerde indexes).
voorbeeld INDEX (voornaam, achternaam, woonplaats)

Volgens het artikel waren de volgende zoek mogelijkheden mogelijk:
SELECT voornaam, achternaam, leefttijd, woonplaats
FROM personen
WHERE woonplaats = 'Groningen'
AND achternaam = 'Test'
AND voornaam = 'Eric'

maar niet als je zo zocht:
SELECT voornaam, achternaam, leefttijd, woonplaats
FROM personen
WHERE voornaam = 'Eric'
AND achternaam = 'Test'
AND woonplaats = 'Groningen'

Klopt dit? zit nu niet echter een machine met MySQL en of wachtwoorden van sites en zo ja, kan iemand dit dan eens duidelijk en zo mogelijk volledig uitleggen?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zondag 31 augustus 2008 @ 21:46:46 #164
75592 GlowMouse
l'état, c'est moi
pi_61276307
Nee klopt niet. Lees http://dev.mysql.com/doc/(...)-column-indexes.html eens door.

Belangrijkste is "A multiple-column index can be considered a sorted array containing values that are created by concatenating the values of the indexed columns"
Daarom werkt bij jou index zoeken op WHERE achternaam="blah" niet, maar op WHERE achternaam="blah" AND voornaam="hoi" wel. En daarom werkt het bij een OR niet zo goed, omdat hij alleen het tweede (en derde) stuk van een index gebruiken wanneer het eerste (en tweede) stuk constant is.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61276904
In het voorbeeld dat ik net las stond het volgende:
quote:
The name index is an index over the last_name and first_name columns. The index can be used for queries that specify values in a known range for last_name, or for both last_name and first_name. Therefore, the name index is used in the following queries
Nu zie ik dat de voorbeelden andersom moesten, dan klopt het!

nog een mooie quote:
MySQL cannot use an index if the columns do not form a leftmost prefix of the index gewoon index volgen in je where parameters beginnend van links naar rechts en eventueel meer toevoegen... ?

ik probeer het allemaal te begrijpen maar't gaat niet zo snel

dus dit werkt met de index:
SELECT *
FROM personen
WHERE voornaam = 'Eric'

en

SELECT *
FROM personen
WHERE voornaam = 'Eric'
AND achternaam = 'Test'

en dus ook alle 3 en eventueel meer

SELECT *
FROM personen
WHERE voornaam = 'Eric'
AND achternaam = 'Test'
AND woonplaats = 'Groningen'
AND leeftijd < 50

maar hoe werkt het dan met dit:

SELECT *
FROM personen
WHERE voornaam = 'Eric'
AND achternaam = 'Test'
AND leeftijd < 50

zal deze dan ook de index gebruiken? ik vraag maar hoor
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zondag 31 augustus 2008 @ 22:09:42 #166
75592 GlowMouse
l'état, c'est moi
pi_61277079
Via voornaam en achternaam (en bij die een na laatste ook woonplaats) haalt hij de rijen op die eraan voldoen, en daarna checkt hij bij die rijen de leeftijd. Daarom is Woonplaats niet zo nuttig om in je index te zetten: tenzij je de query SELECT woonplaats FROM table WHERE voornaam='a' AND achternaam='b' heel vaak gebruikt (zodat je een covering index hebt, maar dat is alleen nuttig als je hem heel vaak gebruikt), omdat er toch niet veel rijen overblijven na selectie op voornaam en achternaam. Want onthoud: hoe langer de index, hoe meer tijd hij kost om bij te werken, en hoe meer tekstvelden in een index, hoe trager hij wordt bij een SELECT-query omdat hij dan erg groot (veel kB's) wordt.

Overigens zie je via EXPLAIN SELECT ... welk deel van de index naar verwachting benut zal worden.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61277215
quote:
Op zondag 31 augustus 2008 22:04 schreef Chandler het volgende:
In het voorbeeld dat ik net las stond het volgende:
[..]

Nu zie ik dat de voorbeelden andersom moesten, dan klopt het!

nog een mooie quote:
MySQL cannot use an index if the columns do not form a leftmost prefix of the index gewoon index volgen in je where parameters beginnend van links naar rechter en eventueel meer toevoegen... ?
Als je een index hebt op (lastname, firstname) dan kun je queries doen als:
SELECT * FROM persons WHERE lastname="Test";
SELECT * FROM persons WHERE lastname="Test" AND firstname="Eric";
SELECT * FROM persons WHERE firstname="Eric" AND lastname="Test";
Maar niet:
SELECT * FROM persons WHERE firstname="Eric";
pi_61284684
Duidelijk, dan zijn mijn queries toch aardig goed en indexes ook

Een andere vraag stel ik wil het volgende opslaan.

71.231
302.121
5.1231

Wat moet ik daarvoor gebruiken? gebruik nu een char, maar dat lijkt me niet echt handig

Verder heb ik een query die best wel veel tijd neemt en heb deze met analyze geprobeerd te begrijpen:
1
2
3
4
5
EXPLAIN SELECT stats_ip_link.stat_id, count( stats_ip.id ) AS count
FROM stats_ip_link
LEFT JOIN stats_ip ON stats_ip.id = stats_ip_link.ip_id
WHERE UNIX_TIMESTAMP( stats_ip_link.lastdate ) > ( UNIX_TIMESTAMP( NOW( ) ) - ( 60 *15 ) ) 
GROUP BY stats_ip_link.stat_id 


nu krijg ik het volgende resultaat:
1
2
3
id  select_type  table  type  possible_keys  key  key_len  ref  rows  Extra  
1 SIMPLE stats_ip_link ALL NULL NULL NULL NULL 70168 Using where; Using temporary; Using filesort 
1 SIMPLE stats_ip eq_ref PRIMARY PRIMARY 4 gfxstatcom_db.stats_ip_link.ip_id 1 Using index 


nu heb ik op het tabel stats_ip_link een index op stat_id en stat_ip en een index op 'lastdate` maar nog steeds is deze sloom

Anyone? of is het handiger dat ik lastdate en firstdate (beiden datetime) verander naar timestamp oid?

[ Bericht 33% gewijzigd door Chandler op 01-09-2008 09:44:02 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 10:21:55 #169
75592 GlowMouse
l'état, c'est moi
pi_61285634
Die nummers kun je het beste opslaan als een mediumint (signed/unsigned, afhankelijk van of je wel/geen negatieve nummers tegenkomt).

De index op stats_ip_link is lastig: je kunt hem op lastdate zetten voor de WHERE, je kunt hem op stat_id zetten voor de GROUP BY, maar op (lastdate,stat_id) heeft het geen zin omdat lastdate niet constant is en stat_id daarna niet meer benut kan worden. Het beste lijkt mij hier een index op lastdate, omdat hoe langer je die tabel houdt, je na toepassen van de WHERE altijd ongeveer evenveel resultaten overhoudt, zodat het in de loop der tijd niet langzamer wordt.
Die index moet wel benut kunnen worden, en als je een functie op een kolom loslaat, kan dat niet meer. Zelf werk ik altijd met unix timestamps in een database, maar jouw aanpak moet ook kunnen werken. Kun je niet iets doen als lastdate > mysqls datetime formaat van 15 minuten geleden?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61286496
Ook een index op lastdate werkt niet qua snelheid bevordelijk!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 11:07:52 #171
75592 GlowMouse
l'état, c'est moi
pi_61286532
Dat is gek, welke query gebruik je nu, en hoeveel rijen voldoen er aan WHERE UNIX_TIMESTAMP( stats_ip_link.lastdate ) > ( UNIX_TIMESTAMP( NOW( ) ) - ( 60 *15 ) ) ?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61286893
80 rijen maar dit kan per seconde veranderen en de query die ik eerder ook al gepost heb

1
2
3
4
5
SELECT stats_ip_link.stat_id, count( stats_ip.id ) AS count
FROM stats_ip_link
LEFT JOIN stats_ip ON stats_ip.id = stats_ip_link.ip_id
WHERE UNIX_TIMESTAMP( stats_ip_link.lastdate ) > ( UNIX_TIMESTAMP( NOW( ) ) - ( 60 *15 ) ) 
GROUP BY stats_ip_link.stat_
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 11:32:26 #173
75592 GlowMouse
l'état, c'est moi
pi_61287127
Met 80 zou hij heel snel moeten zijn. Moet je wel dit in acht nemen:
quote:
Die index moet wel benut kunnen worden, en als je een functie op een kolom loslaat, kan dat niet meer. Zelf werk ik altijd met unix timestamps in een database, maar jouw aanpak moet ook kunnen werken. Kun je niet iets doen als lastdate > mysqls datetime formaat van 15 minuten geleden?
En die query moet ook wachten als de tabel geüpdatet wordt, dus dat kan wel wat traagheid veroorzaken, maar met een rij of 80 is het anders heel snel als die index benut kan worden.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61287293
Zou ik ook zeggen maar helaas het blijft toch sloom

Er staan ruim 70.000 items in dit tabel, waarbij lastdate geindexeerd is!. Je zou denken dat de server dit binnen 0.01 seconde zou moeten kunnen uitzoeken maar helaas, dat doet het niet
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 11:41:09 #175
75592 GlowMouse
l'état, c'est moi
pi_61287354
Hoe ziet je query er dan nu uit?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61287387
Bedoel je met explain of zonder explain? zonder is de zelfde als bovenstaande
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 11:43:22 #177
75592 GlowMouse
l'état, c'est moi
pi_61287404
Ik quote mezelf toch niet voor niks? f(kolom) kan niet geïndexeerd worden, dus moet je je query aanpassen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61287462
Ik snap je niet helemaal (probeer het wel hoor )
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 11:48:09 #179
75592 GlowMouse
l'état, c'est moi
pi_61287516
Je query moet in deze vorm staan:
1
2
3
4
5
SELECT stats_ip_link.stat_id, count( stats_ip.id ) AS count
FROM stats_ip_link
LEFT JOIN stats_ip ON stats_ip.id = stats_ip_link.ip_id
WHERE stats_ip_link.lastdate > .......
GROUP BY stats_ip_link.stat_id

MySQL is niet slim genoeg om in te zien dat UNIX_TIMESTAMP een monotone functie is.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61288355
Ik zie idd dat de snelheid bepaald wordt door unix_timestamp

1
2
3
4
5
SELECT stats_ip_link.stat_id, count( stats_ip.id ) AS count
FROM stats_ip_link
LEFT JOIN stats_ip ON stats_ip.id = stats_ip_link.ip_id
WHERE stats_ip_link.lastdate > ( NOW( ) - ( 60 *15 ) ) 
GROUP BY stats_ip_link.stat_id
deze query duurde 0.022 terwijl deze (vorige) ruim 0.7xxx aan tijd nam.

Echter verschillen beide queries qua uitkomst :{
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 12:20:17 #181
75592 GlowMouse
l'état, c'est moi
pi_61288398
Dan kijk je naar de output van
1
2
3
4
SELECT *
FROM stats_ip_link
LEFT JOIN stats_ip ON stats_ip.id = stats_ip_link.ip_id
WHERE stats_ip_link.lastdate > ( NOW( ) - ( 60 *15 ) ) 

en kijk je welke rijen er tussenstaan die er niet tussen zouden moeten staan.

Je ziet zelf al wat er fout gaat met deze query: SELECT NOW( ) , NOW( ) -15 *60
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61288538
Ik zie het idd!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 12:26:56 #183
75592 GlowMouse
l'état, c'est moi
pi_61288601
Doe eens deze query: SELECT NOW(), NOW( ) -15 *60, SUBTIME(NOW(),'0 0:15:0');
Dan zou je genoeg moeten weten
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61288677
Super!!! dat scheelt per query zo'n 0.7xxx seconden!!!

Maar is het in mijn geval niet handiger om gewoon de timestamp op te slaan?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 12:31:32 #185
75592 GlowMouse
l'état, c'est moi
pi_61288722
Kwestie van voorkeur
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61289150
Zou het geen preformance verschil (op de lange duur) met zich mee brengen? en het scheelt volgens mij ook in de grootte die het op de schijf neemt
quote:
TIMESTAMP requires 4 bytes.
DATETIME requires 8 bytes.
http://bitfilm.net/2007/08/25/choosing-optimal-mysql-data-types/

en ik denk dat timestamps gemakkelijker te indexeren zijn (denk ik)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  maandag 1 september 2008 @ 13:03:04 #187
75592 GlowMouse
l'état, c'est moi
pi_61289550
Je index wordt de helft kleiner, dus het zal wel wat schelen. Maar dat verschil is heel klein, en wordt nauwelijks groter. Een TIMESTAMP zal op termijn (zeker in 20-30 jaar) trouwens ook naar 8 bytes gaan omdat je anders geen datums na 2037 op kunt slaan.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61291997
Ik wil in mijn .htaccess alles matchen, behalve afbeeldingen. Ik wil alle afhandeling van de querystring overlaten aan php. Dus:

http://domein.nl/blaat/bla/bla/bla -> index.php?querystring=blaat/bla/bla/bla
http://domein.nl/hoi.html -> index.php?querystring=hoi.html
http://domein.nl/plaatje.png -> geen match

Dat houdt in dat ook slashes gematcht moeten worden in de RewriteRule, en dat krijg ik niet werkend.

1
2
3
4
5
RewriteEngine On 
RewriteBase /project

RewriteCond %{REQUEST_FILENAME} \.^(gif|jpe?g|png)$ [NC]
RewriteRule ^([A-Za-z0-9-\-.\/]+)$ index.php?input=$1


Ik zie iets over het hoofd. Afbeeldingen worden wel weergegeven, iets willekeurigs invullen als url geeft een 404.
pi_61292906
Nevermind, dat heeft heul niks met php of mysql te maken.
pi_61293576
True, maar een nieuw topic openen voor zo'n kleine vraag is ook loos. Lijkt me dat hier veel mensen zijn die het antwoord wel weten
pi_61296280
Jongens, maak je een for-loop in perl? Simpele vraag, kunnen mensen hier vast beantwoorden
pi_61298478
Nog een vraagje, ik wil 2 timestamps gebruiken in 1 tabel, echter krijg ik dit niet voor elkaar.. Error in de zin van dubbele CURRENT_TIME oid. Hoe los ik dit op? of moet ik gewoon INT gebruiken?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61298540
Je kunt geen twee timestamps in 1 tabel gebruiken... in ieder geval geen timestamps die automatisch geupdate worden iig. Erg irritant, ik snap ook echt niet waarom dat niet kan
pi_61299404
quote:
Op maandag 1 september 2008 18:45 schreef Xcalibur het volgende:
Je kunt geen twee timestamps in 1 tabel gebruiken... in ieder geval geen timestamps die automatisch geupdate worden iig.
En waarom zou je dat dan willen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_61300490
1 voor de create datum (automatisch bij inserten) en 1 voor de laatste wijziging datum (automatisch bij updaten)
pi_61300950
Correct, daarom wil ik 2x een timestamp hebben die niet automatisch geupdated wordt! of een mogelijkheid dat ik 2x een timestamp kan gebruiken!

-edit-
je kunt wel twee timestamps gebruiken maar zit er een máár aan!. De eerste timestamp zal automatisch geupdated worden en de tweede niet, beetje vervelend

http://michaelkimsal.com/(...)eatedupdated-values/

nu is de vraag wat moet ik gebruiken om een alternatieve manier voor timestamp in te kunnen voeren?

[ Bericht 22% gewijzigd door Chandler op 01-09-2008 20:09:26 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61301410
Kan dit dan niet tegelijk in 1 tabel?
1
2
created TIMESTAMP DEFAULT CURRENT_TIMESTAMP
modified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP


[edit]
Dat kan dus blijkbaar niet:
quote:
MySQL said:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
Vreemd. Maar dan maak je gewoon 1 autoupdate kolom (modified) en de ceated insert je zelf. (Dat insert statement heb je uiteraard maar op 1 plaats staan, dus dat pas je ze aan )

[ Bericht 38% gewijzigd door SuperRembo op 01-09-2008 20:37:13 ]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_61301462
Nee, de eerste moet de modified zijn en de 2e de createdate, en helaas heb ik het in mijn huidig model net andersom
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61301495
quote:
Op maandag 1 september 2008 20:00 schreef Chandler het volgende:
je kunt wel twee timestamps gebruiken maar zit er een máár aan!. De eerste timestamp zal automatisch geupdated worden en de tweede niet, beetje vervelend
Wat is het nut van twee kolommen waar altijd dezelfde waarde in staat?
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_61302194
Hoezo? 1 is voor de aanmaak datum de 2e is voor de laatste update? daar is toch niets het zelfde in? tenzij een record niet geupdated wordt na aanmaak???
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61306585
Als ik probeer te verbinden met de database van mijn provider PCextreme krijg ik de volgende melding:

1Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)


Wie-o-wie weet de oplossing, ik zal diegene eeuwig dankbaar zijn _O_.
Aan dit bericht kunnen geen rechten worden ontleend.
pi_61306674
Ik gok dat je niet het juiste ipadres of de juiste hostnaam hebt ingevuld.
pi_61306930
quote:
Op maandag 1 september 2008 22:23 schreef Farenji het volgende:
Ik gok dat je niet het juiste ipadres of de juiste hostnaam hebt ingevuld.
quote:
Database-server: sql10.pcextreme.nl (sql10.pcextreme.nl)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    $mysqlserver 
"sql10.pcextreme.nl"
    
$user "user"
    
$password "password"
    
$database "database";
    
    
$connect mysql_connect($mysqlserver$user$password
    or die (
mysql_error());
    
// echo "<p>Er is een connectie opgezet met de MySQL-server: <strong>" . $mysqlserver . "</strong>. ";
        
    
mysql_select_db($database)
    or die (
mysql_error()); 
    
// echo " Van deze MySQL-server is de database <strong>" . $database . "</strong> geselecteerd.</p>";
?>
Aan dit bericht kunnen geen rechten worden ontleend.
pi_61309841
Ik heb nu twee tabellen,

users & company.

tabel company bestaat uit id, naam en uids
tabel users bestaat uit id en naam

Nu wil ik in een pagina in een multi select box alle users tonen en meerdere users tegelijkertijd kunnen selecteren en de waarde daarvan toevoegen in tabel company.

Dus stel ik heb Erik met id 1 en Peter met id 2 en company Microsoft heeft beide users dan komt er in de row van Microsoft te staan: Microsoft met id 1 en uids 1;2 of misschien is dit als array ook mogelijk?

Wat heb ik is iig een simpel multi select box:
1
2
3
4
5
6
7
8
<?php
echo '<SELECT MULTIPLE SIZE=10>';
while(
$row mysql_fetch_array($result)){
echo 
'<OPTION VALUE='.$row["id"].'>';
echo 
$row["name"];
}
echo 
"</SELECT>";
?>


Nu moeten de waardes van de geselecteerde items alleen toegevoegd worden aan company en juist daar zit ik nu een beetje mee..
pi_61310108
Een veld in mysql bevat altijd 1 waarde; geen lijst van waardes. Dit kan op zich wel maar is echt af te raden, aangezien je dat nauwelijks kan doorzoeken en beheren.

Je moet jezelf afvragen: kan een user bij meerdere companies horen?

Zo ja, dan heb je een extra jointabel nodig (met velden company_id en user_id) omdat dit een many 2 many relatie is. Hiermee koppel je de users aan companies

Als een user maar bij 1 company kan horen, maak je in de user tabel een extra veld company_id.
  maandag 1 september 2008 @ 23:57:55 #206
75592 GlowMouse
l'état, c'est moi
pi_61310210
quote:
Op maandag 1 september 2008 23:53 schreef Farenji het volgende:
Een veld in mysql bevat altijd 1 waarde; geen lijst van waardes.
Behalve een veld van het type set, maar die ben ik nog nooit in het wild tegengekomen.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61310462
Ja een user kan meerdere companies hebben. Ik doe het trouwens zo omdat ik dit voor een complexere situatie op hetzelfde manier moet gaan doen, een company row moet dus meerdere waardes van users kunnen bevaten in uids, ik hoop dat dit toch op de een of ander manier mogelijk is?

Het uiteindelijke doel is om in de uids van het bedrijf te doorzoeken waar er allemaal bijv uids 1 staat en alleen de namen van de bedrijven die daarbij horen toe te voegen.

Nogmaals dit slaat natuurlijk nergens op, maar dit is een test voor een complexere situatie waar ik geen andere keus heb op dit moment.
pi_61313430
Dat wordt toch echt een koppeltabel maken dan
  dinsdag 2 september 2008 @ 08:49:07 #209
12880 CraZaay
prettig gestoord
pi_61313760
quote:
Op dinsdag 2 september 2008 00:07 schreef Hafez het volgende:

Nogmaals dit slaat natuurlijk nergens op, maar dit is een test voor een complexere situatie waar ik geen andere keus heb op dit moment.
Dan wordt het tijd om ander werk te zoeken of de opdracht te weigeren. Serieus. Je gebruikt een relationele database.
pi_61313788
Ik ben er al achter hoe je meerdere timestamps kunt gebruiken in een tabel (ongeacht of het nuttig is of niet).

CREATE TABLE t
(
ts1 TIMESTAMP NULL DEFAULT NULL,
ts2 TIMESTAMP NULL DEFAULT 0,
ts3 TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
);

zet default op NULL

en ik had in het topic wat gemist
quote:
Die nummers kun je het beste opslaan als een mediumint (signed/unsigned, afhankelijk van of je wel/geen negatieve nummers tegenkomt).
dit ging over nummers met een punt bv

832.121
432.111
52.112

nu wil ik ze ook precies zo opslaan (met de punt) en dat doe ik nu in een varchar 10, echter zou ik willen weten of hier ook een andere functie voor is?

[ Bericht 49% gewijzigd door Chandler op 02-09-2008 09:38:47 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61314508
Werkt dat ook met een ON UPDATE ?
Want het automatisch updaten vind ik interessanter dan het automatisch vullen bij het inserten

Edit: beetje je post zitten editten
Dit ging dus over de timestamps
pi_61314971
Ik heb de timestamps aangepast dat het niet automatisch updated, aangezien ik bij een ON UPDATE zelf deze kolom aanpas
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  dinsdag 2 september 2008 @ 10:58:10 #213
12880 CraZaay
prettig gestoord
pi_61316007
quote:
Op dinsdag 2 september 2008 08:52 schreef Chandler het volgende:

nu wil ik ze ook precies zo opslaan (met de punt) en dat doe ik nu in een varchar 10, echter zou ik willen weten of hier ook een andere functie data type voor is?
Wat denk je er zelf van

RTFM: http://dev.mysql.com/doc/refman/5.0/en/data-types.html
pi_61320179
duidelijk double
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61337377
Weet iemand welke sneller is?

SELECT num FROM products ORDER BY num DESC LIMIT 0,1

of

SELECT MAX(num) FROM products

Nog een klein vraagje: stel je wilt een subquery uitvoeren, bv:

SELECT a, b, c, (SELECT bla FROM bla ...) as d FROM bla2

Maar hoe kan je dan bijvoorbeeld selecteren op 'd'? (zonder de subquery uit te voeren bij 'WHERE')

Dus bijvoorbeeld:
SELECT a, b, c, (SELECT bla FROM bla ...) as d FROM bla2 WHERE d = x
..///
pi_61337660
quote:
Op woensdag 3 september 2008 00:50 schreef wipes66 het volgende:
Maar hoe kan je dan bijvoorbeeld selecteren op 'd'? (zonder de subquery uit te voeren bij 'WHERE')
Waarom zou je de subquery niet willen uitvoeren in je WHERE clause?
pi_61337713
quote:
Op woensdag 3 september 2008 01:07 schreef slakkie het volgende:

[..]

Waarom zou je de subquery niet willen uitvoeren in je WHERE clause?
Omdat hij dan 2x wordt uitgevoerd? (of wordt dat automatisch geoptimaliseerd? )
..///
pi_61337776
Okay..


SELECT a, b, c, (SELECT bla FROM bla ...) as d FROM bla2 WHERE d = x

=>

SELECT a, b, c, (SELECT bla FROM bla where bla = x) as d FROM bla2

???
pi_61337862
Dit moet ik hebben:

SELECT a, b, c, (SELECT bla FROM bla where bla = x) as d FROM bla2 WHERE d < x

Maar dat gaat niet, dus zou ik zoiets moeten doen:

SELECT a, b, c, (SELECT bla FROM bla where bla = x) as d FROM bla2 WHERE (SELECT bla FROM bla where bla = x) < x
..///
pi_61338002
Kan je misschien iets meer inzicht kunnen geven in je queries ipv abstracte a, b, c, d, bla's en what nots?

je wilt dat bla x is of kleiner is dan x? Dan kan je toch where bla <= x uitvoeren in 1 subquery (of is het nou =<, mag je zelf ff uitproberen).
pi_61338173
ok

Dit werkt:

SELECT id, name, (SELECT COUNT(id) FROM feed_items WHERE product_id = products.id) AS numshops
FROM products WHERE (SELECT COUNT(id) FROM feed_items WHERE product_id = products.id) > 0

Maar als ik dit doe (wat een stuk makkelijker zou zijn):

SELECT id, name, (SELECT COUNT(id) FROM feed_items WHERE product_id = products.id) AS numshops
FROM products WHERE numshops > 0

Krijg ik een error (iets in de zin van dat numshops niet bestaat).
..///
pi_61338715
quote:
Op woensdag 3 september 2008 01:50 schreef wipes66 het volgende:
SELECT id, name, (SELECT COUNT(id) FROM feed_items WHERE product_id = products.id) AS numshops
FROM products WHERE (SELECT COUNT(id) FROM feed_items WHERE product_id = products.id) > 0
Kan je dan niet beter zoiets doen:

SELECT products.id as p_id, products.name as p_name, COUNT(feed_items.id) as numshops
FROM products, feed_items
WHERE feed_items.product_id = p_id
GROUP BY p_id, p_name, numshops
HAVING numshops > 0
pi_61339493
quote:
Op woensdag 3 september 2008 00:50 schreef wipes66 het volgende:
Weet iemand welke sneller is?

SELECT num FROM products ORDER BY num DESC LIMIT 0,1

of

SELECT MAX(num) FROM products
ik zou zeggen dat MAX(num) sneller is, om de eenvoudige reden dat deze gemaakt is voor de handeling... maar ik kan het niet onderbouwen ofzo
pi_61376958
quote:
Op woensdag 3 september 2008 03:59 schreef slakkie het volgende:

[..]

Kan je dan niet beter zoiets doen:

SELECT products.id as p_id, products.name as p_name, COUNT(feed_items.id) as numshops
FROM products, feed_items
WHERE feed_items.product_id = p_id
GROUP BY p_id, p_name, numshops
HAVING numshops > 0
tnx ik zal het eens proberen.
..///
  donderdag 4 september 2008 @ 22:44:39 #225
36431 bleiblei
Toogmakker:copyright:
pi_61388208
Ik heb echt gigantisch simpele domme vraag, maar ik krijg zo snel ff geen oplossing gevonden.
Als ik deze query heb:
quote:
SELECT a.*, b.*
FROM a, b
WHERE a.id = b.id
En ik wil de data uit de array ophalen.
Hoe moet dat dan? .
Ik krijg het dus nergens gevonden en:
quote:
while ($rij = mysql_fetch_array($result)) {
$id = $rij['a.id'];
$name = $rij['b.name'];
}
wat mij het meest logische leek, werkt niet.
pi_61388312
Je moet niet mysql_fetch_array gebruiken, maar mysql_fetch_assoc.
  donderdag 4 september 2008 @ 22:54:47 #227
36431 bleiblei
Toogmakker:copyright:
pi_61388479
quote:
Op donderdag 4 september 2008 22:49 schreef HuHu het volgende:
Je moet niet mysql_fetch_array gebruiken, maar mysql_fetch_assoc.
Ah! Daarom vond ik niets .
Ik ga weer googlen, mijn dank is groot!
pi_61388530
quote:
Op donderdag 4 september 2008 22:49 schreef HuHu het volgende:
Je moet niet mysql_fetch_array gebruiken, maar mysql_fetch_assoc.
Dat maakt weinig uit. Beide leveren een associative array. Het verschil is dat mysql_fetch_array ook een numerieke array levert. Je kunt de data dus op 2 manieren benaderen.

De associatieve array bevat alleen de veldnamen en niet de tabelnamen. Dus niet 'a.id' maar gewoon 'id'.
1
2
3
4
5
6
<?php
while ($rij mysql_fetch_array($result)) {
  
$id $rij['id'];
  
$name $rij['name'];
}
?>
  donderdag 4 september 2008 @ 22:57:01 #229
75592 GlowMouse
l'état, c'est moi
pi_61388539
Light was me voor. Hier kun je overigens zelf achterkomen met een var_dump($rij);
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61389725
Sterker nog met mysql_fetch_array kan je een numerieke, associatieve of beide opvragen:

array mysql_fetch_array ( resource $result [, int $result_type ] )

The type of array that is to be fetched. It's a constant and can take the following values: MYSQL_ASSOC, MYSQL_NUM, and the default value of MYSQL_BOTH.
pi_61392384
quote:
Op donderdag 4 september 2008 23:43 schreef slakkie het volgende:
Sterker nog met mysql_fetch_array kan je een numerieke, associatieve of beide opvragen:

array mysql_fetch_array ( resource $result [, int $result_type ] )

The type of array that is to be fetched. It's a constant and can take the following values: MYSQL_ASSOC, MYSQL_NUM, and the default value of MYSQL_BOTH.
Ja, en de standaard is MYSQL_BOTH. Daarbij, met enkel verwijzen naar mysql_assoc wordt de vraag niet beantwoord.
pi_61393386
Hmm... ik dacht dat die _array alleen een numerieke index terug gaf. Beetje te kort door de bocht dus .
pi_61397371
Wederom heb ik een vraagje (wanneer niet)

Stel ik heb 100.000 JPG bestanden varierend tussen de 10KB en 1MB en wil deze eigelijk allemaal wat kleiner hebben qua bestandsformaat. Nu wil ik deze graag comprimeren middels PHP echter wil ik het verlies van de kwaliteit zo klein mogelijk houden.

Wat raden jullie aan? want als ik zelf het compressie ratio instel moet ik per afbeelding gaan controlleren of de afbeelding er met dat ratio nog wel mooi uitziet... Anyone?

Ps. converteren naar PNG of ander formaat is niet mogelijk (in dit idee)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61397906
ik zou een aantal random afbeeldingen op verschillende kwaliteiten comprimeren...
het meest acceptabele resultaat gebruik je?

Met een beetje normale compressie is het echt niet zo dat sommige foto's fantastisch zijn en andere helemaal kut
  vrijdag 5 september 2008 @ 12:35:16 #235
136730 PiRANiA
All thinking men are atheists.
pi_61398835
quote:
Op vrijdag 5 september 2008 11:40 schreef Chandler het volgende:
Wederom heb ik een vraagje (wanneer niet)

Stel ik heb 100.000 JPG bestanden varierend tussen de 10KB en 1MB en wil deze eigelijk allemaal wat kleiner hebben qua bestandsformaat. Nu wil ik deze graag comprimeren middels PHP echter wil ik het verlies van de kwaliteit zo klein mogelijk houden.

Wat raden jullie aan? want als ik zelf het compressie ratio instel moet ik per afbeelding gaan controlleren of de afbeelding er met dat ratio nog wel mooi uitziet... Anyone?

Ps. converteren naar PNG of ander formaat is niet mogelijk (in dit idee)
Ik zou het niet met php doen maar met phatch. Dat draait onder ubuntu, kijk er eens naar
pi_61402203
Het probleem is dat het om een site gaat waar heeeel veel plaatjes in zitten, allemaal met filesize verwekt in een database (en draait onder winhooz).. Dus phatch wordt een beetje moeilijk. In sommige gevallen is het ook zo dat de filesize groter wordt... is er ook een manier om uit te vissen welke compressie er gebruikt wordt? (in geval van JPG?)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61405136
Ik heb een textarea welke in de database NULL mag zijn. Indien ik het formulier via mijn website verstuur naar de database, dan komt er bij textarea -ondanks dat er niets is ingevuld- toch een spatie te staan. Hoe kan ik dit voorkomen?
Aan dit bericht kunnen geen rechten worden ontleend.
  vrijdag 5 september 2008 @ 16:16:14 #238
75592 GlowMouse
l'état, c'est moi
pi_61405210
NULL is alsnog wat anders dan een lege string. Met een trim haal je alle overbodige spaties, tabs, newlines, e.d. weg aan het begin en aan het eind van een string. Maar wil je het echt als NULL opslaan of als lege string?

http://dev.mysql.com/doc/refman/5.0/en/problems-with-null.html
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61405320
Ik zou het graag als NULL willen opslaan. Ik ga even kijken naar trim . Bedankt tot zo ver.
Aan dit bericht kunnen geen rechten worden ontleend.
  vrijdag 5 september 2008 @ 16:49:19 #240
12880 CraZaay
prettig gestoord
pi_61406092
quote:
Op vrijdag 5 september 2008 16:21 schreef poepeneesje het volgende:
Ik zou het graag als NULL willen opslaan. Ik ga even kijken naar trim .
je kan trimmen wat je wilt, maar dat is een string bewerking die uiteindelijk een andere (lege) string oplevert. NULL is iets totaal anders; dat is "niets". Dus geen lege string, maar gewoon niets.
pi_61406179
Ik heb even gekeken naar trim, maar wat ik daaruit begrijp is dat het een functie is die je gebruikt bij een select-statement, dus eigelijk een oplossing "achteraf" om van de spatie af te komen.

Bij het verzenden van het formulier naar de database, wil ik dat indien er niets wordt ingevuld in de textarea, dat er in de datebase in dat valt gewoon NULL staat en geen spatie.
Aan dit bericht kunnen geen rechten worden ontleend.
  vrijdag 5 september 2008 @ 16:56:53 #242
12880 CraZaay
prettig gestoord
pi_61406343
quote:
Op vrijdag 5 september 2008 16:51 schreef poepeneesje het volgende:
Bij het verzenden van het formulier naar de database, wil ik dat indien er niets wordt ingevuld in de textarea, dat er in de datebase in dat valt gewoon NULL staat en geen spatie.
Dan kun je bij het samenstellen van de INSERT-query ervoor zorgen dat voor het veld wat je NULL wilt hebben helemaal niets wordt geschreven. Dus checken bij het bouwen van de query of de string (eventueel na trimmen; de PHP-functie) leeg is, en alleen als dat niet zo is de waarde naar de db schrijven.
  vrijdag 5 september 2008 @ 16:57:43 #243
75592 GlowMouse
l'état, c'est moi
pi_61406366
Ik had het over de PHP-functie trim, die mag je ook gebruiken wanneer je de input krijgt. Daarna kun je MySQL's TRIM ook bij een INSERT-query gebruiken, het komt alleen niet zo vaak voor

Maar om NULL te krijgen moet je ergens checken of de string leeg is (of een spatie) en in dat geval NULL ipv een string INSERTEN.

Maar waarom heb je liever NULL dan een lege string?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 5 september 2008 @ 17:12:39 #244
12880 CraZaay
prettig gestoord
pi_61406781
quote:
Op vrijdag 5 september 2008 16:57 schreef GlowMouse het volgende:
en in dat geval NULL ipv een string INSERTEN.
Of gewoon niets inserten, waarbij MySQL er zelf NULL van maakt (als je in je schema NULL toestaat en als default value hebt).
pi_61406793
CraZaay & GlowMouse, ik wist niet dat het ook een PHP-functie is. Daar ga ik vanavond dan even opnieuw naar kijken.

Het wordt niet zozeer als lege string opgeslagen, maar echt als een spatie. Waarschijnlijk maakt het niet veel uit, maar het is wel netter (vind ik) als er dan gewoon niets wordt opgeslagen. Maar ik denk dat ik weet waar het misgaat, nu je begint over een lege string.

Ik ga vanavond even kijken, bedankt voor de snelle reacties jongens .
Aan dit bericht kunnen geen rechten worden ontleend.
  vrijdag 5 september 2008 @ 17:18:34 #246
12880 CraZaay
prettig gestoord
pi_61406949
Of het netter is weet ik niet; de user heeft immers bewust een lege string gesubmit is mijn gedachtegang. Dat je met trim() spaties voor/achter filtert (en dus eventueel een lege string overhoudt) is prima, maar ik zou het dan wel als lege string opslaan. Maar da's meer een kwestie van smaak
pi_61407040
1
2
3
4
5
6
7
8
<?php
$input 
" ";
$input trim($input);

if (!
strlen($input)) { $input null }

# Doorgaan alsof er niks aan de hand is
?>


Ik ga er maar even vanuit dat null van php ook in de query gewoon NULL wordt..
pi_61407097
quote:
Op vrijdag 5 september 2008 17:12 schreef poepeneesje het volgende:
CraZaay & GlowMouse, ik wist niet dat het ook een PHP-functie is. Daar ga ik vanavond dan even opnieuw naar kijken.

Het wordt niet zozeer als lege string opgeslagen, maar echt als een spatie. Waarschijnlijk maakt het niet veel uit, maar het is wel netter (vind ik) als er dan gewoon niets wordt opgeslagen. Maar ik denk dat ik weet waar het misgaat, nu je begint over een lege string.

Ik ga vanavond even kijken, bedankt voor de snelle reacties jongens .
Een lege string is in sommige gevallen beter dan NULL. Soms wil je namelijk echt een onderscheid maken tussen een lege string en NULL, bijv als je in een left join wil controleren of er geen match is, en dat kan dan niet (of is minder betrouwbaar) als er ook NULL values in bestaande rows zitten.

Ik gebruik NULL eigenlijk bijna alleen als het een meerwaarde biedt; bijvoorbeeld als ik echt in mijn applicatie onderscheid wil maken tussen true (1), false (0) of undefined (NULL). OF als je echt velden hebben die soms wel voorkomen, en soms helemaal niet. Velden die wel altijd voorkomen maar leeg kunnen zijn, gooi ik gewoon als lege string in de database, niet als NULL dus.
  vrijdag 5 september 2008 @ 17:25:51 #249
75592 GlowMouse
l'état, c'est moi
pi_61407115
quote:
Op vrijdag 5 september 2008 17:22 schreef slakkie het volgende:

[ code verwijderd ]

Ik ga er maar even vanuit dat null van php ook in de query gewoon NULL wordt..
Dat wordt het niet, het blijft gewoon leeg terwijl je NULL moet hebben in je query.

Maar ik zou me de problemen met NULL in je db niet op de hals halen als je het niet nodig hebt. Sla gewoon een lege string op.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 5 september 2008 @ 17:29:55 #250
12880 CraZaay
prettig gestoord
pi_61407226
quote:
Op vrijdag 5 september 2008 17:25 schreef GlowMouse het volgende:

Dat wordt het niet, het blijft gewoon leeg terwijl je NULL moet hebben in je query.
Dan maak je er in slakkies code $input = 'NULL' van. Het is dan string waarde 'NULL', maar wanneer je deze unescaped in je query zet is het gewoon "bla = NULL" in de query. Heel die query is namelijk al een samenstelling van strings.
  vrijdag 5 september 2008 @ 17:32:27 #251
75592 GlowMouse
l'état, c'est moi
pi_61407292
quote:
Op vrijdag 5 september 2008 17:29 schreef CraZaay het volgende:

[..]

Dan maak je er in slakkies code $input = 'NULL' van. Het is dan string waarde 'NULL', maar wanneer je deze unescaped in je query zet is het gewoon "bla = NULL" in de query. Heel die query is namelijk al een samenstelling van strings.
Zo makkelijk is het niet. Er zal dan de string 'NULL' in je database komen in plaats van NULL. Je zou bijvoorbeeld iets kunnen doen als then $input='NULL' else $input = "'" . $db->escape($input) . "'". Maar nogmaals: waarom moeilijk doen als je het niet nodig hebt, je geen idee hebt wat je doet, en je jezelf alleen ellende op de hals haalt?

[ Bericht 0% gewijzigd door GlowMouse op 05-09-2008 17:48:12 (verduidelijkt) ]
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 5 september 2008 @ 17:45:16 #252
12880 CraZaay
prettig gestoord
pi_61407633
quote:
Op vrijdag 5 september 2008 17:32 schreef GlowMouse het volgende:

Zo makkelijk is het niet. Er zal dan de string 'NULL' in je database komen in plaats van NULL.
Nee, dat is niet correct

1
2
3
4
5
<?php
$input 
'NULL';

mysql_query("INSERT INTO table (input) VALUES ($input);");
?>


Dat levert gewoon een echt NULL-waarde in de database op. Dat is ook logisch, want MySQL krijgt dit binnen:

1"INSERT INTO table (input) VALUES (NULL);".
  vrijdag 5 september 2008 @ 17:47:44 #253
75592 GlowMouse
l'état, c'est moi
pi_61407687
Maar je hebt nooit VALUES($input) staan, omdat je dan in de problemen komt als $input een echte string is. Vandaar mijn else
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  vrijdag 5 september 2008 @ 17:50:29 #254
12880 CraZaay
prettig gestoord
pi_61407744
quote:
Op vrijdag 5 september 2008 17:47 schreef GlowMouse het volgende:
Maar je hebt nooit VALUES($input) staan, omdat je dan in de problemen komt als $input een echte string is. Vandaar mijn else
Dit is een versimpelde versie uiteraard, ik ga er vanuit dat je ook geen zin hebt in injection enzo en al iets met die string gedaan hebt, bijvoorbeeld ge-escaped wanneer je er wel een string in wilt hebben Het gaat mij er uiteraard vooral om dat je op deze manier in de sfeer van slakkies suggestie NULL in je db kunt krijgen. Maar zoals gezegd, ik zou er gewoon een lege string voor gebruiken.
pi_61407775
quote:
Op vrijdag 5 september 2008 17:25 schreef GlowMouse het volgende:

[..]

Dat wordt het niet, het blijft gewoon leeg terwijl je NULL moet hebben in je query.

Maar ik zou me de problemen met NULL in je db niet op de hals halen als je het niet nodig hebt. Sla gewoon een lege string op.
Met PDO werkt het wel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$db 
"";
$host "localhost";
$dbname "test";
$user "root";
$passwd "";

try {
    
$db = new PDO(sprintf("mysql:host=%s;dbname=%s"$host$dbname), $user$passwd);
} catch (
PDOException $e) {
    
printf("DB error: %s\n"$e->getMessage());
    exit(
1);
}

$sth $db->prepare("INSERT INTO testing (val) VALUES ( ? )");

$sth->bindValue(1null);
$sth->execute();
?>


1
2
3
4
5
6
7
8
mysql> select * from testing where val IS NULL
    -> ;
+----+------+
| id | val  |
+----+------+
|  2 | NULL |
+----+------+
1 row in set (0.00 sec)
  vrijdag 5 september 2008 @ 20:19:37 #256
53731 Flipper01
Addicted Dolphin
pi_61411867
Hoe kan ik een datum in MYSQL (DATETIME) zetten mbv een phpstring?
Ik heb nu namelijk de volgende waarden: $dag, $maand en $jaar en wil hier een datetime van maken.
I don't shine if you don't shine
  vrijdag 5 september 2008 @ 20:21:54 #257
75592 GlowMouse
l'état, c'est moi
pi_61411928
http://dev.mysql.com/doc/refman/5.0/en/datetime.html

"The DATETIME type is used when you need values that contain both date and time information. MySQL retrieves and displays DATETIME values in 'YYYY-MM-DD HH:MM:SS' format."

Dus $jaar . '-' . $maand . '-' . $dag . ' 00:00:00' voldoet, mits jaar-maand-dag netjes 4-2-2 zijn.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zaterdag 6 september 2008 @ 00:45:18 #258
12880 CraZaay
prettig gestoord
pi_61419129
Of "$jaar-$maand-$dag 00:00:00", als je minder wilt concatenaten (mocht dat problemen geven, zet dan {} rond je vars, dus {$dag}).
pi_61419356
quote:
Op zaterdag 6 september 2008 00:45 schreef CraZaay het volgende:
Of "$jaar-$maand-$dag 00:00:00", als je minder wilt concatenaten (mocht dat problemen geven, zet dan {} rond je vars, dus {$dag}).
Moet ${dag} zijn, ipv {$dag}, of ook niet, mag beide.. mkay.
  zaterdag 6 september 2008 @ 01:07:14 #260
12880 CraZaay
prettig gestoord
pi_61419395
quote:
Op zaterdag 6 september 2008 01:04 schreef slakkie het volgende:

Moet ${dag} zijn, ipv {$dag}, of ook niet, mag beide.. mkay.
Ga slapen Het kan inderdaad allebei, maar ik vind er helemaal omheen consistenter, omdat je dan bijvoorbeeld ook {'bla' . $iets} kunt doen.
pi_61419591
Ik vind ${bla} persoonlijk prettiger, aangezien ik die notatie ken van zsh/bash en perl. Zelf maak ik nooit gebruik van ${'bla' . $iets} constructies.
  zaterdag 6 september 2008 @ 07:30:56 #262
53731 Flipper01
Addicted Dolphin
pi_61420911
quote:
Op zaterdag 6 september 2008 00:45 schreef CraZaay het volgende:
Of "$jaar-$maand-$dag 00:00:00", als je minder wilt concatenaten (mocht dat problemen geven, zet dan {} rond je vars, dus {$dag}).
Thnx! Dit vind ik zelf ook wel de meest handige schrijfwijze
I don't shine if you don't shine
pi_61429000
Weet iemand hier hoe ik op mijn site de 5 laatste posts van een blog, bijvoorbeeld van www.luxist.com kan krijgen?

[ Bericht 3% gewijzigd door Cracka-ass op 06-09-2008 17:06:03 ]
  zaterdag 6 september 2008 @ 18:29:13 #264
75592 GlowMouse
l'état, c'est moi
pi_61431385
Via hun RSS-feed is het makkelijkst. Met een RSS-parser als magpie is dat niet moeilijk.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_61475001
Ik heb een vraagje m.b.t MySQL preformance en opzet.

Stel ik wil voor een site bepaalde modules gebruiken, de gebruiker kiest 1 van een select aantal modules om te gebruiken voor het geen waar de site voor bedoeld is echter is het mogelijk dat deze module bepaalde settings wil opslaan, dit is per module verschillend. En aangezien ik simpel en snel modules wil kunnen toevoegen en of verwijderen is mijn vraag als volgt.

Is het handiger om voor deze opzet per module een apparte tabel aan te maken, of 1 tabel gebruiken waarin ik deze data vermeld? per regel een 'setting'

ik zal wel weer wazig zijn, als je het niet begrijpt wat ik bedoel probeer ik het nog duideljker te vermelden!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61475173
Je maakt een koppeltabel met een module-id, een setting-id en de waarde aan.

Zo kan je namelijk ook heel makkelijk generieke settings aanmaken.

[ Bericht 34% gewijzigd door #ANONIEM op 08-09-2008 15:48:07 ]
pi_61475299
Klopt maar wat raad je aan, zit namelijk zelf te denken aan 1 global tabel voor alle plugins ipv per plugin een tabel.
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_61475749
quote:
Op maandag 8 september 2008 15:52 schreef Chandler het volgende:
Klopt maar wat raad je aan, zit namelijk zelf te denken aan 1 global tabel voor alle plugins ipv per plugin een tabel.
1 global tabel
pi_61482058
Ik heb even gekeken naar het NULL-probleem, maar ik kan het niet oplossen... Op het internet heb ik gezien dat een aantal mensen er ook problemen mee hadden, maar de oplossingen die er gegeven zijn lossen het probleem niet op... Ook de oplossingen die jullie aandragen bieden geen oplossing.

Daarnaast heb ik nog het volgende, de tijd op MySQL-server van PCextreme loopt twee uur achter. Hoe zorg ik ervoor dat ik de juiste tijd opsla in de database, ik gebruik nu now() om de huidige (datebase)tijd op te slaan. Optellen van twee uur bij de tijd geeft waarschijnlijk problemen bij het voor- en achteruit zetten van de tijd.

En is het daarnaast mogelijk om het volgende op een goede manier voor elkaar te krijgen?

1
2
3
4
5
6
7
<?php
echo    "<select name='print' style='width: 387px'>
            <option>-</option>     
            <option  if(isset($print) && ($print==1)){echo selected='selected';} value='1'>Ja</option>
            <option  if(isset($print) && ($print==0)){echo selected='selected';} value='0'>Nee</option>
        </select>;"
?>

Met een variable lukt het me wel, maar ik zou graag dus een stuk PHP hebben die xHTML print waarin weer een stuk PHP voorkomt, hoe krijg ik dit (netjes) voor elkaar?
Aan dit bericht kunnen geen rechten worden ontleend.
  maandag 8 september 2008 @ 21:23:57 #270
12880 CraZaay
prettig gestoord
pi_61484096
quote:
Op maandag 8 september 2008 20:17 schreef poepeneesje het volgende:
Daarnaast heb ik nog het volgende, de tijd op MySQL-server van PCextreme loopt twee uur achter. Hoe zorg ik ervoor dat ik de juiste tijd opsla in de database, ik gebruik nu now() om de huidige (datebase)tijd op te slaan. Optellen van twee uur bij de tijd geeft waarschijnlijk problemen bij het voor- en achteruit zetten van de tijd.
Niet gaan klooien, zorgt alleen maar voor meer problemen. Vraag ze de tijd gewoon goed in te stellen. Of krijg je gewoon de GMT tijd terug? Daar kun je wel mee rekenen uiteraard, als je die altijd krijgt.
quote:
Met een variable lukt het me wel, maar ik zou graag dus een stuk PHP hebben die xHTML print waarin weer een stuk PHP voorkomt, hoe krijg ik dit (netjes) voor elkaar?
Dit zou ik doen (met code-tag, syntax highlighter hier kan het niet aan anders):

1
2
3
4
5
6
7
8
9
<?php
echo("
    <select name='print' style='width: 387px'>
        <option>-</option>     
        <option <?= (isset($print) && ($print == 1)) ? 'selected=\'selected\'' : '' ?> value='1'>Ja</option>
        <option <?= (isset($print) && ($print == 0)) ? 'selected=\'selected\'' : '' ?> value='0'>Nee</option>
    </select>
");
?>


edit: Je hoeft dit overigens niet allemaal met PHP te echo'en; je kunt prima in een PHP bestand alleen HTML hebben staan en slechts op enkele plaatsen PHP-tags (bijv <?= time() ?> om de tijd te laten zien).

[ Bericht 5% gewijzigd door CraZaay op 08-09-2008 21:57:24 ]
pi_61484427
quote:
Op maandag 8 september 2008 20:17 schreef poepeneesje het volgende:
Daarnaast heb ik nog het volgende, de tijd op MySQL-server van PCextreme loopt twee uur achter. Hoe zorg ik ervoor dat ik de juiste tijd opsla in de database, ik gebruik nu now() om de huidige (datebase)tijd op te slaan. Optellen van twee uur bij de tijd geeft waarschijnlijk problemen bij het voor- en achteruit zetten van de tijd.
De tijd zal ingesteld staan op GMT en blijbaar staat de server ook in de UK, dus moet je die omrekenen naar CET, zie http://dev.mysql.com/doc/(...)#function_convert-tz
quote:
En is het daarnaast mogelijk om het volgende op een goede manier voor elkaar te krijgen?
[ code verwijderd ]

Met een variable lukt het me wel, maar ik zou graag dus een stuk PHP hebben die xHTML print waarin weer een stuk PHP voorkomt, hoe krijg ik dit (netjes) voor elkaar?
Als je na gaat denken over PHP die PHP moet genereren zit je op het verkeerde pad. Dat is niet wat je wil, punt.

Wat je wil is een functie waar je argumenten aan meegeeft en die gewoon kant en klare html teruggeeft.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
function SelectBoxHTML($name$options$selected) {
    
    
$html "<select name=\"$name\" style=\"width: 387px\" onchange=\"this.form.submit();\">\n";
    foreach (
$options as $value => $text) {
        
$html .= "<option";
        if (
$value == $selected) {
            
$html .= " selected=\"selected\"";
        }
        
$html .= " value=\"$value\">$text</option>\n";
    }
    
    
$html .= "</select>\n";
    return 
$html;
}

print 
"<html><body><form>";
print 
"<p>Printen? " SelectBoxHTML('print', array("1" => "Ja""0" => "Nee""2" => "Misschien"), $_GET['print']) . "</p>";
print 
"<p>Favoriete kleur? " SelectBoxHTML('fav_kleur', array("rood" => "rood""geel" => "geel""pimpelpaars" => "pimpelpaars""zwart" => "zwart"), $_GET['fav_kleur']) . "</p>";

print 
"</form></body></html>";
?>


Voila, stateful selectboxes.
  maandag 8 september 2008 @ 21:55:33 #272
12880 CraZaay
prettig gestoord
pi_61485334
quote:
Op maandag 8 september 2008 21:31 schreef Farenji het volgende:

Als je na gaat denken over PHP die PHP moet genereren zit je op het verkeerde pad. Dat is niet wat je wil, punt.
Dat wil 'ie ook niet getuige z'n voorbeeld Hij wil gewoon binnen een stukje html wat php opnemen (zie mijn suggestie).
pi_61486458
Nice heren . Ik ga er morgen mee verder knutselen! Alvast bedankt .
Aan dit bericht kunnen geen rechten worden ontleend.
pi_61526787
Ik ben een complete noob op het gebied van webdesign, maar ik zou graag mijn kennis uitbreiden. Moet ik PHP leren? Of hebben jullie ander advies? En als ik een klein php scriptje kopieer van een how-to website dan geeft ie een witte pagina in Firefox, en zie je de code zelf in Internet Explorer. Wie kan mij op weg helpen?
pi_61527344
Als je PHP wilt gebruiken moet je zorgen dat je een webserver + PHP op je computer geinstalleerd hebt, of de boel uploaden naar een site waar PHP draait.

Om te beginnen zou ik me eerst eens in HTML + CSS verdiepen, zodat je dingen in ieder geval netjes op je scherm kunt krijgen. PHP en MySQL zijn een flinke stap verder...
  woensdag 10 september 2008 @ 18:00:39 #277
12880 CraZaay
prettig gestoord
pi_61529059
quote:
Op woensdag 10 september 2008 16:37 schreef sexylexy het volgende:
Wie kan mij op weg helpen?
Toen je je ging oriënteren heb je nergens zien staan dat PHP geparsed moet worden door een webserver enzo
pi_61531043
quote:
Op woensdag 10 september 2008 18:00 schreef CraZaay het volgende:

[..]

Toen je je ging oriënteren heb je nergens zien staan dat PHP geparsed moet worden door een webserver enzo
Dat heb ik zien staan ja
pi_61533531
quote:
Op woensdag 10 september 2008 16:57 schreef Xcalibur het volgende:
Als je PHP wilt gebruiken moet je zorgen dat je een webserver + PHP op je computer geinstalleerd hebt, of de boel uploaden naar een site waar PHP draait.

Om te beginnen zou ik me eerst eens in HTML + CSS verdiepen, zodat je dingen in ieder geval netjes op je scherm kunt krijgen. PHP en MySQL zijn een flinke stap verder...
PHP leren is wat anders dan een website maken. OK, granted het wordt het meeste voor websites gebruikt. Maar dat terzijde. Als iemand PHP wilt leren hoeft ie echt geen kennis van HTML of CSS te hebben (ik heb basic kennis van HTML en al helemaal geen kennis van CSS).

Tevens heeft PHP een command line die de noodzaak van een webserver overbodig maakt:
http://nl.php.net/features.commandline

Dit volstaat perfect om PHP te leren zonder je druk te maken over HTML en whatnot.

Voor sexylexy:
Apache installen op je machine: http://www.apache.org. En daarna ga je naar deze pagina: http://nl.php.net/manual/en/install.windows.php

Succes.

-edit- ik lees net dat sexylexy beginnend webdesigner wilt worden. Leer eerst de basis van HTML en CSS, daarna PHP.
pi_61533620
Het is wellicht eenvoudiger voor sexylexy om bijvoorbeeld XAMPP te installeren, dat is wat eenvoudiger dan zelf Apache en PHP installeren (met eventueel nog MySQL, enz...)
pi_61534318
Ik heb hier een stukje code en zodra ik ook maar iets weghaal van regel 4 werkt ie niet meer goed. :o
Ik wil er niks in hebben maar dan werkt het niet meer. :')

1
2
3
4
5
6
7
8
9
<?php
<div id="footer">

<
p><br>.  </p>

</
div>

 
wp_footer(); 
?>


Hoe kan dat?
pi_61534846
quote:
Op woensdag 10 september 2008 20:39 schreef slakkie het volgende:

[..]

PHP leren is wat anders dan een website maken. OK, granted het wordt het meeste voor websites gebruikt. Maar dat terzijde. Als iemand PHP wilt leren hoeft ie echt geen kennis van HTML of CSS te hebben (ik heb basic kennis van HTML en al helemaal geen kennis van CSS).

Tevens heeft PHP een command line die de noodzaak van een webserver overbodig maakt:
http://nl.php.net/features.commandline

Dit volstaat perfect om PHP te leren zonder je druk te maken over HTML en whatnot.

Voor sexylexy:
Apache installen op je machine: http://www.apache.org. En daarna ga je naar deze pagina: http://nl.php.net/manual/en/install.windows.php

Succes.

-edit- ik lees net dat sexylexy beginnend webdesigner wilt worden. Leer eerst de basis van HTML en CSS, daarna PHP.
Hmm ja ik kan wel een beetje HTML maar tot waar wordt het verstaan onder de basics? CSS is nog volledig nieuw voor mij
pi_61534966
quote:
Op woensdag 10 september 2008 21:02 schreef Cracka-ass het volgende:
Ik heb hier een stukje code en zodra ik ook maar iets weghaal van regel 4 werkt ie niet meer goed. :o
Ik wil er niks in hebben maar dan werkt het niet meer. :')
[ code verwijderd ]

Hoe kan dat?
Dus dit zou niet werken:

1
2
3
<div id="footer">

</div>


Wat je met die wp_footer() wilt snap ik niet, wat doet die daar? Moet het soms iets zijn als:

1
2
3
<div id="footer">
  <?php wp_footer(); ?>
</div>
pi_61535106
quote:
Op woensdag 10 september 2008 20:39 schreef slakkie het volgende:
-edit- ik lees net dat sexylexy beginnend webdesigner wilt worden. Leer eerst de basis van HTML en CSS, daarna PHP.
Dat zeg ik
pi_61535492
quote:
Op woensdag 10 september 2008 21:18 schreef HuHu het volgende:

[..]

Dus dit zou niet werken:
[ code verwijderd ]

Wat je met die wp_footer() wilt snap ik niet, wat doet die daar? Moet het soms iets zijn als:
[ code verwijderd ]
Zo is het dus als ik ook maar iets weghaal:



Zo is het dus als het goed gaat, met mooi puntje.


Jouw codes werken ook beide niet. In wordpress trouwens.
pi_61535595
Ow... WordPress, daar heb ik geen verstand van.

Je kunt proberen die . te vervangen door &nbsp;, da's gewoon een spatie maar dan anders. Dus die zie je niet.
pi_61535683
quote:
Op woensdag 10 september 2008 21:16 schreef sexylexy het volgende:

[..]

Hmm ja ik kan wel een beetje HTML maar tot waar wordt het verstaan onder de basics? CSS is nog volledig nieuw voor mij
Basic is voor mij net genoeg om een simpele pagina te maken. Maar je moet rekening houden dat je pagina's moet kunnen maken die door deze validator (http://validator.w3.org) wordt goedgekeurd. Als je dat laatste kan doen, dan denk ik dat je tot de experts behoort.

Ik zou als ik jou was eens langs http://www.w3schools.com/ gaan en daar wat over HTML/CSS leren, en na een paar weken een keer PHP erbij gaan halen om zo wat dynamische pagina's te maken. Eventueel met MySQL erbij.
pi_61535740
Ja dan inderdaad maar zo. Maar het blijft toch vreemd. Thanks!
pi_61537358
quote:
Op woensdag 10 september 2008 @ 21:35 schreef slakkie het volgende:

[..]

Basic is voor mij net genoeg om een simpele pagina te maken. Maar je moet rekening houden dat je pagina's moet kunnen maken die door deze validator (http://validator.w3.org) wordt goedgekeurd. Als je dat laatste kan doen, dan denk ik dat je tot de experts behoort.

Ik zou als ik jou was eens langs http://www.w3schools.com/ gaan en daar wat over HTML/CSS leren, en na een paar weken een keer PHP erbij gaan halen om zo wat dynamische pagina's te maken. Eventueel met MySQL erbij.
1
2
3
4
5
6
7
8
9
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>hello world</title>
</head>
<body>
<p>Hello World!</p>
</body>
</html>

Jeuj ik ben expert! B-)

Je moet je niet doodstaren op die validator. Op de eerste plaats komt dat je een site maakt die er in alle gangbare browsers goed uit ziet en goed werkt. Nette, semantische en correcte code is slechts een middel om dat doel te bereiken.
  woensdag 10 september 2008 @ 23:28:17 #290
12880 CraZaay
prettig gestoord
pi_61539846
quote:
Op woensdag 10 september 2008 22:15 schreef mcDavid het volgende:

Je moet je niet doodstaren op die validator. Op de eerste plaats komt dat je een site maakt die er in alle gangbare browsers goed uit ziet en goed werkt. Nette, semantische en correcte code is slechts een middel om dat doel te bereiken.
Nou ja, iets is natuurlijk pas HTML als het voldoet aan de HTML specificaties. De validator checkt of dat zo is. Voldoet een pagina niet, dan is het dus geen goede HTML maar code waarvan de browsers de fouten voor je verdoezelen Semantiek is ook onderdeel van goed werken uiteraard; een semantisch incorrecte pagina werkt niet goed. Dat 'ie er in je webbrowser goed uit ziet doet daar niets aan af; er zijn meer user agents dan alleen IE/FF/Safari/etc.
pi_61540518
Met "meer user agents" kun je twee dingen bedoelen:
- zoekmachines, maar daarvoor optimaliseren noemen we SEO en dat komt wmbt ongeveer als allerlaatste in de ranglijst van wat belangrijk is voor een goeie website...
- screenreaders, daar is iedereen altijd heel erg panisch voor. Maar duik eens de statistieken in en vertel me of er óóit iemand met een screenreader op jouw site is geweest.
pi_61541523
quote:
Op woensdag 10 september 2008 22:15 schreef mcDavid het volgende:

[..]
[ code verwijderd ]

Jeuj ik ben expert!

Je moet je niet doodstaren op die validator. Op de eerste plaats komt dat je een site maakt die er in alle gangbare browsers goed uit ziet en goed werkt. Nette, semantische en correcte code is slechts een middel om dat doel te bereiken.
Je snapt wat ik bedoel
  donderdag 11 september 2008 @ 08:45:08 #293
12880 CraZaay
prettig gestoord
pi_61543353
quote:
Op woensdag 10 september 2008 23:58 schreef mcDavid het volgende:
Met "meer user agents" kun je twee dingen bedoelen:
- zoekmachines, maar daarvoor optimaliseren noemen we SEO en dat komt wmbt ongeveer als allerlaatste in de ranglijst van wat belangrijk is voor een goeie website...
- screenreaders, daar is iedereen altijd heel erg panisch voor. Maar duik eens de statistieken in en vertel me of er óóit iemand met een screenreader op jouw site is geweest.
Ik bedoel ze allebei, en nog meer (mobile devices, kiosk browsers, you name it). We noemen dat inderdaad SEO, maar alleen omdat "de prutsers" semantisch incorrecte HTML schrijven en een "SEO-bedrijf" grof geld kan verdienen door de rommel op te ruimen en toch eens een <h1> etc te gebruiken. SEO is totaal nutteloos (HTML-wise, goede teksten is weer iets anders) wanneer een website al aan de standaarden voldoet.

Ik snap je advies niet zo goed omdat je eigenlijk zegt "nette code is een middel, maar zorg gewoon dat het er visueel goed uitziet", wat op mij over komt als "voor een kop kun je prima <span style="font-size: 24px; font-weight: bold">Kop</span>" gebruiken", als je wilt dat het er als een kop uitziet

Wat is er mis mee voor iemand om het meteen goed aan te leren? Of gaan we mensen die (om toch een beetje op PHP etc terug te komen ) meer willen leren over het MVC-model ook zeggen dat ze best alle logica in de view mogen stoppen omdat dat ook werkt, maar het netter is om dat niet te doen?

NB: De validator kan geen semantiek detecteren, dus je kunt alsnog overal gestylede <span>'s enzo voor gebruiken uiteraard. Block level elementen binnen inline elementen slikt de validator niet, maar 99% van de browsers bijvoorbeeld weer wel (omdat ze gebruikers niet de dupe willen laten worden van slecht geschreven code).
pi_61543699
quote:
Op woensdag 10 september 2008 23:58 schreef mcDavid het volgende:
- zoekmachines, maar daarvoor optimaliseren noemen we SEO en dat komt wmbt ongeveer als allerlaatste in de ranglijst van wat belangrijk is voor een goeie website...
Sorry?

Dat zou vanaf het allereerste begin prioriteit moeten hebben. Als een zoekmachine je site niet kan vinden komt er dus geen hond en had je je site net zo goed niet kunnen maken. Als je zorgt (oa door nette, semantisch correte HTML !) dat je het vanaf het begin goed aanpakt kan je je site in 1x SEO-wise goed bouwen...
quote:
Op woensdag 10 september 2008 23:58 schreef mcDavid het volgende:
- screenreaders, daar is iedereen altijd heel erg panisch voor. Maar duik eens de statistieken in en vertel me of er óóit iemand met een screenreader op jouw site is geweest.
Dat vind ik ook zo'n bullshit argument he....
Alsof het zoveel moeite is om te zorgen dat het werkt. Je zorgt toch ook dat het op Safari werkt? Of dat het niet gigantisch kapot gaat als iemand Javascript uit heeft staan? Dat hoop ik tenminste...
pi_61549415
Als ik een website maak, test ik die bijv. niet op IE5.5. Terwijl IE5.5 vaker langskomt dan Lynx. Shoot me!

En ja het is zeker een goeie eigenschap om van begin af aan nette en semantische code te gebruiken. Maar (zoals al gezegd) dat haalt die validator er niet uit. Daarom: die slechts als hulpmiddel gebruiken.

En als ik bijvoorbeeld kijk naar gmail: 95 fouten in de HTML volgens de validator, en zonder Javascript doet helemaal níéts het meer. En toch is het wat mij betreft één van de beste websites die er bestaan.
pi_61556406
Hallo beste mensen ik heb een php vraagje.

Ik heb een site gemaakt en daarin wil ik een grafiekje neerzetten. Ik heb daarvoor een library gedownload die grafiekjes kan genereren.

Als ik dat test werkt dat opzich prima, maar nu wil ik graag data uit mn mysql database gebruiken in de grafiek. Echter als ik een query doe in de php file waarin het plaatje staat dan doet het plaatje het niet meer.

Mijn vraag is dus eigenlijk: hoe kan ik binnen de php file die het plaatje voorstelt aan die data komen?

code van de file met het plaatje (werkt zo niet, tekent wel het array als ik de query verwijder).
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
require ('./chart-0.8/chart.php') ;

$query = "SELECT * FROM klsusers" ;
$tmp = mysql_query ($query) ;

$testarray = array (0, 3, 5, 9, 10, 20) ;


$chart = new chart (300, 200) ;
$chart->plot ($testarray) ;
$chart->stroke () ;
?>


en dit heb ik dan in een file staan van de site zelf waar ik de grafiek wil hebben.

1echo '<IMG src="totalgraph.php">' ;
pi_61556712
oh oh oh, zal je altijd zien. Ik loop hier al een halve dag op te broeden en op het moment dat ik ten einde raad hulp vraag op een forum dringt het ineens tot me door.
Omdat het een apart plaatje is dat los staat van de rest van de site moet ik natuurlijk eerst naar de database connecten als ik een query wil doen.
Nu geeft ie een foutmelding, maar omdat die in een plaatje staat zie ik die niet, maar is wel mn plaatje verneukt.
pi_61556773
nu nog die hoofdletters uit de html-tags halen.
pi_61558367
Heeft dat kwa code ook voordelen of wordt het enkel als erg lelijk beschouwd?
Ik vind het zelf namelijk met hoofdletters wel overzichtelijk.
pi_61558511
Als je hoofdletters gebruikt is het gewoon geen correcte HMTL. Weet niet wie dat ooit verzonnen heeft, maar 't klopt gewoon niet.

Ik vraag me trouwens ook af waarom je die regel met PHP toevoegt? moet het plaatje alleen onder bepaalde condities worden weergegeven?
pi_61559508
De grafiek komt onder een tabel die ik met behulp van php genereer.
Maar hoofdletters zijn dus officieel niet toegestaan, alleen het werkt omdat de meeste browsers tegenwoordig erg "forgiving" zijn?
Het wel gemerkt dat ook een tabel er nog netjes uit komt rollen ook al vergeet je her en der een paar tags.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')