Je kunt een socket openen. Dan stuur je zelf de headers en leest daarna de response uit.quote:Op maandag 21 april 2008 17:25 schreef qu63 het volgende:
nu wil ik alleen een pagina, die niet van mijzelf is, includen in een pagina zodat ik niet steeds username en ww in hoef te vullen
en hoe doen we dat?quote:Op woensdag 23 april 2008 10:27 schreef SuperRembo het volgende:
[..]
Je kunt een socket openen. Dan stuur je zelf de headers en leest daarna de response uit.
quote:Op woensdag 23 april 2008 13:13 schreef SuperRembo het volgende:
[..]
Daartoe lezen we de f... manual :P
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $fp = fsockopen("server.busbroker.nl", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.example.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> |
1 2 | $out.= "Authorization: Basic " . base64_encode($credentials) |
nope.quote:Op woensdag 23 april 2008 13:56 schreef RiDo78 het volgende:
Aii... NTLM authenticatie... dat kan nog rottig worden. Hopen dat de server ook Basic wil slikken...
maar voeg deze eens toe:
[ code verwijderd ]
ik moet dan eerst nog een NTLM-Proxy opzetten, heb er wel een gevonden, maar die werkt met Python, en ik heb geen diee of mn webhost het ondersteundquote:Op woensdag 23 april 2008 14:05 schreef RiDo78 het volgende:
Het probleem wordt hier beschreven, maar ik heb het niet getest...
http://blog.thinkphp.de/a(...)ources-with-PHP.html
gwoon $array_met_elke_regel_op_een_rij = file ( "C:\bestand_met_meerdere_regels.ext");quote:Op woensdag 23 april 2008 15:52 schreef ursel het volgende:
Voor het inlezen van een file per lijn gebruiken we de preg_match functie:
$aData = preg_split("/\r\n/", $fileData['content']);
Alleen nu krijgen we ook files binnen welke opeens een \n als reguliere expressie moeten hebben.
Weet iemand hoe we de preg_match het beste op kunnen stellen dat we ongeacht het type "new line" we elke lijn in de array kunnen stouwen?
Soms zijn dingen makkerlijker dan je wel eens wil denken..quote:Op woensdag 23 april 2008 16:04 schreef ralfie het volgende:
[..]
gwoon $array_met_elke_regel_op_een_rij = file ( "C:\bestand_met_meerdere_regels.ext");
Ik dacht er ook heel simpel over, maar helaasquote:Op woensdag 23 april 2008 15:40 schreef SuperRembo het volgende:
Ok, dan is 't toch iets ingewikkelder dan ik in eerste instantie veronderstelde
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | if ($p="nh") echo "Noord-Holland"; elseif ($p="nb") echo "Noord-Branbant"; elseif ($p="zh") echo "Zuid-Holland"; else echo "Verkeerde invoer, probeer het opnieuw!"; ?> |
quote:Op donderdag 24 april 2008 10:56 schreef nlboy het volgende:
Ik heb denk ik een hele simpele vraag, maar ik kom er niet uit.
Het volgende wil ik graag hebben:
Als ik in het adresbalk test.php?p=nh in typ wil ik als echo Noord-Holland hebben.
Wanneer ik test.php?p=nb invoer wil ik als echo Noord-Brabant hebben.
Kortom elke provincies wil ik zo benaderen en dan als echo te tekst van de provincie.
Ik heb al iets zitten maken, maar helaas lukt het me niet om de goede resultaat te krijgen. Het volgende heb ik:
[ code verwijderd ]
Ik krijg alleen maar Noord-Holland te zien i.pv. bijvoorbeeld Noord-Brabant of ik krijg geen foutmelding wanneer ik niks invul. Wat doe ik fout?Alvast bedankt!
1 2 3 4 5 6 7 8 9 10 11 12 13 | nh => "Noord-Holland", nb => "Noord-Brabant", ); # Dan kan je heel makkelijk die conversie doen: $input = 'nh'; if (array_key_exists( $input, $plaatnamen)) { printf("De plaatsnaam die hoort bij %s is %s\n", $input, $plaatsnamen[$input]); } else { printf("Kan geen plaatsnaam vinden voor %s\n", $input); } |
http://www.dynamicajax.com/fr/AJAX_Suggest_Tutorial-.htmlquote:Op donderdag 24 april 2008 22:50 schreef wobbel het volgende:
Hoe kan ik zelf zoiets maken als dit?
http://www.google.com/webhp?complete=1&hl=en&btnG=Google+Search
Dat ie dus automatisch aanvult met gegevens uit de database? Dat het met AJAX werkt snap ik wel, maar hoe doe ik dat precies?is er al zoiets kant-en-klaar wat ik om kan bouwen zeg maar?
Even snelquote:Op vrijdag 25 april 2008 10:25 schreef Flipper01 het volgende:
Ik wil een archief maken van alle nieuwsberichten geordend per maand. Ik heb nu in MySQL een kolom datum waarin de datum als DATETIME wordt weergegeven. Ik wil nu graag het volgende resultaat bereiken:
- 2008
januari (2)
april (1)
mei (8)
.....
Hoe kan ik dit voor elkaar krijgen?
1 2 3 | FROM posts GROUP BY MONTH(datumkolom) |
Ik heb hem wat aangepast, zie deze link die je verder kan helpenquote:Op vrijdag 25 april 2008 10:38 schreef Flipper01 het volgende:
Waarvoor dient DATEPART en kan ik dit ook op een linux server 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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #create a sql backup and send it to your e-mail address //define settings //database host DEFINE('dbhost','localhost'); //database name DEFINE('dbnaam','dbnaam'); //database user DEFINE('dbuser','dbuser'); //database passwordt DEFINE('dbpass','dbpass'); //domeinnaam DEFINE('domein','domein.nl'); //doel DEFINE('email','backup@domein.nl'); //connect with database $link = mysql_connect(dbhost,dbuser,dbpass) or die('No datbase conection could be establised'); mysql_select_db(dbnaam,$link) or die('No datbase selected'); //query to recive table names $query = mysql_query('SHOW TABLE STATUS') or die(mysql_error()); $sql_backup = ''; //whileloop to loop trough every table while($row = mysql_fetch_assoc($query)) { //show sql query to rebuild the query $sql = 'SHOW CREATE TABLE '.$row['Name'].''; //exucte error or give a error $query2 = mysql_query($sql) or die(mysql_error()); //create sql $sql_backup.="\r\n#Create table ".$row['Name']."\r\n\r\n"; $out = mysql_fetch_assoc($query2); $sql_backup.=$out['Create Table'].";\r\n\r\n"; $sql_backup.="#Dump data\r\n\r\n"; //SQL code to select everything for table $sql = 'SELECT * FROM '.$row['Name']; $out = mysql_query($sql); $sql_code = ''; //loop trough the colloms while($code = mysql_fetch_array($out,MYSQL_ASSOC)) { $sql_code .= "INSERT INTO ".$row['Name']." SET "; foreach($code as $insert => $value) { $sql_code.=$insert ."='".addslashes($value)."',"; } $sql_code = substr($sql_code, 0, -1); $sql_code.= ";\r\n"; } $sql_backup.= $sql_code; } //generade a unique id $unique = md5(uniqid(time())); //message $message = "Backup procedure van database: ".dbnaam." is met succes verlopen. U vind in de bijlage een backup van de inhoud gemaakt op. ".date('d-m-Y H:i:s')."\r\n Autobot"; //maak headers aan //form header $headers = "From: Autobot <noreply@".domein.">\r\n"; //terug sturen naar een niet bestaand mail adress (noreply@domein.nl) $headers .= "Reply-To: Autobot <noreply@".domein.">\r\n"; //vertel dat het een mine versie is $headers .= "MIME-Version: 1.0\r\n"; //email bestaat uit meerdere bestanden dus vertel wat de scheidings teken is en dat het een multipart is $headers .= "Content-Type: multipart/mixed; boundary=\"".$unique."\"\r\n"; //we zenden een attachment mee $headers .= "Content-Disposition: attachment\r\n"; //generenen een body. Dit is een multi part gezeik $body.= "This is a multi-part message in MIME format.\r\n"; $body.= "\r\n"; //boundary $body.= "--".$unique."\r\n"; //content type + charater set (iso in dit geval) $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n"; //codering (7 bit) $body.= "Content-Transfer-Encoding: 7bit\r\n"; $body.= "\r\n"; //het bericht $body.= $message ."\r\n"; //boundaty $body.= "--".$unique."\r\n"; //content type + naam bestand (database.sql) $body .= "Content-Type: application/octet-stream; name=database.sql\r\n"; //codering $body .= "Content-Transfer-Encoding: base64\r\n"; //als bijlage toegevoegd $body.= "Content-disposition: attachment\r\n"; $body .= "\n"; //de inhoud van het bestand $body .= chunk_split(base64_encode($sql_backup)) . "\r\n"; //zet alles op email! //hier kan wat tijdsverschil in zitten! mail(email,'Mysql backup '.date('d-m-Y H:i:s'),$body,$headers); ?> |
1 2 3 4 5 | JOIN SHOP_Products_Lang ON SHOP_Products_Lang.ProductId = SHOP_Products.IdProduct JOIN SHOP_Afbeeldingen ON SHOP_Afbeeldingen.ProductId = SHOP_Products.IdProduct WHERE SHOP_Products.SubcategoryId = '1' AND SHOP_Products_Lang.LanguageId = '1' |
Sorry voor m'n n00b vragen.. :$quote:Op vrijdag 25 april 2008 10:41 schreef JortK het volgende:
Ik heb hem wat aangepast, zie deze link die je verder kan helpen
En op wat voor server maakt niet uit natuurlijk
1 2 3 | $query = "SELECT *, DATE_FORMAT(datum, '%d') AS dag, DATE_FORMAT(datum, '%c') AS maand, DATE_FORMAT(datum, '%Y') AS jaar, DATE_FORMAT(datum, '%H:%i') AS tijd FROM weblog ORDER BY -datum LIMIT 0,8"; ?> |
Daar doet MySQL niet moeilijk over.quote:Op vrijdag 25 april 2008 22:02 schreef Arjan321 het volgende:
In principe is de syntax "INNER JOIN", niet "JOIN". Weet niet of mysql daar moeilijk over doet.
Ja, ik heb in SHOP_Afbeeldingen 1 record met ProductId = 1quote:Op vrijdag 25 april 2008 22:02 schreef Arjan321 het volgende:
In principe is de syntax "INNER JOIN", niet "JOIN". Weet niet of mysql daar moeilijk over doet.
Weet je zeker dat er in alle 3 de tabellen de juiste gegevens staan?
Probeer eens LEFT JOIN ipv gewoon JOIN.quote:Op vrijdag 25 april 2008 18:18 schreef wobbel het volgende:
Ik wil nu alle producten met SubcategoryId = 1 weergeven, en daarbij ook alle data uit Products_Lang en Afbeeldingen die hetzelfde product ID hebben.
De tabel SHOP_Afbeeldingen hoeft niet perse records te hebben met hetzelfde ProductIDquote:Op zaterdag 26 april 2008 13:27 schreef Farenji het volgende:
[..]
Probeer eens LEFT JOIN ipv gewoon JOIN.
Ja, daarom juist! Daarom krijg je met een INNER JOIN geen resultaten!!quote:Op zaterdag 26 april 2008 13:52 schreef wobbel het volgende:
[..]
De tabel SHOP_Afbeeldingen hoeft niet perse records te hebben met hetzelfde ProductID
Hehequote:Op zaterdag 26 april 2008 14:03 schreef Farenji het volgende:
[..]
Ja, daarom juist! Daarom krijg je met een INNER JOIN geen resultaten!!
1 2 3 4 | $datum = date_create('NOW'); echo $datum; ?> |
Ooi van het datatype datetime gehoord in MySQL?quote:Op zondag 27 april 2008 11:35 schreef Flipper01 het volgende:
Hoe kan ik de huidige tijd als DateTime in een string zetten? Dit ivm het plaatsen in MySQL.
Ik heb nu het volgende:
[ code verwijderd ]
Maar krijg een foutmelding..
1 2 3 | $datum = date("Y-m-d H:i:s"); ?> |
Hoe kan ik da huidige tijd hierin krijgen als ik m'n tabel op de volgende manier aanvul:quote:Op zondag 27 april 2008 11:39 schreef JortK het volgende:
Ooi van het datatype datetime gehoord in MySQL?
1 2 3 4 5 6 7 | $query = "INSERT INTO weblog_reactie (weblogid, naam, email, website, tekst, ip, spam, datum) VALUES ('$formId', '$formNaam', '$formEmail', '$formWebsite', '$formTekst', '$_SERVER[REMOTE_ADDR]', 'spam', 'NOW')"; mysql_query($query) or die (mysql_error()); ?> |
Dit zocht ik!quote:Op zondag 27 april 2008 11:44 schreef Farenji het volgende:
De functie date_create geeft en DateTime object terug, dus geen string. Ik vind dit echt weer zo'n typische vage php implementatie, gaat ook wel lekker tegen alle verwachting en conventies in maar dat zijn we gewend van php.
Als je gewoon een string wil hebben die in een mysql datetime past, dan zou ik het simpel doen met date:
[ code verwijderd ]
Dat geeft dus iets terug als "2008-04-27 11:44:25".
http://nl3.php.net/manual/en/function.date.php
1 |
1 |
1 2 3 4 | $visitorIp = $_SERVER['REMOTE_ADDR']; $queryRetreiveIp = mysql_query("SELECT * FROM result WHERE poll_id = $pollId AND ip = $visitorIp ") or die("queryRetreiveIp ".mysql_error()); ?> |
1 2 3 4 | $visitorIp = $_SERVER['REMOTE_ADDR']; $queryRetreiveIp = mysql_query("SELECT * FROM result WHERE poll_id = '" . mysql_real_escape_string($pollId) . "' AND ip = "' . mysql_real_escape_string($visitorIp) . "' ") or die("queryRetreiveIp ".mysql_error()); ?> |
Even een vraag die aansluit op hetvolgende:quote:Op donderdag 24 april 2008 18:46 schreef Piles het volgende:
Even kort vraagje: hoe kun je dmv php checken of een site online is? Dus even proberen om een connectie te maken, zo niet: mailtje sturen. Dit wil ik namelijk graag in een cron job hebben (uiteraard op andere host)
Opgelost: file() doet wat ik wil
Hoe vaak staan deze fopen_wrappers uit (bij bijvoorbeeld hosters)? Ik doel dan op allow_url_fopen aangezien je deze niet via ini_set() kan setten voor zover ik de documentatie lees.quote:A URL can be used as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename and List of Supported Protocols/Wrappers for a list of supported URL protocols.
Strings moeten tussen aanhalingstekens, getallen niet. Of nouja, MySQL maakt zich er niet zo druk om als je wel aanhalingstekens om getallen zet, maar het is netter om het niet te doen. En een IP-adres is geen getal maar een string, dus moet aanhalingstekens.quote:Op maandag 28 april 2008 00:33 schreef Igen het volgende:
Sowieso moet je de waarden tussen 'aanhalingstekentjes' zetten. Doe je dat niet, dan denkt MySQL dat het een kolom-naam is - en een IP-adres is uiteraard geen geldige naam voor een kolom...
In het voorbeeldje van Interpidity is dit trouwens al verbeterd.
1 2 3 4 5 | LEFT JOIN SHOP_Products_Lang ON SHOP_Products_Lang.ProductId = SHOP_Products.IdProduct LEFT JOIN SHOP_Afbeeldingen ON SHOP_Afbeeldingen.ProductId = SHOP_Products.IdProduct WHERE SHOP_Products.SubcategoryId = '1' AND SHOP_Products_Lang.LanguageId = '1' |
GROUP BY is your best friendquote:Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
[ code verwijderd ]
Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.
Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output
Product 1
Product 1
Product 2
Product 2
Product 2
Product 3
Product 3
Product 3
Product 3
Product 3
Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
Ik heb session_start() helemaal bovenaan staan.quote:Op dinsdag 29 april 2008 13:37 schreef slacker_nl het volgende:
Note: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.
Gebruikt je cookie based sessions?
1 2 | session_start(); |
Ligt er aan wat je wil laten zien. Als je bij elk product een wisselend aantal plaatjes wilt laten zien, dan zal je het in php moeten oplossen. Als je geen plaatjes wil laten zien, waarom join je dan tegen de afbeeldingen tabel? Als je per product 1 plaatje wil laten zien dan moet je de query aanpassen, maar hoe hangt er weer van af welk plaatje je wil laten zien.quote:Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
[ code verwijderd ]
Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.
Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output
[...]
Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
1 2 3 4 | RewriteCond %{HTTP_REFERER} !^http://(.+\.)?123swets\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*\.(jpe?g|gif|bmp|png)$ /image/hotlink.gif [L] |
Ik zou hoe dan ook eerst de referer checken op ^$ want en daarna pas je ^123swets.com$. Het is logischer om te checken of de referer bestaat en om dan te checken of het uit het 123swets.com domain komt. Maar dat heeft wellicht niks met je probleem te maken. Of misschien ook wel:quote:Op woensdag 30 april 2008 13:24 schreef Swetsenegger het volgende:
.htaccess probleempje
[ code verwijderd ]
hotlinking wordt wel geblokkeerd, maar alternatieve image wordt niet getoont. Wat doe ik fout?
Volgens mij komt dat door de [NC] en de volgorde van de checks. Als de referer leeg is moet ie de check skippen, maar omdat je eerst checked of het vanuit swets123.com komt en dan door de NC ervoor zorgt dat ie de originele URL weer gaat reprocesses en je dus zorgt voor een loop in je rewrites.quote:Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
klinkt niet zo heel raar neequote:Op woensdag 30 april 2008 14:59 schreef Swetsenegger het volgende:
Hij blokkeerde mijn hotlink image ookDie moet je andere extensie geven dan de fileextensies die je blokkeert
quote:Op woensdag 30 april 2008 14:59 schreef Swetsenegger het volgende:
Hij blokkeerde mijn hotlink image ookDie moet je andere extensie geven dan de fileextensies die je blokkeert
1 2 3 4 5 | RewriteCond %{HTTP_REQUEST} !^/image/hotlink.gif RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(.+\.)?123swets\.com/ [NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ /image/hotlink.gif [L] |
Dan moet ie een 404 geven ipv een 403 forbidden (Konqueror) en geen redirect errors (FF/Safari).quote:Op woensdag 30 april 2008 15:37 schreef Swetsenegger het volgende:
hotlink.gif bestaat nu niet meer. het is nu hotlink.jpe
ik zie je hotlink plaatje nuquote:
MIjn 404 en 403 verwijst naar de index pagina. Ik heb hier geen errors. Misschien cache?quote:Op woensdag 30 april 2008 15:40 schreef slakkie het volgende:
[..]
Dan moet ie een 404 geven ipv een 403 forbidden (Konqueror) en geen redirect errors (FF/Safari).
1 2 3 4 5 6 | $part = trim($part); $part = strip_tags($part); $part = str_replace("\t", "", $part); $part = str_replace(" ", "", $part); ?> |
Zijn het geen linefeeds of carriage returns?quote:Op woensdag 30 april 2008 20:19 schreef Piles het volgende:
Ik zit met een heel raar probleem, vind ik zelf. Ik heb een html-bestand met daarin allerlei tabs en spaties. Die wil ik er uit hebben. Ik probeer dit:
[ code verwijderd ]
Alle spaties tussen woorden e.d. verdwijnen, maar toch blijven er nog een heleboel over. Wat voor 'soort' spaties kunnen dat zijn, en hoe krijg ik ze weg
1 2 3 | $string = str_replace(array("\t", ''), '', $string); ?> |
quote:Op woensdag 30 april 2008 20:25 schreef JortK het volgende:
Zijn het geen linefeeds of carriage returns?
1 2 3 | $part = trim( preg_replace( '/\s+/', ' ', $part) ); ?> |
Veranderd niks aan de situatiequote:Op woensdag 30 april 2008 20:26 schreef CraZaay het volgende:
Zijn het spaties in de broncode ("view source")? Dit kan overigens ook:
[ code verwijderd ]
Dat snap ik, het ging me vooral om het DRY-karakter en het gebruik van dubbele/enkele quotes.quote:
1 2 3 4 5 6 7 | function checkempty($var){ if(empty($var) ){ echo "$var niet ingevoerd"; } } ?> |
1 2 3 4 5 6 7 8 9 | function ce($var,$dn){ if(empty($var) ){ echo $dn." niet ingevoerd"; } } ce($name,'naam') ?> |
Kan ook, maar wat SuperRembo zegt klopt, ik wil eigenlijk een userfriendly name eruit hebben. Dus nu nog een manier vinden om 10 waardes in te voeren. Ik kan het handmatig doen, dan heb ik 10 regels code. kan het slimmer?quote:Op donderdag 1 mei 2008 18:36 schreef Intrepidity het volgende:
$var is de naam van de variabele toch al?
als je checkempty("blaat") aanroept moet ie checken of $blaat leeg is lijkt me toch?
dan is het
if(empty($$var))
{
// $var nu outputten.. $var uit $$var word dus omgezet naar "blaat" --> $blaat
}
1 2 3 4 5 6 7 8 9 | foreach(not_set( array('var1'=>'naam','var2'=>'lft','var3'=>'tijd','var4'=>'geslacht') as $var ) echo "hee dombo, je hebt '$var' niet gezet!"; function not_set($arr) { $out=array(); foreach($arr as $v=>$x) if(empty($GLOBALS[$v])) $out[]=$x; return $out; } ?> |
Mmm, dat soort code kan ik allemala nietquote:Op donderdag 1 mei 2008 23:05 schreef ralfie het volgende:
umm, waarom niet gwoon een arraytje?
[ code verwijderd ]
mss niet grammaticaal correct, maar het idee klopt toch?
Of gebruik func_get_args() icm met count (of func_num_args()).quote:Op donderdag 1 mei 2008 19:15 schreef SuperRembo het volgende:
Je kunt een functie maken waar je een willekeurig aantal parameters aan mee kunt geven; steeds afwisselend een var en een naam. Daarvoor gebruikt je func_get_arg().
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 | function is_empty() { $args = func_get_args(); $result = array(); if (count($args)) { foreach($args as $v) { if (is_array($v)) { $result = array_merge($result, call_user_func_array(__FUNCTION__, $v)); } else { if (empty($GLOBALS[$v])) { $result[] = $v; } } } return $result; } trigger_error(sprintf("%s requires at least 1 parameter\n", __FUNCTION__), E_USER_NOTICE); return $result; } function is_empty_2defaults() { $result = array(); if (func_num_args()) { $args = func_get_args(); foreach($args as $v) { if (!is_array($v)) { continue; } $tmp = is_empty(array_keys($v)); foreach($tmp as $v2) { $GLOBALS[$v2] = $v[$v2]; } $result = array_merge($result, $tmp); } } else { trigger_error(sprintf("%s requires at least 1 parameter\n", __FUNCTION__), E_USER_NOTICE); } return $result; } $test = "test"; $leeg = '0'; $niks = null; $weer_niks; $array = array(); print_r(is_empty("test")); print_r(is_empty("test", "leeg", "niks", "weer_niks", "array")); # Recursieve arrays print_r(is_empty(array(array(0)))); # En als je met hashes gaat werken: $hash = array("var1" => "leeg"); print_r(is_empty(array_values($hash))); # Maar dit mag ook: print_r(is_empty($hash)); $hash = array("glas" => "half vol"); $tmp = is_empty(array_keys($hash)); foreach($tmp as $v) { printf("%s is maar %s", $v, $hash[$v]); } # Als je default waardes wilt hebben voor de lege velden... $hash_defaults = array("user" => "guest", "password" => "guest"); is_empty_2defaults($hash_defaults); printf("User: %-8s\tPassword: %s\n", $user, $password); ?> |
quote:Op vrijdag 2 mei 2008 05:00 schreef slakkie het volgende:
Heb er maar een recursieve functie van gemaakt, accepteerd zowel arrays, als losse scalars. Persoonlijk zou ik er ook nog check bijgooien om te zien of $GLOBALS[$v] ook gelijk is aan 0 aangezien dat ook een boolean value kan zijn.
[ code verwijderd ]
1 2 3 | trigger_error(sprintf("%s requires at least 1 parameter\n", __FUNCTION__, E_USER_NOTICE)); ?> |
Waarom zou je dat überhaupt willen? Als je bij de beker het drank_id opslaat dan kun je altijd de drank_naam weer achterhalen.quote:Op vrijdag 2 mei 2008 12:57 schreef boskameel het volgende:
Stel je voor: Ik heb een klasse die beker heet, en ik heb een klasse die drank heet.
In de klasse beker heb je de volgende vars:
beker_id
beker_inhoud
beker_materiaal
beker_drank
Daarnaast heb ik de klasse drank, met daarin de volgende vars
drank_id
drank_naam
Ik wil een nieuwe beker aanmaken, want ik heb dorst. In het veld beker_drank van de klasse beker komt een waarde, een getal. Dit getal moet overeenkomen met drank_id uit de klasse drank. Wanneer deze overeenkomt, moet de inhoud van drank_naam worden ingevuld in het veld beker_drank. Ik denk dat het wel mogelijk is, maar hoe doe ik dit dan?
Misschien met foreign keys?quote:Op vrijdag 2 mei 2008 13:05 schreef Light het volgende:
[..]
Waarom zou je dat überhaupt willen? Als je bij de beker het drank_id opslaat dan kun je altijd de drank_naam weer achterhalen.
Dan maak je een JOIN over die twee tabellen, als je tenminste wilt weten welke drank er in een beker zit. Zo'n id is een makkelijk, vast punt. Ander voordeel is dat als je "bier" wilt vervangen door "Heineken" (om verwarring met "Grolsch" te voorkomen bijvoorbeeld) dan hoef je dat maar op 1 plek aan te passen.quote:Op vrijdag 2 mei 2008 13:23 schreef boskameel het volgende:
Als ik bv gebruik maak van een database, en een tabel beker en drank heb. Of denk ik nu te moeilijk?
Ja, dan moet je dus die ID's laten staan en niet ineens ID's door namen gaan vervangen. Da's niet logisch. Dat het in PHP kan, komt alleen maar omdat het loosely typed is.quote:
1 2 | echo $test; |
ai ik zie het al, zit met de verkeerde var te spelenquote:Op vrijdag 2 mei 2008 14:14 schreef CraZaay het volgende:
Die code toont bij mij gewoon je string. Als integer (zonder quotes dus) komt 'ie dichter bij jouw weergave in de buurt (1.0305006007E+77).
Hier ook..quote:Op vrijdag 2 mei 2008 14:14 schreef CraZaay het volgende:
Die code toont bij mij gewoon je string. Als integer (zonder quotes dus) komt 'ie dichter bij jouw weergave in de buurt (1.0305006007E+77).
Kan drank bestaan zonder beker?quote:Op vrijdag 2 mei 2008 12:57 schreef boskameel het volgende:
Stel je voor: Ik heb een klasse die beker heet, en ik heb een klasse die drank heet.
In de klasse beker heb je de volgende vars:
beker_id
beker_inhoud
beker_materiaal
beker_drank
Daarnaast heb ik de klasse drank, met daarin de volgende vars
drank_id
drank_naam
Ik wil een nieuwe beker aanmaken, want ik heb dorst. In het veld beker_drank van de klasse beker komt een waarde, een getal. Dit getal moet overeenkomen met drank_id uit de klasse drank. Wanneer deze overeenkomt, moet de inhoud van drank_naam worden ingevuld in het veld beker_drank. Ik denk dat het wel mogelijk is, maar hoe doe ik dit dan?
1 2 3 4 | $flesje = new fles($drankje->get_contents()) $bekertje = new beker(); $bekertje->vul($flesje->get_contents()); |
Maak er eens SELECT DISTINCT * .... vanquote:Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
[ code verwijderd ]
Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.
Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output
Product 1
Product 1
Product 2
Product 2
Product 2
Product 3
Product 3
Product 3
Product 3
Product 3
Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
heineken verwarren met grolschquote:Op vrijdag 2 mei 2008 13:38 schreef Light het volgende:
[..]
Dan maak je een JOIN over die twee tabellen, als je tenminste wilt weten welke drank er in een beker zit. Zo'n id is een makkelijk, vast punt. Ander voordeel is dat als je "bier" wilt vervangen door "Heineken" (om verwarring met "Grolsch" te voorkomen bijvoorbeeld) dan hoef je dat maar op 1 plek aan te passen.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |