abonnement Unibet Coolblue Bitvavo
  vrijdag 14 november 2008 @ 10:33:42 #201
137690 Pizzahut
Het Bora Bora Gebergte
pi_63214395
Vraagje voor MySQL:
Ik heb een MySQL query browser van de officiële website.
Nu gebruik ik die heel veel voor localhost wat ook prima werkt.
Maar nu wil ik ook een externe host, bij voorkeur dus mijn eigen website eraan toevoegen.
Kan iemand mij vertellen wat ik moet invullen bij host? (waar normaal localhost staat).
ik heb dus al http://dbadmin.one.com gedaan als mijn website.
Disturbed Mind
Het leven: Soms ben je de duif, soms het standbeeld.
pi_63214564
quote:
Op vrijdag 14 november 2008 10:33 schreef Pizzahut het volgende:
Vraagje voor MySQL:
Ik heb een MySQL query browser van de officiële website.
Nu gebruik ik die heel veel voor localhost wat ook prima werkt.
Maar nu wil ik ook een externe host, bij voorkeur dus mijn eigen website eraan toevoegen.
Kan iemand mij vertellen wat ik moet invullen bij host? (waar normaal localhost staat).
ik heb dus al http://dbadmin.one.com gedaan als mijn website.
MySQL draait gewoon op een server waarmee met een server adres/IP, gebruikersnaam en wachtwoord op ingelogd dient te worden. In plaats van localhost dus gewoon de MySQL/database server of het IP adres daarvan, en uiteraard de correcte gebruikersnaam en wachtwoord voor die server, zou genoeg moeten zijn.
  vrijdag 14 november 2008 @ 10:42:03 #203
137690 Pizzahut
Het Bora Bora Gebergte
pi_63214643
quote:
Op vrijdag 14 november 2008 10:39 schreef Tuvai.net het volgende:

[..]

MySQL draait gewoon op een server waarmee met een server adres/IP, gebruikersnaam en wachtwoord op ingelogd dient te worden. In plaats van localhost dus gewoon de MySQL/database server of het IP adres daarvan, en uiteraard de correcte gebruikersnaam en wachtwoord voor die server, zou genoeg moeten zijn.
Ik heb nu dit gedaan:
Host: http://dbadmin.one.com <- link naar mijn database
Gebr.: mijn gebruikersnaam
WW: mijn wachtwoord

Host: http://puddingbroodje.nl <- link naar mijn website
Gebr.: mijn gebruikersnaam
WW: mijn wachtwoord

beide werken niet. Standaart staat de poort op 3308 ofzo, moet dit anders staan?
Disturbed Mind
Het leven: Soms ben je de duif, soms het standbeeld.
pi_63214661
quote:
Op vrijdag 14 november 2008 10:31 schreef Tuvai.net het volgende:

[..]

Waarom zo omslachtig? Je kunt toch ook al door middel van DAY() / MONTH() / YEAR() MySQL functies in je query de records ophalen die je moet hebben?
Dat kan.
Echter de query doet nu wat het moet doen, daar kom ik later op.

Het probleem zit nu in de array
ne okuyon, bokmu var?
pi_63214776
quote:
Op vrijdag 14 november 2008 10:42 schreef Pizzahut het volgende:

[..]

Ik heb nu dit gedaan:
Host: http://dbadmin.one.com <- link naar mijn database
Gebr.: mijn gebruikersnaam
WW: mijn wachtwoord

Host: http://puddingbroodje.nl <- link naar mijn website
Gebr.: mijn gebruikersnaam
WW: mijn wachtwoord

beide werken niet. Standaart staat de poort op 3308 ofzo, moet dit anders staan?
Je MySQL server adres is NIET hetzelfde als het adres van de betreffende website / DB admin panel. Mijn websites draaien bijvoorbeeld op website.nl, terwijl de achterliggende databaseserver altijd dbserver.website.nl is.
quote:
Op vrijdag 14 november 2008 10:42 schreef saban het volgende:

[..]

Dat kan.
Echter de query doet nu wat het moet doen, daar kom ik later op.

Het probleem zit nu in de array
Dat snap ik, maar je hoeft helemaal niet met arrays te liggen kutten als je de corresponderende data al op haalt door middel van een goede query. Scheelt ook weer onnodig heen en weer geslinger en performance aangezien je op die manier ook niet eerst een boel records op haalt waar je vervolgens toch niks tot weinig mee doet.
pi_63214916
quote:
Op vrijdag 14 november 2008 10:46 schreef Tuvai.net het volgende:

[..]

Je MySQL server adres is NIET hetzelfde als het adres van de betreffende website / DB admin panel. Mijn websites draaien bijvoorbeeld op website.nl, terwijl de achterliggende databaseserver altijd dbserver.website.nl is.
[..]

Dat snap ik, maar je hoeft helemaal niet met arrays te liggen kutten als je de corresponderende data al op haalt door middel van een goede query. Scheelt ook weer onnodig heen en weer geslinger en performance aangezien je op die manier ook niet eerst een boel records op haalt waar je vervolgens toch niks tot weinig mee doet.
Ik denk dat ik mijn probleem verkeerd hebt uitgelegd.
Met een for geef ik alle dagen van een maand weer, echter in die for moet ik checken of die datum voorkomt in de database. Ik kan dus bij iedere keer dat de for loopt wel een query uitvoeren om te checken of het voorkomt, maar dan moet ik dus per request 30 keer een query uitvoeren (30 dagen in een maand).

Dus ik dacht, ik haal eerst alle data uit de database, deze stop ik in een array. Vervolgens check ik in de for of de datum voorkomt in de array(database).
ne okuyon, bokmu var?
pi_63215050
quote:
Op vrijdag 14 november 2008 10:50 schreef saban het volgende:

[..]

Ik denk dat ik mijn probleem verkeerd hebt uitgelegd.
Met een for geef ik alle dagen van een maand weer, echter in die for moet ik checken of die datum voorkomt in de database. Ik kan dus bij iedere keer dat de for loopt wel een query uitvoeren om te checken of het voorkomt, maar dan moet ik dus per request 30 keer een query uitvoeren (30 dagen in een maand).

Dus ik dacht, ik haal eerst alle data uit de database, deze stop ik in een array. Vervolgens check ik in de for of de datum voorkomt in de array(database).
Als je dus puur wilt controleren welke dagen in een gegeven maand voorkomen, is het volgende al voldoende:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$maand
=11;
$jaar=2008;

// Lege array() aanmaken
$maandenDieVoorkomenInDezeMaand=array();

// Query aanmaken die aan de hand van $maand en $jaar alle verschillende, voorkomende dagen uit tabel 'dataTabel' op haalt
$query=mysql_query("SELECT DISTINCT DAY(datumKolom) AS dag FROM dataTabel WHERE MONTH(datumKolom) = " $maand " AND YEAR(datumKolom) = " $jaar);

// Door de geretourneerde records heen loop`en
while($rij=mysql_fetch_array($query)){

    
// Van alle records die geretourneerd worden de daadwerkelijke dag naar de eerder aangemaakte array() wegschrijven
    
array_push($maandenDieVoorkomenInDezeMaand$rij[dag]);
}
?>




[ Bericht 11% gewijzigd door Tuvai.net op 14-11-2008 11:17:44 ]
pi_63215147
quote:
Op vrijdag 14 november 2008 10:55 schreef Tuvai.net het volgende:

[..]

Als je dus puur wilt controleren welke dagen in een gegeven maand voorkomen, is het volgende al voldoende:
[ code verwijderd ]

Nu heb je een array met wat er in de database staat, maar de array moet buiten de while ook nog bruikbaar zijn.
ne okuyon, bokmu var?
  vrijdag 14 november 2008 @ 10:59:57 #209
137690 Pizzahut
Het Bora Bora Gebergte
pi_63215165
quote:
Op vrijdag 14 november 2008 10:46 schreef Tuvai.net het volgende:

[..]

Je MySQL server adres is NIET hetzelfde als het adres van de betreffende website / DB admin panel. Mijn websites draaien bijvoorbeeld op website.nl, terwijl de achterliggende databaseserver altijd dbserver.website.nl is.
dus is het deze:
Host: http://dbadmin.one.com <- link naar mijn database
Gebr.: mijn gebruikersnaam
WW: mijn wachtwoord

maar die doet het ook niet.
Disturbed Mind
Het leven: Soms ben je de duif, soms het standbeeld.
pi_63215203
quote:
Op vrijdag 14 november 2008 10:59 schreef saban het volgende:

[..]

Nu heb je een array met wat er in de database staat, maar de array moet buiten de while ook nog bruikbaar zijn.
Dat is de array $maandenDieVoorkomenInDezeMaand toch ook? In de while() loop wordt 'ie enkel gevuld met de gevonden dagen; daarna kun je doen met array $maandenDieVoorkomenInDezeMaand wat je wilt (lees: vergelijken).
pi_63215226
quote:
Op vrijdag 14 november 2008 10:59 schreef Pizzahut het volgende:

[..]

dus is het deze:
Host: http://dbadmin.one.com <- link naar mijn database
Gebr.: mijn gebruikersnaam
WW: mijn wachtwoord

maar die doet het ook niet.
Nee, http://dbadmin.one.com is niet je MySQL server, maar gewoon het adres/een subdomain waar PHPMyAdmin op draait.
  vrijdag 14 november 2008 @ 11:06:27 #212
137690 Pizzahut
Het Bora Bora Gebergte
pi_63215350
quote:
Op vrijdag 14 november 2008 11:02 schreef Tuvai.net het volgende:

[..]

Nee, http://dbadmin.one.com is niet je MySQL server, maar gewoon het adres/een subdomain waar PHPMyAdmin op draait.
zodra ik naar http://phpmyadmin.mijnwebsite.nl ga, wordt ik doorverwezen naar dbadmin.one.com
Disturbed Mind
Het leven: Soms ben je de duif, soms het standbeeld.
pi_63215359
quote:
Op vrijdag 14 november 2008 11:01 schreef Tuvai.net het volgende:

[..]

Dat is de array $maandenDieVoorkomenInDezeMaand toch ook? In de while() loop wordt 'ie enkel gevuld met de gevonden dagen; daarna kun je doen met array $maandenDieVoorkomenInDezeMaand wat je wilt (lees: vergelijken).
Cool Thanks.
ne okuyon, bokmu var?
pi_63215589
quote:
Op vrijdag 14 november 2008 11:06 schreef Pizzahut het volgende:

[..]

zodra ik naar http://phpmyadmin.mijnwebsite.nl ga, wordt ik doorverwezen naar dbadmin.one.com
Dat kan, maar verandert de kwestie niet. Je MySQL server is iets heel anders dan een adres waar je je database met PhpMyAdmin beheert. Je hosting provider kan je vast wel vertellen wat je MySQL server adres is. Afhankelijk van de PhpMyAdmin versie kun je daar in ook zelf je MySQL server adres uit halen zodra je bent ingelogd.
pi_63215701
Nu we toch bezig zijn :9

Ik heb de volgende 2 arrays ($array_datum en $array_naam):
1
2
3
4
5
6
7
8
9
10
11
12
Array
(
    [0] => 1-11-2008
    [1] => 6-11-2008
    [2] => 10-11-2008
)
Array
(
    [0] => foo
    [1] => foo
    [2] => bar
)


Hoe kan ik bijvoorbeeld het volgende echo'n:
foo heeft gewerkt op 1-11-2008
of
bar heeft gewerkt op 10-11-2008
ne okuyon, bokmu var?
pi_63215877
quote:
Op vrijdag 14 november 2008 11:17 schreef saban het volgende:
Nu we toch bezig zijn

Ik heb de volgende 2 arrays ($array_datum en $array_naam):
[ code verwijderd ]

Hoe kan ik bijvoorbeeld het volgende echo'n:
foo heeft gewerkt op 1-11-2008
of
bar heeft gewerkt op 10-11-2008
1
2
3
4
5
6
7
8
9
10
<?php
$data
=array("1-1-2008""2-4-2008""2-5-2008");
$medewerkers=array("Piet""Jan""Klaas");

// Weergeef 'Jan heeft gewerkt op 1-1-2008'
echo $medewerkers[1] . ' heeft gewerkt op ' $data[0];

// Weergeef 'Klaas heeft gewerkt op 2-4-2008'
echo $medewerkers[2] . ' heeft gewerkt op ' $data[1];
?>


Een array() bestaat uit een aantal waardes. Elke waarde in een array krijgt altijd een uniek nummertje, genaamd een index. Stel ik heb de volgende array:

1
2
3
<?php
$bla 
= array("appel""peer""Sinaasappel""Ananas");
?>


Dan bestaat deze array respectievelijk uit de volgende indexes met daaraan hun corresponderende waardes:

1
2
3
4
[0] = appel
[1] = peer
[2] = Sinaasappel
[3] = Ananas


Uiteraard altijd beginnend bij 0.
  vrijdag 14 november 2008 @ 11:24:56 #217
137690 Pizzahut
Het Bora Bora Gebergte
pi_63215925
quote:
Op vrijdag 14 november 2008 11:13 schreef Tuvai.net het volgende:

[..]

Dat kan, maar verandert de kwestie niet. Je MySQL server is iets heel anders dan een adres waar je je database met PhpMyAdmin beheert. Je hosting provider kan je vast wel vertellen wat je MySQL server adres is. Afhankelijk van de PhpMyAdmin versie kun je daar in ook zelf je MySQL server adres uit halen zodra je bent ingelogd.
snap ik, alleen weet ik de link niet. even achteraan gaan.
Disturbed Mind
Het leven: Soms ben je de duif, soms het standbeeld.
pi_63216054
quote:
Op vrijdag 14 november 2008 11:24 schreef Pizzahut het volgende:

[..]

snap ik, alleen weet ik de link niet. even achteraan gaan.
Bij mijn PhpMyAdmin is het MySQL server adres en poortnummer weergeven in de titelbalk van mijn browser. Kijk daar anders eens.
pi_63216115
Thanks Tuvai, ik wilde het net een beetje anders hebben.

Waarom werkt dit niet?
1
2
3
4
5
6
7
<?php
$t 
array_keys($array_datum'10-11-2008');
$q $t['0'];
echo 
$array_naam['$q']; // geeft niks weer (moet bar weergeven)
echo $q// geeft 2 weer
echo $array_naam['2']; // geeft bar weer
?>
ne okuyon, bokmu var?
pi_63216284
quote:
Op vrijdag 14 november 2008 11:30 schreef saban het volgende:
Thanks Tuvai, ik wilde het net een beetje anders hebben.

Waarom werkt dit niet?
[ code verwijderd ]
array_keys() is een functie die zelf een array maakt van de keys (oftewel de indexes), van een opgegeven array. :) Zie http://nl2.php.net/manual/en/function.array-keys.php .

Overigens weergeeft het volgende stukje uiteraard niks:
1
2
3
<?php
echo $array_naam['$q'];
?>


Omdat je daadwerkelijk een item uit $array_naam wilt parsen die als key/index '$q' heeft; dit kan natuurlijk niet daar dit een key/indexnummer moet zijn. Dit zou dan wel moeten werken:

1
2
3
<?php
echo $array_naam[$q];
?>
pi_63216365
quote:
Op vrijdag 14 november 2008 11:35 schreef Tuvai.net het volgende:

[..]

array_keys() is een functie die zelf een array maakt van de keys (oftewel de indexes), van een opgegeven array. Zie http://nl2.php.net/manual/en/function.array-keys.php .

Overigens weergeeft het volgende stukje uiteraard niks:
[ code verwijderd ]

Omdat je daadwerkelijk een item uit $array_naam wilt parsen die als key/index '$q' heeft; dit kan natuurlijk niet daar dit een key/indexnummer moet zijn. Dit zou dan wel moeten werken:
[ code verwijderd ]
Damn I fuckin love you
ne okuyon, bokmu var?
pi_63216771
quote:
Op vrijdag 14 november 2008 @ 11:37 schreef saban het volgende:

[..]

Damn I fuckin love you :D
Kun je die arrays niet beter combineren?

1
2
3
4
5
6
7
<?php
$combiarray
['1-11-2008'] => 'foo';
$combiarray['6-11-2008'] => 'foo';
$combiarray['10-11-2008'] => 'bar';

echo 
$combiarray[datum];
?>

Is afhankelijk van wat je er mee wilt, maar misschien een idee.
  vrijdag 14 november 2008 @ 11:53:21 #223
187069 slacker_nl
Sicko pur sang
pi_63216948
quote:
Op vrijdag 14 november 2008 11:30 schreef saban het volgende:
Thanks Tuvai, ik wilde het net een beetje anders hebben.

Waarom werkt dit niet?
[ code verwijderd ]
'' (single quotes) expand een value niet, "" (doubel quotes) wel.

Doe maar eens:

1
2
3
4
5
<?php
echo $bla;
echo 
"$bla";
echo 
'$bla';
?>


Dit is overigens zo in bijna alle talen.
In theory there is no difference between theory and practice. In practice there is.
pi_63244384
Ik wil contracten opslaan in mijn mysql tabel contracten, in de vorm van timestamps. Nu ga ik bij het inserten van de contracten controleren of er geen periode een dubbel contract bestaat.
Als ik dus een contract afsluit van 15-dec-08 tot 15-jun-09, mag er geen nieuw contract ingevoerd worden die de periode op welke manier ook overlapt. Dus geen
- overlap aan het begin van het bestaande contract
- overlap aan het einde van het bestaande contract
- overlap door volledig binnen de periode te vallen (01-jan-09 / 01-mei-09)
- exact gelijke overlap. (f5-en)

mijn tabel contracten bevat in ieder geval de volgende eigenschappen:
- datum_start
- datum_einde
- klant_id

nu heb ik de volgende query opgesteld, maar deze werkt nog niet zoals hij zou moeten werken.


1
2
3
<?php
$query 
"SELECT * FROM contracten WHERE datum_start >= ".$start." AND datum_start <= ".$start." AND datum_einde >= ".$eind." AND datum_einde <= ".$eind." AND klant_id = ".$klant_id.";";
?>


hoe maak ik hem juist werkend?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  zaterdag 15 november 2008 @ 15:39:23 #225
75592 GlowMouse
l'état, c'est moi
pi_63245055
Je hebt overlap als de startdatum of de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract. Dat is equivalent met [de startdatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract] of [de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract].
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_63245466
Ik zou het overigens niet met een timestamp doen, als je het tijdcomponent toch niet gebruikt, maar gewoon met een date veld
pi_63245571
quote:
Op zaterdag 15 november 2008 15:39 schreef GlowMouse het volgende:
Je hebt overlap als de startdatum of de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract. Dat is equivalent met [de startdatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract] of [de einddatum van het nieuwe contract ligt tussen de start- en einddatum van een bestaand contract].
Dan kom ik toch hierop uit:
1
2
3
<?php
$query 
"SELECT * FROM contracten WHERE (datum_start >= ".$start." AND datum_einde <= ".$start.") OR (datum_start >= ".$eind." AND datum_einde <= ".$eind.") AND customer = ".$customer.";";
?>


En dat werkt ook niet..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_63245613
of toch zo:
1
2
3
<?php
$query 
"SELECT * FROM contracten WHERE (datum_start <= ".$start." AND datum_einde >= ".$start.") OR (datum_start <= ".$eind." AND datum_einde >= ".$eind.") AND customer = ".$customer.";";
?>


lijkt te werken...
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_63257297
Ik zou ook eens kijken naar BETWEEN. Dan kom je op zoiets uit:
1
2
3
4
5
6
7
<?php
$query 
'SELECT * FROM contracten
WHERE
( ('
.$start.' BETWEEN datum_start AND datum_einde)
    OR ('
.$eind.' BETWEEN datum_start AND datum_einde) )
AND customer = '
.$customer;
?>


[ Bericht 3% gewijzigd door Light op 16-11-2008 11:30:38 ]
pi_63257910
Handig zeg, al die query's die voor meer dan de helft buiten het scherm vallen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_63258030
quote:
Op zondag 16 november 2008 11:23 schreef SuperRembo het volgende:
Handig zeg, al die query's die voor meer dan de helft buiten het scherm vallen
Zo, toch maar even wat enters toegevoegd
pi_63264481
Ik ben bezig met een overzicht van verschillende informatie van verschillende sites voor eigen gebruik. Hiervoor gebruik ik de functie "file_get_contents". Dit lukt goed. Ik krijg van een welbepaalde pagina een volledige lap HTML-code.

De info die ik nodig heb staat tussen <titlered>xxx</titlered>. Hoe laat ik enkel deze informatie zien? Wie helpt me op weg?
pi_63269907
quote:
Op zondag 16 november 2008 @ 15:43 schreef everybodysweird het volgende:
Ik ben bezig met een overzicht van verschillende informatie van verschillende sites voor eigen gebruik. Hiervoor gebruik ik de functie "file_get_contents". Dit lukt goed. Ik krijg van een welbepaalde pagina een volledige lap HTML-code.

De info die ik nodig heb staat tussen <titlered>xxx</titlered>. Hoe laat ik enkel deze informatie zien? Wie helpt me op weg?
Met een regular expression

<tilered>(.*)</titlered>
pi_63270034
Bedankt. Ondertussen heb ik al de functie preg_match_all gevonden. Ik krijg ondertussen alles tussen <xxx>tekst<xxx> mooi gefilterd. Echter, ik wil nu enkel de "tekst" weergeven waar een weekdag (maandag, dinsdag, woensdag, etc.) in de tekst staat. Iemand een idee voor deze regular expression?
pi_63271655
Ik heb een vraagje over statistieken.

Voor mijn systeem wil ik nu het volgende inbouwen.
- Start pagina (de pagina waar de gebruiker op binnenkomt) (reeds gedaan, simpel)
- Exit pagina (de laatste pagina waar de gebruiker op is geweest voordat hij van mijn site afging)

Hoe los ik dit database technisch op?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_63273754
quote:
Op zondag 16 november 2008 20:38 schreef Chandler het volgende:
Ik heb een vraagje over statistieken.

Voor mijn systeem wil ik nu het volgende inbouwen.
- Start pagina (de pagina waar de gebruiker op binnenkomt) (reeds gedaan, simpel)
- Exit pagina (de laatste pagina waar de gebruiker op is geweest voordat hij van mijn site afging)

Hoe los ik dit database technisch op?
Gewoon bij iedere pagina in de database opslaan waar de gebruiker op het moment is?
ne okuyon, bokmu var?
pi_63274799
quote:
Op zondag 16 november 2008 20:38 schreef Chandler het volgende:
Ik heb een vraagje over statistieken.

Voor mijn systeem wil ik nu het volgende inbouwen.
- Start pagina (de pagina waar de gebruiker op binnenkomt) (reeds gedaan, simpel)
- Exit pagina (de laatste pagina waar de gebruiker op is geweest voordat hij van mijn site afging)

Hoe los ik dit database technisch op?
ja, iedere pagina opslaan dus...
Wanneer hij weggaat weet je niet namelijk, dus je weet het pas op het moment dat je geen volgende pagina meer krijgt ... en dan moet je dus weten wat de vorige was
  maandag 17 november 2008 @ 12:47:14 #238
12880 CraZaay
prettig gestoord
pi_63285946
quote:
Op zondag 16 november 2008 20:38 schreef Chandler het volgende:
Ik heb een vraagje over statistieken.
Google Analytics?
pi_63289148
Duidelijk en CraZaay, ik vind graag het wiel opnieuw uit!
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_63293177
quote:
Op zondag 16 november 2008 10:31 schreef Light het volgende:
Ik zou ook eens kijken naar BETWEEN. Dan kom je op zoiets uit:
[ code verwijderd ]
cool thnx, nooit aan die optie gedacht, maar werkt een stuk makkelijker. heb eerder ook al eens met die probleem gezeten..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_63332021
Op mijn vorige vraag heb ik een vervolg en natuurlijk heb ik gezocht maar kon hier niets begrijpends over vinden..

Is het mogelijk om het MySQL 5.0 een query in een query te doen. BV

Ik wil van een tabel waarin voor gebruikers de laatste referer staat

1tabel: `user_referer_last_tmp` (site_id, ip_id, ref_id, timestamp)


waarbij ik een unique op site_id en ip_id heb en deze middels een ON DUPLICATE KEY de ref_id aanpas gebruiken om een andere tabel te updaten.

1tabel: `users_referer_last` (site_id`, `ref_id`, `hits`)


waarbij ik een een unique op site_id en ref_id en weer ON DUPLICATE KEY waarbij ik dit keer de hits met 1 wil verhogen.

Dus in het kort de query

1. lees items uit tabel_referer_last_tmp waarbij de tijd minimaal een uur geleden is (timestamp)
2. insert deze in tabel_referer_last (of update hits)
3. verwijder gebruikte items uit tabel_referer_last_tmp

En indien hier geen simpele oplossing voor is, hoe los ik dit wel praktisch en efficient op ;)
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_63332264
Bluh, ik zit vast.
Ik heb een stukje geschreven voor m'n site om in het menu de laatste 5 items uit een bepaalde nieuws categorie te laten zien.
Na lang(!) proberen eindelijk een combinatie gevonden die werkte en kon ik eindelijk door naar de volgende stap.
Ik heb namelijk bij die categorie een extra tekst in de bericht title staan om het wat duidelijker te maken.
Nu wil ik dat wel houden, maar uiteraard niet laten zien in het menu want dat menu is al vernoemd naar die extra aanduiding.
Enfin... ik zit dus een beetje vast want ik kan nérgens vinden hoe ik in php de eerste 9 karakters van de opgehaalde titel kan verwijderen.


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
$eol_separator = "</td></tr>";
$sol_separator = "<tr><td valign='top' style='text-align:left; padding-top: 4px;'>";
$qry = "SELECT news_id, news_title, news_category FROM #news WHERE news_render_type = 0 AND news_category = 3 ORDER BY news_id DESC LIMIT 0,".$count;


if($sql2->db_Select_gen($qry))
{
   $n_text = "<table cellspacing='0' cellpadding='0' style='width:100%; border-collapse: collapse;'>";
   while ($row = $sql2->db_Fetch())
   {      
      $title = $tp->toHTML($row['news_title']);

      if ($curcount < $count){
         $n_text .=$sol_separator ."<span style='font-size: 10px; color: #000000; margin-right: 8px;padding-bottom: 4px;'><em>".$time."</em></span></td>";
         $n_text .="<td valign='top' align='left' style='padding-top: 4px;padding-bottom: 4px;border-bottom:1px dotted #CCCCCC;'><a href='".e_HTTP."news.php?item.".$row['news_id']."'>".$title."</a>".$eol_separator;
      }else{
         $n_text .=$sol_separator ."<span style='font-size: 10px; color: #000000; margin-right: 8px;'><em>".$time."</em></span></td>";
         $n_text .="<td valign='top' align='left' style='padding-top: 4px;'><a href='".e_HTTP."news.php?item.".$row['news_id']."'>".$title."</a>".$eol_separator;
      }
        
      $curcount++;
   }
   $n_text .= "</table>";
}
else
{
   $n_text = $no_news;
}
$ns->tablerender($caption, $n_text);



Even nog eens in het kort wat ik graag zou willen maken;
- Uit '#news' wordt o.a. de 'news_title' gehaald
- Hier moeten de eerste 9 karakters van weg, bij alle titles van de items uit die categorie
- Het mag alleen effect hebben op het menu, niet op de database entry

Na een uurtje of 4 te hebben gezocht met mijn grote vriend heb ik het een beetje opgegeven en heb ik besloten elders hulp te zoeken. :)
Ik kom niet om jullie het werk te laten doen, 99/100 keer blijf ik prielen tot ik het zelf heb opgelost, juist om er van te leren.
Als je het dus duidelijk uitlegt schrijf ik het dus zelf graag zodat het ook blijft steken.


Thanks,
djpdjpnl
pi_63332351
Misschien kan die grote vriend wat beter helpen.
pi_63332654
Die pagina heb ik al enige tijd doorgelezen maar dit is niet de oplossing, Light.
Ik heb namelijk niet 1 vaste tekst die aangepast wordt.
Het ziet er zo ongeveer uit;

'123456789 pizza
123456789 schnitzel
123456789 pindakaas'

Die 1 t/m 9 moet eruit en ik kan dus niet zeggen als er ''123456789 pizza' staat dan moet 123456789 eruit' want ik weet nu nog niet wat er op de plek van pizza komt te staan.
Substr zou dus kunnen helpen mits hij de plek van pizza variabel kan maken en dat snap ik niet hehe.
pi_63332715
Ik en preg_match_all, het blijft een drama. Ik laad een pagina in met een heleboel items die ik een array wil hebben.
Ff heel simpel voorbeeldje:
1
2
3
4
5
6
<table>
<tr>
<td>Item 1</td>
<td>Item 2</td>
</tr>
</table>

Nu wil ik dus Item 1 en Item 2 in een array hebben. Nu is het probleem dat de lengte van de items heel erg varieert, en het ook over meerdere regels loopt. Als ik dan een expressie als "<td>(.*)<\/td>/s" gebruik, dan krijg ik dus als resultaat "<td>Item 1</td><td>Item 2</td>" :? :{

Hoop dat m'n uitleg een beetje duidelijk is :+
  dinsdag 18 november 2008 @ 23:33:45 #246
75592 GlowMouse
l'état, c'est moi
pi_63332947
djpdjpnl: sla die 123456789 op in een andere kolom. En anders kun je via substring (wat al aangedragen was, maar dit kun je beter in MySQL al doen) gewoon de eerste 10 karakters weghalen.
Piles: kijk eens naar greediness.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  dinsdag 18 november 2008 @ 23:37:40 #247
75592 GlowMouse
l'état, c'est moi
pi_63333054
quote:
Op dinsdag 18 november 2008 23:03 schreef Chandler het volgende:
Dus in het kort de query

1. lees items uit tabel_referer_last_tmp waarbij de tijd minimaal een uur geleden is (timestamp)
2. insert deze in tabel_referer_last (of update hits)
3. verwijder gebruikte items uit tabel_referer_last_tmp
Kijk eens hiernaar. Het deleten wordt sowieso een aparte query. Je moet er daarom ook rekening mee houden dat er tussen de eerste twee stappen en de laatste stap wat tijd kan zitten, zodat als je de timestamp niet constant houdt, je enkele rijen verwijdert die je niet verwerkt hebt.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_63333098
quote:
Op dinsdag 18 november 2008 23:33 schreef GlowMouse het volgende:
Piles: kijk eens naar greediness.
Modifer U dus Nog nooit gebruikt
Dank u
pi_63333975
quote:
Op dinsdag 18 november 2008 23:33 schreef GlowMouse het volgende:
djpdjpnl: sla die 123456789 op in een andere kolom. En anders kun je via substring (wat al aangedragen was, maar dit kun je beter in MySQL al doen) gewoon de eerste 10 karakters weghalen.
Sorry, ik denk dat ik wel in dit topic pas. Ik snap het niet helemaal. Als ik 1-9 elders wil opslaan kost me dat ontiegelijk veel code werk en da's denk ik niet rendabel voor wat ik aan het maken ben.

De substring, hoe krijg ik die aan de title gekoppeld dat ie de substring variabel aan de title hangt en niet aan niks? Zou 't helpen als ik op line 12 een extra regel tik over hoe $title en substring samen wat doen? Ik weet niet echt hoe ik dat moet gaan schrijven namelijk.
pi_63336300
Substr() is toch niet zo heel lastig? Je geeft op op welke string je de bewerking wilt uitvoeren en hoeveel tekens vanaf het begin je wilt overslaan. Wat er daarna staat, is helemaal niet interessant. Zoiets dus:
1
2
3
<?php
$title 
$tp->toHTML(substr($row['news_title'], 10));
?>

(Misschien maakt de volgorde van toHTML() en substr() voor het resultaat hier weinig uit, maar dit is wel de veiligere volgorde. Als je eenmaal een html-string hebt, moet je daar niet meer in gaan knippen.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')