FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies - Deel 6
Jumpzondag 20 maart 2005 @ 22:54

CD niet bijgeleverd!

Vorige delen:
[PHP] voor dummies
[PHP] voor dummies - Deel 2
[PHP] voor dummies - Deel 3
[PHP] voor dummies - Deel 4
[PHP] voor dummies - Deel 5

Zie ook:
FAQ - Algemene kleine vragen. Part 2.
http://www.php.net
http://www.php.net/docs.php
http://dev.mysql.com/doc/mysql/en/index.html


Deze OP: http://fok.internix.be/OP/php.txt


Hup met de geit, deel 6

[ Bericht 5% gewijzigd door Jump op 20-03-2005 23:17:51 ]
Swetseneggerzondag 20 maart 2005 @ 22:55
zet http://dev.mysql.com/doc/mysql/en/index.html ook ff in de OP
Heliospanzondag 20 maart 2005 @ 23:02
@superrembo: werkt perfect, dankje
sylvesterrrzondag 20 maart 2005 @ 23:07
quote:
Op zondag 20 maart 2005 22:55 schreef Swetsenegger het volgende:
zet http://dev.mysql.com/doc/mysql/en/index.html ook ff in de OP
Wijzig de titel dan ook maar meteen... [PHP/MySQL] voor dummies - Deel 6
Heliospanzondag 20 maart 2005 @ 23:09
Goed idee. Het [(My)SQL] voor dummies-topic werkt niet echt, aangezien iedereen het hier vraagt
Jumpzondag 20 maart 2005 @ 23:09
quote:
Op zondag 20 maart 2005 23:07 schreef sylvesterrr het volgende:

[..]

Wijzig de titel dan ook maar meteen... [PHP/MySQL] voor dummies - Deel 6
In FB topic gepost
Heliospanzondag 20 maart 2005 @ 23:43
Even verderbreiend op mijn vraag uit het vorige topic:
Ik heb de waarden nu in een array, maar artiestnamen met een spatie worden niet herkend in het pattern:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Array
(
    [Zorba] => Array
        (
            [Zorba] => 12
            [ZORBA] => 1
        )

    [Haldolium] => Array
        (
            [Haldolium] => 19
        )

    [Beastie Boys] => Array
        (
        )

    [Soul of Man] => Array
        (
        )

    [Tikal] => Array
        (
            [Tikal] => 22
            [tikal] => 1
        )

    [OMC] => Array
        (
            [OMC] => 11
        )

    [Chillosophy] => Array
        (
            [Chillosophy] => 10
            [chillosophy] => 2
        )

    [The Cure] => Array
        (
        )

    [Cujo] => Array
        (
            [Cujo] => 7
            [cujo] => 7
            [CUJO] => 1
        )

    [Infected mushroom] => Array
        (
        )

    [Buzzmonx] => Array
        (
            [Buzzmonx] => 12
            [BUZZMONX] => 4
        )
)


De pattern gaat zo:
1
2
3
4
<?php
preg_match_all
('/'.$r['artiest_naam'].'/i', $result['snippet'], $matches);
$m = $matches[0];
?>


Is er een str_replace-iets waarmee ik de spaties kan vervangen in iets dat de pattern snapt?
Swetseneggerzondag 20 maart 2005 @ 23:45
quote:
Op zondag 20 maart 2005 23:43 schreef Heliospan het volgende:
Even verderbreiend op mijn vraag uit het vorige topic:
Ik heb de waarden nu in een array, maar artiestnamen met een spatie worden niet herkend in het pattern:
[ code verwijderd ]

De pattern gaat zo:
[ code verwijderd ]

Is er een str_replace-iets waarmee ik de spaties kan vervangen in iets dat de pattern snapt?
%20
Heliospanzondag 20 maart 2005 @ 23:46
Al geprobeerd, maar werkt niet
Swetseneggerzondag 20 maart 2005 @ 23:49
quote:
Op zondag 20 maart 2005 23:46 schreef Heliospan het volgende:
Al geprobeerd, maar werkt niet
zowel in artiest_naam als ook in de tekst waarin je zoekt vervangen?
Heliospanzondag 20 maart 2005 @ 23:51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
    $parameters
= array(
      
'key'=&gt; '***,
      '
q' => $r['artiest_naam'],
      '
start' => '0',
      '
maxResults' => '10',
      '
filter' => 'false',
      '
restrict' => '',
      '
safeSearch' => 'false',
      '
lr' => '',
      '
ie' => 'latin',
      '
oe' => 'latin'
    );

    $r['
artiest_naam'] = str_replace(" ", '%20', $r['artiest_naam']);


[...]

preg_match_all('
/'.$r['artiest_naam'].'/i', $result['snippet'], $matches);
?>


Voor Google niet vervangen, voor de pattern wel.
SuperRembozondag 20 maart 2005 @ 23:54
Wat voor resultaat krijg je terug van google, staat daar echt geen 'Beastie Boys' in. Wat staat er dan op de plaats van de spatie?
Heliospanmaandag 21 maart 2005 @ 00:01
D'oh, dingen als:
1<b>bert</b> <b>visscher's</b>


Ik snap waar de fout zit, dankje ongevraagde syntax highlighting
SuperRembomaandag 21 maart 2005 @ 00:03
Oja, handig
SuperRembomaandag 21 maart 2005 @ 00:09
Deze functie is ook handig in dit geval: preg_quote. Dan voorkom je dat je een syntax error in je regexp krijgt. Of verkeerde resultaten bij een ? of *.
Heliospanmaandag 21 maart 2005 @ 00:51
1
2
3
4
<?php
$result
['snippet'] = ereg_replace("<[^>]*>","",$result['snippet']);
preg_match_all('/'.preg_quote($r['artiest_naam']).'/i', $result['snippet'], $matches);
?>


Werkt perfect! Bedankt voor de hulp


(case_perc is het percentage dat zo geschreven is in verhouding tot alle resultaten. als er meer dan 5 matches zijn en matchpercentage > 70% telt ie mee )

[ Bericht 6% gewijzigd door Heliospan op 21-03-2005 02:23:52 ]
SuperRembomaandag 21 maart 2005 @ 07:43
Hoe gebruik je die Google API eigenlijk vanuit php. Heb je daar een simpel voorbeeldje van?
sylvesterrrmaandag 21 maart 2005 @ 08:59
http://www.brambring.nl/wiki/Main/GoogleApi
Heliospanmaandag 21 maart 2005 @ 14:48
Die gebruik ik ook als basis
Underdoggymaandag 21 maart 2005 @ 18:33
hele domme n00b vraag maar waarom werkt dit niet
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$build
= "CREATE TABLE `fotolog_$nr2` (
  `id` int(11) NOT NULL auto_increment,
  `naam` text NOT NULL,
  `email` text NOT NULL,
  `bericht` text NOT NULL,
  `homepage` text NOT NULL,
  `datum` text NOT NULL,
  `ip` text NOT NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1"
;
mysql_query($build) or die ("Fout op pagina, probeer het later nog eens!! 1");
?>
SuperRembomaandag 21 maart 2005 @ 18:39
do() or die('foutje') is ook wel een erg lompe manier om een script te beeindigen. Kijk eens wat mysql_error en mysql_errno voor informatie geven.

Wat staat er in $nr2 (of $nr of $n )
Heb je wel rechten om een tabel te maken.
Je gaat toch niet fotolog_1 t/m fotolog_164 maken he? Dan is er iets ernstig fout met je datamodel.
Lucillemaandag 21 maart 2005 @ 18:47
TT aangepast, aangezien er vaak ook SQL in zit.
TheName126maandag 21 maart 2005 @ 19:46
Underdoggy je moet eerst connecten met de mysql database

$db = mysql_connect("localhost", "username", "password"); '
////standard username="root"; password = "";////
mysql_select_db("databasename",$db);
$result = mysql_query($build,$db);

als je de inlog gegevens bij mysql_connect niet weet moet je bij je hostingprofider zijn
Underdoggymaandag 21 maart 2005 @ 21:52
jaja dat heb ik er boven staan...
Da_Koenmaandag 21 maart 2005 @ 23:06
quote:
Op maandag 21 maart 2005 18:33 schreef Underdoggy het volgende:
hele domme n00b vraag maar waarom werkt dit niet
[ code verwijderd ]
Verander de laatste regel eens in:
mysql_query($build) or die ("Fout op pagina: " . mysql_error());

Dan zie je namelijk wat er mis gaat
SuperRembomaandag 21 maart 2005 @ 23:08
Op deze manier krijg je een foutmelding waar je meer aan hebt:

1
2
3
4
5
6
$result = mysql_query($sql);
if ($result===false) {
   echo mysql_errno().': '.mysql_error()."\n";
   echo $sql."\n";
   die();
}


Het is ook handig om error reporting aan te zetten. Dat kan in php.ini of in het script

1error_reporting(E_ALL);
Swetseneggerdinsdag 22 maart 2005 @ 20:29
-edit- domme vraag en niet verder gekeken dan m'n neus lang is
Heliospandinsdag 22 maart 2005 @ 22:32
Ik ben een ramp in regular expressions. Ik wil de volgende waarden vervangen:
1
2
3
4
01 Artiestnaam     -> Artiestnaam
[01] Artiestnaam     -> Artiestnaam
(01) Artiestnaam     -> Artiestnaam
01. Artiestnaam     -> Artiestnaam


Ik heb na wat tutorials de volgende briljante ( ) regexp in elkaar:
1/[0-9]{1,2} /

Waarmee "01 Artiestnaam" vervangen wordt in "Artiestnaam".

Maar hoe 'vertel' ik in regexp dat een teken er in mag staan? In het geval van de laatste, er MAG een punt komen na bovenstaande expressie. En bij de tweede en derde; er MAG een [ of ( en een ) of ] in staan.

Ik wil het graag in n regexp hebben ipv met str_replace, strpos en substr te kloten
Swetseneggerdinsdag 22 maart 2005 @ 22:41
quote:
Op dinsdag 22 maart 2005 22:32 schreef Heliospan het volgende:
Ik ben een ramp in regular expressions. Ik wil de volgende waarden vervangen:
[ code verwijderd ]

Ik heb na wat tutorials de volgende briljante ( ) regexp in elkaar:
[ code verwijderd ]

Waarmee "01 Artiestnaam" vervangen wordt in "Artiestnaam".

Maar hoe 'vertel' ik in regexp dat een teken er in mag staan? In het geval van de laatste, er MAG een punt komen na bovenstaande expressie. En bij de tweede en derde; er MAG een [ of ( en een ) of ] in staan.

Ik wil het graag in n regexp hebben ipv met str_replace, strpos en substr te kloten
Ik snap het niet, dan wordt het dus
[]artiestnaam
en
()artiestnaam
en
.artiestnaam

wil je dat?

Ow en in deel 1 staat een paginaatje of 2 over regexps waarvan je veel kan leren.
Nog niet genoeg, want superrembo maakt betere expressies dan ik
Heliospandinsdag 22 maart 2005 @ 22:44
Deel 1 bedoel je? (edit: ja dus )
Ik wil dat alle onzin voor een artiestnaam verwijderd wordt. Er bestaan artiestnamen als 711, die dus niet gefilterd moeten worden, maar als in een artiestnaam rotzooi zit, bijvoorbeeld het tracknummer, en die op een manier verwerkt is als "[01] Blink 182" wil ik dat de "[01] " gewist wordt en "Blink 182" overblijft.

Met andere woorden, alleen de "artiestnaam" in je post wil ik behouden.
Je kunt "mag" op twee manieren lezen besef ik nu.
Lightdinsdag 22 maart 2005 @ 22:51
De vraag is natuurlijk wat er allemaal onder "rotzooi" valt.
Heliospandinsdag 22 maart 2005 @ 22:53
Dit:

1
2
3
4
01 Artiestnaam
[01] Artiestnaam
(01) Artiestnaam
01. Artiestnaam


Alles voor "Artiestnaam" moet weg in bovenstaande gevallen

Een paar voorbeelden die ik in mijn playlist tegen kom:
1
2
3
4
(01) Foo Fighters (- All My Life)
01 doe maar (- sinds een dag of twee)
01_solar_fields_ (-_union_light) (underscores worden vervangen door een andere filter)
10. Magic Box (- Carillon)


Het betreft alleen de artiestnaam. De nummers, tussen haakjes, zijn in deze vraag niet relevant.
Swetseneggerdinsdag 22 maart 2005 @ 22:55
Wat light zegt
Je weet in dit geval eigenlijk 'niets'.
De artiesten naam heeft geen standaard patroon, want dat kan alles zijn, van letters, cijfers, etc in willekeurige volgorde EN de 'rotzooi' kan alles zijn in willekeurige volgorde.

Je hebt dus erg weinig houvast. een reguliere expressie herkent immers een patroon, welke er in jouw geval niet is...
Heliospandinsdag 22 maart 2005 @ 23:00
quote:
Op dinsdag 22 maart 2005 22:55 schreef Swetsenegger het volgende:

Je hebt dus erg weinig houvast. een reguliere expressie herkent immers een patroon, welke er in jouw geval niet is...
Misschien kom ik erg dom en vasthoudend over, maar volgens mij is er wel een patroon. Vanaf de linkerkant van de string (de eerste character):
- niks, een '(', of een '['
- Getal van twee cijfers
- niks, een ')', of een ']'
- mogelijk een punt
- Een spatie

Hiermee wordt alles uit mijn vorige post gematched. Een artiestnaam als "Massive Attack" niet, die voldoet niet aan de eisen, een artiestnaam als "(01) Foo Fighters" wel.
Lightdinsdag 22 maart 2005 @ 23:03
Het begint al met de "rotzooi". Als je een artiest hebt waarbij de naam begint met een paar nummers dan hang je meteen al. Dus iets als
101 doe maar (- sinds een dag of twee)
is eigenlijk niet meer te filteren. En de scheiding tussen artist en title is ook niet duidelijk, het wordt makkelijker als je daar een " - " kunt garanderen. Maar dan blijf je met het probleem zitten van die artiesten waarvan de naam begint met cijfers.
Swetseneggerdinsdag 22 maart 2005 @ 23:05
quote:
Op dinsdag 22 maart 2005 23:00 schreef Heliospan het volgende:

[..]

Misschien kom ik erg dom en vasthoudend over, maar volgens mij is er wel een patroon. Vanaf de linkerkant van de string (de eerste character):
- niks, een '(', of een '['
- Getal van twee cijfers
- niks, een ')', of een ']'
- Een spatie

Hiermee wordt alles uit mijn vorige post gematched. Een artiestnaam als "Massive Attack" niet, die voldoet niet aan de eisen, een artiestnaam als "(01) Foo Fighters" wel.
Dat klopt, maar [.01.] zal blijven staan
Ik zal eens gaan puzzelen, maar niet vanavond
Heliospandinsdag 22 maart 2005 @ 23:06
quote:
Op dinsdag 22 maart 2005 23:03 schreef Light het volgende:
Het begint al met de "rotzooi". Als je een artiest hebt waarbij de naam begint met een paar nummers dan hang je meteen al.
Dat klopt. Alleen als een artiestnaam begint met 01 t/m 09 zou het in dat geval te filteren zijn. Er is geen bandnaam die met die tekens begint.
quote:
En de scheiding tussen artist en title is ook niet duidelijk, het wordt makkelijker als je daar een " - " kunt garanderen. Maar dan blijf je met het probleem zitten van die artiesten waarvan de naam begint met cijfers.
Dat zijn twee verschilende variabelen. Dus ja, kan ik garanderen
keeperdinsdag 22 maart 2005 @ 23:07
Beetje laat .
Lightdinsdag 22 maart 2005 @ 23:23
quote:
Op dinsdag 22 maart 2005 23:06 schreef Heliospan het volgende:

[..]

Dat klopt. Alleen als een artiestnaam begint met 01 t/m 09 zou het in dat geval te filteren zijn. Er is geen bandnaam die met die tekens begint.
Maar je hebt soms meer dan 9 tracks op een cd. En op lyrics.com vind ik wel "16 Horsepower", die gaat dus ook mis.
quote:
[..]

Dat zijn twee verschilende variabelen. Dus ja, kan ik garanderen
Ok, dat scheelt Dan wordt het dus iets van filteren voor die cijfers en de rest, en dan die rest teruggeven. Het gedeelte "rest" is niet zo lastig, maar het gedeelte met de cijfers kan eventueel lastig zijn. Er is wel iets voor te vinden maar dan kan ik niet garanderen dat die 16 Horsepower goed gaat (sterker, die gaat fout).

Je gaat dan iets krijgen als
1/[(\[\(]?[01]\d\.?[\)\]]?\s(.*)/

Maar die regexp is niet getest. Ik ga er wel vanuit dat je de underscores eerst al door spaties vervangt.
Heliospandinsdag 22 maart 2005 @ 23:32
Ik heb net een alternatief stuk geschreven, maar heb het liever in een pattern. Maar misschien snappen jullie het als je deze code even probeert:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
//  $art = "08 Test";            WEL
//    $art = "[12] Test";            WEL
//    $art = "{01} Test";            WEL
//    $art = "(01) Test";            WEL
//    $art = "09. Test";            WEL
//    $art = "Massive Attack";    NIET
//    $art = "182 Stitches";        NIET

    
$crap_begin = array("[", "(", "{");
    
$crap_eind = array("]", ")", "}");
    
    if(
in_array( substr( $art, 0, 1 ), $crap_begin )
        &&
in_array( substr( $art, ( strpos ($art, " ") - 1 ), 1), $crap_eind) )
            
$art = substr( $art, ( strpos ( $art, " ") + 1 ) );

    if(
substr( $art, 0, 1 ) == "0"
        
&& preg_match( "/[0-9]/", substr( $art, 1, 1 ) ) )
            
$art = substr( $art, 2 );

    if(
substr( $art, 0, 1 ) == "." )
            
$art = substr( $art, 1 );

    
$art = trim($art);
?>


@Light; ik probeer het even, bedankt

-edit-
Lijkt met een kleine wijziging goed te werken! Bedankt!

[ Bericht 2% gewijzigd door Heliospan op 22-03-2005 23:45:17 ]
Lightdinsdag 22 maart 2005 @ 23:53
quote:
Op dinsdag 22 maart 2005 23:32 schreef Heliospan het volgende:

Lijkt met een kleine wijziging goed te werken! Bedankt!
Dan ben ik toch benieuwd wat je eraan hebt aangepast
SuperRembodinsdag 22 maart 2005 @ 23:55
Deze werkt goed op de test-set:

1$clean = preg_replace('#^\s*[({[]?[01]?[0-9]?[)}\x5d.]?(?!\d)\s*#', '', $dirty);


1
2
3
4
5
6
7
8
9
10
#            
^            begin string
\s*          0 of meer spaties of tabs
[({[]?       0 of 1 keer een (, { of [
[01]?        0 of 1 keer een 0 of 1
[0-9]?       0 of 1 keer een cijfer
[)}\x5d.]?   0 of 1 keer een ), }, ] of .
(?!\d)       niet gevolgd door een cijfer
\s*          0 of meer spaties of tabs
#


[ Bericht 63% gewijzigd door SuperRembo op 23-03-2005 00:18:15 ]
Heliospanwoensdag 23 maart 2005 @ 01:28
Light, ik maakt [09] van [01]. Volgens de uitleg van SuperRembo behoort dat echter niet te werken. Ik ben verward. Meerdere mensen duidden regexp aan als hoofdpijnwerk in vorige topics, en daar sluit ik me helemaal bij aan.

SuperRembo, ook bedankt! Deze werkt ook goed, behalve weer bij 16 Horsepower. Ik zal proberen een goede tussenweg te vinden
Roonaanwoensdag 23 maart 2005 @ 06:21
Kan je niet gewoon onderstaande gebruiken:

$songtitle = preg_replace('/^[^a-z]*/i', $songtitle);

?

-r-
SuperRembowoensdag 23 maart 2005 @ 07:40
quote:
Op woensdag 23 maart 2005 01:28 schreef Heliospan het volgende:
SuperRembo, ook bedankt! Deze werkt ook goed, behalve weer bij 16 Horsepower. Ik zal proberen een goede tussenweg te vinden
Zonder extra informatie over bestaande titels kan je die nooit onderscheiden van "16 Foo Fighters". Kan je niet beter zoeken in http://www.freedb.org?
DutchBloodwoensdag 23 maart 2005 @ 09:14
tvp
Lightwoensdag 23 maart 2005 @ 09:31
quote:
Op dinsdag 22 maart 2005 23:55 schreef SuperRembo het volgende:
Deze werkt goed op de test-set:
[ code verwijderd ]


[ code verwijderd ]
Dus 2pac wordt ook pac. Lijkt me niet de bedoeling eigenlijk.
jeroen-heeft-koffie-nodigwoensdag 23 maart 2005 @ 10:19
tvp
KillAuthoritywoensdag 23 maart 2005 @ 10:48
hey in een gastenboek of op een forum kun je berichten toevoegen via een textarea (uiteraard). Als je dan in dit textarea een enter geeft

zoals dit dan wordt later bij het bekijken van het bericht die enter ook weergegeven dus een <br>
maar bij mij krijg ik 1 spatie te zien.

moet krijg ik het voor elkaar dat ik dus ook een enter te zien krijg bij het bekijken van het bericht? is dit een instelling in de database (mysql) of php/html?
Roonaanwoensdag 23 maart 2005 @ 12:38
1
2
3
<?php
nl2br
();&lt;
?>
SuperRembowoensdag 23 maart 2005 @ 12:43
quote:
Op woensdag 23 maart 2005 09:31 schreef Light het volgende:

[..]

Dus 2pac wordt ook pac. Lijkt me niet de bedoeling eigenlijk.
Klopt, die laatste \s* zou beter \s+ kunnen zijn.
Swetseneggerwoensdag 23 maart 2005 @ 17:19
Doet er hier iemand wat met firebird (interbase) databases en php?
achterop23woensdag 23 maart 2005 @ 20:17
qua php en mysql ben ik echt een beginneling.
Moet voor een website wat dingen in een database zetten.

Ik heb nu een sql database aangemaakt (online bij een gratis server die php en sql ondersteund):
de database is al gevuld, maar heo krijg ik de boel er nu uit eigenlijk, hoe ziet de php code eruit als ik de totale inhoud eruit wil krijgen:

inhoud:
quote:
colid colnaam colkm colindex colhoogte
1 MONT VENTOUX (!) 2497 12.4 1909
2 COL DU TOURMALET 1625 11.0 2115
etc etc
tabelnaam: cols
DutchBloodwoensdag 23 maart 2005 @ 20:22
quote:
Op woensdag 23 maart 2005 20:17 schreef achterop23 het volgende:
qua php en mysql ben ik echt een beginneling.
Moet voor een website wat dingen in een database zetten.

Ik heb nu een sql database aangemaakt (online bij een gratis server die php en sql ondersteund):
de database is al gevuld, maar heo krijg ik de boel er nu uit eigenlijk, hoe ziet de php code eruit als ik de totale inhoud eruit wil krijgen:

inhoud:
[..]
1
2
3
4
5
6
/* Eerst verbinding maken met de db en tabel selecteren ofcourse */
$query = 'SELECT * FROM tabel';
$result = mysql_query($query);
while($rij = mysql_fetch_array($result)) {
/* Doe iets met de rij, echo bv. */
}
jeroen-heeft-koffie-nodigdonderdag 24 maart 2005 @ 09:23
hoe heet die functie ookalweer die van 'deze teksten enzo' maakt: 'deze teksten....'

?
Swetseneggerdonderdag 24 maart 2005 @ 10:02
quote:
Op donderdag 24 maart 2005 09:23 schreef jeroen-heeft-koffie-nodig het volgende:
hoe heet die functie ookalweer die van 'deze teksten enzo' maakt: 'deze teksten....'

?
bedoel je substr ?
jeroen-heeft-koffie-nodigdonderdag 24 maart 2005 @ 10:19
hmm heb even op php.net gekeken maar dat is hem niet. Hij moet de tekst inkorten tot een bepaald aantal tekens, en de rest vervangen voor puntjes
sabandonderdag 24 maart 2005 @ 10:22
quote:
Op donderdag 24 maart 2005 10:19 schreef jeroen-heeft-koffie-nodig het volgende:
hmm heb even op php.net gekeken maar dat is hem niet. Hij moet de tekst inkorten tot een bepaald aantal tekens, en de rest vervangen voor puntjes
<?
$string = "Dit moet ingekort worden door 20 karakters";
$string = substr("$string", 0, 20);
$string = "$string" . "...";
?>

Niet getest, je moet hem natuurlijk uitbreiden (bijvoorbeeld is de string niet eens 20 karakters lang).
SuperRembodonderdag 24 maart 2005 @ 10:22
Daar is geen standaard php functie voor. Dat zal je zelf moeten maken. Zo moeilijk is 't niet.
Swetseneggerdonderdag 24 maart 2005 @ 10:27
quote:
Op donderdag 24 maart 2005 10:19 schreef jeroen-heeft-koffie-nodig het volgende:
hmm heb even op php.net gekeken maar dat is hem niet. Hij moet de tekst inkorten tot een bepaald aantal tekens, en de rest vervangen voor puntjes
substr dus, zie saban
achterop23donderdag 24 maart 2005 @ 11:14
waarom werkt dit niet?
quote:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body><?php
// Maak verbinding met server
mysql_connect ("xxx","xxx", "xxx");

// Selecteer database
mysql_select_db("achterop23_100");

// Selecteer alle id's en titels van de tabel
$query = "SELECT * FROM cols";

// Voer query uit
$resultaat = mysql_query($query) or die(mysql_error());

// Maak OO van $resultaat
while ($rij == mysql_fetch_object($resultaat)){
// Echo titel met link naar toonbericht.php
echo $rij['colnaam'];
}
?>
<?php echo $rij['colid'] ?></body>
</html>
hoe moet ik dit bestand trouwesn noemen? (.php of .html)
De koppeling met de database is goed.
sabandonderdag 24 maart 2005 @ 11:16
<?php echo $rij['colid'] ?></body>
waar is je
;

En waarom sluit je je php tags en open ze daarna weer
SuperRembodonderdag 24 maart 2005 @ 11:24
quote:
Op donderdag 24 maart 2005 11:14 schreef achterop23 het volgende:
waarom werkt dit niet?
[..]

hoe moet ik dit bestand trouwesn noemen? (.php of .html)
De koppeling met de database is goed.
Met [ code][/code] tags ziet het er wat overzichtelijker uit.

Je haalt fetch_object en fetch_assoc door elkaar. Ik vind zelf fetch_assoc de handigste methode.

1
2
3
4
5
6
7
8
9
10
11
12
$row = mysql_fetch_object($result);
echo $row->field;

$row = mysql_fetch_assoc($result);
echo $row['field'];

$row = mysql_fetch_row($result);
echo $row[0];

$row = mysql_fetch_array($result);
echo $row['field'];
echo $row[0];
achterop23donderdag 24 maart 2005 @ 11:56
hij blijft niets aangeven, ik moet zeggen dat ik er nog te weinig van snap.
Kan iemand me een voorbeeldje maken?
ik pleur daarom (mijn tijdelijk gewijzigde gegevens) even online:
quote:
mysql_connect ("coolinc.info","achterop23_100", "qweqwe");
mysql_select_db("achterop23_100");
tabelnaam = cols
de tabel ziet er zo uit:
Veld Type Attributen
colid char(3) Nee
colnaam varchar(30) Nee
colkm varchar(5) Nee
colindex varchar(5) Nee
colhoogte varchar(5) Nee
Het gaat erom dat het er zo uit komt te zien:
http://home.planet.nl/~bijma061/cols.html
SuperRembodonderdag 24 maart 2005 @ 12:06
quote:
Op donderdag 24 maart 2005 11:56 schreef achterop23 het volgende:
hij blijft niets aangeven, ik moet zeggen dat ik er nog te weinig van snap.
Kan iemand me een voorbeeldje maken?
ik pleur daarom (mijn tijdelijk gewijzigde gegevens) even online:
[..]

Het gaat erom dat het er zo uit komt te zien:
http://home.planet.nl/~bijma061/cols.html
In je eigen voorbeeld zitten 2 fouten.
1. Je gebruikt mysql_fetch_object in plaats van mysql_fetch_assoc. Zie m'n vorige post.
2. Je while conditie klopt niet

1
2
3
4
5
6
7
8
// jouw code: 
while ($rij == mysql_fetch_object($resultaat)){ 

// dit moet wel werken
while ($rij = mysql_fetch_object($resultaat)){ 

// dit is nog netter
while (($rij = mysql_fetch_object($resultaat))!==false){ 
Swetseneggerdonderdag 24 maart 2005 @ 12:18
1
2
3
while ($rij = mysql_fetch_object($resultaat)){
print"".$rij['colnaam']."" "".$rij['colkm']."" "".$rij['colindex']."" "".$rij['colhoogte']."";
jeroen-heeft-koffie-nodigdonderdag 24 maart 2005 @ 12:43
quote:
Op donderdag 24 maart 2005 10:22 schreef saban het volgende:

[..]

<?
$string = "Dit moet ingekort worden door 20 karakters";
$string = substr("$string", 0, 20);
$string = "$string" . "...";
?>

Niet getest, je moet hem natuurlijk uitbreiden (bijvoorbeeld is de string niet eens 20 karakters lang).
ok inderdaad moest wel substr zijn
SuperRembodonderdag 24 maart 2005 @ 12:57
quote:
Op donderdag 24 maart 2005 12:18 schreef Swetsenegger het volgende:

[ code verwijderd ]
Mysql_fetch_object() en daarna $rij['veldnaam'] gaat niet werken lijkt me.
Die "" gaan parse errors geven.
achterop23donderdag 24 maart 2005 @ 13:10
quote:
<html>
<head>
<title>PHP Test</title>
</head>
<body>

<?php phpinfo(); ?>
<?php
// Maak verbinding met server
mysql_connect ("coolinc.info","achterop23_100", "qweqwe") or die(mysql_error());

// Selecteer database
mysql_select_db("achterop23_100") or die(mysql_error());


// Selecteer alle id's en titels van de tabel
$query = "SELECT * FROM cols" or die(mysql_error());

$resultaat = mysql_query($query) or die(mysql_error());
while ($rij = mysql_fetch_object($resultaat)){
print"".$rij['colnaam']."" "".$rij['colkm']."" "".$rij['colindex']."" "".$rij['colhoogte']."";
}
?>

</body>
</html>
En nog steeds niets...
zelfs <?php phpinfo(); ?> doet t niet.
ik heb hem in de www map gezet.
maar er komt niets in beeld...
achterop23donderdag 24 maart 2005 @ 13:11
is er misschien iets mis met de config file op de server?
SuperRembodonderdag 24 maart 2005 @ 13:18
quote:
Op donderdag 24 maart 2005 13:10 schreef achterop23 het volgende:

[..]

En nog steeds niets...
zelfs <?php phpinfo(); ?> doet t niet.
ik heb hem in de www map gezet.
maar er komt niets in beeld...
Weet je zeker dat planet.nl php ondersteuning geeft op standaard homepages?
Swetseneggerdonderdag 24 maart 2005 @ 13:26
quote:
Op donderdag 24 maart 2005 13:18 schreef SuperRembo het volgende:

[..]

Weet je zeker dat planet.nl php ondersteuning geeft op standaard homepages?
Nee dat doen ze niet
Swetseneggerdonderdag 24 maart 2005 @ 13:27
quote:
Op donderdag 24 maart 2005 12:57 schreef SuperRembo het volgende:

[..]

Mysql_fetch_object() en daarna $rij['veldnaam'] gaat niet werken lijkt me.
Die "" gaan parse errors geven.
Ik had de verkeerde gecopy paste fetch_assoc uiteraard
achterop23donderdag 24 maart 2005 @ 13:27
quote:
Op donderdag 24 maart 2005 13:18 schreef SuperRembo het volgende:

[..]

Weet je zeker dat planet.nl php ondersteuning geeft op standaard homepages?
ik heb het geprobeerd op tiscali.nl maar ook op de plaats waar ik de database ook heb
http://100webspace.com/
Het lijkt me dat ie daar sowieso wel ondersteuning geeft? ik heb mijn index.php in de www map gezet.
Swetseneggerdonderdag 24 maart 2005 @ 13:33
quote:
Op donderdag 24 maart 2005 13:27 schreef achterop23 het volgende:

[..]

ik heb het geprobeerd op tiscali.nl maar ook op de plaats waar ik de database ook heb
http://100webspace.com/
Het lijkt me dat ie daar sowieso wel ondersteuning geeft? ik heb mijn index.php in de www map gezet.
die geeft ondersteuning ja.
Als hij helemaal niets doet, denk ik dat jebv een } verkeerd heb staan. Post je volledige code eens, en geef de url naar de pagina waar het hele spul draait.

ow en zet bovenin je php
1
2
3
<?php
error_reporting
(E_ALL);
?>


[ Bericht 2% gewijzigd door Swetsenegger op 24-03-2005 13:33:31 (typo's) ]
achterop23donderdag 24 maart 2005 @ 13:41
alvast bedankt voor alle hulp, komt ie.
de complete code:
quote:
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
error_reporting(E_ALL);
// Maak verbinding met server
mysql_connect ("coolinc.info","achterop23_100", "qweqwe") or die(mysql_error());

// Selecteer database
mysql_select_db("achterop23_100") or die(mysql_error());


// Selecteer alle id's en titels van de tabel
$query = "SELECT * FROM cols" or die(mysql_error());

$resultaat = mysql_query($query) or die(mysql_error());
while ($rij = mysql_fetch_assoc($resultaat)){
print"".$rij['colnaam']."" "".$rij['colkm']."" "".$rij['colindex']."" "".$rij['colhoogte']."";
}
?>

</body>
</html>
de link ernaar toe:
http://achterop23.coolinc.info/
(maar zie nu dat daar(mits niet ingelogd) niets staat)
Swetseneggerdonderdag 24 maart 2005 @ 13:42
quote:
Op donderdag 24 maart 2005 13:41 schreef achterop23 het volgende:
alvast bedankt voor alle hulp, komt ie.
de complete code:
[..]

de link ernaar toe:
http://achterop23.coolinc.info/
(maar zie nu dat daar(mits niet ingelogd) niets staat)
er staat gewoon niets in de juiste directory
achterop23donderdag 24 maart 2005 @ 13:48
ik snap er werkelijk niets meer van en dat terwijl ik zoveel sites gemaakt heb (nog nooit met php heb gewerkt, zoals te merken is)
Swetseneggerdonderdag 24 maart 2005 @ 13:54
Nu staat er wel van alles o.a. postinfo.html
achterop23donderdag 24 maart 2005 @ 13:55
heb idd wat veranderd (de map waarnaar het subdomein verwijst is nu anders)
achterop23donderdag 24 maart 2005 @ 13:56
Parse error: parse error in /home/www/achterop23.coolinc.info/index.php on line 20

hehe, ik kan verder
SuperRembodonderdag 24 maart 2005 @ 14:00
quote:
Op donderdag 24 maart 2005 13:56 schreef achterop23 het volgende:
Parse error: parse error in /home/www/achterop23.coolinc.info/index.php on line 20

hehe, ik kan verder
Dat zei ik toch
quote:
Op donderdag 24 maart 2005 12:57 schreef SuperRembo het volgende:
Die "" gaan parse errors geven.
achterop23donderdag 24 maart 2005 @ 14:07
quote:
Op donderdag 24 maart 2005 14:00 schreef SuperRembo het volgende:

[..]

Dat zei ik toch
[..]


weet je ook wat voor weer t morgen wordt?
achterop23donderdag 24 maart 2005 @ 14:10
http://achterop23.coolinc.info/achterop23.coolinc.info/

wazig, dit is de link dus...
Swetseneggerdonderdag 24 maart 2005 @ 15:07
quote:
Op donderdag 24 maart 2005 14:00 schreef SuperRembo het volgende:

[..]

Dat zei ik toch
[..]
Vreemd, want dit geeft bij mij geen parseerrors
KillAuthoritydonderdag 24 maart 2005 @ 15:37
<?php if ($pageNum_Recordset1 ???? ) { ?>
blablabla
<?php } ?>

ik wil dat de blablabla wordt weergegeven als het NIET de eerste pagina is EN ook NIET de laatste is. Wat moet er dan in plaats komen van de ????
SuperRembodonderdag 24 maart 2005 @ 16:02
quote:
Op donderdag 24 maart 2005 14:10 schreef achterop23 het volgende:
http://achterop23.coolinc.info/achterop23.coolinc.info/

wazig, dit is de link dus...
Maak er dit van:

1
2
3
while ($rij = mysql_fetch_assoc($resultaat)) {
   print "".$rij['colnaam']." ".$rij['colkm']." ".$rij['colindex']." ".$rij['colhoogte']."";
}
SuperRembodonderdag 24 maart 2005 @ 16:06
quote:
Op donderdag 24 maart 2005 15:37 schreef KillAuthority het volgende:
<?php if ($pageNum_Recordset1 ???? ) { ?>
blablabla
<?php } ?>

ik wil dat de blablabla wordt weergegeven als het NIET de eerste pagina is EN ook NIET de laatste is. Wat moet er dan in plaats komen van de ????
1if ( ($het != $eerste) and ($het != $laatste))


Als je bij 0 begint te tellen dan is $eertste=0 en $laatste = aantal pagina's min 1.
Als je bij 1 begint te tellen dan is $eertste=1 en $laatste = aantal pagina's.
Swetseneggerdonderdag 24 maart 2005 @ 16:24
quote:
Op donderdag 24 maart 2005 16:02 schreef SuperRembo het volgende:

[..]

Maak er dit van:
[ code verwijderd ]
Ach fuck, ik zie het al. Ik had dubbele quotes laten staan
Pauluzz_U5donderdag 24 maart 2005 @ 22:34
Hallo allemaal, ik heb een erg moeilijke vraag denk ik. Het zit namelijk zo dat ik bepaalde gegevens wil ophalen van emule via php... mijn vraag is, is dit mogelijk??? Ik heb zelf geen flauw idee hoe ik dit zou moeten doen en ik hoop dat iemand me kan helpen
jeroen-heeft-koffie-nodigdonderdag 24 maart 2005 @ 23:53
quote:
Op donderdag 24 maart 2005 10:22 schreef saban het volgende:

[..]

<?
$string = "Dit moet ingekort worden door 20 karakters";
$string = substr("$string", 0, 20);
$string = "$string" . "...";
?>

Niet getest, je moet hem natuurlijk uitbreiden (bijvoorbeeld is de string niet eens 20 karakters lang).
kan het ook zo dat als de 20 karakters bereikt zijn, dat dn pas de puntjes er achter komen?
DutchBloodvrijdag 25 maart 2005 @ 08:20
quote:
Op donderdag 24 maart 2005 23:53 schreef jeroen-heeft-koffie-nodig het volgende:

[..]

kan het ook zo dat als de 20 karakters bereikt zijn, dat dn pas de puntjes er achter komen?
1
2
3
4
5
6
7
<?php
$string = "Dit moet ingekort worden door 20 karakters";
if(strlen($string) > 20)) {
$string = substr("$string", 0, 20);
$string = "$string" . "...";
}
?>
Roonaanvrijdag 25 maart 2005 @ 09:06
quote:
Op donderdag 24 maart 2005 23:53 schreef jeroen-heeft-koffie-nodig het volgende:

[..]

kan het ook zo dat als de 20 karakters bereikt zijn, dat dn pas de puntjes er achter komen?
1
2
if(strlen($string > 20))
  $string = substr($string,0,18).'..' ;


Het lijkt me iig, dat de string met puntjes ook niet langer dan 20 tekens zou moeten zijn toch?
achterop23vrijdag 25 maart 2005 @ 10:34
Nou bedankt allemaal het is me gelukt (stond toch een foutje in).
Maar nu zit ik te kloten met while en if e.d.
ik heb een tabel met daarin mensen die een bepaalde fietstocht hebben gereden. Sommige meerdere keren (dit staat in het veld aantal).
ik wil nu zo sorteren dat iedereen die hem 1 keer heeft gefietst bijelkaar staan en 2 keer ook (enzoverder).

Maar wel dat mensen die hem 5 keer fietsen er ook bijstaan bij 4,3,2 en 1 keer fietsen.
Heb zelf wel wat zitten kloten, maar de header van de tabel wordt telkens opnioeuw gemaakt, tenzij ik m uit de whilelus haal.
Het moet iets worden als:
http://home.planet.nl/~bijma061/register.html

dit bak ik ervan: http://achterop23.coolinc(...)nc.info/register.php
achterop23vrijdag 25 maart 2005 @ 10:38
mijn code nog ff:
quote:
<?php
error_reporting(E_ALL);
// Maak verbinding met server
mysql_connect ("coolinc.info","achterop23_100", "qweqwe") or die(mysql_error());

// Selecteer database
mysql_select_db("achterop23_100") or die(mysql_error());


// Selecteer alle id's en titels van de tabel
$query = "SELECT * FROM register" or die(mysql_error());


$resultaat = mysql_query($query) or die(mysql_error());
echo "<table width=\"80%\" border=\"2\">


<tr>
<td>nummer</td>
<td>m/v</td>
<td>naam</td>
<td>plaats</td>
<td>club</td>
<td>aantal</td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>";
while ($rij = mysql_fetch_assoc($resultaat)){
if ($rij['registeraantal'] >= 1) {
print "1 keer gefietst";
echo"<tr><td>"; print $rij['registerid']; echo "</td>";
echo"<td>"; print $rij['registermv']; echo "</td>";
echo"<td>"; print $rij['registernaam']; echo "</td>";
echo"<td>"; print $rij['registerplaats']; echo "</td>";
echo"<td>"; print $rij['registerclub']; echo "</td>";
echo"<td>"; print $rij['registeraantal']; echo "</td>";
echo"<td>"; print $rij['registerj1']; echo "</td>";
echo"<td>"; print $rij['registerj2']; echo "</td>";
echo"<td>"; print $rij['registerj3']; echo "</td>";
}
if ($rij['registeraantal'] >= 2) {
print "2 keer gefietst";
echo"<tr><td>"; print $rij['registerid']; echo "</td>";
echo"<td>"; print $rij['registermv']; echo "</td>";
echo"<td>"; print $rij['registernaam']; echo "</td>";
echo"<td>"; print $rij['registerplaats']; echo "</td>";
echo"<td>"; print $rij['registerclub']; echo "</td>";
echo"<td>"; print $rij['registeraantal']; echo "</td>";
echo"<td>"; print $rij['registerj1']; echo "</td>";
echo"<td>"; print $rij['registerj2']; echo "</td>";
echo"<td>"; print $rij['registerj3']; echo "</td>";
}
if ($rij['registeraantal'] >= 3) {
print "3 keer gefietst";
echo"<tr><td>"; print $rij['registerid']; echo "</td>";
echo"<td>"; print $rij['registermv']; echo "</td>";
echo"<td>"; print $rij['registernaam']; echo "</td>";
echo"<td>"; print $rij['registerplaats']; echo "</td>";
echo"<td>"; print $rij['registerclub']; echo "</td>";
echo"<td>"; print $rij['registeraantal']; echo "</td>";
echo"<td>"; print $rij['registerj1']; echo "</td>";
echo"<td>"; print $rij['registerj2']; echo "</td>";
echo"<td>"; print $rij['registerj3']; echo "</td>";
}
}

echo"</tr></table>";
?>
SuperRembovrijdag 25 maart 2005 @ 11:04
Sorteren doe je normaal gesproken in de database. In dit geval:

1
2
3
SELECT * 
FROM cols
ORDER BY registeraantal


Dan hou je in de loop bij met welke tabel je bezig bent: $huidigAantal. Die zet je voor de loop op 0.
Als $rij['registeraantal'] ongelijk is aan $huidigAantal, dan weet je dat je een nieuwe tabel moet beginnen. Een nieuwe tabel beginnen houd in:
- indien nodig de vorige tabel afsluiten
- $huidigAantal bijwerken
- het huidige aantal printen
- nieuwe tabel met header printen
achterop23vrijdag 25 maart 2005 @ 11:08
quote:
Op vrijdag 25 maart 2005 11:04 schreef SuperRembo het volgende:
Sorteren doe je normaal gesproken in de database. In dit geval:
[ code verwijderd ]

Dan hou je in de loop bij met welke tabel je bezig bent: $huidigAantal. Die zet je voor de loop op 0.
Als $rij['registeraantal'] ongelijk is aan $huidigAantal, dan weet je dat je een nieuwe tabel moet beginnen. Een nieuwe tabel beginnen houd in:
- indien nodig de vorige tabel afsluiten
- $huidigAantal bijwerken
- het huidige aantal printen
- nieuwe tabel met header printen
thanks!
ik zat al aan complexe geneste loops te denken,

maar aan sorteren in de database had ik totaal niet gedacht
nummer9vrijdag 25 maart 2005 @ 12:20
Kan iemand mij een zetje in de goede richting geven?

Ik heb een tekst bv:

1
2
3
4
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei


Nu wil ik alleen de zinnen beginnend met 'Bomen' uit de tekst halen.

Ik kan met preg_match het aantal er wel uithalen, maar ik wel ook de twee regels tonen. Wat kan ik hier het beste voor gebruiken.

Dit heb ik al geprobeerd, maar het resultaat is dan 0.
1
2
3
4
5
6
7
8
9
10
<?php
$string
= "
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei"
;

$string = preg_match("/^Bomen/", $string);
echo
$string
?>
SuperRembovrijdag 25 maart 2005 @ 12:28
De makkelijkste oplossing is om de string eerst op te splitsen in losse regels. Dat kan met split of explode.

[edit]

Het kan ook met een regexp

1$count = preg_match('/^Bomen.*/mi', $string, $matches);
nummer9vrijdag 25 maart 2005 @ 13:42
Dit werkt helaas niet. Het resultaat is dan 'Array' en dat is niet wat ik wil.
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$string
= "
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei"
;

$string = explode ('\n', $string);

$count = preg_match('/^Bomen.*/mi', $string, $matches);
echo
$count
?>


Ook wanneer ik $matches of $string echo krijg ik hetzelfde resultaat.

Wat moet ik doen om de twee zinnen dit met bomen te beginnen als resultaat onder elkaar krijg
MouseInteractivevrijdag 25 maart 2005 @ 13:46
quote:
Op vrijdag 25 maart 2005 13:42 schreef nummer9 het volgende:
Dit werkt helaas niet. Het resultaat is dan 'Array' en dat is niet wat ik wil.
Een array kun je ook niet zomaar echo'en

Doe eens dit:
1print_r($count);
SuperRembovrijdag 25 maart 2005 @ 13:48
Je moet OF de string spilllen en dan jouw rexexp op de elementen van de array loslaten met een loopje OF je gebruikt mijn regexp maar dat ZONDER split

Die explode van je doet overigens ook niet wat je wil. '\n' is een string van 2 tekens, een backslash en een n. "\n" is een string van 1 teken, een linefeed.
SuperRembovrijdag 25 maart 2005 @ 13:51
quote:
Op vrijdag 25 maart 2005 13:42 schreef nummer9 het volgende:
Wat moet ik doen om de twee zinnen dit met bomen te beginnen als resultaat onder elkaar krijg
De twee zinnen die je zoekt staan in de array $matches. Die kan je dan zelf weer aan elkaar plakken met bijvoorbeeld implode() of join().
nummer9vrijdag 25 maart 2005 @ 13:52
Wat ik nu krijg is vaag, ik krijg nu een foutmelding op

1$count = preg_match('/^Bomen.*/mi', $string, $matches);


Wanneer ik onderstaande code uitvoer krijg ik deze foutmelding:

Warning: preg_match() expects parameter 2 to be string, array given in c:\wamp\www\test\test.php on line 55

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$string
= "
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei"
;

$string = explode ('\n', $string);

$count = preg_match('/^Bomen.*/mi', $string, $matches);
print_r($count);
?>


Iemand nog tips waar ik het in moet zoeken?
nummer9vrijdag 25 maart 2005 @ 14:00
quote:
Op vrijdag 25 maart 2005 13:51 schreef SuperRembo het volgende:

[..]

De twee zinnen die je zoekt staan in de array $matches. Die kan je dan zelf weer aan elkaar plakken met bijvoorbeeld implode() of join().
Bedankt allemaal, ik kom al iets verder. Wanneer ik deze code uitvoer krijg ik echter alleen de zin 'Bomen krijgen weer bladeren'. Wat kan ik doen om te kijken wat er in de array $matches zit?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$string
= "
Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei
"
;

$count = preg_match('/^Bomen.*/mi', $string, $matches);

$resultaat = implode(",", $matches);

print
$resultaat;
?>


Nogmaals bedankt!
SuperRembovrijdag 25 maart 2005 @ 14:07
quote:
Op vrijdag 25 maart 2005 14:00 schreef nummer9 het volgende:

Wanneer ik deze code uitvoer krijg ik echter alleen de zin 'Bomen krijgen weer bladeren'.
O ja, het moet natuurlijk preg_match_all zijn.
quote:
Wat kan ik doen om te kijken wat er in de array $matches zit?
Dat kan met var_dump of print_r.
nummer9vrijdag 25 maart 2005 @ 14:24
quote:
Op vrijdag 25 maart 2005 14:07 schreef SuperRembo het volgende:

[..]

O ja, het moet natuurlijk preg_match_all zijn.
[..]

Dat kan met var_dump of print_r.
Beide zijn op te zoeken als ik niet zo snel resultaat wilde hebben. Ik heb nu inderdaad de resultaten. Bedankt allemaal en ik zal toch echt beter moeten zoeken!
Heliospanvrijdag 25 maart 2005 @ 15:32
Je zou het zo kunnen doen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$string
= "Het is lekker weer
Bomen krijgen weer bladeren
Temperatuur is aangenaam
Bomen staan weer in bloei"
;

$string = explode ("\n", $string);

$match = "bomen";
$matches = array();

$x = 0;
foreach(
$string as $val) {
    if(
stristr( substr ( $val, 0, strlen($match) ), $match) ) $matches[] = $x;
    
$x++;
}

echo
"Zinnen die beginnen met ". $match .": ". implode(", ", $matches);
?>


Dit werkt niet omdat er nu letterlijk op de string '\n' gezocht wordt:
1
2
3
<?php
$string
= explode ('\n', $string);
?>

Door het tussen dubbele aanhalingstekens te zetten wordt het omgezet in een 'newline'-character.

-edit-
ik had dit topic niet de halve dag open moeten laten staan lama
jeroen-heeft-koffie-nodigvrijdag 25 maart 2005 @ 23:27
ik wil iets dat hij kijkt in de database, en dat de inhoud met het hoogste getal (in dit geval 'gebruikers_id') als resultaat dr uit komt rollen
Lightvrijdag 25 maart 2005 @ 23:46
1select max(gebruikers_id) from table
SuperRembovrijdag 25 maart 2005 @ 23:48
Dat kan met ORDER BY in combinatie met LIMIT 1.
Martijn_77zaterdag 26 maart 2005 @ 17:29
zijn er ook site waar je standaard stukken PHP kunt vinden?
Heliospanzaterdag 26 maart 2005 @ 17:32
Je kunt googelen naar 'php code snippets' (volgens mij heten stukjes 'snippets'... kutwoord)
Maar waarom zou je? Het is het leukst om het zelf te leren en schrijven
mscholzaterdag 26 maart 2005 @ 21:54
loop tegen een klein probleempje aan:
heb deze code:
1
2
3
4
5
6
7
8
9
<?php
function Whois($string)
{
$string = explode("|",$string);
$whois = "SELECT * FROM `users` WHERE ID='".$string[0]."'";
$result = mysql_query($whois) or die(mysql_error());
return
$result;
}
?>


als $string wordt het volgende aan geleverd:
quote:
1|21-03-05|15:00
wat moet er gebeuren:
ik vraag de functie op om aan de hand van een ID een username te achterhalen en de username terug te geven..
ik krijg met $result een Resource id #5 terug...
oke ka ik mee leven:
dus ik zorg dat hij alleen kolom 2 pakt d.m.v. $result[2]
en toen was ie leeg
ditzelfde geldt voor [1] of [0] er komt niks terug
als ik get_resource_type() doe dan zegt ie wel netjs dat het een mysql result is???

ik snap em niet meer, wat zie ik over het hoofd...??
ow en ja ik ben 100% zeker van het feit dat ik de goede gegevens meegeef aan de whois functie

als ik de query uyitvoer inb phpmyadmin geeft hij ook geen fout, heb ook al de quotes bij de where clause weggehaald... niks

wie kan mij helpen???
SuperRembozaterdag 26 maart 2005 @ 22:15
Je vergeet

1$row = mysql_fetch_assoc($result);


mscholzaterdag 26 maart 2005 @ 22:21
quote:
Op zaterdag 26 maart 2005 22:15 schreef SuperRembo het volgende:
Je vergeet
[ code verwijderd ]

die werkte niet maar
1
2
mysql_fetch_array($result)
return $result[1];

wel

dat ik daar niet op gekomen ben
achterop23zondag 27 maart 2005 @ 01:08
quote:
Op vrijdag 25 maart 2005 11:04 schreef SuperRembo het volgende:
Sorteren doe je normaal gesproken in de database. In dit geval:
[ code verwijderd ]

Dan hou je in de loop bij met welke tabel je bezig bent: $huidigAantal. Die zet je voor de loop op 0.
Als $rij['registeraantal'] ongelijk is aan $huidigAantal, dan weet je dat je een nieuwe tabel moet beginnen. Een nieuwe tabel beginnen houd in:
- indien nodig de vorige tabel afsluiten
- $huidigAantal bijwerken
- het huidige aantal printen
- nieuwe tabel met header printen
Dat is nu mooi gelukt http://achterop23.coolinc(...)nc.info/register.php

alleen hoe krijg ik een enter in een print of echo?

de code
quote:
$query = "SELECT * FROM register ORDER BY registeraantal" or die(mysql_error());

$resultaat = mysql_query($query) or die(mysql_error());
print "1 keer gefietst";
echo "<table border=\"0\">
<tr>
<td>nummer</td>
<td>naam</td>
</tr>";
$huidigaantal=0;
$aantalcheck=1;

while ($rij = mysql_fetch_assoc($resultaat)){
if ($aantalcheck < $rij['registeraantal']) {
echo"</tr></table>";
print $rij['registeraantal']; print " keer gefietst";
echo "<table border=\"0\">
<tr>
<td>nummer</td>
<td>naam</td>
</tr>";
$huidigaantal=0;
}
$huidigaantal=$huidigaantal+1;
echo"<tr><td>"; print $huidigaantal; echo "</td>";
echo"<td>"; print $rij['registernaam']; echo "</td>";
$aantalcheck = $rij['registeraantal'];
}

echo"</tr></table>";
?>


[ Bericht 20% gewijzigd door achterop23 op 27-03-2005 01:14:33 ]
Heliospanzondag 27 maart 2005 @ 01:33
1print nl2br($rij['registernaam']);


Je hoeft overigens niet steeds een commando te herhalen als die hetzelfde is (print en echo zijn identiek, tenminste, op de manier waarop jij het gebruikt. hier het verschil).

Dat kan dus ook zo:

1
2
3
<?php
echo "<tr><td>".$huidigaantal."</td><td>".$rij['registernaam']."</td>";
?>
SuperRembozondag 27 maart 2005 @ 01:38
Code wat opgeschoond:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$query = "SELECT * FROM register ORDER BY registeraantal";

$resultaat = mysql_query($query) or die(mysql_error());

while (($rij = mysql_fetch_assoc($resultaat))!==false){
   if ($rij['registeraantal'] != $huidigaantal) {
      if ($huidigaantal>0) {
         // sluit tabel
         echo "</tr></table>\n";
      }
      // begin nieuwe tabel
      $huidigaantal = $rij['registeraantal'];
      $nummer = 0;
      print $huidigaantal." keer gefietst\n";
      echo '<table>';
      echo '<tr><th>nummer</th><th>naam</th></tr>';
   }
   $nummer++;
   echo '<tr>';
   echo '<td>'.$nummer.'</td>';
   echo '<td>'.$rij['registernaam'].'</td>';
   echo "<tr>\n";
}


([ code] tags maakt code leesbaarder dan [ quote])

Een niewe regel in een string maak je zo: "\n", maar niet zo '\n'
De details lees je hier.
SuperRembozondag 27 maart 2005 @ 01:41
quote:
Op zondag 27 maart 2005 01:33 schreef Heliospan het volgende:

1print nl2br($rij['registernaam']);
Wat heeft dat voor nut
Heliospanzondag 27 maart 2005 @ 01:44
quote:
hoe krijg ik een enter in een print of echo?


Had ik z'n post beter moeten lezen?
SuperRembozondag 27 maart 2005 @ 01:46
nl2br uitvoeren op een string zonder nl's is een beetje overbodig.
achterop23zondag 27 maart 2005 @ 18:54
quote:
Op zondag 27 maart 2005 01:38 schreef SuperRembo het volgende:
Code wat opgeschoond:
[ code verwijderd ]

([ code] tags maakt code leesbaarder dan [ quote])

Een niewe regel in een string maak je zo: "\n", maar niet zo '\n'
De details lees je hier.


Hoe krijg ik gegevens uit de database in een formulier, zodat deze eventueel gewijzigd kan worden met een update?
achterop23zondag 27 maart 2005 @ 19:39
lamaar, heb zelf al wat gevonden (in 2 dagen php+mysql leren is niet niks )
achterop23zondag 27 maart 2005 @ 20:48
waarom komt in een invoerveld niet de gehele waarde?
In de database staat in een veld: Jan Jansen
In het invoerveld komt alleen maar te staan: Jan
de spatie stopt ie dus.

1
2
3
4
5
6
7
$query = "SELECT * FROM register" or die(mysql_error()); 

$resultaat = mysql_query($query) or die(mysql_error()); 
while ($rij = mysql_fetch_assoc($resultaat)){
   print $rij['registernaam'];
   $getal=addslashes($rij['registernaam']);
echo "<form><input value=$getal /></form>";
SuperRembozondag 27 maart 2005 @ 21:05
Als je kijkt naar de html broncode die je nu gegenereerd hebt, dan zie je zelf de oplossing wel
achterop23zondag 27 maart 2005 @ 21:20
quote:
Op zondag 27 maart 2005 21:05 schreef SuperRembo het volgende:
Als je kijkt naar de html broncode die je nu gegenereerd hebt, dan zie je zelf de oplossing wel
zo leer ik nog eens wat, thanks (wat quote's kunnen doen zeg)
Heliospanzondag 27 maart 2005 @ 21:24
(goedbedoeld commentaar)

Dit heeft niet zoveel zin:
1$query = "SELECT * FROM register" or die(mysql_error()); 


$query is hier gewoon een string die gevuld wordt met tekst, niet een commando. Je hoeft dus geen "or die(mysql_error());" toe te voegen, want er kan niks foutgaan
mscholmaandag 28 maart 2005 @ 13:16
ik heb een klein zite gescript met een nieuws script idee (gewoon berichtje op de site):

news.php

deze wordt geinclude in index.php
een snippet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
else if(isset($_GET['page']) && $_GET['page'] == 'Main')
    {
        if(isset(
$_GET['archive']) && $_GET['archive'] == 'True')
        {
            if(isset(
$_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] &gt; '0')
            {
                include(
"http://".$_SERVER['HTTP_HOST']."/site/news.php?archived=True&show=".$_GET['id']);
            }
            else
            {
                include(
"http://".$_SERVER['HTTP_HOST']."/site/news.php?archived=True");
            }
        }
        else
        {
            include(
"news.php");
        }
?>


maar door de include bij archive kan hij geen gebruik makne van de mysql verbinding die ik gemaakt heb in index.php
en ik wil dus uit de news.php de DB_connect() regel weghebben.. en de include het liefst ook natuurlijk (datr zal lastifger worden want daar staat ook mijn Whois() functie in...
kan dit zoals ik het nu doe of moet ik dan eerst een extrra bestand aanmaken die mijn archief kan opvragen...???
SuperRembomaandag 28 maart 2005 @ 13:33
Erg vreemde constuctie dit. Ik snap 't niet. En waarom include je via http?
mscholmaandag 28 maart 2005 @ 13:35
quote:
Op maandag 28 maart 2005 13:33 schreef SuperRembo het volgende:
Erg vreemde constuctie dit. Ik snap 't niet. En waarom include je via http?
i.v.m. de GET variable.. die pakt hij anders niet...

maar andere oplossingen zijn welkom

ow linkie

dan kan je een beetje rond kijken wat er op de site zelf gebeurd (dan begrijpen jullie het misschien beter...

ow en je moet het houiden bij het nieuws gedeelte want als ik hiervor een oplossing heb ga ik kijken of ik het ook kan toepassen bij detail pagna's (zelfde probleem )

[ Bericht 17% gewijzigd door mschol op 28-03-2005 13:41:00 ]
SuperRembomaandag 28 maart 2005 @ 13:49
$_GET is ook in de include beschikbaar. Ik zou niet weten waarom niet.

Waarom gebruik je trouwens frames? Dat menuutje kan je dank zij serverside scripting eenvoudig op elke pagina terug laten komen.
mscholmaandag 28 maart 2005 @ 14:32
quote:
Op maandag 28 maart 2005 13:49 schreef SuperRembo het volgende:
$_GET is ook in de include beschikbaar. Ik zou niet weten waarom niet.
ik kreeg het niet aan de praat, heb nu wat aangepast en het werkt nu wel idd
thx anyway
quote:
Waarom gebruik je trouwens frames? Dat menuutje kan je dank zij serverside scripting eenvoudig op elke pagina terug laten komen.
waarom frames?? omdat ik zelf niet zo'n superheld in php ben om dat zo telkens terug te krijgen...

en waar het voor gaat dienen is het perfect hoor , kijk maar naar de layout das kaal zwart op wit, het hoeft niks fancy te zijn, het moet functioneel zijn
Swetseneggermaandag 28 maart 2005 @ 17:26
Iemand ervaring met visabetalingen via inet?
Zoja... wat heb ik nodig? secure connectie neem ik aan. Moet men een speciaal 'inet' contract hebben met visa, of kan het ook met de bestaande 'conventionele' overeenkomst?

en last but not least. scriptwise nog ergens rekening mee houden?
Roonaanmaandag 28 maart 2005 @ 17:29
Misschien paypal nemen? Kan je ook CC betalingen mee laten plaatsvinden.
mscholmaandag 28 maart 2005 @ 18:52
quote:
Op maandag 28 maart 2005 17:26 schreef Swetsenegger het volgende:
Iemand ervaring met visabetalingen via inet?
Zoja... wat heb ik nodig? secure connectie neem ik aan. Moet men een speciaal 'inet' contract hebben met visa, of kan het ook met de bestaande 'conventionele' overeenkomst?

en last but not least. scriptwise nog ergens rekening mee houden?
m,e broer heeft er een voor mastercard ofzo...

je moet je aanmelden dat je creditcard betalingen wil doen via internet, je krijgt een url en daar kan je bepaalde variable naar toe sturen...

meer weet ik jammer genoeg niet...
achterop23maandag 28 maart 2005 @ 22:28
waarom krijg ik hier niet een getal (moet zijn 12) maar het volgende: Resource id #2

1
2
3
4
5
6
$query = "SELECT MAX( registerid ) FROM register" or die(mysql_error()); 

$resultaat = mysql_query($query) or die(mysql_error());
//$record = mysql_fetch_assoc($resultaat);
//$id=$record+1; 
print $resultaat;


Als ik direct op de mysql database de selectstatement uitvoer is er niets aan de hand.
Swetseneggermaandag 28 maart 2005 @ 22:43
quote:
Op maandag 28 maart 2005 22:28 schreef achterop23 het volgende:
waarom krijg ik hier niet een getal (moet zijn 12) maar het volgende: Resource id #2
[ code verwijderd ]

Als ik direct op de mysql database de selectstatement uitvoer is er niets aan de hand.
waarom heb je je mysql_fetch_assoc regel in commentaar staan?

1
2
3
4
<?php
//$record = mysql_fetch_assoc($resultaat);
//$id=$record+1;
?>


-edit- jeetje, het is helemaal een zooitje.
$result=mysql_query($query); kan je niet gewoon op het scherm afdrukken. Volgens mij wil je die max id hebben toch?

1
2
3
4
5
6
7
<?php
$query
= "SELECT MAX( registerid ) FROM register" or die(mysql_error());
$resultaat = mysql_query($query) or die(mysql_error());
$rij= mysql_fetch_assoc($resultaat);
$id="".$rij['registerid']."";
echo
$id;
?>


[ Bericht 21% gewijzigd door Swetsenegger op 28-03-2005 22:53:38 ]
achterop23maandag 28 maart 2005 @ 22:49
het bij mij altijd een zootje
ook in mijn php (mijn 2e dag dat ik bezig ben , ben een portal aan het maken zodat iemand zijn site gemakkelijker kan updaten en niet word in frontpage plakt wat een brei aan bagger creeert.)

thanks!

[ Bericht 74% gewijzigd door achterop23 op 28-03-2005 22:55:07 ]
Swetseneggermaandag 28 maart 2005 @ 22:53
zie hier boven
achterop23maandag 28 maart 2005 @ 23:01
hmm, heb in phpmyadmin de id op auto_increment gezet.
nu insert ik gewoon direct zonder naar de id om te kijken

(of is dit fout gevoelig)
sv3nmaandag 28 maart 2005 @ 23:05
ik ben bezig met de mogelijkheden van php OO (object georienteerd) uit te proberen, maar het werkt nog niet echt lekker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
include ("config.php");  //database connectie
$admin = new Admin(); //maakt nieuw object
if (($admin-&gt;magPersoonToevoegen("Sven2", "test@test.nl") == 1) {
        
$admin-&gt;voegPersoonToe("Sven2", "blaaT", "test@test.nl");
} else {
    echo
"Email of gbruikersnaam niet juist";
}



    
    
    class
Admin {
        
        function
voegPersoonToe($naam, $pass, $email) {
            
$md5_pass = md5($pass);
            
$status = 1;
            
$arraymaand = array("Januari","Februari","Maart","April",  
            
"Mei","Juni", "Juli","Augustus","September","Oktober",  
            
"November","December");  
            
$datum = date("j ") . $arraymaand[date(" n") - 1] . date(" Y");
                
$query = mysql_query("SELECT * FROM login WHERE gebruikersnaam = '$naam'");   
                
$results = mysql_num_rows($query);   
                if (
$results &lt; 1) {
                        if (
preg_match("/(?i)^([a-z0-9._-])+@([a-z0-9.-])+\.([a-z0-9]){2,4}$/",$email)) {
                                
mysql_query("INSERT INTO login (gebruikersnaam, wachtwoord, email, status, regdatum) VALUES ('$naam','$md5_pass','$email', '$status' , '$datum' )") or die (mysql_error());
                                echo
"Je profiel is aangemaakt";
                        }
                }
        }
        
        function
magPersoonToevoegen($naam, $email){
                
$toegestaan1 = 0;
                
$toegestaan2 = 0;

                
$query = mysql_query("SELECT * FROM login WHERE gebruikersnaam = '$naam'");   
                
$results = mysql_num_rows($query);
                    if (
$results &lt; 1) {
                        
$toegestaan1 = 0.7;
                    }
                if (
preg_match("/(?i)^([a-z0-9._-])+@([a-z0-9.-])+\.([a-z0-9]){2,4}$/",$email)) {
                        
$toegestaan2 = 0.3;
                }
                return (
toegestaan1 + $toegestaan2);
        }

}
?>


beide functies werken afzonderlijke prima, maar als ik de volgende code probeer uit te voeren:

1
2
3
4
5
6
7
<?php
if (($admin-&gt;magPersoonToevoegen("Sven2", "test@test.nl") == 1) {
        
$admin-&gt;voegPersoonToe("Sven2", "blaaT", "test@test.nl");
} else {
    echo
"Email of gbruikersnaam niet juist";
}
?>


dan word er niet eens een nieuw object gemaakt

ik snap er echt niks van want ik zie echt niet wat er nou fout is aan de code


(ik zie dat het forum mijn pijltjes (>) verandert in >)
Swetseneggermaandag 28 maart 2005 @ 23:07
quote:
Op maandag 28 maart 2005 23:01 schreef achterop23 het volgende:
hmm, heb in phpmyadmin de id op auto_increment gezet.
nu insert ik gewoon direct zonder naar de id om te kijken

(of is dit fout gevoelig)
eh nee, dat moet je eigenlijk altijd doen. waarom zou je handmatig id's gaan ophogen?
zeker omdat DAT foutgevoelig is, want wat gebeurt er wanneer een record verwijderd wordt...

(dan zou een link bijvoorbeeld opeens naar een heel ander record kunnen gaan verwijzen dan dat je wilt)
Swetseneggermaandag 28 maart 2005 @ 23:09
quote:
Op maandag 28 maart 2005 23:05 schreef sv3n het volgende:
(ik zie dat het forum mijn pijltjes (>) verandert in >)
bug in de [ php ] tag... gebruik [ code ]

Verder weet ik niets van OO dus kan je niet helpen.
sv3nmaandag 28 maart 2005 @ 23:14
quote:
Op maandag 28 maart 2005 23:07 schreef Swetsenegger het volgende:

[..]

eh nee, dat moet je eigenlijk altijd doen. waarom zou je handmatig id's gaan ophogen?
zeker omdat DAT foutgevoelig is, want wat gebeurt er wanneer een record verwijderd wordt...

(dan zou een link bijvoorbeeld opeens naar een heel ander record kunnen gaan verwijzen dan dat je wilt)
het beste is om id's zo veel mogelijk te vermijden en alleen te gebruiken als er geen andere goede indetificatie mogelijk is, ik hou me daar ook niet altijd aan, omdat het soms makkelijk is
SuperRembomaandag 28 maart 2005 @ 23:24
quote:
Op maandag 28 maart 2005 23:14 schreef sv3n het volgende:

[..]

het beste is om id's zo veel mogelijk te vermijden en alleen te gebruiken als er geen andere goede indetificatie mogelijk is, ik hou me daar ook niet altijd aan, omdat het soms makkelijk is
Huh? ID's vermijden? Waarom dat?
Iedere row moet een unieke identificatie hebben. Daar zijn autoincement kolommen heel handig voor. Practisch elke tabel krijgt van mij een autoincement id kolom. Uitzonderingen zijn bijvoorbeeld koppeltabellen met een unieke combi van 2 foreign keys.
sv3nmaandag 28 maart 2005 @ 23:32
quote:
Op maandag 28 maart 2005 23:24 schreef SuperRembo het volgende:

[..]

Huh? ID's vermijden? Waarom dat?
Iedere row moet een unieke identificatie hebben. Daar zijn autoincement kolommen heel handig voor. Practisch elke tabel krijgt van mij een autoincement id kolom. Uitzonderingen zijn bijvoorbeeld koppeltabellen met een unieke combi van 2 foreign keys.
als jij je probleem netjes analyseert en een igd omzet naar een relationeel database modnel zul je zien dat er bijna altijd ee andere indentificatie mogelijk is (dan een numerieke), het vermijden van autoincrement is om logischere structuren in je database te krijgen en om deze leesbaarder te houden, er zijn nog wel meer redenen maar die zou ik ff moeten nazoeken
SuperRembodinsdag 29 maart 2005 @ 00:01
Juist om je database structuur leesbaar te houden is het handig om een betekenisloos nummertje te hebben om tabellen mee aan elkaar te knopen.
achterop23dinsdag 29 maart 2005 @ 00:21
quote:
Op dinsdag 29 maart 2005 00:01 schreef SuperRembo het volgende:
Juist om je database structuur leesbaar te houden is het handig om een betekenisloos nummertje te hebben om tabellen mee aan elkaar te knopen.
check.
ik zal btw mijn uiteindelijke resultaat aan het einde van de week wel even online zetten.
Heliospandinsdag 29 maart 2005 @ 08:36
Ik heb op deze pagina wat grafische statistieken van de server die het luistergedrag verwerkt (even klikken en je snapt wat ik bedoel). De eerste afbeelding ziet er zo uit:



De waarden aan de rechterkant zijn gebaseerd op het maximum aantal inkomende nummers per dag, de laatste week. Hoe vind ik bij dat getal het dichtstbijzijnde 50- of 100tal? Zoals je ziet is het een beetje vervelend lezen en moeilijk af te leiden hoeveel er op de dagen beluisterd is (ook al kan ik dat met een tekstje er bij zetten). Op het moment van typen is het hoogste getal 783. Hoe krijg ik dat 'afgerond' op 800?

Na een nacht ongeveer niet slapen ben ik een beetje aan het vastroesten qua oplossingen vinden
Heliospandinsdag 29 maart 2005 @ 09:03
Nu ik dit zo lees bedenk ik me een mogelijke oplossing; gewoon de honderdtallen +1 doen en de tien/een-tallen op 0 zetten. Alleen wordt de integer dan omgezet in een string, dat vind ik een beetje ranzig programmeren Is er een commando als round() voor?
ViPeRIIdinsdag 29 maart 2005 @ 09:37
$y = int ($x)
sylvesterrrdinsdag 29 maart 2005 @ 09:43
http://fok.skewl.net/test/DIG/679879/1.php?inp=274&type=ceil
http://fok.skewl.net/test/DIG/679879/1.php?inp=274&type=round
http://fok.skewl.net/test/DIG/679879/1.phps
Heliospandinsdag 29 maart 2005 @ 09:43
quote:
Op dinsdag 29 maart 2005 09:37 schreef ViPeRII het volgende:
$y = int ($x)
Iets beter lezen
Bedankt sylvesterr!
ViPeRIIdinsdag 29 maart 2005 @ 09:44
@heliospan:

Maak een functie aan die kijkt of het getal groter of kleiner is dan b.v. 50 49 = 700 en 751 = 800
En gebruik dan de functies:

$x ceil ($x);
voor naarboven af te ronden, en
$x = floor($x) om naar benden af te ronden!
ViPeRIIdinsdag 29 maart 2005 @ 09:44
te laat sorry
Daarnaast was dat om de string weer om te zetten in een integer helio
Heliospandinsdag 29 maart 2005 @ 09:45
quote:
Op dinsdag 29 maart 2005 09:44 schreef ViPeRII het volgende:
te laat sorry
Alle hulp is welkom
SuperRembodinsdag 29 maart 2005 @ 12:40
Afronden op 50-tallen doe je toch gewoon zo:

1$y = 50 * round($x / 50);
sylvesterrrdinsdag 29 maart 2005 @ 15:42
quote:
Op dinsdag 29 maart 2005 12:40 schreef SuperRembo het volgende:
Afronden op 50-tallen doe je toch gewoon zo:
[ code verwijderd ]
Heb je op de linkjes in mijn post geklikt?
SuperRembodinsdag 29 maart 2005 @ 16:01
quote:
Op dinsdag 29 maart 2005 15:42 schreef sylvesterrr het volgende:

[..]

Heb je op de linkjes in mijn post geklikt?
Nee.
Nu wel. Je wil toch niet zeggen dat je voor zo iets basics een speciaal testscriptje hebt gemaakt?
sylvesterrrdinsdag 29 maart 2005 @ 16:04
quote:
Op dinsdag 29 maart 2005 16:01 schreef SuperRembo het volgende:

[..]
Je wil toch niet zeggen dat je voor zo iets basics een speciaal testscriptje hebt gemaakt?
1 2 minuten werk.
achterop23dinsdag 29 maart 2005 @ 18:09
hoe zorg ik hiervoor?
ik heb de volgende 2 variabelen
$rij['registerj1'] en $jaar
de 1 in j1 staat voor het jaar. Er is ook j2, j3, j4 etc.

Hoe zorg ik ervoor dat als $jaar=1 $rij['registerj1'] wordt gebruikt en hetzelfde voor $jaar=2 en j2.

KAn ik iets maken als: $rij['registerj+$jaar+']
sylvesterrrdinsdag 29 maart 2005 @ 18:58
1$rij['registerj' . $jaar]
achterop23dinsdag 29 maart 2005 @ 21:57
Volgende sorteert een lijst met mensen naar aantalkeer dat ze iets gedaan hebben.
Alleen wil ik dat mensen die iets 3 keer gedaan hebben ook in de lijst met 2 en 1 keer iets gedaan te hebben staan.
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
$query = "SELECT * FROM register ORDER BY registeraantal" or die(mysql_error()); 

$resultaat = mysql_query($query) or die(mysql_error()); 
$huidigaantal = 0;
while (($rij = mysql_fetch_assoc($resultaat))){
   if ($rij['registeraantal'] != $huidigaantal) {
      if ($huidigaantal>0) {
         // sluit tabel
         echo "</tr></table>\n<BR><BR>";
      }
      // begin nieuwe tabel
      $huidigaantal = $rij['registeraantal'];
      $nummer = 0;
      print "<a name=".$huidigaantal."><h3>".$huidigaantal." keer gefietst</h3>\n</a><BR><BR>";
      echo '<table width="60%" align="center" bgcolor="#CCCCCC" border="1/2" bordercolor="#FFFFFF">';
      echo '<tr><th>nummer</th><th>jaar</th><th>geslacht</th><th>naam</th><th>plaats</th><th>club</th></tr>';
   }
   $nummer++;
   $jaar=$rij['registeraantal'];
   echo '<tr>';
   echo '<td>'.$nummer.'</td>';
   echo '<td>'.$rij['registerj'.$jaar].'</td>';   
   echo '<td>'.$rij['registermv'].'</td>';
   echo '<td>'.$rij['registernaam'].'</td>';
   echo '<td>'.$rij['registerplaats'].'</td>';
   echo '<td>'.$rij['registerclub'].'</td>';
   echo "<tr>\n";
}
?>
Chandlerdinsdag 29 maart 2005 @ 22:19
tvp.
ikke_ookdinsdag 29 maart 2005 @ 22:19
Hoe kan ik het snelst checken (in bijvoorbeeld een forum) of een bepaalde post van iemand is met een query?
Dus ik heb een userid, en een postid, en nu wil ik kijken of het postid door het userid is gepost.
Ik weet wel hoe het kan, maar ik ben beniewd hoe je dat t snelst/netst oplost
ikke_ookdinsdag 29 maart 2005 @ 22:29
Dat zal niet meevallen op deze manier achterop23... Je zit namelijk met het probleem dat je sorteert op het aantal keren gefietst. En je sluit de tabel af als je iedereen hebt gehad die 1x heeft gefietst.
Nu kun je natuurlijk zeggen dat iedereen die 1x of meer heeft gefietst je in tabel 1 zet, maar op t moment dat je dan bij 2x gefietst aankomt is je mysql_fetch_array gestopt, de while loop zal dan gestopt zijn.

Hoe je dat op kunt lossen kan ik zo even niet bedenken, maar ik zou geloof ik een nieuw array aanmaken waar je alle rijen in zet met het aantal keren dat ze gefietst hebben. En dan aan de hand van dat array een tabel maken..
achterop23dinsdag 29 maart 2005 @ 22:32
hmm, dan zal ik mij eens verdiepen in het werken met array's.
thanks. ik wist al wel dat het geen makkie zou zijn, heb er een uurtje of wat op dood zitten staren.
Swetseneggerdinsdag 29 maart 2005 @ 22:34
quote:
Op dinsdag 29 maart 2005 22:19 schreef ikke_ook het volgende:
Hoe kan ik het snelst checken (in bijvoorbeeld een forum) of een bepaalde post van iemand is met een query?
Dus ik heb een userid, en een postid, en nu wil ik kijken of het postid door het userid is gepost.
Ik weet wel hoe het kan, maar ik ben beniewd hoe je dat t snelst/netst oplost
SELECT postid FROM table WHERE userid=userid

geen resultaat betekent dat de post niet door de user geplaatst is.
Swetseneggerdinsdag 29 maart 2005 @ 22:37
quote:
Op dinsdag 29 maart 2005 22:32 schreef achterop23 het volgende:
hmm, dan zal ik mij eens verdiepen in het werken met array's.
thanks. ik wist al wel dat het geen makkie zou zijn, heb er een uurtje of wat op dood zitten staren.
je kan toch gewoon een where clausule nemen WHERE aantalkeer >=1

Uit je verhaal berijgp ik tenminste dat het niet boeit of ze vaker gefietst hebben, je wil alleen weten of ze 1 of meer keer gefietst hebben toch?
ikke_ookdinsdag 29 maart 2005 @ 22:42
quote:
Op dinsdag 29 maart 2005 22:34 schreef Swetsenegger het volgende:

[..]

SELECT postid FROM table WHERE userid=userid

geen resultaat betekent dat de post niet door de user geplaatst is.
Dat zou ook mijn oplossing zijn geweest Maar er is dus geen leuk mysql iets wat dat efficienter kan?
Swetseneggerdinsdag 29 maart 2005 @ 22:45
quote:
Op dinsdag 29 maart 2005 22:42 schreef ikke_ook het volgende:

[..]

Dat zou ook mijn oplossing zijn geweest Maar er is dus geen leuk mysql iets wat dat efficienter kan?
1
2
3
4
5
6
7
<?php
$query
='SELECT postid FROM table WHERE userid=userid';
$result=mysql_query($query);
if(
mysql_num_rows($result) != 0){
//doe iets
}
?>

wat is hier mis mee?
DutchBlooddinsdag 29 maart 2005 @ 23:01
-edit-

[ Bericht 98% gewijzigd door DutchBlood op 30-03-2005 15:33:54 ]
Lightdinsdag 29 maart 2005 @ 23:02
quote:
Op dinsdag 29 maart 2005 22:42 schreef ikke_ook het volgende:

[..]

Dat zou ook mijn oplossing zijn geweest Maar er is dus geen leuk mysql iets wat dat efficienter kan?
1select count(*) from table where postid=postid and userid=userid

Wat efficienter is weet ik niet, maar 't is wel een alternatief.
ikke_ookdinsdag 29 maart 2005 @ 23:03
quote:
Op dinsdag 29 maart 2005 23:01 schreef DutchBlood het volgende:

[..]

Maak je wel verbinding met de database?

Echo $result en mysql_num_rows($result) anders eens.
hoho rustig aan Het werkt perfect hoor
Ik vroeg me alleen af of het ook anders kon, dit kost namelijk weer 3 regels code
Maar ik zal t maar zo doen dan als jullie t zeggen
achterop23woensdag 30 maart 2005 @ 09:58
Weet iemand een iets meer betrouwbare webspace die php/mysql ondersteunt?
Lycos heeft me iets teveel banners
100webspace is meerdere keren per dag down.

Weet iemand iets?
Swetseneggerwoensdag 30 maart 2005 @ 10:28
quote:
Op woensdag 30 maart 2005 09:58 schreef achterop23 het volgende:
Weet iemand een iets meer betrouwbare webspace die php/mysql ondersteunt?
Lycos heeft me iets teveel banners
100webspace is meerdere keren per dag down.

Weet iemand iets?
www.topXS.nl
controlpanel, subdomeinen, mysql, php, 5pop's
10MB space plus 1GB bandwidth 4,50/maand

Weinig virtuele domeinen per machine, dus snel
sabanwoensdag 30 maart 2005 @ 11:31
quote:
Op woensdag 30 maart 2005 09:58 schreef achterop23 het volgende:
Weet iemand een iets meer betrouwbare webspace die php/mysql ondersteunt?
Lycos heeft me iets teveel banners
100webspace is meerdere keren per dag down.

Weet iemand iets?
mihosnet.com
Heb je 4GB dataverkeerd en 100MB space.
50,- per jaar inclusief domein

maarja, verder ontopic, er zijn genoeg topics over webhosters
sv3nwoensdag 30 maart 2005 @ 17:27
quote:
Op dinsdag 29 maart 2005 00:01 schreef SuperRembo het volgende:
Juist om je database structuur leesbaar te houden is het handig om een betekenisloos nummertje te hebben om tabellen mee aan elkaar te knopen.
nou dan geloof je me toch niet, ik heb t echt niet zelf bedacht, maar mijn leraren informatieanalyse en het is meerdere keren gezegd bij een college over databases, msschien dat je het nu gelooft
ikke_ookwoensdag 30 maart 2005 @ 17:49
quote:
Op woensdag 30 maart 2005 17:27 schreef sv3n het volgende:

[..]

nou dan geloof je me toch niet, ik heb t echt niet zelf bedacht, maar mijn leraren informatieanalyse en het is meerdere keren gezegd bij een college over databases, msschien dat je het nu gelooft
Hoe dacht je rijen uniek te houden dan? Dat kun je toch het makkelijkst doen door middel van een autoincrement number lijkt mij. Of hoef je de rijen ook niet uniek te houden?
SuperRembowoensdag 30 maart 2005 @ 18:09
quote:
Op woensdag 30 maart 2005 17:27 schreef sv3n het volgende:

[..]

nou dan geloof je me toch niet, ik heb t echt niet zelf bedacht, maar mijn leraren informatieanalyse en het is meerdere keren gezegd bij een college over databases, msschien dat je het nu gelooft
Neem een tabel met relaties. Je zou kunnen stellen dat de naam uniek moet zijn. Die zou je dan als primary key kunnen gebruiken. Misschien overzichtelijk, maar erg onhandig als je de naam wil veranderen. Bovendien heb je dan een varchar key, dat lijkt me niet bevorderlijk voor de snelheid.
Je zou er ook voor kunnen kiezen dat de gebruiker een unieke code aan de relatie moet geven, maar ik zie in de praktijk dat gebruikers daar niet van houden.

Zie ik dit nou verkeerd? Hoe zou jij dit oplossen, of heb je een beter voorbeeld om je punt duidelijk te maken.
quote:
Op maandag 28 maart 2005 23:32 schreef sv3n het volgende:
[..] het vermijden van autoincrement is om logischere structuren in je database te krijgen en om deze leesbaarder te houden, er zijn nog wel meer redenen maar die zou ik ff moeten nazoeken
Zou je ff willen zoeken, ik ben nog niet overtuigd.
ikke_ookwoensdag 30 maart 2005 @ 19:51
Ik gebruik het volgende in een functie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$hoofd = <<<EOF
         <table class=hoofd cellPadding=5px>
            <tr>
               <td class="caption1">test</td>
            </tr>
            <tr>   
               <td class="tablebody">
                   Wijziging is doorgevoerd, u wordt teruggestuurd naar de 
hoofdpagina.
                  <script type="text/javascript">setTimeout("top.location.href
 ='http://www.vogelaars.nl' ",3000);</script>
               </td>
            </tr>
         </table>
EOF;

Ik gebruik dit wel vaker, en meestal werkt het ook. Alleen soms geeft het de volgende error :

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'

Hoe komt dat?Ligt dat aan de plaats waar het staat?
SuperRembowoensdag 30 maart 2005 @ 20:38
Er mag niets anders op de EOF regel staan:
quote:
It is very important to note that the line with the closing identifier contains no other characters, except possibly a semicolon (;). That means especially that the identifier may not be indented, and there may not be any spaces or tabs after or before the semicolon. It's also important to realize that the first character before the closing identifier must be a newline as defined by your operating system. This is \r on Macintosh for example.

If this rule is broken and the closing identifier is not "clean" then it's not considered to be a closing identifier and PHP will continue looking for one. If in this case a proper closing identifier is not found then a parse error will result with the line number being at the end of the script.
bron
Swetseneggerwoensdag 30 maart 2005 @ 20:57
Wat is nu de makkelijkste manier om een unieke naam te genereren.
Ik heb dus files waarvan de naam in de tabel staan (gekoppeld aan andere gegevens).
Die files moeten allemaal een unieke naam hebben, want anders zou het voor kunnen komen dat de gebruiker twee verschillende files met dezelfde naam upload.

Uiteraard heb ik later die naam weer nodig wanneer de record gewijzigd wordt of gedelete.

Ik zat al te denken om het simpelweg met id op te vangen, maar dat betekent bij elke handeling twee queries (eerst om het huidige hoogste ID te vinden en vervolgens om de verandering in de tabel door te voeren)

Iemand een beter idee?
ikke_ookwoensdag 30 maart 2005 @ 21:08
Maar dan doe ik toch niks fout in mijn code?
Lightwoensdag 30 maart 2005 @ 21:30
quote:
Op woensdag 30 maart 2005 20:57 schreef Swetsenegger het volgende:

Ik zat al te denken om het simpelweg met id op te vangen, maar dat betekent bij elke handeling twee queries (eerst om het huidige hoogste ID te vinden en vervolgens om de verandering in de tabel door te voeren)
ID op auto-increment zetten? Met mysql_insert_id kun je naderhand nagaan welk ID is ingevoegd.
SuperRembowoensdag 30 maart 2005 @ 21:30
quote:
Op woensdag 30 maart 2005 21:08 schreef ikke_ook het volgende:
Maar dan doe ik toch niks fout in mijn code?
Misschien een spatie of tab te veel?
SuperRembowoensdag 30 maart 2005 @ 21:33
quote:
Op woensdag 30 maart 2005 20:57 schreef Swetsenegger het volgende:
Wat is nu de makkelijkste manier om een unieke naam te genereren.
Ik heb dus files waarvan de naam in de tabel staan (gekoppeld aan andere gegevens).
Die files moeten allemaal een unieke naam hebben, want anders zou het voor kunnen komen dat de gebruiker twee verschillende files met dezelfde naam upload.

Uiteraard heb ik later die naam weer nodig wanneer de record gewijzigd wordt of gedelete.

Ik zat al te denken om het simpelweg met id op te vangen, maar dat betekent bij elke handeling twee queries (eerst om het huidige hoogste ID te vinden en vervolgens om de verandering in de tabel door te voeren)

Iemand een beter idee?
Als je later de originele bestandsnaam nog wil gebruiken, dan ontkom je er eigenlijk niet aan om de originele bestandsnaam en de uniek gemaakte bastandsnaam op te laan in de database.

Zo'n unieke bestandsnaam kan je natuurlijk op verschillende manieren maken:
- op basis van de autoincrement id (jaja sv3n )
- op basis van uniqid()
- zelf een random string maken (md5 misschien?)
- een volgnummer toevoegen indien de bestandsnaam al bestaat
ikke_ookwoensdag 30 maart 2005 @ 22:11
Lijkt me best een goede oplossing Swets.

-edit-
pffffffff Dit bericht had er een uur geleden al moeten staan...
Swetseneggerwoensdag 30 maart 2005 @ 22:18
quote:
Op woensdag 30 maart 2005 21:33 schreef SuperRembo het volgende:

[..]

Als je later de originele bestandsnaam nog wil gebruiken, dan ontkom je er eigenlijk niet aan om de originele bestandsnaam en de uniek gemaakte bastandsnaam op te laan in de database.
Neenee, ik hoef de naam later niet te gebruiken. Ik bedoel wanneer iemand een record edit en een nieuw bestand upload moet deze dezelfde naam krijgen als het eerdere bestand.
quote:
Zo'n unieke bestandsnaam kan je natuurlijk op verschillende manieren maken:
- op basis van de autoincrement id (jaja sv3n )


Gewoon MAX(id) uit de database trekken en er 1 bij optellen denk ik dan?
quote:
- op basis van uniqid()
Dit is op basis van microtime zie ik in de manual. Dit is dus altijd uniek. Hmz, dat is het makkelijkst denk ik
[/quote]
Swetseneggerwoensdag 30 maart 2005 @ 22:20
quote:
Op woensdag 30 maart 2005 21:30 schreef Light het volgende:

[..]

ID op auto-increment zetten? Met mysql_insert_id kun je naderhand nagaan welk ID is ingevoegd.
Deze kon ik nog niet ?
SuperRembowoensdag 30 maart 2005 @ 22:40
quote:
Op woensdag 30 maart 2005 22:18 schreef Swetsenegger het volgende:

Gewoon MAX(id) uit de database trekken en er 1 bij optellen denk ik dan?
Dan kan mis gaan als meerdere gebruikers tegelijk uploaden.
Beter is om eerst een record te inserten en dan met mysql_insert_id de nieuwe id op te vragen (zoals ikke_ook Light al zei). Dat betekent wel dat je de nieuwe naam pas weet nadat je het record opgeslagen hebt. Daarom gebruik ik zelf ook uniqid().
Swetseneggerwoensdag 30 maart 2005 @ 22:45
Simpel edoch doeltreffend

1
2
3
4
5
6
<?php
$thumb
="../occassion/thumb/";
$unique=uniqid('');
$new_name="{$thumb}{$unique}.jpg";
echo
$new_name;
?>
achterop23woensdag 30 maart 2005 @ 22:53
Welke type moet in mijn mysql database een veld hebben die decimale getallen heeft?
varchar is leuk, maar dan kan ik niet sorteren op die waarde.

en moet het met komma's of met punten zijn (45,67 of 45.67)
Swetseneggerwoensdag 30 maart 2005 @ 22:55
quote:
Op woensdag 30 maart 2005 22:53 schreef achterop23 het volgende:
Welke type moet in mijn mysql database een veld hebben die decimale getallen heeft?
varchar is leuk, maar dan kan ik niet sorteren op die waarde.

en moet het met komma's of met punten zijn (45,67 of 45.67)
DECIMAL(7,2)
in dit geval mag het 7 getallen bevatten en twee achter de komma (achter de komma wordt niet bij die 7 gerekend)

DECIMAL gaat uit van een . als scheidingsteken. wil je ze alletwee kunnen invoeren zal je de komma's in php moeten omzetten naar punten en bij het uitlezen weer terug zetten naar komma's.
En er is nog zoiets als FLOAT en DOUBLE enzo, maar daar heb ik nog niets mee gedaan afgelopen jaar
achterop23woensdag 30 maart 2005 @ 23:09
quote:
Op woensdag 30 maart 2005 22:55 schreef Swetsenegger het volgende:

[..]

DECIMAL(7,2)
in dit geval mag het 7 getallen bevatten en twee achter de komma (achter de komma wordt niet bij die 7 gerekend)

DECIMAL gaat uit van een . als scheidingsteken. wil je ze alletwee kunnen invoeren zal je de komma's in php moeten omzetten naar punten en bij het uitlezen weer terug zetten naar komma's.
En er is nog zoiets als FLOAT en DOUBLE enzo, maar daar heb ik nog niets mee gedaan afgelopen jaar
thanks
ikke_ookwoensdag 30 maart 2005 @ 23:28
handige functie dat uniquid zeg... daar hadden jullie wel eerder mee mogen komen
Heliospanwoensdag 30 maart 2005 @ 23:32
Je kan iets randoms genereren:

1
2
3
4
$charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
for ($i=0; $i<10; $i++) $key .= $charset[(mt_rand(0,(strlen($charset)-1)))];

echo $key;


En om de originele extensie te behouden:

1$key .= strtolower(substr($filename, strrpos($filename, '.') + 1));


-edit-
verkeerde pagina gekeken
sabandonderdag 31 maart 2005 @ 12:20
Ik md5 de lokale tijd (kan in milli/micro seconden) en lees de eerste 6 tekens ervan uit.
Zo maak ik mijn random string.
achterop23donderdag 31 maart 2005 @ 13:59
stel ik heb 3 tekstvelden onderelkaar
de 1e en 2e worden ingevuld
de 3e is een readonly en wordt ingevuld nadat 1 en 2 ingevuld zijn
(de 3e wordt berekend a.d.h.v. de 1e en 2e).
Is dit mogelijk?
Er moet dus een functie worden uitgevoerd nadat de 2e is ingevuld.
sabandonderdag 31 maart 2005 @ 14:01
quote:
Op donderdag 31 maart 2005 13:59 schreef achterop23 het volgende:
stel ik heb 3 tekstvelden onderelkaar
de 1e en 2e worden ingevuld
de 3e is een readonly en wordt ingevuld nadat 1 en 2 ingevuld zijn
(de 3e wordt berekend a.d.h.v. de 1e en 2e).
Is dit mogelijk?
Er moet dus een functie worden uitgevoerd nadat de 2e is ingevuld.
Is dat geen JS Hoort niet bij PHP/MYSQL thuis dacht ik zo.
achterop23donderdag 31 maart 2005 @ 14:12
Hmm, je hebt gelijk volgens mij
(niet dat nu zou weten hoe het in javascript moet)
Swetseneggerdonderdag 31 maart 2005 @ 14:17
relatime kan het inderdaad alleen met clientside scripting.
Anders moet je een submit doen, uitrekenen en vervolgens de info tonen
Darkomendonderdag 31 maart 2005 @ 14:24
Ik probeer een aantal ids te selecteren maar de ids mogen niet in de array die ik opgeef maar het klopt duidelijk niet. het gaat dus om "uid<>in(0,1)"

SELECT DISTINCT(uid) FROM ppg_images WHERE active='1' AND uid<>in(0,1) LIMIT 9
Heliospandonderdag 31 maart 2005 @ 15:14
Weet je zeker dat dit een PHP-kwestie is? Klinkt meer als javascript.
(als het javascript is, kun je het derde vakje de DISABLED waarde meegeven, <input type="text" disabled> en bij de eerste twee toevoegen onChange='bereken();' doen, bijvoorbeeld, waarin gecheckt wordt of de eerste twee textfields ingevuld zijn, en zo ja wat berekeningen worden gemaakt en aan het derde veld worden meegegeven)

-edit-
wat is er mis met fok? waarom zie ik steeds alle nieuwe reacties niet?
Darkomendonderdag 31 maart 2005 @ 15:46
quote:
Op donderdag 31 maart 2005 14:01 schreef saban het volgende:

[..]

Is dat geen JS Hoort niet bij PHP/MYSQL thuis dacht ik zo.
Kan idd in javascript.
php en mysql.... ja zou ik niet doen.
Darkomendonderdag 31 maart 2005 @ 21:51
quote:
Op donderdag 31 maart 2005 14:24 schreef Darkomen het volgende:
Ik probeer een aantal ids te selecteren maar de ids mogen niet in de array die ik opgeef maar het klopt duidelijk niet. het gaat dus om "uid<>in(0,1)"

SELECT DISTINCT(uid) FROM ppg_images WHERE active='1' AND uid<>in(0,1) LIMIT 9
IEmand?
sylvesterrrdonderdag 31 maart 2005 @ 21:57
quote:
Op donderdag 31 maart 2005 14:24 schreef Darkomen het volgende:
Ik probeer een aantal ids te selecteren maar de ids mogen niet in de array die ik opgeef maar het klopt duidelijk niet. het gaat dus om "uid<>in(0,1)"

SELECT DISTINCT(uid) FROM ppg_images WHERE active='1' AND uid<>in(0,1) LIMIT 9
http://www.webdevelopersn(...)_in_and_between.php3
quote:
Suffixing NOT to IN will display data that is NOT found IN the condition. The following lists employees who hold titles other than Programmer and Marketing Executive.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SELECT f_name, l_name, title from
    -> employee_data where title NOT IN
    -> ('Programmer', 'Marketing Executive');

+---------+----------+----------------------------+
| f_name  | l_name   | title                      |
+---------+----------+----------------------------+
| Manish  | Sharma   | CEO                        |
| John    | Hagan    | Senior Programmer          |
| Ganesh  | Pillai   | Senior Programmer          |
| Anamika | Pandit   | Web Designer               |
| Mary    | Anchor   | Web Designer               |
| Hassan  | Rajabi   | Multimedia Programmer      |
| Paul    | Simon    | Multimedia Programmer      |
| Arthur  | Hoopla   | Multimedia Programmer      |
| Kim     | Hunter   | Senior Web Designer        |
| Roger   | Lewis    | System Administrator       |
| Danny   | Gibson   | System Administrator       |
| Mike    | Harper   | Senior Marketing Executive |
| Shahida | Ali      | Customer Service Manager   |
| Peter   | Champion | Finance Manager            |
+---------+----------+----------------------------+
14 rows in set (0.00 sec)
Darkomendonderdag 31 maart 2005 @ 22:15
quote:
Op donderdag 31 maart 2005 21:57 schreef sylvesterrr het volgende:

[..]

http://www.webdevelopersn(...)_in_and_between.php3
[..]
[ code verwijderd ]
Best logisch weer
Bedankt, ik zocht een goede site waar de syntaxen goed werden uitgelegt.
mscholdonderdag 31 maart 2005 @ 22:18
quote:
Op woensdag 30 maart 2005 17:27 schreef sv3n het volgende:

[..]

nou dan geloof je me toch niet, ik heb t echt niet zelf bedacht, maar mijn leraren informatieanalyse en het is meerdere keren gezegd bij een college over databases, msschien dat je het nu gelooft
mij hebben ze ook geleerd om bij rationele databases altijd een uniek Indentificatie nummertje te hebben omdat je dan altijd alles goed kan aanroepen. zoals met relaties, alles koppelen m.b.v. ID's
the_disheavervrijdag 1 april 2005 @ 05:38
simpel vraag, maar weet niet echt waar ik zoeken moet...

Ik heb een script, en aan het einde van het script (schrijft data op bestand) moet hij naar een volgende pagina gaan. Welke functie gebruik je er voor?
SuperRembovrijdag 1 april 2005 @ 07:06
1
2
3
4
header("Location: http://www.example.com/"); /* Redirect browser */ 

/* Make sure that code below does not get executed when we redirect. */ 
exit;
the_disheavervrijdag 1 april 2005 @ 07:09
SR: Dank!
sylvesterrrvrijdag 1 april 2005 @ 08:11
http://nl3.php.net/manual/en/function.header.php
quote:
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include(), or require(), functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.
sabanvrijdag 1 april 2005 @ 14:41
Stel ik heb een array/string met de volgende informatie;
quote:
foo en bar|dipsi lala|pow|5 euro
fok dig|tinkywinky|php|1 euro
foo en bar|blaatje en patje|mysql tobo|5 euro
nee|matje|broertje|5 euro
Hoe kan ik dat het beste omtoveren naar;
quote:
INSERT INTO table (`veld1` , `veld2` , `veld3` , `veld4` ) VALUES ('foo en bar', 'dipsi lala', 'pow', '5 euro') , ('fok dig', 'tinkywinky', 'php', '1 euro') , ('foo en bar', 'blaatje en patje', 'mysql tobo', '5 euro') , ('nee', 'matje', 'broertje', '5 euro')
Ik denk dat ik ze eerst in stukken moet snijden met explode.
Daarna iets van;
$values = ("'$explode[0]', '$explode[1]', '$explode[2]', '$explode[3]'")

Zoiets 'denk' ik, wie kan mij wat helderheid geven ?
the_disheavervrijdag 1 april 2005 @ 17:20
quote:
Hmm, idd. Hij redirect direct al, nog voordat hij de script heeft uitgevoerd (en het wordt uitgevoerd, wannneer de if-statement waarin hij staat niet geldig is.
Nu echt dank! Het werkt wel (ik had de header function onder de } , dus uit de if-statement gehaald...

[ Bericht 6% gewijzigd door the_disheaver op 01-04-2005 17:34:42 ]
Roonaanvrijdag 1 april 2005 @ 17:51
quote:
Op vrijdag 1 april 2005 14:41 schreef saban het volgende:
Stel ik heb een array/string met de volgende informatie;
[..]

Hoe kan ik dat het beste omtoveren naar;
[..]

Ik denk dat ik ze eerst in stukken moet snijden met explode.
Daarna iets van;
$values = ("'$explode[0]', '$explode[1]', '$explode[2]', '$explode[3]'")

Zoiets 'denk' ik, wie kan mij wat helderheid geven ?
Eerst exploded op newline, vervolgens elk item exploden op de pipe. Vervolgens array_walk met mysql_real_escape_string, vervolgens
$rows[] = "('".implode("','", $fielddate)."')";
Daarna kan je met implode(',', $rows) alles netjes met komma's scheiden.

-r-
Jumpvrijdag 1 april 2005 @ 18:26
bah, irritant probleempje

Een PHP script moet random 1 van de 4 gifjes weergeven. Maar op http://fok.internix.be/avatar/ zie je dat hij altijd dezelfde gif toont, tenzij je met een harde refresh reload.

Aangezien PHP lastig doet met animated gifs, doe ik het via een header.
1
2
3
4
5
6
<?php
  header
("Content-type: image/gif");
  
header("Cache-Control: no-store, no-cache, must-revalidate");
  
header("Pragma: no-cache");
  
header("Location: " . rand(1,4) . ".gif");
?>



komt dit door die location dat die cache genegeerd wordt, of kan dit anders?
ikke_ookvrijdag 1 april 2005 @ 21:03
Ben ik heel stom als ik zeg doe het zo :
1
2
3
4
5
6
7
8
9
10
<html>
<head>
   <title></title>
</head>
<body>

<img src="<?php echo rand(1,4).".gif"; ?>" />

</body>
</html>
Jumpvrijdag 1 april 2005 @ 21:19
quote:
Op vrijdag 1 april 2005 21:03 schreef ikke_ook het volgende:
Ben ik heel stom als ik zeg doe het zo :
[ code verwijderd ]
nee, maar het is voor men random avatar

php moet figuurtje teuggeven
ikke_ookvrijdag 1 april 2005 @ 21:23
quote:
Op vrijdag 1 april 2005 21:19 schreef Jump het volgende:

[..]

nee, maar het is voor men random avatar

php moet figuurtje teuggeven
Ah ok, ik schatte je al iets te slim in voor mijn oplossing
Swetseneggervrijdag 1 april 2005 @ 21:37
quote:
Op vrijdag 1 april 2005 21:19 schreef Jump het volgende:

[..]

nee, maar het is voor men random avatar

php moet figuurtje teuggeven
Kan toch?
Sla je die code op als avatar.php
SuperRembovrijdag 1 april 2005 @ 21:52
1
2
3
4
5
6
<?php
header("Content-type: image/gif");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
readfile(rand(1,4).".gif");
?>
Swetseneggervrijdag 1 april 2005 @ 21:53
quote:
Op vrijdag 1 april 2005 21:52 schreef SuperRembo het volgende:

[ code verwijderd ]
Kan je dit eens uitleggen, ik ben daar al eens mee aan het kloten geweest, maar wat doet bv:
header("Pragma: no-cache");
precies?
ikke_ookvrijdag 1 april 2005 @ 21:54
quote:
Op vrijdag 1 april 2005 21:46 schreef Swetsenegger het volgende:

[..]

Wat ik bedoelde is dat je met hidden input perfect extra waarden aan je submit kan meegeven.
Dus bij stap 1 schrijf je niets naar db, maar je geeft die info met een get mee aan stap 2. In stap 2 krijg je een nieuwe waarde PLUS je oude waarde welke je uit je get als hidden input aan je submit meegeeft. Dat geef je weer met een get mee aan stap 3 (via headers dus) leest in stap 3 de info van stap 1 en 2 uit en die stop je in een hidden input. INfo van stap 3 erbij, submitten antwoord tonen en naar db schrijven....
Dit had ik zelf eerst ook in gedachte, alleen is t wel wat veel informatie om steeds door te geven.
Ik ben bezig met deze site.
En daar kun je vogelwaarnemingen/excursies invoeren.
In stap 1 geef je allerlei informatie over de excursie, dus wanneer,weertype,locatie,en evt extra info.
In stap 2 kun je aangeven welke vogels je hebt gezien via dit form : form
En in stap 3 kun je opmerkingen bij bepaalde vogels zetten, dus ik schrijf eerst de vogels van stap 2 in de db en dan haal ik in stap 3 die vogels weer op en kun je er opmerkingen bij zetten.....

Dus vandaar...een beetje duidelijk zo?
Swetseneggervrijdag 1 april 2005 @ 21:56
quote:
Op vrijdag 1 april 2005 21:54 schreef ikke_ook het volgende:

[..]

Dit had ik zelf eerst ook in gedachte, alleen is t wel wat veel informatie om steeds door te geven.
Ik ben bezig met deze site.
En daar kun je vogelwaarnemingen/excursies invoeren.
In stap 1 geef je allerlei informatie over de excursie, dus wanneer,weertype,locatie,en evt extra info.
In stap 2 kun je aangeven welke vogels je hebt gezien via dit form : form
En in stap 3 kun je opmerkingen bij bepaalde vogels zetten, dus ik schrijf eerst de vogels van stap 2 in de db en dan haal ik in stap 3 die vogels weer op en kun je er opmerkingen bij zetten.....

Dus vandaar...een beetje duidelijk zo?
fuck

Ja dat gaat inderdaad niet werken.
Maar waarom stap 1 2 en 3 niet gewoon in 1 form? Invullen en submitten maar
ikke_ookvrijdag 1 april 2005 @ 21:58
uhm,nou stap 2 en 3 kan dus niet zomaar in 1 form, kan alleen als ik iets met javascript doe ofzo, anders wordt t form veel te lang, als ik bij 200 vogels ook nog iedere keer een opmerking kan plaatsen....
En ik vind t wel netjes zo in 3 keer, wel zo duidelijk....
SuperRembovrijdag 1 april 2005 @ 22:00
quote:
Op vrijdag 1 april 2005 21:53 schreef Swetsenegger het volgende:

[..]

Kan je dit eens uitleggen, ik ben daar al eens mee aan het kloten geweest, maar wat doet bv:
header("Pragma: no-cache");
precies?
Het is allemaal bedoeld om te voorkomen dat de output gecached wordt. Het is mss wat dubbel allemaal, maar ik dacht dat dat het gevolg is van verschillende bugs / interpretaties van verschillende browsers. Dit is wat de php manual aanbeveeld:

1
2
3
4
5
6
7
8
9
10
11
12
// Date in the past 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 

// always modified 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 

// HTTP/1.1 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 

// HTTP/1.0 
header("Pragma: no-cache"); 
SuperRembovrijdag 1 april 2005 @ 22:01
quote:
Op vrijdag 1 april 2005 21:58 schreef ikke_ook het volgende:
uhm,nou stap 2 en 3 kan dus niet zomaar in 1 form, kan alleen als ik iets met javascript doe ofzo, anders wordt t form veel te lang, als ik bij 200 vogels ook nog iedere keer een opmerking kan plaatsen....
En ik vind t wel netjes zo in 3 keer, wel zo duidelijk....
Je kan die data toch wel in de session kwijt?
Swetseneggervrijdag 1 april 2005 @ 22:03
quote:
Op vrijdag 1 april 2005 21:58 schreef ikke_ook het volgende:
uhm,nou stap 2 en 3 kan dus niet zomaar in 1 form, kan alleen als ik iets met javascript doe ofzo,
want?
quote:
anders wordt t form veel te lang,
So what? daar is de scrollbar voor uit gevonden
quote:
als ik bij 200 vogels ook nog iedere keer een opmerking kan plaatsen....
Kan toch....
quote:
En ik vind t wel netjes zo in 3 keer, wel zo duidelijk....
Maar levert wel problemen op met de back button.
Je KAN het natuurlijk opvangen door iets van een cookie of sessieID in de tabel te zetten bij stap 1 en 2 en wanneer mensen dan terug gaan, kijken of dat sessieid voorkomt, die data weer uit de db halen, als values invullen in je form en ipv een submit een update doen....
Dat is eigenlijk de enige oplossing welke ik kan verzinnen.
Swetseneggervrijdag 1 april 2005 @ 22:04
quote:
Op vrijdag 1 april 2005 22:00 schreef SuperRembo het volgende:

[..]

Het is allemaal bedoeld om te voorkomen dat de output gecached wordt. Het is mss wat dubbel allemaal, maar ik dacht dat dat het gevolg is van verschillende bugs / interpretaties van verschillende browsers.
[ code verwijderd ]
Ok, eens een keer in verdiepen
ikke_ookvrijdag 1 april 2005 @ 22:08
quote:
Op vrijdag 1 april 2005 22:01 schreef SuperRembo het volgende:

[..]

Je kan die data toch wel in de session kwijt?
Hoe bedoel je?alles uit de form in de session zetten en dan na stap 3 in de database zetten?
SuperRembovrijdag 1 april 2005 @ 22:11
quote:
Op vrijdag 1 april 2005 22:08 schreef ikke_ook het volgende:

[..]

Hoe bedoel je?alles uit de form in de session zetten en dan na stap 3 in de database zetten?
Yep
ikke_ookvrijdag 1 april 2005 @ 22:12
Nou swets de reden dat het niet kan... je kunt onder iedere vogel 5 nieuwe vogels invoeren. Dit is om de volgorde van de vogels goed te houden als je nieuwe soorten aan de lijst wil toevoegen. Er staan op t moment 185 vogels in geloof ik.
Dus dan krijg je 185 *6 velden waarbij je bij ieder veld een opmerking moet kunnen toevoegen..
Dat vind ik een beetje erg veel, omdat je niet vaak meer dan 100 soorten invoert per excursie....

En ik denk dat ik toch maar voor mn eigen oplossing ga: een tussenpagina.
Als ik na stap 1 nou naar tussenpagina.php?stap=2 ga, en in die pagina staat alleen maar een header die doorverwijst naar create?stap=2, dan kan ik ook niet meer zo makkelijk terug, tenzij ik 2x heel snel klik..

Ik vind die van jou wel leuk om t form weer in te vullen uit de database als je teruggaat leuk, maar teveel werk, en met t session van SR.... das ook teveel werk ofzo
Swetseneggervrijdag 1 april 2005 @ 22:27
quote:
Op vrijdag 1 april 2005 22:12 schreef ikke_ook het volgende:


Ik vind die van jou wel leuk om t form weer in te vullen uit de database als je teruggaat leuk, maar teveel werk, en met t session van SR.... das ook teveel werk ofzo
teveel werk?
Je begint de pagina van stap 1 met
1
2
3
4
<?php
SELECT
* FROM table WHERE invulid=SESSIONID (of cookie of whatever)
$edit_hidden="{$row['id']}";
?>

Je krijgt een rij info en in je form doe je dit
1
2
3
<?php
&lt;input type="text" name="vogeltje" value="echo $row['vogeltje']" /&gt;
?>

En onderaan
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if(empty($edit_hidden)){
print
"<p><input type=\"submit\" name=\"submit\" value=\"Plaatsen\" />
\n\n"
;}

//indien het een edit betreft alleen knop 'update'

else{
                if(!empty(
$edit_hidden)){
                print
'<p><input type="hidden" name="update_id" value="'.$edit_hidden.'" />
                <input type="submit" name="edit" value="Bijwerken"</p>'
;}
}
?>
ikke_ookvrijdag 1 april 2005 @ 22:28
Goed, vraag 2
Nederland is verdeeld in "atlasblokken" Op de site kun je bij een excursie zo'n atlasblok aangeven.
Nu wil ik iets maken dat je als je op t atlasblok klikt, je naar een plaatje van nederland gaat waar dan een rood puntje staat op t punt waar dat atlasblok is.
Dus ik wil een rood puntje op een plaatje zetten, t liefst met php, want daar ben ik t handigst mee.
Kan ik dit op een of andere manier doen met de GD library? Of kan ik dat veel beter op een andere manier doen?
Jumpvrijdag 1 april 2005 @ 22:30
quote:
Op vrijdag 1 april 2005 21:52 schreef SuperRembo het volgende:

[ code verwijderd ]
hartelijk dank SuperRembo
ikke_ookvrijdag 1 april 2005 @ 22:31
quote:
Op vrijdag 1 april 2005 22:27 schreef Swetsenegger het volgende:

[..]

teveel werk?
Je begint de pagina van stap 1 met
[ code verwijderd ]

Je krijgt een rij info en in je form doe je dit
[ code verwijderd ]

En onderaan
[ code verwijderd ]
Ik heb al een edit functie Dit is helemaal niet veel werk....
Swetseneggervrijdag 1 april 2005 @ 22:31
quote:
Op vrijdag 1 april 2005 22:28 schreef ikke_ook het volgende:
Goed, vraag 2
Nederland is verdeeld in "atlasblokken" Op de site kun je bij een excursie zo'n atlasblok aangeven.
Nu wil ik iets maken dat je als je op t atlasblok klikt, je naar een plaatje van nederland gaat waar dan een rood puntje staat op t punt waar dat atlasblok is.
Dus ik wil een rood puntje op een plaatje zetten, t liefst met php, want daar ben ik t handigst mee.
Kan ik dit op een of andere manier doen met de GD library? Of kan ik dat veel beter op een andere manier doen?
Hmz, kan je niet beter een soort van coordinatenstelsel in een db zetten, dan het plaatje van nederland als achtergrond image en volgens dat coordinaten stelsel een puntje zetten?
SuperRembovrijdag 1 april 2005 @ 22:35
quote:
Op vrijdag 1 april 2005 22:27 schreef Swetsenegger het volgende:

[..]

teveel werk?
Je begint de pagina van stap 1 met
[ code verwijderd ]

Je krijgt een rij info en in je form doe je dit
[ code verwijderd ]

En onderaan
[ code verwijderd ]
Nadeel van het bij stap 1 al in de database zetten is dat je niet zeker weet of de volgende stappen ook uitgevoerd gaan worden. Het kan zijn dat iemand stap 1 invult, maar niet de volgende stappen. Dan zit je met incomplete data in je database. Je zou dan eigenlijk ook in de database moeten zetten welke stap als laatste is uitgevoerd.
Daarom lijkt het me beter om de data te evrzamelen in de session. Als je dan alles bij elkaar hebt zet je het zaakje in de database.
ikke_ookvrijdag 1 april 2005 @ 22:38
quote:
Op vrijdag 1 april 2005 22:31 schreef Swetsenegger het volgende:

[..]

Hmz, kan je niet beter een soort van coordinatenstelsel in een db zetten, dan het plaatje van nederland als achtergrond image en volgens dat coordinaten stelsel een puntje zetten?
T gaat alleen om t rode puntje eigenlijk die coordinaten die reken ik nog wel uit met een algoritme-tje ofzo
Swetseneggervrijdag 1 april 2005 @ 22:39
quote:
Op vrijdag 1 april 2005 22:35 schreef SuperRembo het volgende:

[..]

Nadeel van het bij stap 1 al in de database zetten is dat je niet zeker weet of de volgende stappen ook uitgevoerd gaan worden. Het kan zijn dat iemand stap 1 invult, maar niet de volgende stappen. Dan zit je met incomplete data in je database. Je zou dan eigenlijk ook in de database moeten zetten welke stap als laatste is uitgevoerd.
Daarom lijkt het me beter om de data te evrzamelen in de session. Als je dan alles bij elkaar hebt zet je het zaakje in de database.
Ben ik volkomen met je eens
ikke_ookvrijdag 1 april 2005 @ 22:44
Dat je incomplete dingen invult is eigenlijk niet erg superrembo. dan staat er gewoon een excursie zonder vogels, das geen ramp... en je kunt excursies zelf editten,dus ook zelf weer vogels aan die excursie toevoegen
Swetseneggervrijdag 1 april 2005 @ 22:45
quote:
Op vrijdag 1 april 2005 22:44 schreef ikke_ook het volgende:
Dat je incomplete dingen invult is eigenlijk niet erg superrembo. dan staat er gewoon een excursie zonder vogels, das geen ramp... en je kunt excursies zelf editten,dus ook zelf weer vogels aan die excursie toevoegen
Dan is het niet erg.
'Mijn' edit optie erbij en je back toets probleem is opgelost
ikke_ookvrijdag 1 april 2005 @ 22:54
Dankje swets
Nu nog een antwoord op vraag 2

-edit-

Ik had je antwoord niet goed gelezen op vraag 2.
Op zich kan dat misschien wel, maar hoe krijg ik een plaatje op een bepaalde coordinaat in mn browser gepositioneerd?En krijg ik dan niet iets wat in 1 browser werkt en in de rest allemaal niet echt?
Swetseneggervrijdag 1 april 2005 @ 22:56
quote:
Op vrijdag 1 april 2005 22:54 schreef ikke_ook het volgende:
Dankje swets
Nu nog een antwoord op vraag 2
Heb ik je toch al gegeven? achtergrond image en gewoon met html een puntje zetten.
Anders zal je inderdaad met GD2 de image moeten resampelen. Er zijn voldoende PHP scripts te vinden waarin dat goed uitgelegd wordt (watermerk)
ikke_ookvrijdag 1 april 2005 @ 23:02
Watermerk, das t woord wat ik zocht
en hoe zet ik met html een puntje op een bepaald coordinaat dan?
Swetseneggervrijdag 1 april 2005 @ 23:04
quote:
Op vrijdag 1 april 2005 23:02 schreef ikke_ook het volgende:
Watermerk, das t woord wat ik zocht
en hoe zet ik met html een puntje op een bepaald coordinaat dan?
Gewoon een hele berg divjes maken
ikke_ookvrijdag 1 april 2005 @ 23:12
Persoonlijk denk ik dan dat ik beter een watermerk kan maken...

[ Bericht 0% gewijzigd door ikke_ook op 01-04-2005 23:19:41 ]
SuperRembovrijdag 1 april 2005 @ 23:36
Dat is ook leuk om te maken, maar simpeler dan dit krijg je 't denk ik niet.

1
2
3
4
<div style="position:relative;">
   <img src="map.png" alt="Nederland">
   <img src="marker.png" style="position:absolute;top:10px;left:20px" alt="Regio">
</div>
ikke_ookvrijdag 1 april 2005 @ 23:38
zou dat van mij veel rekenkracht kosten?de kaart van nederland is 400*300 oid, en is 2 kleuren..dus niet zo'n moeilijke gif lijkt mij... Of kost zo'n watermerk dan toch nog veel rekenkracht?

(T lijkt mij idd ook leuker om iets met zo'n watermerk te doen )
SuperRembovrijdag 1 april 2005 @ 23:41
Rekenkracht valt wel mee. Voordeel van de css methode is dat de kaart gecashed kan worden.
ikke_ookvrijdag 1 april 2005 @ 23:59
Dat is zeker een voordeel... Alleen t werkt niet bedenk ik me nu... want mijn site is opgebouwd met een tabel die een breedte heeft van 90% en bevat geen frames ofzo... Dus ik kan geen absoluut coordinaat aangeven..
toch?
SuperRembozaterdag 2 april 2005 @ 00:10
Jawel hoor
ikke_ookzaterdag 2 april 2005 @ 00:11
oh, hoe dan? absoluut in een cel ofzo?
SuperRembozaterdag 2 april 2005 @ 00:16
Zie boven
ikke_ookzaterdag 2 april 2005 @ 00:26
shit, t zat allemaal in een div.... weer niet goed gelezen...
Ik ga er morgen verder naar kijken dit wordt niks meer...
bedankt in ieder geval
ikke_ookzaterdag 2 april 2005 @ 00:27
Klein vraagje dan nog, is een png "beter" dan een gifje?Of heb je ergens nog een goede site waar het verschil haarfijn wordt uitgelegd?
SuperRembozaterdag 2 april 2005 @ 00:36
Png is bijna altijd kleiner dan gif.
Png ondersteund ook 24bits kleuren.
Png ondersteund geen animatie.
Png ondersteund ook alpha-transparantie, helaas werkt dat in IE niet.

http://www.w3.org/QA/Tips/png-gif
Google zoeken naar 'png versus gif'
ikke_ookmaandag 4 april 2005 @ 15:05
Hoe krijg ik het voor elkaar dat php 01 ziet als een 1 en 02 als een 2 enz..
Of moet ik dan gaan klieren met substr() ofzo zodat de eerste 0 wordt weggehaald?

En is er eigenlijk een numeriek alternatief voor substr()? Ik vind een integer namelijk niet echt een string, en ik pak nu de eerste 2 getallen van een integer dmv :
$digit12 = substr ($integer, 0,2)
SkippyTheKangaroomaandag 4 april 2005 @ 15:24
Dat kan wel, met TRIM.
Daarmee kun je voorloopnullen weghalen, en volgens mij kun je er daarna wel mee rekenen.
ikke_ookmaandag 4 april 2005 @ 15:56
Dat krijg ik niet werkend zodanig dat ik daarna nog met de integer verder kan..
VeerMansmaandag 4 april 2005 @ 16:43
int_val() al geprobeerd?
ikke_ookmaandag 4 april 2005 @ 16:43
Het werkt gewoon , ik was problemen aan het maken die er niet waren...
Hannemandonderdag 7 april 2005 @ 09:02
Ik wil een soort CMS maken voor m'n website. Kan ik dan het beste zelf een CMS programmeren of kan ik beter (om PHP/MySQL goed te leren kennen) bestaande scripts aanpassen?

Trouwens, ik neem toch aan dat niet iedereen een eigen CMS programmeert? Weet iemand nog goede bestaande open source scripts hiervoor?
sylvesterrrdonderdag 7 april 2005 @ 09:24
http://www.opensourcecms.com/
mambo is een aanrader!
sabandonderdag 7 april 2005 @ 11:16
Ik heb me eigelijk nooit verdiept in het creren van png/gif/jpeg's met PHP.

Heeft iemand een klein voorbeeldje om van 'foobaar' een png te maken ? (Wil ik gebruiken om email adressen om te zetten naar png, dus geen text meer).
sylvesterrrdonderdag 7 april 2005 @ 11:22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
// create a 100*30 image
$im = imagecreate(100, 30);

// white background and blue text
$bg = imagecolorallocate($im, 255, 255, 255);
$textcolor = imagecolorallocate($im, 0, 0, 255);

// write the string at the top left
imagestring($im, 5, 0, 0, "foobaar!", $textcolor);

// output the image
header("Content-type: image/png");
imagepng($im);
?> 

http://nl3.php.net/manual/en/function.imagestring.php
Swetseneggerdonderdag 7 april 2005 @ 11:23
Wanneer ik met een form een file upload, zit ergens in de $_FILES global dan ook het path van de file verstopt?
sabandonderdag 7 april 2005 @ 11:38
Dit werkt
1
2
3
4
5
6
7
8
9
<?
header("Content-type: image/png");

/* hier staat de originele instellingen voor t plaatje,
heb ik even eruit gehaald */

// output the image
imagepng($im);
?>


Maar dit wil niet werken
1
2
3
4
5
6
7
8
9
10
11
<?
header("Content-type: image/png");
?>
Hier wat HTML
<?
/* hier staat de originele instellingen voor t plaatje,
heb ik even eruit gehaald */

// output the image
imagepng($im);
?>


Dan krijg ik allemaal vage tekens;
quote:
‰PNG  IHDREPLTEU~‘IDAT™c` 1 ab 11d“@“1g?{c=c <–=yi7›IK 18cJAy ο1+ C…˜y n˜1… B‡Bo%νK06< hop>CEY‚¼=†<L‚‘6„KLIENDB`‚
hornagedonderdag 7 april 2005 @ 11:54
Ik heb in een mysql database een field waarin prijzen moeten komen te staan. Ik heb als type een double daarvoor gekozen. MySQL wil dan alleen als scheidingsteken een punt gebruiken. Is niet erg want als ik gegevens eruit haal doe ik met PHP het volgende:
1
2
3
<?php
$roundprice
= number_format($price['price'], 2, ',', ' ');
?>

Nu wil alleen ook prijzen naar de database sturen. Als ik dan gewoon de komma erin laat staan worden de 2 cijfers achter de komma niet meegenomen.
Als ik dan dit doe:
1
2
3
<?php
$price
= number_format($_POST["price".$i], 2, '.', ' ');
?>

dan worden de 2 cijfers achter de komma ook niet meegenomen en dan worden ze 0.

Hoe kan ik dit probleem oplossen?
Swetseneggerdonderdag 7 april 2005 @ 12:07
quote:
Op donderdag 7 april 2005 11:23 schreef Swetsenegger het volgende:
Wanneer ik met een form een file upload, zit ergens in de $_FILES global dan ook het path van de file verstopt?
Nee dus
Iemand een idee hoe ik het originele path mee krijg bij het uploaden van een file via een form?
hornagedonderdag 7 april 2005 @ 12:14
misschien het even in een hidden input zetten ofzo
SuperRembodonderdag 7 april 2005 @ 12:23
quote:
Op donderdag 7 april 2005 11:38 schreef saban het volgende:
Dit werkt
[ code verwijderd ]

Maar dit wil niet werken
[ code verwijderd ]

Dan krijg ik allemaal vage tekens;
[..]
Dat is logisch als je HTML output in je plaatje zet.
SuperRembodonderdag 7 april 2005 @ 12:40
quote:
Op donderdag 7 april 2005 11:54 schreef hornage het volgende:
Ik heb in een mysql database een field waarin prijzen moeten komen te staan. Ik heb als type een double daarvoor gekozen. MySQL wil dan alleen als scheidingsteken een punt gebruiken. Is niet erg want als ik gegevens eruit haal doe ik met PHP het volgende:
[ code verwijderd ]

Nu wil alleen ook prijzen naar de database sturen. Als ik dan gewoon de komma erin laat staan worden de 2 cijfers achter de komma niet meegenomen.
Als ik dan dit doe:
1
2
3
<?php
$price
= number_format($_POST["price".$i], 2, '.', ' ');
?>


dan worden de 2 cijfers achter de komma ook niet meegenomen en dan worden ze 0.

Hoe kan ik dit probleem oplossen?
Number_format verwacht als eerste argument een float, jij geeft een string. Als je de string "123,45" omzet naar float dan geeft dat de waarde 123.
Je zal met bijvoorbeeld str_replace de komma moeten vervangen door een punt.
Swetseneggerdonderdag 7 april 2005 @ 12:43
quote:
Op donderdag 7 april 2005 12:14 schreef hornage het volgende:
misschien het even in een hidden input zetten ofzo
Ja dat zou leuk zijn als het path op de een of andere manier aan de file hing
SuperRembodonderdag 7 april 2005 @ 12:58
quote:
Op donderdag 7 april 2005 12:43 schreef Swetsenegger het volgende:

[..]

Ja dat zou leuk zijn als het path op de een of andere manier aan de file hing
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script type="text/javascript">
function getPath() {
   document.myForm.path.value = document.myForm.upload.value;
}
</script>

...

<form name="myForm" onsubmit="getPath()"   ...   >
   <input type="hidden" name="path" value="">
   <input type="file" name="upload">

...

</form>


Getest in FF, IE6 en O7. Javascript moet natuurlijk wel aan staan.
achterop23donderdag 7 april 2005 @ 13:38
Ik heb het nu voormekaar om uit een sql database op de juiste manier mijn gegevens te exporteren mbv 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
28
29
30
31
32
33
34
35
36
37
38
$query = "SELECT MAX(registeraantal) AS registeraantal FROM register" or die(mysql_error()); 
$resultaat = mysql_query($query) or die(mysql_error());
$rij= mysql_fetch_assoc($resultaat);
$count="".$rij['registeraantal']."";

$counter=1;
while ($counter<=$count) {
$query = "SELECT * FROM register WHERE registeraantal >= $counter ORDER BY registerid" or die(mysql_error()); 

$resultaat = mysql_query($query) or die(mysql_error()); 

$num_rows=mysql_num_rows($resultaat); 

if ($num_rows == 0) { 
echo "Geen personen meer..."; 
} else { 
print "<a name=".$counter."><h3>$done[$counter]</h3></a>\n<BR><BR>";
      echo '<table width="80%" align="center" bgcolor="#CCCCCC" border="1/2" bordercolor="#FFFFFF">';
      echo '<tr><th>nummer</th><th>jaar</th><th>geslacht</th><th>naam</th><th>plaats</th><th>club</th></tr>';
while (($rij = mysql_fetch_assoc($resultaat))){
      // begin nieuwe tabel
$nummer++;
   $jaar=$counter;
   echo '<tr>';
   echo '<td>'.$nummer.'</td>';
   echo '<td>'.$rij['registerj'.$jaar].'</td>';   
   echo '<td>'.$rij['registermv'].'</td>';
   echo '<td>'.$rij['registernaam'].'</td>';
   echo '<td>'.$rij['registerp'.$jaar].'</td>';
   echo '<td>'.$rij['registerc'.$jaar].'</td>';
   echo "<tr>\n";
   }
$nummer=0;
         // sluit tabel
         echo "</tr></table>\n<BR><BR><BR>";
$counter++;
}}
?>


(zie: http://achterop23.downfire.com/register/ en dan register2.php)

Ik heb het ook voormekaar om alle gegevens uit de database te exporteren naar excel
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
$select = "SELECT registerid, registernaam, registermv, registeraantal FROM register";                 
$export = mysql_query($select); 
$fields = mysql_num_fields($export); 

for ($i = 0; $i < $fields; $i++) { 
    $header .= mysql_field_name($export, $i) . "\t"; 


while($row = mysql_fetch_row($export)) { 
    $line = ''; 
    foreach($row as $value) {                                             
        if ((!isset($value)) OR ($value == "")) { 
            $value = "\t"; 
        } else { 
            $value = str_replace('"', '""', $value); 
            $value = '"' . $value . '"' . "\t"; 
        } 
        $line .= $value; 
    } 
    $data .= trim($line)."\n"; 

$data = str_replace("\r","",$data); 
if ($data == "") { 
    $data = "\n(0) Records Found!\n";                         


header("Content-type: application/x-msdownload"); 
header("Content-Disposition: attachment; filename=extraction.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
print "$header\n$data"; 


(zie: http://achterop23.downfire.com/register/ en dan test1.php)

is het mogelijk om hetgeen uit het eerste voorbeeld te exporteren naar Excel?

[ Bericht 0% gewijzigd door achterop23 op 07-04-2005 13:50:46 ]
Swetseneggerdonderdag 7 april 2005 @ 13:49
quote:
Op donderdag 7 april 2005 12:58 schreef SuperRembo het volgende:

[..]
[ code verwijderd ]

Getest in FF, IE6 en O7. Javascript moet natuurlijk wel aan staan.
client side

-edit- 1 probleem hoe geef ik de javascript variable door aan de php zonder een page refresh

-edit 2- Het mooiste zou zijn wanneer ik VOOR de submit dedocument.myForm.path.value als hidden input in het form mee kan geven.
Misshcien met onChange proberen ipv onSubmit.

*weer knutselen gaat*

Nog een leuke uitspraak op een ander forum mbt het doorgeven van javascript variabelen aan php zonder page refresh: "I'm not sure what you think the function does.... but it doesn't"

[ Bericht 23% gewijzigd door Swetsenegger op 07-04-2005 14:15:55 ]
SuperRembodonderdag 7 april 2005 @ 14:23
quote:
Op donderdag 7 april 2005 13:49 schreef Swetsenegger het volgende:

[..]

client side

-edit- 1 probleem hoe geef ik de javascript variable door aan de php zonder een page refresh
Dat kan met XmlHttp
quote:
-edit 2- Het mooiste zou zijn wanneer ik VOOR de submit dedocument.myForm.path.value als hidden input in het form mee kan geven.
Misshcien met onChange proberen ipv onSubmit.

*weer knutselen gaat*

Nog een leuke uitspraak op een ander forum mbt het doorgeven van javascript variabelen aan php zonder page refresh: "I'm not sure what you think the function does.... but it doesn't"
Swetseneggerdonderdag 7 april 2005 @ 14:29
quote:
Op donderdag 7 april 2005 14:23 schreef SuperRembo het volgende:

[..]

Dat kan met XmlHttp
[..]

Hmz, ja xmlhttp request gebruik ik al in een ander script.
*weer verder gaat*


Ik zie nu pas dat je m'n hele probleem al had opgelost SuperRembo

[ Bericht 14% gewijzigd door Swetsenegger op 07-04-2005 14:37:44 ]
sabandonderdag 7 april 2005 @ 14:59
quote:
Op donderdag 7 april 2005 12:23 schreef SuperRembo het volgende:

[..]

Dat is logisch als je HTML output in je plaatje zet.
Hmm, hoe kan ik mijn png dan tussen mn html stoppen ?
In je html het php script includen zal niet werken ivm Headers already sent, toch ?
Of zie ik nu echt iets over het hoofd
Swetseneggerdonderdag 7 april 2005 @ 15:07
quote:
Op donderdag 7 april 2005 14:59 schreef saban het volgende:

[..]

Hmm, hoe kan ik mijn png dan tussen mn html stoppen ?
In je html het php script includen zal niet werken ivm Headers already sent, toch ?
Of zie ik nu echt iets over het hoofd
Dus je image output voor je html doen
sylvesterrrdonderdag 7 april 2005 @ 15:07
quote:
Op donderdag 7 april 2005 14:59 schreef saban het volgende:

[..]

Hmm, hoe kan ik mijn png dan tussen mn html stoppen ?
In je html het php script includen zal niet werken ivm Headers already sent, toch ?
Of zie ik nu echt iets over het hoofd
<img src="http://www.mijnhost.tld/mijn_php_png_plaatje.php" />
SuperRembodonderdag 7 april 2005 @ 15:09
page.php:

1
2
3
4
5
6
7
<html>
<head>
</head>
<body>
<img src="image.php" alt="">
</body>
</html>


image.php:

1
2
3
4
5
<?php
header("Content-type: image/png");
$im = imageCreate(100, 100);
imagePng($im);
?>
Jumpdonderdag 7 april 2005 @ 15:17
http://fok.internix.be/OP/php.txt

is de OP voor het volgende deel, de link in de huidige OP werkt niet. en de txt is up to date nu
sabandonderdag 7 april 2005 @ 18:59
sylvester en SuperRembo, ik dacht ook dat het zo moest, maar ik dacht van dat je dan een header fout zou krijgen, niet dus. Dank
achterop23donderdag 7 april 2005 @ 19:46
Hoe moet ik op een linux server data verzenden naar WORD?
Met excel lukt t me wel, maar hoe met WORD.

Is het ook mogelijk om gewoon een kopie van mijn php opdracht (alles wordt dus html) te zenden naar word? zodat alles er net zo uit ziet als online
SuperRembodonderdag 7 april 2005 @ 22:37
quote:
Op donderdag 7 april 2005 19:46 schreef achterop23 het volgende:
Hoe moet ik op een linux server data verzenden naar WORD?
Met excel lukt t me wel, maar hoe met WORD.

Is het ook mogelijk om gewoon een kopie van mijn php opdracht (alles wordt dus html) te zenden naar word? zodat alles er net zo uit ziet als online
Je maakt eigenlijk geen excel file, maar een csv fiile.
Een echt word document maken met php zal niet mee vallen. Een rtf document is eenvoudiger, ik denk dat daar ook wel scripts voor te vinden zijn.
the_disheaverdonderdag 7 april 2005 @ 23:42
Bestaat er ook een functie als nl2br() die ipv regeleinde naar <br> tags converteerd mailadressen en URL's naar <a href=" enzovoort.. converteerd?

Of hoe kun je het handmatig doen?
wonderervrijdag 8 april 2005 @ 02:29
Als ik:

"SELECT *, DATE_FORMAT(last_post,'%d-%m-%Y %H:%i:%s') AS last_post FROM tabel ORDER BY last_post DESC"

doe, sorteert ie de datum niet goed (op dag dus, omdat dat vooraan staat). Is er een manier om zonder twee queries of zo'n gezeik met mktime toch goed op datum te sorteren?
SuperRembovrijdag 8 april 2005 @ 07:27
quote:
Op vrijdag 8 april 2005 02:29 schreef wonderer het volgende:
Als ik:

"SELECT *, DATE_FORMAT(last_post,'%d-%m-%Y %H:%i:%s') AS last_post FROM tabel ORDER BY last_post DESC"

doe, sorteert ie de datum niet goed (op dag dus, omdat dat vooraan staat). Is er een manier om zonder twee queries of zo'n gezeik met mktime toch goed op datum te sorteren?
1
2
3
4
5
SELECT 
    *, 
    DATE_FORMAT(last_post,'%d-%m-%Y %H:%i:%s') AS last_post_str 
FROM tabel 
ORDER BY last_post DESC
SuperRembovrijdag 8 april 2005 @ 07:31
quote:
Op donderdag 7 april 2005 23:42 schreef the_disheaver het volgende:
Bestaat er ook een functie als nl2br() die ipv regeleinde naar <br> tags converteerd mailadressen en URL's naar <a href=" enzovoort.. converteerd?

Of hoe kun je het handmatig doen?
Nee, zo'n functie bestaat niet. Dat kan met behulp van regual expressions (preg_replace())
Darkomenvrijdag 8 april 2005 @ 10:48
Security website

Ik ben van plan een groote website op te zetten met beveiligde en onbeveiligde delen.
Ik wil de beveiliging gaan regelen met een sessie die bij het inloggen word gecreeerd en door te contorleren of alle files wel in het script geladen worden en niet daarbuiten, dmv define.

Of is het misschien beter om ook het ip adres te controleren met het ip adress in de db die bij het inloggen word opgeslagen.

Of een extra cookie voor de site, dit is mijn minst favorite keuze aangezien ik geen idee heb van wat ik dan in de cookie plaats en omdat ik met verschillende subdomeinen werk, dat is in het verleden tot nu toe nu helemaal lekker gegaan.

Daarnaast vroeg ik me af of het slim was aan het eind van elke pagina de db te sluiten
sabanvrijdag 8 april 2005 @ 18:14
Wat is het beste manier om dit voor elkaar te krijgen;
Vandaag+1 maand, maar dan in dit formaat: 20050508
mscholvrijdag 8 april 2005 @ 18:39
iemand nog een goede/duidelijke nederlandse tutorial site voor regular expressions (wil dinmgen als [url ] [/url] gaan vervangen enzo
SuperRembovrijdag 8 april 2005 @ 18:42
  • Huidige dag, maand en jaar bepalen m.b.v. date().
  • 1 bij de maand optellen.
  • Datum maken met mktime().

    mktime() werkt zo dat het ook goed gaat als het december is; dan kom je vanzelf in januari van 't volgende jaar.
  • sabanvrijdag 8 april 2005 @ 20:57
    quote:
    Op vrijdag 8 april 2005 18:42 schreef SuperRembo het volgende:
  • Huidige dag, maand en jaar bepalen m.b.v. date().
  • 1 bij de maand optellen.
  • Datum maken met mktime().

    mktime() werkt zo dat het ook goed gaat als het december is; dan kom je vanzelf in januari van 't volgende jaar.
  • 1
    2
    3
    4
    5
    6
    7
    8
    $timestamp = "20050408"; // vandaag

    $jaar = substr($timestamp,0,4);
    $maand = substr($timestamp,4,2);
    $dag = substr($timestamp,-2,2);

    $date = mktime(0,0,1,$maand+1, $dag, $jaar);
    echo date('Y m d', $date);


    Got it
    SuperRembovrijdag 8 april 2005 @ 21:07
    Maar hoe kom je dan aan "20050408"?

    Ik dacht hier aan:

    1
    2
    $date = mktime(0, 0, 0, 1+date('m'), date('d'), date('Y'));
    echo date('d m Y', $date);
    sylvesterrrvrijdag 8 april 2005 @ 21:10
    1echo date('Ymd', $date);

    Anders heb je een spatie tussen jaartal, maand en dag.
    the_disheavervrijdag 8 april 2005 @ 22:59
    quote:
    Op vrijdag 8 april 2005 18:39 schreef mschol het volgende:
    iemand nog een goede/duidelijke nederlandse tutorial site voor regular expressions (wil dinmgen als [url ] [/url] gaan vervangen enzo
    Ben ik nu ook mee bezig

    Geen nederlandse site gevonden, maar kijk eens op http://nl3.php.net/preg_replace

    En dan bij de User Comment van: 08-Feb-2005 01:47

    De functie opzich snap ik, moet alleen ff uitvinden wat al die code's betekenen

    Dank SR voor de functie!

    En hij is vol...

    Volgende deeltje hierzo: http://forum.fok.nl/topic/687177