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.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.
Ik heb nu dit gedaan: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.
Dat kan.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?
Je MySQL server adres is NIET hetzelfde als het adres van de betreffende website / DB admin panel.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?
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.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
Ik denk dat ik mijn probleem verkeerd hebt uitgelegd.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.
Als je dus puur wilt controleren welke dagen in een gegeven maand voorkomen, is het volgende al voldoende: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).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $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]); } ?> |
Nu heb je een array met wat er in de database staat, maar de array moet buiten de while ook nog bruikbaar zijn.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 ]
dus is het deze: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 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).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.
Nee, http://dbadmin.one.com is niet je MySQL server, maar gewoon het adres/een subdomain waar PHPMyAdmin op draait.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.
zodra ik naar http://phpmyadmin.mijnwebsite.nl ga, wordt ik doorverwezen naar dbadmin.one.comquote: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.
Coolquote: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).
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.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
1 2 3 4 5 6 7 8 9 10 11 12 | ( [0] => 1-11-2008 [1] => 6-11-2008 [2] => 10-11-2008 ) Array ( [0] => foo [1] => foo [2] => bar ) |
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 | $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]; ?> |
1 2 3 | $bla = array("appel", "peer", "Sinaasappel", "Ananas"); ?> |
1 2 3 4 | [1] = peer [2] = Sinaasappel [3] = Ananas |
snap ik, alleen weet ik de link niet. even achteraan gaan.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.
Bij mijn PhpMyAdmin is het MySQL server adres en poortnummer weergeven in de titelbalk van mijn browser. Kijk daar anders eens.quote:Op vrijdag 14 november 2008 11:24 schreef Pizzahut het volgende:
[..]
snap ik, alleen weet ik de link niet. even achteraan gaan.
1 2 3 4 5 6 7 | $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 ?> |
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 .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 ]
1 2 3 | echo $array_naam['$q']; ?> |
1 2 3 | echo $array_naam[$q]; ?> |
Damn I fuckin love youquote: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 ]
Kun je die arrays niet beter combineren?quote:
1 2 3 4 5 6 7 | $combiarray['1-11-2008'] => 'foo'; $combiarray['6-11-2008'] => 'foo'; $combiarray['10-11-2008'] => 'bar'; echo $combiarray[datum]; ?> |
'' (single quotes) expand een value niet, "" (doubel quotes) wel.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 ]
1 2 3 4 5 | echo $bla; echo "$bla"; echo '$bla'; ?> |
1 2 3 | $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.";"; ?> |
Dan kom ik toch hierop uit: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].
1 2 3 | $query = "SELECT * FROM contracten WHERE (datum_start >= ".$start." AND datum_einde <= ".$start.") OR (datum_start >= ".$eind." AND datum_einde <= ".$eind.") AND customer = ".$customer.";"; ?> |
1 2 3 | $query = "SELECT * FROM contracten WHERE (datum_start <= ".$start." AND datum_einde >= ".$start.") OR (datum_start <= ".$eind." AND datum_einde >= ".$eind.") AND customer = ".$customer.";"; ?> |
1 2 3 4 5 6 7 | $query = 'SELECT * FROM contracten WHERE ( ('.$start.' BETWEEN datum_start AND datum_einde) OR ('.$eind.' BETWEEN datum_start AND datum_einde) ) AND customer = '.$customer; ?> |
Zo, toch maar even wat enters toegevoegdquote: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
Met een regular expressionquote: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?
Gewoon bij iedere pagina in de database opslaan waar de gebruiker op het moment is?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...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?
Google Analytics?quote:Op zondag 16 november 2008 20:38 schreef Chandler het volgende:
Ik heb een vraagje over statistieken.
cool thnx, nooit aan die optie gedacht, maar werkt een stuk makkelijker. heb eerder ook al eens met die probleem gezeten..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 ]
1 |
1 |
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 | $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); |
1 2 3 4 5 6 | <tr> <td>Item 1</td> <td>Item 2</td> </tr> </table> |
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.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
Sorry, ik denk dat ik wel in dit topic pas.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.
1 2 3 | $title = $tp->toHTML(substr($row['news_title'], 10)); ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |