Jow, het voordeel is dat je MySQL al kent en dus kan blijven gebruiken...quote:Op woensdag 12 maart 2008 17:58 schreef Chandler het volgende:
Kan iemand mij het voordeel uitleggen als je werkt met MySQL en MySQL wilt blijven gebruiken?
Ik zou zeggen dat het voordeel is dat je veel makkelijker kan overstappen naar een andere DB zonder je code te hoeven herschrijven.quote:Op woensdag 12 maart 2008 18:32 schreef Chandler het volgende:
Maar slacker_nl; er is dus niet echt een voordeel snap ik?
quote:The DBI is a database access module for the Perl programming language. It defines a set of methods, variables, and conventions that provide a consistent database interface, independent of the actual database being used.
It is important to remember that the DBI is just an interface. The DBI is a layer of "glue" between an application and one or more database driver modules. It is the driver modules which do most of the real work. The DBI provides a standard interface and framework for the drivers to operate within.
Architecture of a DBI Application
1
2
3
4
5
6
7
8
9
10
11
12|<- Scope of DBI ->|
.-. .--------------. .-------------.
.-------. | |---| XYZ Driver |---| XYZ Engine |
| Perl | | | `--------------' `-------------'
| script| |A| |D| .--------------. .-------------.
| using |--|P|--|B|---|Oracle Driver |---|Oracle Engine|
| DBI | |I| |I| `--------------' `-------------'
| API | | |...
|methods| | |... Other drivers
`-------' | |...
`-'
The API, or Application Programming Interface, defines the call interface and variables for Perl scripts to use. The API is implemented by the Perl DBI extension.
The DBI "dispatches" the method calls to the appropriate driver for actual execution. The DBI is also responsible for the dynamic loading of drivers, error checking and handling, providing default implementations for methods, and many other non-database specific duties.
Each driver contains implementations of the DBI methods using the private interface functions of the corresponding database engine. Only authors of sophisticated/multi-database applications or generic library functions need be concerned with drivers.
Ik neem aan dat je het over PDO hebt?quote:Op woensdag 12 maart 2008 17:58 schreef Chandler het volgende:
Kan iemand mij het voordeel uitleggen als je werkt met MySQL en MySQL wilt blijven gebruiken?
1 2 3 | mysql_real_escape_string($code)) $q = mysql_query($sql); |
1 2 | $stm->execute(array('code' => $code)); |
1 2 3 | $stmt->bindParam(':code', $code); $stm->execute(); |
Het zit standaard bij PHP 5.1...quote:Op woensdag 12 maart 2008 20:05 schreef Chandler het volgende:
Duidelijk Sr, maar hoe veel servers ondersteunen PDO?
Ok, maar is er geen lijst beschikbaar hoeveel (gemiddeld) van de huidige online servers php 5 of hoger draaien, want volgens mij draaien veel hosters nog steeds php 4.2xquote:Op woensdag 12 maart 2008 20:56 schreef SuperRembo het volgende:
[..]
Het zit standaard bij PHP 5.1...
zou normaal gesproken moeten werken, omdat je niet buiten je eigen map komt.quote:Op vrijdag 14 maart 2008 00:52 schreef beerten het volgende:
Hoi,
ik heb subdomains aangemaakt. Nu wil ik graag dat mijn fotoscript op een ander backoffice.subdmain.nl de foto's wegschrijft in het andere foto.subdomain.nl Scrhijfacties op een ander domain staat de server niet toe. Hoe flik ik m dit?
Ik lees altijd de handleidingen...quote:Op zondag 16 maart 2008 23:37 schreef wobbel het volgende:
Wat zijn hele goede RegEx cursussen? Heb al zo'n PHPHulp.nl cursusje gevonden maar nog niet echt doorgebladerd....hebben jullie enige suggesties?
quote:Kunnen jullie tot die tijd niet ff snel een Regex maken die kijkt of een $variable een #hexadeciamele kleur is? Dus: #FF00FF of #123ABC enzo, dus # en dan minimaal 6 tekens (ik gebruik geen3 kleurige hex codes)
1 |
Nee, er zijn meestal wel verschillen. Perl regexps en perl-stijl regexps in php (preg*) komen grotendeels overeen, maar php heeft wel een paar kleine extra's. In php heb je ook posix stijl regexps (ereg*), die zijn heel anders, en hebben minder mogelijkheden. Regexps in javascript lijken er op die van perl, maar hebben veel minder mogelijkheden. De basis van regexps in .NET lijken erg op perl, maar in de geavanceerdere opties zitten grote verschillen. Dan heb je ook nog de regexps in zoekfuncties in tools as UltraEdit en Visual Studio, die zijn weer anders. En ik kwam laatst regexps tegen voor een firewall, en die waren ook weer totaal anders.quote:Op maandag 17 maart 2008 09:46 schreef wobbel het volgende:
@slakkie
Reguliere expressies zijn dus in elke programmeertaal "universeel" zeg maar?
Niet geheel, zie het commentaar van superrembo. Er zijn verschillende types regexp engines die door de verschillende talen gebruikt worden. Dat beinvloed hoe regexpen zich gedragen. Maar aangezien PHP perl-like regexpen kent vond ik de Perl docs wel een goed uitgangspunt om te beginnen met lezen. Maar dat boek "Mastering regular expressions" behandeld bijvoorbeeld ook Java en volgens mij ook PHP (maar dit weet ik niet zeker). Dat boek heeft mij enorm geholpen met het gebruik en het beter begrijpen van reguliere expressies.quote:Op maandag 17 maart 2008 09:46 schreef wobbel het volgende:
@slakkie
Reguliere expressies zijn dus in elke programmeertaal "universeel" zeg maar?
Tuurlijkquote:Op zondag 16 maart 2008 23:38 schreef wobbel het volgende:
[..]
zou normaal gesproken moeten werken, omdat je niet buiten je eigen map komt.
/home/domeinnaam/subdomain/backoffice
/home/domeinnaam/subdomain/foto
Je blijft in je eigen map "domeinnaam" dus er zou in princiepe niks fout moeten gaan
= edit =
Dat had ook wel in 1 reactie gekund![]()
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 | if ($runtime > 0){ $divider = ", "; $divider_last = " and "; $parts = array(); $entities = array( array( "singular" => "month", "plural" => "months", "minutes" => 60 * 24 * 31), array( "singular" => "day", "plural" => "days", "minutes" => 60 * 24), array( "singular" => "hour", "plural" => "hours", "minutes" => 60), array( "singular" > "minute", "plural" => "minutes", "minutes" => 1) ); foreach ($entities as $entity){ $value = floor($runtime / $entity["minutes"]); if ($value){ $parts[] = sprintf( "%d %s", $value, ($value > 1) ? $entity["plural"] : $entity["singular"] ); } $runtime = $runtime % $entity["minutes"]; } $html_parts = implode($divider, $parts); if (sizeof($parts) > 1) { $html_parts = substr_replace( $html_parts, $divider_last, strrpos($html_parts, $divider), strlen($divider) ); } return $html_parts; } ?> |
Ik gebruikte dit op mijn website:quote:Op woensdag 19 maart 2008 22:24 schreef Geqxon het volgende:
Om het resterend aantal minuten wat duidelijker te maken heb ik het volgende geschreven om "xxxx minutes remaining" om te toveren naar "1 month, 13 days and 12 seconds remaining".
[ code verwijderd ]
Iemand nog tips of aanmerkingen? Ik namelijk dat het goed werkt, en ondanks ik het getest heb ben ik bang dat ik een wiskundige fout heb gemaakt. :)
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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | function datediff($start_date,$end_date="now",$unit="D") { $unit = strtoupper($unit); $start=strtotime($start_date); if ($start === -1) { print("invalid start date"); } $end=strtotime($end_date); if ($end === -1) { print("invalid end date"); } if ($start > $end) { $temp = $start; $start = $end; $end = $temp; } $diff = $end-$start; $day1 = date("j", $start); $mon1 = date("n", $start); $year1 = date("Y", $start); $day2 = date("j", $end); $mon2 = date("n", $end); $year2 = date("Y", $end); switch($unit) { case "D": echo intval($diff/(24*60*60)); break; case "M": if($day1>$day2) { $mdiff = (($year2-$year1)*12)+($mon2-$mon1-1); } else { $mdiff = (($year2-$year1)*12)+($mon2-$mon1); } echo $mdiff; break; case "Y": if(($mon1>$mon2) || (($mon1==$mon2) && ($day1>$day2))){ $ydiff = $year2-$year1-1; } else { $ydiff = $year2-$year1; } echo $ydiff; break; case "YM": if($day1>$day2) { if($mon1>=$mon2) { $ymdiff = 12+($mon2-$mon1-1); } else { $ymdiff = $mon2-$mon1-1; } } else { if($mon1>$mon2) { $ymdiff = 12+($mon2-$mon1); } else { $ymdiff = $mon2-$mon1; } } echo $ymdiff; break; case "YD": if(($mon1>$mon2) || (($mon1==$mon2) &&($day1>$day2))) { $yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2-1))/(24*60*60)); } else { $yddiff = intval(($end - mktime(0, 0, 0, $mon1, $day1, $year2))/(24*60*60)); } echo $yddiff; break; case "MD": if($day1>$day2) { $mddiff = intval(($end - mktime(0, 0, 0, $mon2-1, $day1, $year2))/(24*60*60)); } else { $mddiff = intval(($end - mktime(0, 0, 0, $mon2, $day1, $year2))/(24*60*60)); } echo $mddiff; break; default: print("{Datedif Error: Unrecognized \$unit parameter. Valid values are 'Y', 'M', 'D', 'YM'. Default is 'D'.}"); } } ?> |
Sessies worden toch in een cookie bewaard of niet?quote:Op woensdag 19 maart 2008 19:13 schreef Chandler het volgende:
Cookie? waarom niet een sessie? userid=0 en ip=ip
1 2 3 4 5 6 7 8 9 10 11 12 13 | if personal.php { include("mennu_personal.php"); } if portfolio.php { include(menu_portfolio.php"); } else { leave blank } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | switch ($_GET['page']) { case "personal": $inc_page = "inc/menu_personal.inc.php"; break; case "portfolio": $inc_page = "inc/menu_portfolio.inc.php"; break; default: $inc_page = "inc/menu_default.inc.php"; } include $inc_page; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <a href="page.php&personal=do">personal</a><br /> <a href="page.php&portfolio=do">portfolio</a> if(isset(['personal'])) { include("personal.php"); } elseif(isset(['portfolio'])) { include('portfolio.php'); } //Of je doet iets met: echo $_SERVER[PHP_SELF]; ?> |
Sessies worden op de server bewaard. De koppeling tussen sessie en gebruiker (sessie-id) wordt meestal in een cookie bij de gebruiker opgeslagen.quote:Op donderdag 20 maart 2008 09:48 schreef slakkie het volgende:
[..]
Sessies worden toch in een cookie bewaard of niet?
quote:Op donderdag 20 maart 2008 18:23 schreef wobbel het volgende:
Deze regex zorgt ervoor dat ik alleen a-z/A-Z/0-9 karakters mogen, maar hoe zorg ik ervoor dat de _ (underscore) en de . (punt) ook worden teogestaan?
Regex die ik nu heb:
$SQL_BestandsNaam = preg_replace("/[^a-zA-Z0-9]/", "", $SQL_BestandsNaam);
moet dus ook _ en . toelaten :)
1 2 3 | $SQL_BestandsNaam = preg_replace("/[^a-zA-Z0-9]_\./", "", $SQL_BestandsNaam); ?> |
1 2 3 4 | 2 david 5 3 joris 4 4 arjan 4 |
SELECT naam, sum(punten) as totaal FROM table WHERE naam = "david" GROUP BY naamquote:Op donderdag 20 maart 2008 19:47 schreef wonderer het volgende:
Als ik dit heb:
[ code verwijderd ]
met welke query kan ik dan het totaal van alles wat david (8 dus) eruit krijgen? Daar is vast wel een handigheidje voor...
Dank u wel!quote:Op donderdag 20 maart 2008 20:54 schreef Light het volgende:
[..]
SELECT naam, sum(punten) as totaal FROM table WHERE naam = "david" GROUP BY naam
group by doet eigenlijk al wat het zegt: het groepeert.quote:Op vrijdag 21 maart 2008 16:05 schreef wonderer het volgende:
Ik kende de "sum" enzo wel, maar het was me waarschijnlijk compleet ontschoten dat er nog een "group by" bij zou moeten.
Waarom moet dat eigenlijk? (als ik het begrijp, is het makkelijker te onthouden).
1 2 3 4 5 6 | * wonderer 5 1134706 * DionysuZ 10 1134706 * wonderer 2 221341 * bla 25 2131441 |
1 2 3 4 5 6 | * wonderer 42 * DionysuZ 42 * wonderer 42 * bla 42 |
1 2 3 4 5 | * wonderer 7 * DionysuZ 10 * bla 25 |
1 2 3 4 | $query = "SELECT teamnaam ,COUNT(naam),SUM(keyz), SUM(clicks), SUM(miles) FROM team1 GROUP BY teamnaam ORDER BY keyz DESC"; $result = mysql_query($query) or die(mysql_error()); ?> |
Goed gegoktquote:Op vrijdag 21 maart 2008 18:57 schreef wonderer het volgende:
Gokje:
SUM(keyz) AS total_keyz (...) ORDER BY total_keyz
?
niemand kan daar in princiepe van buitenaf bij (de meeste servers staan alleen connecties van de lokale machine toe)quote:Op dinsdag 25 maart 2008 19:47 schreef mcDavid het volgende:
Vraagje,
hoe zit het eigenlijk met de veiligheid/beveiliging van een mySQL database?
Kunnen de gegevens daarin alleen opgeroepen worden door mijn eigen scripts? En moet ik extra voorzorgsmaatregelen nemen om te zorgen dat mensen niet via een externe site/script mijn database kunnen aanpassen?
Passwords en eventuele encryptie wacht ik denk ik nog maar even mee
1 2 3 4 5 6 7 8 9 10 11 12 13 | ':)' => "smiley.gif", ':(' => 'sad.gif', 'etc' => 'etc.gif', ); # En dan verder op in je code.. function get_smiley($key) { if (array_key_exists($key, $smileys)) { print "$smileys[$key]\n"; } } |
Ik redt me met het scripten van smilies, da's geen probleem.quote:Op woensdag 26 maart 2008 17:59 schreef slacker_nl het volgende:
Wat dacht je van een hash:
my %hash = ( ':)' => smiley.gif );
In PHP syntax:
[ code verwijderd ]
Als je hier dan een object van maakt kan je die daarna overal gebruiken.
In de tijd die je tot nu toe aan zoeken besteed hebt had je al 20 van die arrays zelf kunnen typen.quote:Op woensdag 26 maart 200820:01 schreef beerten het volgende:
[..]
Ik redt me met het scripten van smilies, da's geen probleem.
Maar ik zoek de plaatjes, compleet met de bijbehorende tekst-tekens. Die heb ik nodig, niet de code. De plaatje smet de tekens.
sla alle plaatjes op de je hier kunt vinden: http://forum.fok.nl/rde/post_reply/1134706quote:Op woensdag 26 maart 2008 20:01 schreef beerten het volgende:
[..]
Ik redt me met het scripten van smilies, da's geen probleem.
Maar ik zoek de plaatjes, compleet met de bijbehorende tekst-tekens. Die heb ik nodig, niet de code. De plaatje smet de tekens.
quote:Op woensdag 26 maart 2008 21:40 schreef qu63 het volgende:
[..]
sla alle plaatjes op de je hier kunt vinden: http://forum.fok.nl/rde/post_reply/1134706
quote:Op woensdag 26 maart 2008 22:47 schreef beerten het volgende:
[..]
zo blond ben ik ook niet. Wat the fuck zijn alle tekencombinaties?
Daar moeten toch ergens kant en klare arrays op een site staan die ik kan knippen en plakken, compleet met een zipje met smilies?
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 60 61 62 63 64 | # De smilies $smiliesDir = "images/"; // locatie van de smilies, verander het naar jouw website url!!! Sluit af met / $smilies = array(':)' => "smile.gif" , ':D' => "biggrin.gif" , '_O-' => "schater.gif " , ':\')' => "emo.gif" , '>:)' => "devil.gif" , '})' => "devilish.gif" , 'O-)' => "hypocrite.gif" , '*)' => "shiny.gif" , ':P' => "puh2.gif" , ':9~' => "kwijl.gif" , ':9' => "yummie.gif" , ';)' => "wink.gif" , ':7' => "loveit.gif" , ':+' => "clown.gif" , '*)' => "coool.gif" , 'B-)' => "shadey.gif" , ':Y)' => "vork.gif" , ':z' => "sleephappy.gif" , ':W' => "bye.gif" , '*O*' => "static.gif" , '~O>' => "swhip.gif" , ':s)' => "spinsmile.gif" , '^O^' => "thumbsup.gif" , '_O_' => "worshippy.gif" , '|:(' => "frusty.gif" , ':(' => "frown.gif" , ':r' => "pukey.gif" , '-O-' => "nopompom.gif" , ':{' => "nosmile.gif" , ':{w' => "we.gif" , ':O' => "yawnee.gif" , ':Z' => "sleepey.gif" , '}:|' => "sm_eerie.gif" , ':\'(' => "cry.gif" , ';(' => "sadley.gif" , '):O' => "rc5.gif" , ':6' => "bupatih.gif" , ':N' => "nooo.gif" , ':Y' => "yes_new.gif" , ':X' => "shutup.gif" , ':?' => "confused.gif" , ':o' => "redface.gif" , '8)7' => "bonk.gif" , ':@' => "bloos.gif" , 'c_/' => "koffie.gif" , 'oO<' => "chicksmiley.gif" , '(8>' => "michel.gif" , 'O+' => "heart.gif" , ':*' => "puh.gif" , '*;' => "loveys.gif" , '^)' => "marrysmile.gif" , 'o|O' => "sbatje.gif" , ); ## Alle smilie codes vervangen en $bericht wijzigen foreach ($smilies AS $find => $character) { $bericht = str_replace(htmlentities($find), "<img src=\"images\\".$character ."\" />", $bericht); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if(isset($_POST['submit'])){ $user1 = mysql_real_escape_string($_POST['user1']); $van_datum = mysql_real_escape_string($_POST['van_datum']); $naar_datum = mysql_real_escape_string($_POST['naar_datum']); $van_plaats = mysql_real_escape_string($_POST['van_plaats']); $naar_plaats = mysql_real_escape_string($_POST['naar_plaats']); $km = mysql_real_escape_string($_POST['km']); $prijs = mysql_real_escape_string($_POST['prijs']); $pax = mysql_real_escape_string($_POST['pax']); $q = "INSERT INTO rit (user1, van_datum, naar_datum, van_plaats, naar_plaats, km, prijs, pax) VALUES ('".$user1."','".$van_datum."','".$naar_datum."','".$van_plaats."','".$naar_plaats."','".$km."','".$prijs."','".$pax."')"; mysql_query($q) or die(mysql_errno()); ?> |
1 2 3 4 5 6 7 8 9 10 | VALUES ('" . $user1 . "', '" . $van_datum . "', '" . $naar_datum . "', '" . $van_plaats . "', '" . $naar_plaats . "', '" . $km . "', '" . $prijs . "', '" . $pax . "')"; mysql_query($q) or die(mysql_errno()); |
Als je het dan toch overzichtelijk wilt maken, maak dan gebruik van sprintf. Dan heb je niet die "lelijke" . $string . "constructie".quote:Op donderdag 27 maart 2008 07:21 schreef Chandler het volgende:
Ten eerste, maak je queries overzichtelijk
bv
[ code verwijderd ]
en vertel eens wat er fout gaat? krijg je een error? want je query op zich bevat geen fouten
1 2 3 4 5 | prijs, pax) VALUES ( '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )", $user, $van_date, $naar_date, $van_plaats, $naar_plaats, $km, $prijs, $pax); # More code here... |
dat klopt allemaalquote:Op donderdag 27 maart 2008 09:40 schreef DionysuZ het volgende:
ik zou even checken of alle velden die je wilt vullen wel echt die naam hebben. Bijvoorbeeld als veld user1 in de db user heet dan gaat je query al niet door.
Ik krijg niks te zien, gewoon een lege pagina. Er wordt niks toegevoegd in mn database, en als ik de query weg laat krijg ik de pagina wel te zienquote:Op donderdag 27 maart 2008 07:21 schreef Chandler het volgende:
Vertel eens wat er fout gaat? krijg je een error? want je query op zich bevat geen fouten
user is root, dus die heeft wel de juiste rechtenquote:Op donderdag 27 maart 2008 10:13 schreef slacker_nl het volgende:
Wat gebeurd er als je die insert statement direct in mysql invoert (dus niet via PHP)?
Heeft je user waarmee je deze wijzigingen wilt doen wel de juiste rechten? Check de mysql.users table hiervoor.
1 2 | VALUES ('user1','2008-27-03 21:30:00',2008-27-03 22:30:00','van_plaats','naar_plaats','km','prijs','pax') |
1 2 3 4 5 6 7 | reg_date varchar2(20), reg_user varchar2(20) ); INSERT INTO test_me (reg_date, reg_user) VALUES ('20080101', 'username'); INSERT INTO test_me (reg_date, reg_user) VALUES ('20080303', 'username'); |
1 |
er miste een 'quote:Op donderdag 27 maart 2008 11:36 schreef qu63 het volgende:
damn, mn server werkt op zich goed, behalve als die query
[ code verwijderd ]
uitgevoerd moet worden, dan krijg ik een error 500
Apache geeft een 500 error? of mysql?quote:Op donderdag 27 maart 2008 11:36 schreef qu63 het volgende:
damn, mn server werkt op zich goed, behalve als die query
[ code verwijderd ]
uitgevoerd moet worden, dan krijg ik een error 500
ik draaide de query via phpmyadmin, en mn server (abyss) gaf de error 500 jaquote:Op donderdag 27 maart 2008 11:39 schreef slacker_nl het volgende:
[..]
Apache geeft een 500 error? of mysql?
Als je nou eerst zorgt dat je die query kan draaien buiten PHP om dan ben je half way there.
readonly does the trick!quote:Op donderdag 27 maart 2008 11:49 schreef qu63 het volgende:
Hmz, fout lijkt te zitten in het feit dat ik 3 input-velden disabled heb, en dat die waarden dus niet verstuurd worden
SELECT A.*, B.naam from meldingen A LEFT JOIN user B where A.van_id = B.voor_idquote:Op donderdag 27 maart 2008 16:46 schreef qu63 het volgende:
Ik heb 2 tabellen
- meldingen
- user
Nu wil ik de meldingen uitlezen, alleen daar staat dus van_id en voor_id in. Hoe kan ik er nou voor zorgen dat ik ipv van_id de naam van de persoon krijg?
SELECT meldingen.*, user.naam FROM meldingen meldingen LEFT JOIN user users WHERE meldingen.van_id = user.idquote:Op donderdag 27 maart 2008 16:54 schreef ursel het volgende:
[..]
SELECT A.*, B.naam from meldingen A LEFT JOIN user B where A.van_id = B.voor_id
SELECT meldingen.*, user.naam FROM meldingen LEFT JOIN user where meldingen.van_id = user.idquote:Op donderdag 27 maart 2008 16:58 schreef qu63 het volgende:
[..]
SELECT meldingen.*, user.naam FROM meldingen meldingen LEFT JOIN user users where meldingen.van_id = user.id
In mijn geval?
Waarom dubbele DB verbinding als het in 1 query ook kan??quote:Op donderdag 27 maart 2008 17:01 schreef mcDavid het volgende:
een query voor de tabel user erachteraan gooien, met zoiets van "SELECT username FROM user WHERE id = $van_id
Toch?
helaas nietquote:Op donderdag 27 maart 2008 17:02 schreef ursel het volgende:
[..]
SELECT meldingen.*, user.naam FROM meldingen LEFT JOIN user where meldingen.van_id = user.id
De A en B zijn alleen maar voor korte notatie gebruik. Zeker als je maar een aantal velden getoont wilt hebben is het niet handig om elke keer meldingen ervoor te moeten zetten.
De punt is een koppel teken. Probeer het eens met de spaties ertussenuit.quote:Op donderdag 27 maart 2008 17:04 schreef qu63 het volgende:
[..]
helaas niet
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where meldingen . van_id = user . id
LIMIT 0, 30' at line 1
zo heb ik em ook ingeveord, phpmyadmin plakt de spties er tussen bij de foutmeldingquote:Op donderdag 27 maart 2008 17:13 schreef ursel het volgende:
[..]
De punt is een koppel teken. Probeer het eens met de spaties ertussenuit.
quote:Op donderdag 27 maart 2008 17:14 schreef slacker_nl het volgende:
en is het niet
FROM meldingen LEFT JOIN user ON meldingen.van_id = user.id
zo krijg ik wel resultaten, maar dan ook alle resultaten. Ik wil juist alleen de meldingen laten zien voor deze gebruikerquote:Op donderdag 27 maart 2008 17:13 schreef slacker_nl het volgende:
select meldingen.*, user.name from meldingen, user where meldingen.van_id = user.id
hmz, nogniet helemaalquote:Op donderdag 27 maart 2008 17:14 schreef slacker_nl het volgende:
en is het niet
FROM meldingen LEFT JOIN user ON meldingen.van_id = user.id
1 2 3 4 5 6 7 | 1 1 2 Titel Ongelezen Ongelezen 1206710100 1 Jantje 1 1 2 Titel Ongelezen Ongelezen 1206710100 1 Hiephoi! 2 2 1 Titel Gelezen Gelezen 1206710100 1 NULL 3 1 2 Titel Gelezen Gelezen 1206621950 1 Jantje 3 1 2 Titel Gelezen Gelezen 1206621950 1 Hiephoi! 4 2 1 Titel Ongelezen Ongelezen 1206621950 0 NULL |
1 2 3 4 5 | 1 1 2 Titel Ongelezen Ongelezen 1206710100 1 2 2 1 Titel Gelezen Gelezen 1206710100 1 3 1 2 Titel Gelezen Gelezen 1206621950 1 4 2 1 Titel Ongelezen Ongelezen 1206621950 0 |
1 2 3 | 1 Jantje qu63 WEG WEG WEG 2 Hiephoi! admin WEG WEG WEG |
1 2 3 4 5 6 | $q = "SELECT * FROM meldingen"; $res=mysql_query($q); $berichten = mysql_fetch_array($res); print_r($berichten); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ( [0] => 1 [id] => 1 [1] => 1 [van_id] => 1 [2] => 2 [voor_id] => 2 [3] => Titel Ongelezen [titel] => Titel Ongelezen [4] => Ongelezen [inhoud] => Ongelezen [5] => 1206710100 [datum] => 1206710100 [6] => 1 [gelezen] => 1 ) |
ja sorry, ik heb tot nu toe in mijn hele leven 3 query's gebouwdquote:Op donderdag 27 maart 200817:03 schreef ursel het volgende:
[..]
Waarom dubbele DB verbinding als het in 1 query ook kan??
Het haalt zowel de associatieve array op als de nummerieke. Je moet even specificeren welke wordt weergegevenquote:Op donderdag 27 maart 2008 18:54 schreef qu63 het volgende:
Ik snap er nog minder van nu
sql-query:
[ code verwijderd ]
Er staan 4 rijen in mn tabel, maar de enige output is dit:
[ code verwijderd ]
Wat gaat er nou allemaal fout hier
1 2 3 4 5 6 7 8 9 10 | $q = "SELECT * FROM meldingen"; $res=mysql_query($q); $i=0; while($berichten = mysql_fetch_array($res)) { print $berichten[$i]; $i++; } ?> |
Dan nog krijg ik maar 1 rij te zien.quote:Op donderdag 27 maart 2008 19:08 schreef beerten het volgende:
[..]
Het haalt zowel de associatieve array op als de nummerieke. Je moet even specificeren welke wordt weergegeven
[ code verwijderd ]
Zo zou het wel moeten werken.
quote:Op donderdag 27 maart 2008 19:22 schreef beerten het volgende:
Hoe ziet je tabel er uit en wat wil je ophalen? Welke gegevens wil je?
Je haalt nu ALLES op, alle rijen, alle velden en kolommen. 2 keer zelfs zo te zien.
1 2 3 4 5 | 1 1 2 Titel Ongelezen Ongelezen 1206710100 1 2 2 1 Titel Gelezen Gelezen 1206710100 1 3 1 2 Titel Gelezen Gelezen 1206621950 1 4 2 1 Titel Ongelezen Ongelezen 1206621950 0 |
ook metquote:Op donderdag 27 maart 2008 20:07 schreef DionysuZ het volgende:
Natuurlijk krijg je maar 1 rij terug. Om meerdere rijen terug te krijgen moet je, zoals hierboven ergens ook staat, er een while loopje van maken.
Nee, je krijgt het nulde element van rij 0, het eerste element van rij 1, het tweede element van rij 2, etc.quote:Op donderdag 27 maart 2008 20:11 schreef qu63 het volgende:
[..]
ook met
<?php
$q = "SELECT * FROM meldingen";
$res=mysql_query($q);
$i=0;
while($berichten = mysql_fetch_array($res))
{
print $berichten[$i];
$i++;
}
?>
krijg ik maar 1 rij
1 2 3 4 5 6 7 8 9 10 11 12 | $q = "SELECT * FROM meldingen"; $res=mysql_query($q); $berichten = array(); while($row = mysql_fetch_array($res)) { $berichten[] = $row; } echo '<pre>'; var_dump($berichten); echo '</pre>'; ?> |
1 2 3 4 5 6 7 8 | $q = "SELECT * FROM meldingen"; $stm = $pdo->prepare($q); $berichten = $stm->fetchAll(PDO::FETCH_ASSOC); echo '<pre>'; var_dump($berichten); echo '</pre>'; ?> |
preciesquote:Op donderdag 27 maart 2008 21:31 schreef ursel het volgende:
[..]
Eindelijk iemand ontopic..
Denk alleen dat qu63 er weinig aan heeft...
1 2 3 4 5 6 7 8 9 | description => "Description", sql => qq{ SELECT * FROM table WHERE key = value -- insert more sql code here }, # end of qq }, # end of name_of_query ); |
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 | my $sql = shift; print STDERR $sql . "\n"; # Some queries return undef # warnings are noise in that case no warnings; foreach ($oracle->do_query($sql)) { print join (",", @$_) . "\n"; } use warnings; } sub do_query { my $query_id = shift; if (exists $queries{$query_id}) { printf STDERR "/* %s */\n", $queries{$query_id}->{description} if defined $queries{$query_id}->{description}; my $sql = $queries{$query_id}->{sql}; if ($opt{limit}) { $sql = join("\n", $sql, sprintf($limit_query, $opt{limit})); } if ($opt{order}) { $sql = join("\n", $sql, $order_query); } sql2csv($sql); } else { printf STDERR "Query for %s does not exists!\n", $query_id; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | exe=./datacheck total="^total_" do_query() { local i for i in $* ; do file=../out/RESULTS.$i $exe --query $i > $file 2>../out/QUERY.$i ; wc -l $file done } do_query $($exe --list | grep $total) $($exe --list | grep -v $total) |
Maakt verder niet uit of je MySQL of Oracle gebruikt. Mijn queries zijn ook onder MySQL te gebruiken. Ik gebruik de PDO variant van Perl, dussuh.. :)quote:Op vrijdag 28 maart 2008 15:11 schreef ursel het volgende:
We werken hier in ieder geval met MySQL.
Weet niet of dat verder consequenties heeft.
Daarnaast, die Perl functie, dat zou betekenen dat ik beide al in een array zal moeten hebben. Weet niet of dat zo tactisch is.. :{
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | my $comp= Array::Compare->new(); open(FH, $csvfile); while(<FH>) { chomp(); # Remove the new line @array_csv = split(/,/, $_); # Do stuff met array_csv to create the SQL code $sql = sprintf "SELECT * FROM example WHERE example_name = '%s'", $array_csv[1]; # ervanuitgaand dat do_query een array returned @array_db = do_query($sql); # Compare werkt met een reference naar een array. if ($comp->compare(\@array_csv, \@array_db)) { # compare is OK } else { # Compare failed } } |
Je kunt met PostgreSQL toch zeker wel geparameteriseerde query's uitvoeren zonder de hele performance om zeep te helpen?quote:Op vrijdag 28 maart 2008 12:50 schreef JeRa het volgende:
Om maar even ontopic te zijn: PDO is leuk en aardig, maar besef dat je in sommige RDBMS'en die partiele indices ondersteunen geen gebruik kunt maken van die indices zodra je prepared statements gebruikt. Voorbeeldje hiervan is PostgreSQL, die het matchen van de indices al tijdens het preparen van de query doet. Door het ontbreken van je condities (je vult ze namelijk pas later in met Statement->bindValue() of ->bindParam()) is het namelijk onmogelijk om te voorspellen wat je query gaat doen.
Dus mijn idee van good practice in deze situatie: prepared statements gebruiken voor situaties waarbij je eenzelfde soort query heel vaak moet uitvoeren of wanneer je niet geavanceerd gebruik maakt van je database, en anders op de 'oude' manier samenstellen en PDO->quote() gebruiken
Oh en hoi.
Dat kan ook wel ja, maar dus niet met partiële indices vanwege de reden die ik noemde. Het is een leuke pitfall in ieder gevalquote:Op zaterdag 29 maart 2008 20:57 schreef SuperRembo het volgende:
[..]
Je kunt met PostgreSQL toch zeker wel geparameteriseerde query's uitvoeren zonder de hele performance om zeep te helpen?
In dat geval lijkt het me good practice om altijd geparameteriseerde query's te gebruiken, tenzij performance een een speciale aanpak vereist.quote:Op zaterdag 29 maart 2008 21:10 schreef JeRa het volgende:
[..]
Dat kan ook wel ja, maar dus niet met partiële indices vanwege de reden die ik noemde. Het is een leuke pitfall in ieder gevalmet MySQL kan ik geen vergelijking geven aangezien die geen partiële indices ként.
Klopt, dat zeg ik (op een beetje vage manier) ookquote:Op zaterdag 29 maart 2008 22:19 schreef SuperRembo het volgende:
[..]
In dat geval lijkt het me good practice om altijd geparameteriseerde query's te gebruiken, tenzij performance een een speciale aanpak vereist.
Dat soort informatie laten ze dus los? Dus in feite weet 9292ov waar ik woon?quote:Op maandag 31 maart 2008 00:00 schreef Geqxon het volgende:
Degene die hier laatst vroeg hoe 9292ov.nl wist waar jij bent (het "Routebestemming vanaf hier" knopje).... dat schijnt dus een samenwerking tussen de telecomproviders en 9292ov.nl te zijn.
dat was ik!quote:Op maandag 31 maart 2008 00:00 schreef Geqxon het volgende:
Degene die hier laatst vroeg hoe 9292ov.nl wist waar jij bent (het "Routebestemming vanaf hier" knopje).... dat schijnt dus een samenwerking tussen de telecomproviders en 9292ov.nl te zijn.
nee, dat niet.quote:Op maandag 31 maart 2008 00:03 schreef Flaccid het volgende:
[..]
Dat soort informatie laten ze dus los? Dus in feite weet 9292ov waar ik woon?
Iemand al suggesties voor mijn probleem??quote:Op vrijdag 28 maart 2008 16:26 schreef ursel het volgende:
Tja, dat is idd een oplossing, alleen misschien nog een belangrijk detail dat ik eigenlijk nog vergeten was, de opzet was ook om de namen in de similar_text te zetten en te kijken of de naam er voor meer dan 90% op lijkt.
Ergens anders kreeg ik eigenlijk ook het advies om de vergelijking door de database te laten uitvoeren middels een FULL outer join. Alleen is eigenlijk dan dus mijn probleem hoe kan ik 2 tabellen met elkaar goed vergelijken welke een match hebben van meer dan 90%.
http://life.tweakers.net/(...)lers-voor-hyves.htmlquote:
nu is het nog de vraag of kpn/hi LBS standaard doorgeeft, en hoe je het kan uitlezen..quote:Op maandag 31 maart 2008 11:32 schreef Geqxon het volgende:
[..]
http://life.tweakers.net/(...)lers-voor-hyves.html
Edit: Ik bedoel:
http://www.9292ov.nl/9292ov1171.asp >> ( Location based services (KPN en Hi) )
Het lijkt me dat ze dat niet zomaar doen. Stel je voor dat Jamba achter mijn adres komt!quote:Op maandag 31 maart 2008 11:49 schreef qu63 het volgende:
[..]
nu is het nog de vraag of kpn/hi LBS standaard doorgeeft, en hoe je het kan uitlezen..
alleen je locatie, en dan nog alleen als je mobielhun site bekijkt.quote:Op maandag 31 maart 2008 11:54 schreef Geqxon het volgende:
[..]
Het lijkt me dat ze dat niet zomaar doen. Stel je voor dat Jamba achter mijn adres komt!
Lastig probleem, hangt van zoveel dingen af...quote:Op maandag 31 maart 2008 11:22 schreef ursel het volgende:
[..]
Iemand al suggesties voor mijn probleem?? O-) :')
Even samenvattend:
- 2 arrays met namen van +/- 10.000 stuks.
- 1 array is al volledig in geheugen aanwezig. (inlezen en opslaan van de cvs file)
- Vergelijken van lijst 1 of de naam in lijst 2 voorkomt.
- Als de naam voor 90% gelijk is, dan een match geven.
1 2 3 4 5 6 7 | $lnames = '"'. join("', '",$names).'"'; mysql_query_blaat("select id from temp_table where name in ($lnames)"); mysql_query_blaat("delete from temp_table where id in ($allfoundids); $names=array_dif($names, $allfoundnames); //en doe dan de rest met similar_text oid ?> |
http://www.marketingfacts(...)tion_based_services/quote:Op maandag 31 maart 2008 11:56 schreef qu63 het volgende:
[..]
alleen je locatie, en dan nog alleen als je mobielhun site bekijkt.
Maar idd is het wel wat privacygevoelig..
quote:Op maandag 31 maart 2008 13:39 schreef Geqxon het volgende:
[..]
http://www.marketingfacts(...)tion_based_services/
Je kunt het dus gewoon bij KPN aanvragen.
Dus voor mijn eigen weblogje denk ik niet dat ik in aanmerking komquote:Flops heeft KPN na 8 maanden nog niet meegemaakt aangezien ze een redelijk uitgebreid proces hebben voordat je als Content Partner een LBS dienst mag aanbieden. Over elke dienst is heel goed nagedacht aangezien elke Content Partner eerst een storyboard (procesbeschrijving) moest aanleveren.
Storyboard maken zou ik zeggenquote:Op maandag 31 maart 2008 14:28 schreef qu63 het volgende:
[..]
[..]
Dus voor mijn eigen weblogje denk ik niet dat ik in aanmerking kom
mja:quote:
Met de filter op 80% heb ik maar 2% matches, wat ook maar de bedoeling is dat er maar weinig opstaan..quote:Op maandag 31 maart 2008 13:06 schreef ralfie het volgende:
[..]
Lastig probleem, hangt van zoveel dingen af...
Misschien een idee om, als er veel namen 100% matchen, om eerst alle namen te zoeken die 100% matchen dmv =, en dan de rest dmv similar_text oid.
een voorbeeld kan dmv een temp tabel, waar je reeds gematchedte namen verwijdert zodat de query elke keer sneller zal gaan.
Je kunt dit deels in php doen, bijv (niet werkende code)
[ code verwijderd ]
Als dit niet lukt vanwege de max lengte van de SQL query, kun je met array_splice de query opsplitsen natuurlijk
1 2 3 4 5 6 7 8 9 10 11 12 13 | class OPNParameters { var $params; function __construct() { $this->params = array(); } function list() { return array_keys($this->params); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Config { function __construct() { } # Problemen.. var $test = new OPNParameters; function test() { return new OPNParameters; } ?> |
PHP eist dat de standaardwaarde van een class member een constante expressie is. Dus "hello world" mag wel, maar "hello "."world" mag niet. Er zijn meer voorbeelden in de PHP manual. (Zie Example #3)quote:Op maandag 31 maart 2008 18:43 schreef slacker_nl het volgende:
Uhm.. een object in deze is net zo statisch als de string "hello world"..
als ik var $test = array () en/of $test = array( 1, 2, 3); in de Config klasse gooi dan parsed ie wel. Terwijl dat net zo dynamisch is als een klasse...
Dit is het php-forum hoorquote:Op maandag 31 maart 2008 19:48 schreef Chandler het volgende:
Ik heb een vraagje!
Op een website heb ik een grafieken script die werkt met sessies. Wanneer script.php?ses=sessieID aanroept zal het plaatje gegenereerd worden. Echter wil ik graag middels het zelfde script een AREA's om deze afbeelding heen willen zetten middels een IMAGE MAP. Echter kan ik pas de posities van de AREA's lezen als de afbeelding is gegenereerd. Helaas kan ik niet het plaatje en de resultaten includen omdat het plaatje pas bij user actie geladen wordt en dan dus ook de AREA's pas gemaakt worden van het plaatje.
Nu vraag ik mij af, hoe is het simpel weg mogelijk om middels javascript een veld te vullen met data die pas gelezen wordt wanneer het plaatje geladen is!? en deze IMAGE map dan ook te laten functioneren!.
Anyone? (Als ik niet duidelijk genoeg ben, meld het dan dan probeer ik het beter uit te leggen)
Ik zie niet in waarom je niet dezelfde informatie voor het genereren van je plaatje kunt gebruiken om de pagina met je IMAGE MAP te maken, maar als je geen andere uitweg ziet ben je gebonden aan ajax oid.quote:Op maandag 31 maart 2008 19:48 schreef Chandler het volgende:
Ik heb een vraagje!
Op een website heb ik een grafieken script die werkt met sessies. Wanneer script.php?ses=sessieID aanroept zal het plaatje gegenereerd worden. Echter wil ik graag middels het zelfde script een AREA's om deze afbeelding heen willen zetten middels een IMAGE MAP. Echter kan ik pas de posities van de AREA's lezen als de afbeelding is gegenereerd. Helaas kan ik niet het plaatje en de resultaten includen omdat het plaatje pas bij user actie geladen wordt en dan dus ook de AREA's pas gemaakt worden van het plaatje.
Nu vraag ik mij af, hoe is het simpel weg mogelijk om middels javascript een veld te vullen met data die pas gelezen wordt wanneer het plaatje geladen is!? en deze IMAGE map dan ook te laten functioneren!.
Anyone? (Als ik niet duidelijk genoeg ben, meld het dan dan probeer ik het beter uit te leggen)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | my ($self, $args_1, $args_2, @overige_args) = @_; return functie_2(@overige_args); # of je doet dit: # my $self = shift; # my $args_1 = shift; # my $args_2 = shift; # return functie_2(@_); } sub functie_2 { my ($args1, $args2) = @_; return $args1 + $args2; } |
1 2 3 4 5 6 7 8 9 10 11 | fucntion functie_1() { list($self, $args1, $args2, $overige_args1, $overige_args2) = func_get_args(); return functie_2($overige_args1, $overige_args2); } function functie_2() { list($args1, $args2) = func_get_args(); return $args1 + $args2; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | function test_me() { $args = func_get_args(); call_user_func_array(test_me2, $args); } function test_me2() { $args = func_get_args(); print_r($args); } test_me(1, 2,3,4,5); ?> |
1 2 3 4 5 | function test_me() { call_user_func_array(test_me2, func_get_args()); } ?> |
je kunt toch gewoonquote:Op maandag 31 maart 200822:13 schreef Chandler het volgende:
ralfie, omdat het script die de afbeeldingen maakt de posities doorgeef die ik kan gebruiken om cirkels te maken in een IMAGE MAP.
En inderdaad, denk dat ik maar moet gaan spelen met XMLHTTP
1 2 3 | echo "javascriptjavascriptlalal" . $variable1 . "nog meer javascript" . $variable2; ?> |
Zou je zeggen inderdaad maar helaas, de posities worden pas gemaakt nadat de afbeelding is gegenereerd (ik zou ook de afbeelding 2x kunnen genenreren maar dat is een beetje onzin)quote:Op dinsdag 1 april 2008 12:53 schreef mcDavid het volgende:
[..]
je kunt toch gewoon
[ code verwijderd ]
enz doen?
1 2 3 4 5 6 7 8 9 10 11 | function test($in = array()) { foreach($in AS $x => $y) { // enzo } } test(array(1,2,3,4,5,6)); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | $q = "SELECT * FROM meldingen"; $res=mysql_query($q); while($row = mysql_fetch_array($res)) { $q2 = "SELECT naam FROM user WHERE id = '".$row[2]."' LIMIT 1"; $naam2 = mysql_query($q2); $naam3 = mysql_fetch_array($naam2); $q3 = "SELECT naam FROM user WHERE id = '".$row[1]."' LIMIT 1"; $naam4 = mysql_query($q3); $naam5 = mysql_fetch_array($naam4); echo "<tr>"; echo "<td>".date("d-m-Y H:i",$row[5])."</td>"; echo "<td>".$naam3[0]."</td>"; echo "<td>".$naam5[0]."</td>"; echo "<td><a href=\"meldingen.php?id=".$row[0]."\">".$row[3]."</a></td>"; // echo "<td>".$row[4]."</td>"; // echo "<td>".$row[6]."</td>"; echo "<td>".$row[7]."</td>"; "</tr>"; } ?> |
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 | function p_join() { $args = func_get_args(); $args_count = func_num_args(); if ($args_count > 1) { $sep = array_shift($args); $retVal = array_shift($args); if (is_array($retVal)) { $retVal = join($sep, $retVal); } foreach ($args as $val) { if (is_array($val)) { $val = join($sep, $val); } $retVal .= sprintf("%s%s", $sep, $val); } return $retVal; } trigger_error("p_join requires at least 2 parameters", E_USER_ERROR ); return null; } ?> |
Uhm... Ik snap je vraag niet.quote:Op dinsdag 1 april 2008 13:43 schreef Chandler het volgende:
@slacker_nl: waarom geef je dan geen array mee? en ga je deze benutten?
[ code verwijderd ]
Denk het niet he. Je zal eerst alle resultsets moeten ophalen voordat je weet hoeveel records je ophaalt. Of een query ervoor doen met een count, maar of dat nou zo tof is weet ik ook niet.quote:Tevens een vraag, hoe kun je met PDO zonder een count te doen uitlezen hoeveel resultaten er zijn?
Als die voor mij bedoelt was, hou ik het lekker bij mn ouder scriptjequote:Op dinsdag 1 april 2008 16:52 schreef slacker_nl het volgende:
Een perl_join functie. Deze functie kan arrays aan en strings.. hashes zijn nog niet ondersteund, maar dat komt wel in v2.
[ code verwijderd ]
je query proper escapen... (bijv dmv mysql_escape_string() )quote:Op dinsdag 1 april 2008 19:07 schreef qu63 het volgende:
[ afbeelding ]
Iemand enig idee hoe ik dit kan voorkomen/oplossen?
Houd je mond idd maar. Ik zie nergens in die post een referentie naar jou probleem/code.quote:Op dinsdag 1 april 2008 19:00 schreef qu63 het volgende:
[..]
Als die voor mij bedoelt was, hou ik het lekker bij mn ouder scriptje
Volgens mij is een van de voordelen (heb deze thread verder niet gelezen) dat je makkelijker van DB kan switchen. Je doet alles met PDO en bij het wijzigen van je DB hoef je alleen je DSN te veranderen.quote:Op dinsdag 1 april 2008 18:42 schreef Chandler het volgende:
Wat is dan het voordeel van PDO? (ten opzichte van de mysql_ functies?) nu moet ik dus 2 queries doen om te kijken hoeveel data er is en dan de data uitlezen om het te gebruiken!
hmz, zit wat in jaquote:Op dinsdag 1 april 2008 19:28 schreef ralfie het volgende:
[..]
je query proper escapen... (bijv dmv mysql_escape_string() )
Ja ongetwijfeld, maar wat is het nut nu voor de gewone PHP gebruiker om nu al van PDO gebruik te maken aangezien 90% van alle PHP gebruikers toch standaard MySQL databases gebruiken!. Ik zie het voordeel namelijk absoluut niet. Ik mis functies die ik eerst wel kon gebruikenquote:Op dinsdag 1 april 2008 19:34 schreef whoops het volgende:
[..]
Volgens mij is een van de voordelen (heb deze thread verder niet gelezen) dat je makkelijker van DB kan switchen. Je doet alles met PDO en bij het wijzigen van je DB hoef je alleen je DSN te veranderen.
2cts...
Ten eerste moet je vooral gebruiken wat voor jou het beste werkt, wat die keuze ook isquote:Op dinsdag 1 april 2008 20:39 schreef Chandler het volgende:
[..]
Ja ongetwijfeld, maar wat is het nut nu voor de gewone PHP gebruiker om nu al van PDO gebruik te maken aangezien 90% van alle PHP gebruikers toch standaard MySQL databases gebruiken!. Ik zie het voordeel namelijk absoluut niet. Ik mis functies die ik eerst wel kon gebruiken
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 60 61 62 63 64 65 66 67 68 | /* is_assoc_array and is_sequential_array are STOLEN from: * http://nl3.php.net/manual/en/function.is-array.php#73505 */ function is_assoc_array($var) { return (array_merge($var) !== $var || !is_numeric(implode(array_keys($var)))); } function is_sequential_array($var) { return (array_merge($var) === $var && is_numeric(implode(array_keys($var)))); } function _p_join_assoc($sep, $hash) { $result = ""; foreach ($hash as $k => $v) { $result .= $sep . $k . $sep . $v ; } return $result; } function _p_join_array($sep, $array) { # Turn off notices and return to the old loglevel once we're done. # This is because we stringify an array in some cases.. $old_error_reporting = error_reporting(E_ALL ^ E_NOTICE); $result = join($sep, $array); error_reporting($old_error_reporting); return $result; } function p_join() { $args = func_get_args(); if (count($args) > 1) { $result = ""; $sep = array_shift($args); foreach ($args as $val) { if (is_array($val)) { if (is_assoc_array($val)) { $result .= _p_join_assoc($sep, $val); } else { $result .= $sep . _p_join_array($sep, $val); } continue; } $result .= $sep . $val; } # $result will always start with a $sep, so remove it.. return substr_replace($result, "" ,0, strlen($sep)); } trigger_error(sprintf("%s requires at least 2 parameters", __FUNCTION__), E_USER_WARNING); return null; } /* En een paar voorbeelden, inclusief een gratis warning */ print p_join(",", "string", array("Key" => "Value", "Key 2" => "Value 2"), array("Hello", array("in", "hello", "world"), "array"), "string 2") . "\n"; /* let op, print de indices uit van alle elemente in deze mixed array */ print p_join(",", array(1,2,"Green" => "Apple" , array(1,2))) . "\n"; print "Warning.. "; print p_join(","); ?> |
Nee, PDO zal voor RDBMS'en die prepared statements ondersteunen de parameterized query naar de server sturen die ze alvast kan verwerken en kan plannen (= bekijken hoe de query uitgevoerd gaat worden).quote:Op woensdag 2 april 2008 07:56 schreef Chandler het volgende:
Ik snap het nu van PDO, maar die functies zoals prepare zou je zelf ook kunnen schrijven toch?want voorbeelden zoals :name is gewoon search and replace!
maar goed... ik zal mij er eens nog wat dieper in gaan verdiepen...
Vanwege de loop die noodzakelij is om de hash te kunnen printen. Daarin wordt $sep . $key . $sep . $value aan $result toegekend. Dus op het moment dat je $result print krijg je ',key,value'. Daarom moet ik de eerste separator verwijderen en dat doen we in dit geval met een regexp. Easy does it.quote:Op woensdag 2 april 2008 07:50 schreef SuperRembo het volgende:
(Waarom staat die regexp replace er eigenlijk in?)
Deze mis ikquote:De functie zal een array geven als je "/" als eerst parameter gebruikt
Dan kan je die extra $sep er aan het eind ook af halen. Dan heb je geen speciale behandeling nodig voor het eerste item. (Scheelt een stuk (bijna) dubbele code).quote:Op woensdag 2 april 2008 10:50 schreef slacker_nl het volgende:
[..]
Vanwege de loop die noodzakelij is om de hash te kunnen printen. Daarin wordt $sep . $key . $sep . $value aan $result toegekend. Dus op het moment dat je $result print krijg je ',key,value'. Daarom moet ik de eerste separator verwijderen en dat doen we in dit geval met een regexp. Easy does it.
[..]
1 2 3 4 | { // lees gebruikershost uit } |
1 2 3 4 | { // lees gebruikershost uit } |
Je hebt gelijk, ik had een andere opvatting in bepaalde situaties, maar die bleken onterecht te zijn. Thnx, heb het nu aangepast. Zal vanavond thuis wel ff de post aanpassen, de codebase is nu een stuk kleiner geworden.quote:Op woensdag 2 april 2008 13:18 schreef SuperRembo het volgende:
[..]
Dan kan je die extra $sep er aan het eind ook af halen. Dan heb je geen speciale behandeling nodig voor het eerste item. (Scheelt een stuk (bijna) dubbele code).
quote:Op woensdag 2 april 2008 15:07 schreef Chandler het volgende:
Vraagje, waarom mag het volgende niet
[ code verwijderd ]
en dit wel
[ code verwijderd ]
quote:The default value must be a constant expression, not (for example) a variable or class member.
Hmm.. Ik heb bijvoorbeeld Word documenten in een mapje 'documents' genaamd geplaatst.quote:Op woensdag 2 april 2008 16:36 schreef slacker_nl het volgende:
Zet je includes buiten de "webserver". Dat wil zeggen, op een locatie waar de webserver geen rechten heeft om files te lezen.
Of scherm het af met een .htaccess.
je kan ook een lege index.php of index.html maken, dan laat je webserver alleen die pagina zien (dis dus leeg is)quote:Op woensdag 2 april 2008 16:51 schreef GioStyle het volgende:
[..]
Hmm.. Ik heb bijvoorbeeld Word documenten in een mapje 'documents' genaamd geplaatst.
En als je dan in de url typt website/documents dan zie je dat hele map inclusief inhoud. Dat wil ik dus verbieden en dan moet ik die bestanden buiten de webserver plaatsen?
quote:How can I prevent Directory Listing?
Create an .htaccess file in your main directory (/var/www/html) or a subdirectory of your choice. This file will control settings for the directory it is placed in , plus all subdirectories below it unless they have .htaccess files of their own.
Add this line to that file:
Options -Indexes
Meestal zet ik er een redirect in naar de main page, werkt ook primaquote:Op woensdag 2 april 2008 17:02 schreef qu63 het volgende:
[..]
je kan ook een lege index.php of index.html maken, dan laat je webserver alleen die pagina zien (dis dus leeg is)
Als je werkt met directories dan is het allemaal al netjes voor je geregeld.quote:Op woensdag 2 april 2008 19:35 schreef mcDavid het volgende:
En als ik juist wél een index met alle inhoud wil, moet ik die dan zelf maken? of is dat ook gewoon aan/uit te zetten?
1 2 3 | $included = true; ?> |
1 2 3 4 5 | if(isset($included)) { // toon alles } ?> |
Bij mij niet als ik naar bijv. http://duft.nl/web/ ga.quote:Op woensdag 2 april 200819:38 schreef GioStyle het volgende:
Als je werkt met directories dan is het allemaal al netjes voor je geregeld.
Bijvoorbeeld:
Je hebt een site gemaakt met een directory genaamd 'plaatjes'.
Dan typ je als url: 'www.site.nl/plaatjes' en dan zie je gewoon een index met alle inhoud.
Gebruik je htaccess?quote:Op woensdag 2 april 2008 19:51 schreef mcDavid het volgende:
[..]
Bij mij niet als ik naar bijv. http://duft.nl/web/ ga.
Het is wel gewoon een publieke map.
Hoe verwerk ik dat in?quote:Op woensdag 2 april 2008 19:43 schreef HuHu het volgende:
In index.php doe iets als dit:
[ code verwijderd ]
En dan in reflection.php
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | if(!IsSet($_GET['page'])) { $_GET['page'] = "home"; } switch ($_GET['page']) { case 'home': include('home/home.php'); break; case 'reflection': include('reflection/reflection.php'); break; default: include('home/home.php'); } ?> |
Jup maar daarin staat het niet ingesteld.quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | if(!IsSet($_GET['page'])) { $_GET['page'] = "home"; } $included = true; switch ($_GET['page']) { case 'home': include('home/home.php'); break; case 'reflection': include('reflection/reflection.php'); break; default: include('home/home.php'); } ?> |
1 2 3 4 5 | if(isset($included)) { echo 'Welkom op de Home pagina van deze site!'; } ?> |
Dat lijkt me ook een mogelijke oplossing. Bedankt!quote:Op woensdag 2 april 2008 20:31 schreef mcDavid het volgende:
overigens kun je bestanden ook beschermen in .htacces
<Files reflection.php>
order allow,deny
deny from all
</Files>
Nu krijg je hem iig niet te zien als je naar .../reflection.php surft, volgens mij kunnen scripts er nog wel bij...
Aaaah.. Nu snap ik het.. Ik kan nu ook nog een else command invoeren zodat hij terug gaat naar bijvoorbeeld index.php, want nu laat hij een blanco scherm zien.quote:Op woensdag 2 april 2008 20:32 schreef HuHu het volgende:
[ code verwijderd ]
home.php
[ code verwijderd ]
Dus binnen de if zet je dan de tekst die je alleen wilt tonen als de pagina geinclude wordt. Als hij namelijk niet wordt geinclude, dan bestaat de variabele $included niet.
en done.quote:Op woensdag 2 april 2008 15:59 schreef slacker_nl het volgende:
Zal vanavond thuis wel ff de post aanpassen, de codebase is nu een stuk kleiner geworden.
Stonden idd nog wat settings niet correct, maar had op het moment ff niet de tijd om dat uitgebreid op te zoeken..quote:Op donderdag 3 april 2008 14:27 schreef slacker_nl het volgende:
onder windows?
wat dacht je van je path setten
set PATH=%PATH%:"c:\program files\php\bin"
dat kan makkelijk met getimagesize()quote:Op vrijdag 4 april 2008 10:43 schreef beerten het volgende:
Hoe kan ik middels PHP checken of een besand an ee externe website een jpg is? Ik laat van een externe server jpg's. Die directory is beveiligd met een htaccess IP-check. Als iemand met een incorrect IP-adres een jpg opvraagt wordt er een keruige 403 error getoond. Maar dat beketent ook dat er een resultaat komt, met de bestandsextensie jpg.
Hoe kan ik kijken of het ook daadwerkelijk een echte jpg betreft? Headers, maar hoe?
PDO lijkt heel interessant, maar zijn er veel hosters die het ondersteunen?quote:Op woensdag 2 april 2008 00:52 schreef SuperRembo het volgende:
Het grootste voordeel van PDO is wat mij betreft dat je geparameteriseerde query's kunt gebruiken. Daarmee vermijd je het gevaar van sql injection. Je hebt dan dus geen last meer van problemen zoals die van qu63. Ik vind geparameteriseerde query's meestal beter leesbaar dan query's met telkens mysql_escape_string() er tussen.
Verder sluit 't ook beter aan bij hoe ik query's bouw in .NET, waar ik dagelijks mee werk.
In PHP 5 kun je een __autoload() functie definiëren die automatisch de benodigde files kan includen op het moment dat je een bepaalde class gebruikt.quote:Op vrijdag 4 april 2008 18:57 schreef mausie het volgende:
Verder emmer ik over of ik gewoon een loader.php moet maken die meteen alles aanmaakt, maargoed dan worden dus op elke pagina alle classes ingeladen terwijl ik ze soms niet eens nodig heb. Maar dat maakt wel weer veel kortere code in bijv. index.php, home.php
Of het er veel zijn weet ik niet, maar Ik ben onlangs overgestapt naar een andere hoster die PHP 5 draaitquote:Op vrijdag 4 april 2008 19:34 schreef Light het volgende:
PDO lijkt heel interessant, maar zijn er veel hosters die het ondersteunen?
Volgens mij is PHP5 geen garantie dat PDO wordt ondersteund. Helaas.quote:Op vrijdag 4 april 2008 21:02 schreef SuperRembo het volgende:
Of het er veel zijn weet ik niet, maar Ik ben onlangs overgestapt naar een andere hoster die PHP 5 draait
offtopicquote:Op vrijdag 4 april 2008 18:57 schreef mausie het volgende:
verhaaltje
1 2 3 4 5 6 7 8 9 10 | $to = 'qu63@qu63.com'; $subject = 'Test-bericht'; $message = 'Dit is een test-bericht'; $headers = 'From: Test-user <iBus@ahrenstravel.nl>' . "\r\n" . 'Reply-To: iBus@ahrenstravel.nl' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?> |
Mogelijk door het minteken, ik heb wat RFCs doorgelezen maar kom er niet echt achter waarom het niet werkt. Probeer dit eens:quote:Op zaterdag 5 april 2008 13:53 schreef qu63 het volgende:
[ code verwijderd ]
geeft een foutmelding:
Warning: mail() [function.mail]: SMTP server response: 501 5.5.4 Invalid Address in mail.php on line 11
Ik weet dat de fout zit in regel 5, nl "Test-user <iBus@ahrenstravel.nl>", als ik het doe zoals in regel 6 werkt het wel. Wat doe ik fout in regel57?
1 |
nope, zelfde melding.quote:Op zaterdag 5 april 2008 14:00 schreef JeRa het volgende:
[..]
Mogelijk door het minteken, ik heb wat RFCs doorgelezen maar kom er niet echt achter waarom het niet werkt. Probeer dit eens:
[ code verwijderd ]
Werkt het zo wel?quote:Op zaterdag 5 april 2008 13:53 schreef qu63 het volgende:
[ code verwijderd ]
geeft een foutmelding:
Warning: mail() [function.mail]: SMTP server response: 501 5.5.4 Invalid Address in mail.php on line 11
Ik weet dat de fout zit in regel 5, nl "Test-user <iBus@ahrenstravel.nl>", als ik het doe zoals in regel 6 werkt het wel. Wat doe ik fout in regel57?
1 2 3 4 5 6 7 8 9 10 11 12 | $to = 'qu63@qu63.com'; $subject = 'Test-bericht'; $message = 'Dit is een test-bericht'; $from = 'From: Test-user <iBus@ahrenstravel.nl>\r\n'; $reply = 'Reply-To: iBus@ahrenstravel.nl\r\n' $params = 'X-Mailer: PHP/' . phpversion(); $headers = $from.$reply.$params; mail($to, $subject, $message, $headers); ?> |
1 2 3 | 'From: Test-user <iBus@ahrenstravel.nl>' . "\r\n" ?> |
1 2 3 | 'From: Test-user <iBus@ahrenstravel.nl>\r\n' ?> |
Ik heb het direct over genomen van http://nl2.php.net/manual/en/function.mail.php (example #2),quote:Op zaterdag 5 april 2008 14:56 schreef Tarabass het volgende:
[..]
Werkt het zo wel?
[ code verwijderd ]
Bovendien begrijp ik niet waarom je achter het mailadres de string breekt met een punt om vervolgens de string gelijk weer te vervolgen met een \r\n en een " ipv een '.
[ code verwijderd ]
zou zo moeten:
[ code verwijderd ]
Je zou tijdelijk PHPMailer kunnen proberen om te kijken of het probleem 'm in het adres ligt of bij de serverquote:Op zaterdag 5 april 2008 15:05 schreef qu63 het volgende:
[..]
Ik heb het direct over genomen van http://nl2.php.net/manual/en/function.mail.php (example #2),
En helaas werkt jouw code ook niet, in eerste instantie omdat er een ; miste, maar daarna kreeg ik weer een server response: 501 5.5.4 Invalid Address terug
ik kopieër het letterlijk van de php.net site. Het probleem zal dus aan mijn server liggen, gok ik.quote:Op zaterdag 5 april 2008 15:09 schreef JeRa het volgende:
[..]
Je zou tijdelijk PHPMailer kunnen proberen om te kijken of het probleem 'm in het adres ligt of bij de server?
jup, geupload naar een andere server en daar werkt het wel.quote:Op zaterdag 5 april 2008 15:18 schreef qu63 het volgende:
[..]
ik kopieër het letterlijk van de php.net site. Het probleem zal dus aan mijn server liggen, gok ik.
1 2 3 4 | //Resultaat http://www.mijnwebsite.nl/tarabass/1/ |
Ehm, ja en nee eigenlijkquote:Op zaterdag 5 april 2008 16:26 schreef Tarabass het volgende:
Dat we niet zagen waar het aan lag is dus niet gek te noemenMooi dat het iig werkt op die andere server, dan weet je wat je te doen staat
mod_rewrite =)quote:Op zaterdag 5 april 2008 16:26 schreef Tarabass het volgende:
Dat die escapes niet werkte met enkele quote's wist ik niet, heb het inderdaad in mijn classe met dubbele quote's staan. Weer wat geleerd
@qu63
Dat we niet zagen waar het aan lag is dus niet gek te noemenMooi dat het iig werkt op die andere server, dan weet je wat je te doen staat
Ik heb trouwens ook een vraagje. Ik geef nu variables mee in de url, maar ik wil dat het dus in de browser gezien wordt als folders. Voorbeeldje:
[ code verwijderd ]
Thx! Het was hier al eens voorbij gekomen volgens mij maar was het alweer kwijt. Ga me maar eens inlezenquote:
Als je echt met submappen wilt werken dan kun je dit oplossen met de volgende HTML-tag in je <head>-sectie:quote:Op maandag 7 april 2008 12:54 schreef thatsme het volgende:
Ik heb een probleem
Ik heb mijn pagina opgebouwd en doormiddel van een header en een footer wordt de pagina in de juiste layout gezet.
In de header staat ook een verwijzing naar een stylesheet (relatief). In de root is het in het script:
include("header.php)
in een submap
include("../header.php)
het probleem is dat dat de header "denkt" dat die in die submap staat waardoor deze de stylesheet niet meer kan vinden. Is er een manier om de header te includen zonder dat ik de url naar de stylesheet "vast" moet zetten met de complete url?
1 |
Waarom zou je dat in hemelsnaam niet willen? een makkelijkere manier is er niet.quote:Op maandag 7 april 200812:54 schreef thatsme het volgende:
Is er een manier om de header te includen zonder dat ik de url naar de stylesheet "vast" moet zetten met de complete url?
Weet wel dat slecht gebouwde bots die tag compleet negeren of slecht intrepetreren en gaan loopen als je pech hebt. Is iig iets om in je achterhoofd te houdenquote:Op maandag 7 april 2008 14:09 schreef JeRa het volgende:
[..]
Als je echt met submappen wilt werken dan kun je dit oplossen met de volgende HTML-tag in je <head>-sectie:
[ code verwijderd ]
Alle relatieve locaties (zoals die naar je CSS-bestanden en al je relatieve hyperlinks) zullen zich nu baseren op die base locatie
Moet er nog een keer detectie voor gaan schrijven. Had er laatst een die had er 2.5GB in een uurtje of 8 door heen geschotenquote:Op maandag 7 april 2008 16:52 schreef slacker_nl het volgende:
Hoezo zou die bot gaan loopen dan? owja, slecht geschreven bots
Dus als ik op jouw site zoek op "http://" dan ben ik meteen gebanned?quote:Op maandag 7 april 2008 18:09 schreef WyriHaximus het volgende:
[..]
Zelf ban ik alles wat http:// ergens na de host bit in de URL heeft.
Gebruik je mail-adres eens van Planet als afzender.quote:Op zaterdag 5 april 2008 16:31 schreef qu63 het volgende:
[..]
Ehm, ja en nee eigenlijk
Ik weet dat het dus aan mijn pc ligt, maar geen idee aan welke instellingen e.d., of dat het mn provider (Planet) is die het niet accepteerd
Zolang het in de URL staat wel. Draait al een half jaar en nog nooit false positives gehad, hou het nog steeds wel in de gaten. Het begon op een gegeven moment op te vallen dat er zeker 20 van dat soort aanvallen per dag waren. Heb toen maar stukje code gemaakt wat de reuqest uri checkt of er z'n soort aanval in zit of niet en IP ban als er zon aanval in zit.quote:Op maandag 7 april 2008 20:32 schreef SuperRembo het volgende:
[..]
Dus als ik op jouw site zoek op "http://" dan ben ik meteen gebanned?
Ik heb er zelf (nog) geen last van gehad, zoveel bezoekers krijg ik ook niet. Het valt me wel op dat sommige bots idioot vaak langs komen, vooral BaiduBot en Yahoo!Slurp.
he, das een goeie, maar ik kan vanaf huis ook met andere mailadressen mailen (maar die gebruiken dan wel een andere smtp-host idd..)quote:Op maandag 7 april 2008 20:47 schreef saban het volgende:
[..]
Gebruik je mail-adres eens van Planet als afzender.
dat was het probleem dus nietquote:Op maandag 7 april 2008 21:53 schreef qu63 het volgende:
[..]
he, das een goeie, maar ik kan vanaf huis ook met andere mailadressen mailen (maar die gebruiken dan wel een andere smtp-host idd..)
ff proberen!
Een float neemt minder geheugen/schijfruimte in en is qua berekeningen sneller.quote:Op dinsdag 8 april 2008 08:26 schreef ursel het volgende:
Kan iemand mij eigenlijk vertellen wat het daadwerkelijke verschil is tussen FLOAT en DECIMAL in MySQL?
Merk bijv. dat FLOAT getallen ver achter de komma wil veranderen. Dus als ik 6.2 opsla terwijl de FLOAT (22,10) is, dan maakt hij er 6.1999999980 van ofzoiets. Maar vaak niet exact. DECIMAL doet dat wel. Maar wat is dan het nut van het gebruik van FLOAT?
Ok, maar waarom slaat hij de waardes zo raar op dan?quote:Op dinsdag 8 april 2008 09:08 schreef JeRa het volgende:
[..]
Een float neemt minder geheugen/schijfruimte in en is qua berekeningen sneller.
Float waardes worden vaak als 32-bits of 64-bits (ik geloof zo in MySQL) getallen opgeslagen. In plaats van alle cijfers naar binaire codes om te zetten wordt er een wiskundige formule toegepast en de parameters van die formule worden opgeslagen. Door die formule wordt het mogelijk om een belachelijk groot getalbereik te specificeren, maar doordat je maar 64 bits hebt kun je niet élk mogelijk getal vastleggen. Dan wordt het meest dichtstbijzijnde getal gekozen, en dat zorgt voor rare resultaten zoals 9,99999997.quote:Op dinsdag 8 april 2008 09:12 schreef ursel het volgende:
[..]
Ok, maar waarom slaat hij de waardes zo raar op dan?
Ja, absoluut. Een DECIMAL kent geen verlies van data, voor zover je de precisie hebt gespecificeerd. Op het moment dat je 4 getallen achter de komma nodig hebt en je hebt je DECIMAL gespecificeerd als 2 getallen achter de komma, dan raak je alsnog gegevens kwijt. Maar deze nieuwe getallen zijn wél accuraat en hier kun je ook gewoon mee verder rekenen.quote:Aangezien de nauwkeurigheid belangrijker is dan performance zullen we denk ik wel een switch gaan maken.
Is dit verschil zo groot dan eigenlijk?
Okido. Verhelderend. Gaat in dit geval inderdaad om een financiële toepassing..quote:Op dinsdag 8 april 2008 09:17 schreef JeRa het volgende:
[..]
Float waardes worden vaak als 32-bits of 64-bits (ik geloof zo in MySQL) getallen opgeslagen. In plaats van alle cijfers naar binaire codes om te zetten wordt er een wiskundige formule toegepast en de parameters van die formule worden opgeslagen. Door die formule wordt het mogelijk om een belachelijk groot getalbereik te specificeren, maar doordat je maar 64 bits hebt kun je niet élk mogelijk getal vastleggen. Dan wordt het meest dichtstbijzijnde getal gekozen, en dat zorgt voor rare resultaten zoals 9,99999997.
[..]
Ja, absoluut. Een DECIMAL kent geen verlies van data, voor zover je de precisie hebt gespecificeerd. Op het moment dat je 4 getallen achter de komma nodig hebt en je hebt je DECIMAL gespecificeerd als 2 getallen achter de komma, dan raak je alsnog gegevens kwijt. Maar deze nieuwe getallen zijn wél accuraat en hier kun je ook gewoon mee verder rekenen.
Voor dingen zoals financiële toepassingen wil je absoluut DECIMALs gebruiken, je kunt je het niet veroorloven om opeens centen te laten verdwijnen
Weet jij wat je tegen die loopende bots kan doen? Ik word d'r helemaal gestoord van namelijk, vooral omdat ik mezelf een mail stuur bij een 404quote:Op maandag 7 april 2008 18:09 schreef WyriHaximus het volgende:
Moet er nog een keer detectie voor gaan schrijven. Had er laatst een die had er 2.5GB in een uurtje of 8 door heen geschoten. Nu we toch in dit straat je zitten, hebben jullie veel last van dit soort shit (loopende botjes, remote file inclusions, sql injections) en zo ja wat doen jullie er tegen? Zelf ban ik alles wat http:// ergens na de host bit in de URL heeft.
Omdat dat lokaal de site niet meer naar behoren draait.quote:Op maandag 7 april 2008 15:11 schreef mcDavid het volgende:
[..]
Waarom zou je dat in hemelsnaam niet willen? een makkelijkere manier is er niet.
quote:Op dinsdag 8 april 2008 09:25 schreef Xcalibur het volgende:
[..]
Weet jij wat je tegen die loopende bots kan doen? Ik word d'r helemaal gestoord van namelijk, vooral omdat ik mezelf een mail stuur bij een 404.... andere problemen heb ik niet zover ik weet, maar die loopende bots zijn vervelend....
1 |
Floats en decimals worden allebei binair opgeslagen, het enige verschil is eigenlijk dat bij een decimal de positie van de komma vast is, en bij een float variabel (drijvend/floating). Een decimal heeft een vast aantal decimalen, een float heeft een vast aantal significante cijfers.quote:Op dinsdag 8 april 2008 09:17 schreef JeRa het volgende:
[..]
Float waardes worden vaak als 32-bits of 64-bits (ik geloof zo in MySQL) getallen opgeslagen. In plaats van alle cijfers naar binaire codes om te zetten wordt er een wiskundige formule toegepast en de parameters van die formule worden opgeslagen. Door die formule wordt het mogelijk om een belachelijk groot getalbereik te specificeren, maar doordat je maar 64 bits hebt kun je niet élk mogelijk getal vastleggen. Dan wordt het meest dichtstbijzijnde getal gekozen, en dat zorgt voor rare resultaten zoals 9,99999997.
[..]
1 2 3 4 | $q = "UPDATE rit SET (user1, user2, van_datum, naar_datum, vertrek, aankomst, km, prijs, pax, opmerkingen) VALUES ( 'TESTUSER', '', '1206710100', '1206710100', 'Bussum', 'Naarden', '15', '250', '12', 'dus' ) WHERE rit_id = 7"; mysql_query($q); ?> |
Op het eerste gezicht zou je dat wel zeggen. Echter wordt een float opgeslagen als een IEEE 754-1985 floating point, terwijl een decimal de exacte getallen opslaat. Dat is ook de reden waarom de opslagvereisten voor een float neerkomen op 4 danwel 8 bytes (afhankelijk van de vereiste precisie) en een decimal afhankelijk van de grootte van de precisieparameters veel groter kan zijn. Zie ook deze paginaquote:Op dinsdag 8 april 2008 13:44 schreef SuperRembo het volgende:
[..]
Floats en decimals worden allebei binair opgeslagen, het enige verschil is eigenlijk dat bij een decimal de positie van de komma vast is, en bij een float variabel (drijvend/floating). Een decimal heeft een vast aantal decimalen, een float heeft een vast aantal significante cijfers.
Je combineert de insert en de update.quote:Op dinsdag 8 april 2008 16:07 schreef qu63 het volgende:
Wat klopt er niet aan deze query?
[ code verwijderd ]
1 2 3 | $sql = "UPDATE tabelnaam SET kolom1='waarde1', kolom2='waarde2' WHERE kolom3='waarde3'" ?> |
quote:Op dinsdag 8 april 2008 16:07 schreef qu63 het volgende:
Wat klopt er niet aan deze query?
[ code verwijderd ]
1 2 3 4 | $q = "UPDATE rit SET user1 = 'TESTUSER', user2 = '', van_datum = '1206710100', naar_datum = '1206710100', vertrek = 'Bussum', aankomst = 'Naarden', km = 15, prijs = 250, pax = 12, opmerkingen = 'dus' WHERE rit_id = 7"; mysql_query($q); ?> |
thanks!quote:Op dinsdag 8 april 2008 16:18 schreef ursel het volgende:
[..]
Je combineert de insert en de update.
Update moet als het ware zo:
[ code verwijderd ]
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 | if(isset($_GET['editid']) and isset($_POST['submit']) and $_POST['submit'] == "ok"); { $user1 = mysql_real_escape_string($_POST['user1']); $user2 = mysql_real_escape_string($_POST['user2']); $van_datum = strtotime(mysql_real_escape_string($_POST['van_datum'])); $naar_datum = strtotime(mysql_real_escape_string($_POST['naar_datum'])); $vertrek = mysql_real_escape_string($_POST['vertrek']); $aankomst = mysql_real_escape_string($_POST['aankomst']); $km = mysql_real_escape_string($_POST['km']); $prijs = mysql_real_escape_string($_POST['prijs']); $pax = mysql_real_escape_string($_POST['pax']); $opmerkingen = mysql_real_escape_string($_POST['opmerkingen']); $q = "UPDATE rit SET user1 = '".$user1."', user2 = '".$user2."', van_datum = '".$van_datum."', naar_datum = '".$naar_datum."', vertrek = '".$vertrek."', aankomst = '".$aankomst."', km = '".$km."', prijs = '".$prijs."', pax = '".$pax."', opmerkingen = '".$opmerkingen."' WHERE rit_id = ".$_GET['editid'].""; if(mysql_query($q)) { echo $q; $succes = true; } else { echo $q; } } ?> |
Idd, fixed point is exact. Ik was uit gegaan van de manier waarop MSSql z'n decimals opslaat, maar sinds versie 5 gebruikt MySQL ook voor decimals een binair formaat. Alleen vreemd dat de decimalen (het deel achter de komma) blijkbaar apart wordt opgeslagen, in MSSql wordt 1 getal opgeslagen + de positie van de komma.quote:Op dinsdag 8 april 2008 16:12 schreef JeRa het volgende:
[..]
Op het eerste gezicht zou je dat wel zeggen. Echter wordt een float opgeslagen als een IEEE 754-1985 floating point, terwijl een decimal de exacte getallen opslaat. Dat is ook de reden waarom de opslagvereisten voor een float neerkomen op 4 danwel 8 bytes (afhankelijk van de vereiste precisie) en een decimal afhankelijk van de grootte van de precisieparameters veel groter kan zijn. Zie ook deze pagina
Zoiezo de ; na je if weghalen.quote:Op dinsdag 8 april 2008 16:42 schreef qu63 het volgende:
op de een of andere manier werkt dit niet:
[ code verwijderd ]
Hij voert het gewoon uit, ook al is de $_POST leeg :{
waardoor nu rit_id 7 helemaal leeg is :')
iemand een tip over hoe dit beter kan en/of waar de fout zit?
1 2 3 4 5 6 7 8 9 10 | $_GET = array ("editid" => 1); $_POST = array ("submit" => 'ok'); if(isset($_GET['editid']) and isset($_POST['submit']) and $_POST['submit'] == "ok") { print_r($_POST); // Waarom check je de rest van $_POST niet? } ?> |
RewriteRule ^/(.*)/$ http://blabla.nl/index.php?page=$1quote:Op dinsdag 8 april 200817:52 schreef GioStyle het volgende:
Met .htaccess kan je urls herschrijven, alleen ik kom er niet helemaal uit.
Voorbeeld:
Ik heb nu een link: http://blabla.nl/index.php?page=contact
Ik zou het mooier vinden als bovenstaande link als volgt wordt weergegeven: http://blabla.nl/contact
Hoe zet ik dit in .htacces?
Ik heb het nu wat niet werkt:
RewriteEngine On
Hmm.. ik moet nog veel leren zo te zien haha..
het was die ; idd, thanks!quote:Op dinsdag 8 april 2008 17:52 schreef slacker_nl het volgende:
[..]
Zoiezo de ; na je if weghalen.
En..
[ code verwijderd ]
Ok. Maar waar?quote:Op dinsdag 8 april 2008 20:44 schreef super-muffin het volgende:
Je kan je document root wel ergens instellen (waar precies weet ik niet, ik gebruik MAMP, met de M van Macintosh)
Dat werkt helaas ook niet. Weet iemand anders een andere manier om mooier urls te maken?quote:Op dinsdag 8 april 2008 19:10 schreef mcDavid het volgende:
[..]
RewriteRule ^/(.*)/$ http://blabla.nl/index.php?page=$1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | if($_GET['games'] == "alle"){ $indexnr = 0; $limit = 20; $order = "desc"; $arr = array(); // generate all letters for ($i = 97; $i < 123; $i++) { $indexnr = $indexnr +1; $t1[$indexnr] = chr($i); } $mode = "alphabet"; foreach($t1 as $key => $letter){ echo("<div id=\"colOne\"><h3>$letter</h3> <div class=\"bg1\"><ul>"); include('pre_list_games.php'); echo("<br> <i><a href=\"index.php\">Terug naar de index</a></i>"); echo("</ul></div></div> \n"); } exit(); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | if($mode == "alphabet") { $rowheight = 0; $minrows = 10; $m = "<i>Nog geen spelletjes</i>"; $sql3 = "SELECT t01.id, t01.title, t01.photo, t01.descr from games t01 where t01.active = 1 AND lower(t01.title) LIKE '$letter%' order by t01.title asc limit $limit"; $result3 = mysql_query($sql3) or die ("ERROR: " . mysql_error()); while ($rij3 = mysql_fetch_array($result3)){ if($rij3['photo'] == ""){ $rij3['photo'] = "images/no_thumb.gif"; } $title = $rij3['title']; if(strlen($title)>20) { $title = substr($title, 0, 20); $title = "" . $title . "..."; } echo("<a ONMOUSEOVER=\"popup('<img src=".$rij3['photo']." width=$settings2->sizex height=$settings2->sizex>','0')\"; ONMOUSEOUT=\"stopthumb()\" href=\"index2.php?game=".$rij3['id']."&name=".str_replace(" ", "_", $rij3['title'])."\" $target>".$title."</a><br> \n"); $m=""; $rowheight = $rowheight+1; } echo($m); for ( $i = $rowheight; $i < $minrows; $i++) { echo("<br>"); } } ?> |
Welwaarquote:Op dinsdag 8 april 200823:10 schreef GioStyle het volgende:
[..]
Dat werkt helaas ook niet. Weet iemand anders een andere manier om mooier urls te maken?
Een cronjob kan ook gewoon een PHP file opstarten. Daarvoor hoeft niks bevestigd te worden.quote:Op dinsdag 8 april 2008 18:39 schreef -J-D- het volgende:
Hoi.
Mijn mysql-db wordt dagelijks gebackupd naar een gmail-adres.
Nu wil ik eigenlijk dat de db ook dagelijks in een excelbestand gegooid wordt.
Ik kan wel handmatig elke dag die query draaien, maar dat schiet niet op.
Is zoiets te automatiseren?
Ik heb me ooit eens laten vertellen dat dit met een cronjob kan? Maar dan moet je toch nog handmatig bevestigen? Bijv. bij het opslaan van het bestand?
Alvast bedankt voor het meedenken.
Hmm het werkt alsnog niet. Moet ik misschien de links in de index ook veranderen?quote:Op dinsdag 8 april 2008 23:23 schreef mcDavid het volgende:
[..]
Welwaar
ohwacht misschien moet die / na het ^ weg. En misschien moet er nog [L] achter
Je zou voor een 'poor mans' mod_rewrite kunnen gaan... Als url gebruik je dan bijvoorbeeld http://example.com/test.php/topic/1134706/6/60 , en in je code parse je de url die je aanroept..quote:Op dinsdag 8 april 2008 23:10 schreef GioStyle het volgende:
[..]
Dat werkt helaas ook niet. Weet iemand anders een andere manier om mooier urls te maken?
1 2 3 4 5 6 7 | echo '<pre>'; $querystring=$_SERVER['PATH_INFO']; $elements=split('/',$querystring); print_r($elements); echo '</pre>'; ?> |
1 2 3 4 5 6 7 8 | ( [0] => [1] => topic [2] => 1134706 [3] => 6 [4] => 60 ) |
Het moet gewoon werken. Anders doe je iets raars met de url's, of je .htaccess wordt niet herkend.quote:Op dinsdag 8 april 200823:32 schreef GioStyle het volgende:
[..]
Hmm het werkt alsnog niet. Moet ik misschien de links in de index ook veranderen?
Kan het komen omdat ik gebruik maak van de volgende script:quote:Op woensdag 9 april 2008 00:00 schreef mcDavid het volgende:
[..]
Het moet gewoon werken. Anders doe je iets raars met de url's, of je .htaccess wordt niet herkend.
1 2 3 4 5 6 7 8 9 10 11 12 13 | if(!IsSet($_GET['page'])) { $_GET['page'] = "home"; } switch ($_GET['page']) { case 'home': include('home/home.php'); break; default: include('home/home.php'); ?> |
Je voorbeeld is precies het omgekeerde van wat hij wilt bereiken.quote:Op woensdag 9 april 2008 00:00 schreef mcDavid het volgende:
Het moet gewoon werken. Anders doe je iets raars met de url's, of je .htaccess wordt niet herkend.
Het korte antwoord: Haal de limit weg uit je query, dan krijg je alle resultaten terug.quote:Op dinsdag 8 april 2008 23:20 schreef TommyGun het volgende:
Beste allen,
Binnen mijn (game) website heb ik een overzicht van a t/m z welke alle games uit mijn database toont, maar gezien het grote aantal heb ik dit gelimit op 20 per letter.
Dus er worden 20 games beginnende met de letter 'a' getoond, 20 met 'b', en ga zo maar verder. Nu wil ik echter ook de mogelijkheid om alle games beginnende met 'a', 'b' etc te tonen, maar hier zit ik mee in de knoop.
Het stukje code dat ik gebruik voor het a t/m z overzicht:
index.php
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 | for ($i = 97; $i < 123; $i++) { $indexnr = $indexnr +1; $t1[$indexnr] = chr($i); } // snip foreach($t1 as $key => $letter){ echo("<div id=\"colOne\"><h3>$letter</h3> <div class=\"bg1\"><ul>"); include('pre_list_games.php'); echo("<br> <i><a href=\"index.php\">Terug naar de index</a></i>"); echo("</ul></div></div> \n"); } |
1 2 3 4 5 6 7 8 9 10 | // generate all letters for ($i = 97; $i < 123; $i++) { $letter = chr($i); echo("<div id=\"colOne\"><h3>$letter</h3> <div class=\"bg1\"><ul>"); /* pre_list_games($mode, $letter); functie hier */ echo("<br> <i><a href=\"index.php\">Terug naar de index</a></i>"); echo("</ul></div></div> \n"); } |
1 2 3 4 5 6 7 8 9 10 11 | $array_ref =& $array; # Foreach gebruikt nu de referentie, en is dus sneller # omdat er geen kopie van de array wordt gemaakt foreach($array_ref as $value) { print "$value\n" } # En wil je echt slim doen (vanaf PHP5): # We maken nu ook geen kopie aan van $value, maar gebruiken # de referentie foreach($array_ref as &$value_ref) { print "$value_ref\n" } |
Hmm.. En als ik nou alleen een index heb met een pagina's.quote:Op woensdag 9 april 2008 02:18 schreef slakkie het volgende:
@GioStyle
RewriteEngine On
RewriteRule ^test/(.*) /~wesleys/index.php?id=$1 [L]
In dit geval is http://web.server.nl/~wesleys/test/1 hetzelfde als http://web.server.nl/~wesleys/index.php?id=1
dan kan ik niet anders concluderen dat het werken met een reference sneller is dan met de kopie van een array.quote:Unless the array is referenced, foreach operates on a copy of the specified array and not the array itself.
Dan concludeer je dat fout; je werkt inderdaad op een kopie van de array, echter wordt die kopie pas echt gemaakt zodra je de array gaat wijzigen.quote:Op woensdag 9 april 2008 10:25 schreef slakkie het volgende:
Jera, ik ga eens wat meer spelen met references en de verschillen uitvogelen. Alleen als ik lees:
[..]
dan kan ik niet anders concluderen dat het werken met een reference sneller is dan met de kopie van een array.
Ik doe zelf precies het zelfde met precies dezelfde regel. Alleen dan met 2 variables.quote:Op woensdag 9 april 200802:26 schreef slakkie het volgende:
[..]
Je voorbeeld is precies het omgekeerde van wat hij wilt bereiken.
Als je /test/personal opvraagt moet het gewoon worden.quote:Op woensdag 9 april 2008 09:01 schreef GioStyle het volgende:
[..]
Hmm.. En als ik nou alleen een index heb met een pagina's.
Dan zou hij als zo moeten zijn:
RewriteEngine On
RewriteRule ^test/(.*) /index.php?page=$1 [L]
Maar dan werkt hij nog niet...
Wel heb ik dan nog als link bijvoorbeeld: index.php?page=personal, maar die moet dan door .htaccess mooier worden weergegeven.
Om de taal wat dynamischer te maken. Je kunt variabelen zo aan andere inhoud koppelen, of de inhoud van de variabelen in de originele scope aanpassen:quote:Op woensdag 9 april 2008 11:04 schreef slacker_nl het volgende:
Waarom hebben ze dan references in de taal zitten? In Perl gebruik ik ze alleen maar..
1 2 3 4 5 6 | $a = 3; $b =& $a; $b++; echo $a; // output 4 ?> |
1 2 3 4 5 6 7 8 | $getal = 1; function verhoog(&$var) { $var++; } verhoog($getal); echo $getal; // output 2 ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class Test { private $memberVariabele; public function &getMemberVariabele() { return $this->memberVariabele; } public function output() { echo $this->memberVariabele; } } $a = new Test(); $b =& $a->getMemberVariabele(); $b = 'whieeeee'; $a->output(); // output 'whieeeee' ?> |
Ja, maar als je naar de PHP references kijkt zijn het geen pointers/references zoals ik die ken. Dat geven ze ook aan, maar ik snap dan niet dat ze zeggen, bij een foreach bla bla bla en vervolgens blijkt met die get_usage call dat ik idd meer memory gebruik als ik de referentie gebruik ipv de daadwerkelijke array. Erg frustrerend.quote:Op woensdag 9 april 2008 16:40 schreef ralfie het volgende:
In veel, zoniet alle talen zijn referencies veeel sneller als kopieen hoor. Pointers in c++, java, byref in vb, allemaal veel sneller. Vind het zelf ook apart dat dit in php anders lijkt/is, maar dat heeft meer met het compileren an sich te maken denk ik.
1 2 3 4 5 | $b =& $a; # Nu wil ik niet meer een reference hebben, maar een kopie.. <syntax missing> |
1 2 3 4 5 | $b = \$a; # nu wil ik niet meer een reference hebben, maar een kopie.. $c = $$b; |
Het is inmiddels al gelukt, maar toch bedankt!quote:Op woensdag 9 april 2008 02:51 schreef slakkie het volgende:
[..]
Het korte antwoord: Haal de limit weg uit je query, dan krijg je alle resultaten terug.
Ik zou dit stukje code trouwens herschrijven:
[ code verwijderd ]
Naar:
[ code verwijderd ]
Waarom?
Je doet 2x een loop, je maakt een array aan die je foreached (waarbij je geen reference naar de foreach gooit, waardoor er een kopie van de array wordt gemaakt) wat weer kostbaar is en dan ga je ook nog de key opvragen terwijl je die niet gebruikt: foreach($array as $value) had dan ook gekund.
Verder heeft het weinig zin om 26 keer een file te includen (include_once gebruiken btw). Als je het doet omdat de enige code in die file ook echt in je post staat. Maak er een functie van. Die kan je dan tig keer aanroepen maar daar heb je dan niet 23 IO acties voor nodig.
function pre_list_games($mode, $letter) { /* Je originele code van pre_list_games.php hier plakken */ }
Verder zou ik zou een foreach loop uitvoeren:
[ code verwijderd ]
Maar meer hierover is te vinden in de notes van http://php.net/foreach
Je raakte me kwijt bij 'pointers in Java'quote:Op woensdag 9 april 2008 16:40 schreef ralfie het volgende:
In veel, zoniet alle talen zijn referencies veeel sneller als kopieen hoor. Pointers in c++, java, byref in vb, allemaal veel sneller. Vind het zelf ook apart dat dit in php anders lijkt/is, maar dat heeft meer met het compileren an sich te maken denk ik.
I stand corrected, gisteravond liggen slapen fzoquote:Op woensdag 9 april 2008 11:06 schreef mcDavid het volgende:
[..]
Ik doe zelf precies het zelfde met precies dezelfde regel. Alleen dan met 2 variables.
Wat jij wil is simpel te bewerkstelligen:quote:Op woensdag 9 april 2008 17:41 schreef slacker_nl het volgende:
[..]
Ja, maar als je naar de PHP references kijkt zijn het geen pointers/references zoals ik die ken. Dat geven ze ook aan, maar ik snap dan niet dat ze zeggen, bij een foreach bla bla bla en vervolgens blijkt met die get_usage call dat ik idd meer memory gebruik als ik de referentie gebruik ipv de daadwerkelijke array. Erg frustrerend.
Verder vind ik het ook irritant dat ik niet iets kan dereferencen.
[ code verwijderd ]
In perl gaat het zo:
[ code verwijderd ]
Maar goed, dat komt zeer waarschijnlijk omdat de PHP references eigenlijk geen references zijn....
1 2 3 4 5 6 7 8 9 10 | // $a verwijst naar de waarde 3 $a = 3; // $b verwijst vanaf nu naar de waarde waar $a naartoe verwijst, op dit moment 3 $b =& $a; // $c krijgt een kopie van de waarde van $b, wat een verwijzing is naar de waarde van $a $c = $b; ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 | // $a verwijst naar de 'pointer' naar Object $a = new Object(); // $b krijgt een kopie van de 'pointer' naar Object (hetzelfde object dus!) $b = $a; // $c verwijst naar de waarde van $a, op dit moment de 'pointer', en dus ook naar hetzelfde object $c =& $a; // $d bevat nu een kopie van het object $d = clone $a; ?> |
woopsquote:Op woensdag 9 april 2008 18:18 schreef JeRa het volgende:
[..]
Je raakte me kwijt bij 'pointers in Java'![]()
1 2 3 | echo "var test = ".$_GET['waarde'].""; ?> |
1 2 3 | $afstand = document.getElementById("test").innerHTML = gdir.getDistance().html; ?> |
meestal als je php draait is de pagina al geladen of ben je bezig een nieuwe te genereren. Hoe had je dit in gedachten?quote:Op donderdag 10 april 2008 00:02 schreef qu63 het volgende:
Is het mogelijk om een JavaScript waarde in php in te laden?
[ code verwijderd ]
Maar dan dus andersom:
[ code verwijderd ]
maar dat werkt dus nietIemand enig idee hoe ik het er wel in krijg, behalve de pagina verversen en er een $_GET-waarde aan plakken?
Niet meestal, altijd.quote:Op donderdag 10 april 200800:32 schreef ralfie het volgende:
[..]
meestal als je php draait is de pagina al geladen of ben je bezig een nieuwe te genereren. Hoe had je dit in gedachten?
Het grappige is dat door het ontbréken van pointers in Java, de compiler veel beter kan optimaliseren dan de meeste C/C++ compilers doordat hij weet waar je precies mee bezig bent (met pointers is het vaak nogal gissen, als je bijvoorbeeld door een array loopt). Dat zorgt ervoor dat Java in nogal wat gevallen sneller is dan C++quote:Op woensdag 9 april 2008 23:40 schreef ralfie het volgende:
[..]
woops
Daar heten het 'references', wat net zon veredelde meuk is als bij javascript... Nee, geef mij maar lekker de pure pointer uit c++, erg basaal dus wat makkelijker te bevatten (voor mij althans).
Ik ben bezig een soort van Google Maps iets in te bouwen, maar ik bedenk me nu ineens dat AJAX nog een optie is, en dat ik natuurlijk ook alls in een iframe kan plaatsen en javascript het in het hoofddocument kan laten plaatsen..quote:Op donderdag 10 april 2008 00:32 schreef ralfie het volgende:
[..]
meestal als je php draait is de pagina al geladen of ben je bezig een nieuwe te genereren. Hoe had je dit in gedachten?
1 2 3 4 | INNER JOIN SHOP_Subcategory_Lang ON ( SHOP_Subcategory.IdSubcategory = SHOP_Subcategory_Lang.SubcategoryId ) WHERE SHOP_Subcategory.CategoryId = '1' |
ha! het werkt! *O*quote:Op donderdag 10 april 2008 09:24 schreef qu63 het volgende:
[..]
Ik ben bezig een soort van Google Maps iets in te bouwen, maar ik bedenk me nu ineens dat AJAX nog een optie is, en dat ik natuurlijk ook alls in een iframe kan plaatsen en javascript het in het hoofddocument kan laten plaatsen..
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 | <script src="http://maps.google.com/maps?file=api&v=2&key=KEY type="text/javascript"></script> <script type="text/javascript"> var map; var gdir; var geocoder = null; var addressMarker; function reken() { if (GBrowserIsCompatible()) { gdir = new GDirections(map, document.getElementById("directions")); GEvent.addListener(gdir, "load", onGDirectionsLoad); GEvent.addListener(gdir, "error", handleErrors); var van = document.getElementById("van").value; var naar = document.getElementById("naar").value setDirections(van, naar, "nl_NL"); } } function setDirections(fromAddress, toAddress, locale) { gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale }); } function handleErrors(){ alert("Fout!"); } function onGDirectionsLoad(){ var afstand = Math.round((gdir.getDistance().meters/1000)*10)/10; document.getElementById("reken").value = afstand + " km"; var sec = Math.round(gdir.getDuration().seconds/60); document.getElementById("tijd").value = sec + " minuten"; var gem = Math.round(gdir.getDistance().meters/gdir.getDuration().seconds*3.6); document.getElementById("gem").value = gem + " km/h"; } </script> </head> <body> <input type="text" id="van" value=""><input type="text" id="naar" value=""><input type="button" onclick="reken()"><input type="text" id="reken"><input type="text" id="tijd"><input type="text" id="gem"> ?> |
quote:Op donderdag 10 april 2008 15:37 schreef wobbel het volgende:
Mm....kan dit niet? :P
[ code verwijderd ]
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN SHOP_Subcategory_Lang ON ( SHOP_Subcategory.IdSubcat' at line 3
1 2 3 4 | FROM SHOP_Subcategory s INNER JOIN SHOP_Subcategory_Lang l ON s.IdSubcategory = l.SubcategoryId WHERE s.CategoryId = 1 |
INTERVAL ?quote:Op zaterdag 12 april 2008 13:02 schreef Chandler het volgende:
Wat is er mis met mijn query?
SELECT sum(`unique`) AS statValue
FROM stats_date
WHERE QUARTER(`date`) > QUARTER(CURRENT_DATE) - 1 QUARTER
AND statID = '1'
Zelfde geld voor deze query
SELECT sum(`hits`) AS statValue
FROM stats_date
WHERE MONTH(`date`) > (MONTH(CURRENT_DATE) - 6 MONTH)
AND statID = '1'
error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MONTH) AND statID = '1'' at line 3
voor over ik kan zien is er namelijk niets mis mee
De functies QUARTER() en MONTH() geven gewoon een integer terug. Het resultaat moet je dus ook gewoon vergelijken met een integer. De QUARTER en MONTH aan het eind van de regel horen daar dus niet te staan.quote:Op zaterdag 12 april 2008 13:02 schreef Chandler het volgende:
Wat is er mis met mijn query?
Je zult ook je jaar erbij moeten betrekkenquote:Op zaterdag 12 april 2008 15:57 schreef Chandler het volgende:
Klopt, al werkte interval ook maar goed. Even een andere vraag, hoe kan ik alles binnen nu en een half jaar geleden uitlezen?
MONTH(`date`) > (MONTH(CURRENT_DATE) - INTERVAL 6 MONTH) dit werkte iig niet
quote:Op zaterdag 12 april 2008 15:57 schreef Chandler het volgende:
Klopt, al werkte interval ook maar goed. Even een andere vraag, hoe kan ik alles binnen nu en een half jaar geleden uitlezen?
MONTH(`date`) > (MONTH(CURRENT_DATE) - INTERVAL 6 MONTH) dit werkte iig niet :{
1 |
Je kunt ook direct CURRENT_DATE inserten.quote:Op zaterdag 12 april 2008 22:55 schreef Pizzahut het volgende:
Even kort vraagje:
[...]
hoe kan ik dit het beste en het meest effectiefst doen?
De afstand hemelsbreed tussen twee lat/long coördinaten of de afstand over de weg?quote:Op zaterdag 12 april 2008 23:01 schreef qu63 het volgende:
Ben ik nu net eindelijk klaar met mn script wat de afstand tussen plaatsen enzo uitrekent, weet ik niet meer hoe ik het in wilde bouwen in mn site![]()
Afstand via de weg, met een beetje hulp van Google Mapsquote:Op zondag 13 april 2008 00:06 schreef SuperRembo het volgende:
De afstand hemelsbreed tussen twee lat/long coördinaten of de afstand over de weg?
Tnx SR, Dat werkte iig perfect!quote:Op zaterdag 12 april 2008 16:56 schreef SuperRembo het volgende:
[ code verwijderd ]
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |