Goed idee om alles in één keer mee te nemen. Werkt zoiets als het volgende voor je?quote:Op dinsdag 28 augustus 2007 18:09 schreef Swetsenegger het volgende:
[..]
Nee, het gat niet om een 2e query.
De resultaten van een query worden in een while lus uitgelezen, record voor record.
En als die whilelus nu bij record 11 is, wil eigenlijk weten wat er in record 12 staat.
Dit ivm presentatie.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $resultSet = ... // definieer de eerste rij $row = mysql_fetch_assoc($resultSet); // zolang de meest recent gelezen rij geldig is while($row) { // haal de volgende rij op $nextRow = mysql_fetch_assoc($resultSet); // als $nextRow niet false is, is $row niet de laatste rij if($nextRow) { // vergelijk $row tegen $nextRow } else { // doe eventueel iets leuks met $row als laatste rij } // zet de huidige rij op de volgende rij om de loop compleet te maken $row = $nextRow; } |
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 | $ii = 0; while($row = mysql_fetch_array($result)){ $url() = split("/", $row("referer")); $site = $url(1) . $url(2) . $url(3) . $url(4); $i = 1 ; $getelt = 0 ; while($i<=&ii){ if ($siteteller($i,0) = $site){ $siteteller($i,1) = $siteteller($i,1) + 1;} $getelt = 1; $i = $i + 1; } if ($getelt = 0){ $ii = $ii + 1; $siteteller($ii,0) = $site; $siteteller($ii,1) = 1; } } $i = 1 while ($i <= $ii){ echo $siteteller($i,0); echo $siteteller($i,1); } |
line 25 denk ik.... geen puntkomma op line 24quote:Op donderdag 30 augustus 2007 13:14 schreef BunnyHunter het volgende:
[ code verwijderd ]
de foutcode:
Parse error: syntax error, unexpected T_WHILE in /home/sites/site3850/web/bestanden/sites.php on line 35
in dit geval line 3
wat moet de code doen::
Ik split een url string, die ik weer aan elkaar koppel tot ik aleen een domein string over hou, daarna controleer ik of de string al eens eerder is voorgekomen en als dat niet zo is maak ik een nieuwe teller aan.
ik ben gewend om ASP of VB te programeren, en ik word een beetje gek van PHP om eerlijk te zijn![]()
Voor zover ik kan zien staan de accolades goed, alleen een beetje onoverzichtelijkquote:Op donderdag 30 augustus 2007 13:30 schreef unox_worst het volgende:
Regel 24 mis je een punt-komma, voor de rest zie ik in dit stukje code geen fouten.
Edit:
Je mist helemaal onderaan idd een accolade.
Daar moet == staan ipv =quote:Op donderdag 30 augustus 2007 13:36 schreef unox_worst het volgende:
Die if statement of regel 12 klopt volgens mij ook niet helemaal, zal straks is kijken wat ook alweer precies de bedoeling was enzo.
Bevestigd, vijf openingsaccolades en vijf sluitingsaccolades.quote:Op donderdag 30 augustus 2007 13:36 schreef Dreammaster het volgende:
[..]
Voor zover ik kan zien staan de accolades goed, alleen een beetje onoverzichtelijk
Ik heb hier een groot deel van de kvk-database geïmporteerd, dat waren 780.000 records ongeveer.quote:Op donderdag 30 augustus 2007 15:47 schreef markiemark het volgende:
Even een heel simpel vraagje... Hoeveel rijen kan een MySQL tabel maximaal aan, wat is aan te raden om als maximum te houden?
Of is het afhankelijk van de grootte van de schijf in de server en de prestaties die deze kan leveren?
http://dev.mysql.com/doc/refman/5.0/en/features.htmlquote:Op donderdag 30 augustus 2007 15:47 schreef markiemark het volgende:
Even een heel simpel vraagje... Hoeveel rijen kan een MySQL tabel maximaal aan, wat is aan te raden om als maximum te houden?
Of is het afhankelijk van de grootte van de schijf in de server en de prestaties die deze kan leveren?
quote:Handles large databases. We use MySQL Server with databases that contain 50 million records. We also know of users who use MySQL Server with 60,000 tables and about 5,000,000,000 rows.
Ja klopt maar dat zijn foutjes waar ik achterkom met testen normaal.quote:Op donderdag 30 augustus 2007 13:41 schreef Dreammaster het volgende:
en de laatste while loop is infinite
met 60.000 tabellen moet je je database echt eens op orde brengenquote:Op donderdag 30 augustus 2007 15:49 schreef Geqxon het volgende:
[..]
http://dev.mysql.com/doc/refman/5.0/en/features.html
[..]
Hetzelfde met 3500 kolommen op een tabel.quote:Op donderdag 30 augustus 2007 16:00 schreef Catch22- het volgende:
[..]
met 60.000 tabellen moet je je database echt eens op orde brengen
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 | $ii = 0; while($row = mysql_fetch_array($result)){ $url = split("/", $row("referer")); $site = $url(1) . $url(2) . $url(3) . $url(4); $i = 1 ; $getelt = 0 ; while($i<=$ii){ if ($siteteller($i,0) == $site){ $siteteller($i,1) = $siteteller($i,1) + 1; $getelt = 1; } $i = $i + 1; } if ($getelt = 0){ $ii = $ii + 1; $siteteller($ii,0) = $site; $siteteller($ii,1) = 1; } } $i = 1; while ($i <= $ii){ echo $siteteller($i,0); echo $siteteller($i,1); $i = $i + 1; } |
Ik denk dat dat meer problemen geeft dan het oplost omdat die data dan niet meer toegankelijk is. Ik werk met databases waar soms tabellen met miljoenen records in zitten, en dat is goed te doen. Alleen doorzoeken kan lang duren, afhankelijk wat je zoekt; tabellen met miljoenen rows met elkaar joinen, daar staat ie meestal wel even op te stampen. Je kan de tijd verkorten door goed db ontwerp en slim van mysql indices gebruik te maken maar voor de applicaties waar ik mee werk is dat nog niet genoeg. De oplossing die gebruikt wordt is het maken van een aparte index tabel, een zgn datamart, waar je de data bijelkaar zet die je snel boven water wil toveren. Die moet je dan wel bijv elke dag opnieuw genereren.quote:Op donderdag 30 augustus 2007 15:52 schreef markiemark het volgende:
In principe kan ik er dus echt wel best wat in kwijt.. hehe
Het gaat mij om de opslag van tijden met daarbij behorende info, een soort logboek. Er komen waarschijnlijk best wel grote aantallen records in de tabel 'log' te staan. Is het verstandig om na bijv. 1 miljoen (ik noem maar een aantal..) records de data te kopieren naar een andere tabel? Of naar een andere database eventueel?
Dit ziet er uit als een slechte poging om een asp scriptje om te zetten naar php.quote:Op donderdag 30 augustus 2007 16:40 schreef BunnyHunter het volgende:
Ik heb dus alle fouten die aangegeven waren eruit gehaalt maar hij geeft me dus nu de foutmelding
Parse error: syntax error, unexpected '=' in /home/sites/site3850/web/bestanden/sites.php on line 45
dat is bij dit stukje code op 14 in dit bericht
$siteteller($i,1) = $siteteller($i,1) + 1;
ik denk zelf dat hij het niet ziet als een integer, ik kan het aleen niet testen omdat ik zo snel geen convert functie vind daarvoor.
[ code verwijderd ]
daar ben ik dus mee bezig.. dus als je me vertelt wat ik fout doequote:Op donderdag 30 augustus 2007 18:34 schreef SuperRembo het volgende:
[..]
Dit ziet er uit als een slechte poging om een asp scriptje om te zetten naar php.
Of leer php òf zoek een andere hobby.
Begin eens bij w3schools.com. De fouten die hier in zitten zijn echt te basic om uit te leggen.quote:Op donderdag 30 augustus 2007 18:43 schreef BunnyHunter het volgende:
daar ben ik dus mee bezig.. dus als je me vertelt wat ik fout doeanders
![]()
ik zoek alles op op w3schools maargoed ik kloot wel wat verder aanquote:Op donderdag 30 augustus 2007 19:17 schreef SuperRembo het volgende:
[..]
Begin eens bij w3schools.com. De fouten die hier in zitten zijn echt te basic om uit te leggen.
ja kijk daar had ik het net dus over met iemand in de kantine.. ik dacht dus dat die array's gewoon net zo werkte als in asp en etc. maar hij werkt dus zoals de session array variabalen werken bij asp.quote:Op donderdag 30 augustus 2007 21:19 schreef SuperRembo het volgende:
Het grootste probleem is dat $siteteller een array van array's zou moeten zijn. Voor php ziet $siteteller($i,1) er uit als functie aanroep, niet als element in een array. En daar kan je geen waarde aan toe kennen met $siteteller($i,1) = 1, vandaar de syntax error "unexpected '=' ".
alleen het begin van het bestand dus... Hoe kan ik dit verhelpen?quote:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml:lang="en-us" lang="en-us" xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="pics-label" content="(pics-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://www.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stb.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stc.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) gen true for "http://stj.msn.com" r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://www.msn.com" r (n 0 s 0 v 0 l 0)gen true for "http://msn.com" r (n 0 s 0 v 0 l 0)gen true for "http://stb.msn.com" r (n 0 s 0 v 0 l 0) gen true for "http://stc.msn.com" r (n 0 s 0 v 0 l 0) gen true for "http://stj.msn.com" r (n 0 s 0 v 0 l 0))" /><link rel="SHORTCUT ICON" href="http://hp.msn.com/global/c/hpv10/favicon.ico" type="image/x-icon" /><meta name="ROBOTS" content="NOODP" /><link rel="search" type="application/opensearchdescription+xml" title="Live Search" href="http://www.live.com/live/search/search.xml" /><meta name="description" content="MSN's all-in-one Internet portal, the home of Hotmail, MSN Messenger, MSNBC News, Fox Sports, Slate Magazine and more information you care about" /><title>MSN.com</title><style type="text/css">@import url("http://stc.msn.com/br/hp/en-us/css/31/ushpw.css");@import url("http://stc.msn.com/br/hp/en-us/css/31/ovrN.css");</style><!--[if IE]><style type="text/css">@import url("http://stc.msn.com/br/
de 8192 veranderen zeker...quote:Op vrijdag 31 augustus 2007 13:27 schreef PiRANiA het volgende:
$handle = fopen ($row['href'], "r"); #Open pagina
$datavar="ERROR";
$datavar = fread ($handle, 8192);
if($datavar=="ERROR"){ #Er is niks opgehaald: break
mysql_query("DELETE FROM `ahref` WHERE `href`='".$row['href']."' ");
break;
}
1 2 3 4 5 6 7 8 9 | // http://php.net/fread $handle = fopen("http://www.example.com/", "rb"); $contents = ''; while (!feof($handle)) { $contents .= fread($handle, 8192); } fclose($handle); ?> |
Alleen is de filesize een beetje lastig bij een webpaginaquote:Op vrijdag 31 augustus 2007 20:24 schreef Farenji het volgende:
uit de php documentatie:
[ code verwijderd ]
Allicht de "Content-length" uit de HTTP-headers halen?quote:Op vrijdag 31 augustus 2007 20:34 schreef SuperRembo het volgende:
[..]
Alleen is de filesize een beetje lastig bij een webpagina
1 2 3 4 5 6 7 8 9 10 11 12 | // sessies vernietigen session_start(); session_destroy(); session_unset(); // cookies verwijderen setcookie("email", "", 0); setcookie("password", "", 0); header("Location: ../index.php"); ?> |
Je zal altijd met een beperkte timeout te maken houden en files van een paar mb duren gewoon lang om te uploaden, dus krijg je met de timeout van doen, als je refreshed ben je je post data kwijt...quote:Op zondag 2 september 2007 13:19 schreef Chivu het volgende:
Ik wil via een formulier meerdere files (1 tot in de praktijk 10) uploaden. Met kleine bestanden gaat dit prima. Met een 10-tal 'grote' bestanden (foto's uit een digitale camera, 1 a 2mb per stuk) duurt dit waarschijnlijk te lang en krijg ik na een (beperkt aantal? 15-20) seconden de originele uploadpagina weer te zien. De $_POST wordt dus niet meegegeven, anders kreeg ik de resultatenpagina te zien.
Nu heb ik me rot gezocht op GoT of het mogelijk is om tussen elke uploadactie de pagina te refreshen.
1. Upload formulier met 10 input type=file elementen
2. Upload $_FILES[0]
3. Refresh
4. Upload $_FILES[1]
5. Refresh
6. Upload $_FILES[2]
7. Refresh
8. Upload $_FILES[3]
9. etc. etc.
10. Klaar, toon de resultatenpagina
Hiervoor moeten de $_POST en $_FILES variabelen dus keer op keer doorgegeven worden bij de refresh, inclusief een teller-variabele om telkens de volgende $_FILES[$teller] af te lopen.
Is dit mogelijk en hoe doe ik dit precies? Ik wil liever niet afhankelijk zijn van php.ini settings, zodat onafhankelijk van de server de website gewoon werkt met de standaard PHP instellingen.
je kunt ook gewoon de max_execution_time omhoog gooienquote:Op zondag 2 september 2007 13:19 schreef Chivu het volgende:
Ik wil via een formulier meerdere files (1 tot in de praktijk 10) uploaden. Met kleine bestanden gaat dit prima. Met een 10-tal 'grote' bestanden (foto's uit een digitale camera, 1 a 2mb per stuk) duurt dit waarschijnlijk te lang en krijg ik na een (beperkt aantal? 15-20) seconden de originele uploadpagina weer te zien. De $_POST wordt dus niet meegegeven, anders kreeg ik de resultatenpagina te zien.
Nu heb ik me rot gezocht op GoT of het mogelijk is om tussen elke uploadactie de pagina te refreshen.
1. Upload formulier met 10 input type=file elementen
2. Upload $_FILES[0]
3. Refresh
4. Upload $_FILES[1]
5. Refresh
6. Upload $_FILES[2]
7. Refresh
8. Upload $_FILES[3]
9. etc. etc.
10. Klaar, toon de resultatenpagina
Hiervoor moeten de $_POST en $_FILES variabelen dus keer op keer doorgegeven worden bij de refresh, inclusief een teller-variabele om telkens de volgende $_FILES[$teller] af te lopen.
Is dit mogelijk en hoe doe ik dit precies? Ik wil liever niet afhankelijk zijn van php.ini settings, zodat onafhankelijk van de server de website gewoon werkt met de standaard PHP instellingen.
1 2 3 | ini_set('max_execution_time', 120); ?> |
dat is echt een instelling in je php zelfquote:htaccess (hypertext access) is the default name of Apache's directory-level configuration file. It provides the ability to customize configuration for requests to the particular directory.
.htaccess files are commonly used for:
* Authorization, authentication: .htaccess files are often used to specify the security restrictions for the particular directory, hence the filename "access". The .htaccess file is often accompanied by an .htpasswd file which stores valid usernames and their passwords.
* Customized error responses: Changing the page that is shown when a server-side error occurs, for example HTTP 404 Not Found.
* Rewriting URLs: Various server-side PHP scripts use .htaccess to rewrite "ugly" URLs to shorter and prettier ones.
Dat dacht ik al. Ik hou het maar gewoon op een check dat bestanden van meer dan 2mb niet geupload mogen worden. Ik gebruik liever niet iets als JUpload vanwege overige bewerkingen die daarna nog met de plaatjes uitgevoerd moeten worden, dus dan wordt het maar gewoon maximaal 3-5 plaatjes uploaden. Daar moet wel genoeg tijd voor zijn, en dan maar met die ini-setquote:Op maandag 3 september 2007 14:40 schreef Catch22- het volgende:
Je zal altijd met een beperkte timeout te maken houden en files van een paar mb duren gewoon lang om te uploaden, dus krijg je met de timeout van doen, als je refreshed ben je je post data kwijt...
wellicht handig om het via ajax te doen om te voorkomen dat de gebruiker de pagina gaat refreshen omdat het hem te lang duurtquote:Op maandag 3 september 2007 15:36 schreef Chivu het volgende:
[..]
Dat dacht ik al. Ik hou het maar gewoon op een check dat bestanden van meer dan 2mb niet geupload mogen worden. Ik gebruik liever niet iets als JUpload vanwege overige bewerkingen die daarna nog met de plaatjes uitgevoerd moeten worden, dus dan wordt het maar gewoon maximaal 3-5 plaatjes uploaden. Daar moet wel genoeg tijd voor zijn, en dan maar met die ini-setBedankt.
AJAX heb je binnen 5 minuten geleerd. Maar in principe heb je wel gelijk natuurlijk.quote:Op maandag 3 september 2007 16:06 schreef Chivu het volgende:
Ik vind Ajax heel lief, maar ik heb me nog niet in AJAX verdiept. Bovendien moet een gedisabled uploadknopje en een animatie+melding genoeg zijn om mensen te laten wachten.
kun je het binnen 5 min typen leren? zo ja, dan zou ik zeggen.. succes!quote:Op maandag 3 september 2007 16:49 schreef Dreammaster het volgende:
[..]
AJAX heb je binnen 5 minuten geleerd. Maar in principe heb je wel gelijk natuurlijk.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |