1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function kostenapk ( $veelstukaanauto ) { if ( $veelstukaanauto == "ja" ) { return "rekening is 700 euro"; } else { return "Rekening is niet duur"; // die smilie kwam door de BB parser van Fok <img class="rde_img_smiley" src="http://i.fok.nl/s/puh2.gif" width="15" height="15" alt="" /> } } echo kostenapk ( "ja" ); ?> |
regel 15: hoe weet php dat de string niet afgelopen is bij ss="quote:Op vrijdag 13 november 2009 18:25 schreef wobbel het volgende:
[ code verwijderd ]
@hierboven
http://www.phphulp.nl/php/scripts/3/328/
quote:Op vrijdag 13 november 2009 18:25 schreef wobbel het volgende:
[ code verwijderd ]
@hierboven
http://www.phphulp.nl/php/scripts/3/328/
Dat dus. Ik gebruik sinds een tijd Eclipse voor PHP, en ga binnenkort eens de PHP IDE voor Visual Studio testen (ik werk ook veel met .NET en Visual Studio, dus zou ideaal voor mij zijn). Ik heb jarenlang stug bij Notepad ( ++ ) afgezworen, maar een PHP die je al netjes aangeeft waar je syntaxfouten hebt; ik kan niet meer zonder.quote:Op vrijdag 13 november 2009 18:44 schreef hamkaastosti het volgende:
[..]
[ afbeelding ]
doe jezelf een lol en download voordat je ook maar iets aan php schrijft een beetje goede IDE.
netbeans is bijvoorbeeld gratis en werkt prima met php
bovendien wil je denk ik checken of $veelstukaanauto ja of iets anders is en dan moet je niet toewijzen (=) maar vergelijken (==)
http://nl2.php.net/manual/en/language.operators.comparison.php
1 2 3 4 5 6 7 | while ($iknogitemsheb) { $currentitem = new newsitem('id', 'author', 'undsoweiter'); array_push($newsitems, $currentitem); } ?> |
1 2 3 4 5 6 | <h2>Laatste 5 nieuwsitems</h2> foreach($newsitems as $item): echo $item->author; endforeach; ?> |
1 2 3 | $item['author'] ?> |
Ja, dan moet je de http headers uitlezen. Zie example 1 op http://php.net/manual/en/function.fsockopen.phpquote:Op zaterdag 14 november 2009 12:36 schreef JortK het volgende:
Kleine vraag:
Stel ik heb een link:http://www.domain.com/ref/113 welke doorverwijst naar http://www.google.com/.
Kan ik er met PHP achterkomen dat de betreffende URL naar http://www.google.com gaat?
Ik doe het nu via cURL: http://forums.devshed.com(...)edirects-544144.htmlquote:Op zaterdag 14 november 2009 12:41 schreef GlowMouse het volgende:
[..]
Ja, dan moet je de http headers uitlezen. Zie example 1 op http://php.net/manual/en/function.fsockopen.php
de vraag is eigenlijk wat doet hij hier?quote:Op woensdag 18 november 2009 16:52 schreef daReaper het volgende:
Op deze pagina staat een registratieformulier:
http://www.bonnydoggy.ru/component/user/register
Maar als je op "Registreer" (зарегистрируйтесь) drukt, gebeurt er helemaal niets, en daar snap ik nix van! Ik heb zelfs een onclick erin gezet, die niet reageert op het moment dat ik op de knop druk. Zelfs geen foutmeldingen in de Foutconsole van Firefox... Wat kan hier aan de hand zijn?
Een update met IF erin.quote:Op zondag 15 november 2009 16:28 schreef DirkZz het volgende:
even een SQL vraag je die ik binnen kort kreeg, namelijk hoe kan je in één query het volgende uitvoeren:
In de tabel boeken
alle boeken die in de catogorie nederlands vallen
de prijs verhogen met 19%
en alle boeken die niet in de catogorie nederlands vallen
de prijs verhogen met 6%
waarom?quote:Op woensdag 18 november 2009 20:41 schreef DirkZz het volgende:
Was blijkbaar dus een fout in de overhoring..
Waarom de volgende dingen?quote:Op vrijdag 20 november 2009 12:43 schreef hamkaastosti het volgende:
ik ben nog steeds bezig met m'n MVC systeempje en nu vroeg ik me af of ik sommige dingen compleet verkeerd aanpak dus hieronder wat code van een controller en een model.
mijn newscontroller: http://pastebin.com/d7cfa2981
mijn newsmodel: http://pastebin.com/m47be5495
Welke ervaren php'er kan me wat goede tips geven?
1 2 3 4 5 6 7 8 | $this->view->addContent($this->controller, __FUNCTION__); final class newscontroller extends basecontroller { private $controller = 'news'; } ?> |
1 2 3 4 | $this->newsitems = array(); $this->singleitem = array(); ?> |
dus die addContent methode kan 1 niveau hoger worden geplaatst, eigenlijk na de call van de controller functiequote:Op vrijdag 20 november 2009 13:15 schreef hamkaastosti het volgende:
$this->view->addContent haalt de view op uit modules/controllernaam/methodnaam.tpl.php en voegt dit toe op de juiste locatie in layout.tpl.php. zo voegt $this->view->addUserError('newsitem_not_found'); bijvoorbeeld de geselecteerde foutmelding toe aan de layout.
hij haalt het op en voegt het vervolgens toe aan de algehele layoutquote:Op vrijdag 20 november 2009 14:23 schreef Xcalibur het volgende:
Los van je vraag vind ik 'AddContent' een wat verwarrende naam voor iets wat content ophaalt
wat dacht je van getContent? doet precies wat hij zegt haalt content opquote:Op vrijdag 20 november 2009 17:21 schreef hamkaastosti het volgende:
[..]
hij haalt het op en voegt het vervolgens toe aan de algehele layout
ik ben niet zo goed met naamgevingen
Ik wil dis het deel tot de EERSTE </td> hebben. Ik heb dit al geprobeerd maar dat werkt uiteraard niet:quote:bla<br>bla<div></td>blabla
1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | public function react() { //form is submitted if(strtoupper($_SERVER['REQUEST_METHOD']) == "POST" && !empty($_POST['submit'])) { $validator = new validator(); $validator->validateField('name', 3, 45, '/^[aA-zZ0-9]+$/', true); $validator->validateMail('email', true); //form is valid if($validator->isValid()) { echo 'valide'; // hier moet ik dan ook nog een keer checken of nieuwsitem wel bestaat. // kan ik ook in het model doen maar wat is beter? } //form not valid. display it again with errors else { //not existing item $newsitem = $this->model->getSingleItem($this->path->getPiece(3)); if($newsitem == false) { $this->view->addUserError('newsitem_not_found'); } //it exists. else { $this->view->newsitem = $newsitem; $this->view->errors = $validator->getErrors(); $this->view->postvars = $validator->getPostVars(); $this->view->addContent($this->controller, __FUNCTION__); } } } //show the reactionform else { $newsitem = $this->model->getSingleItem($this->path->getPiece(3)); //not existing item if($newsitem == false) { $this->view->addUserError('newsitem_not_found'); } //it exists. else { $this->view->newsitem = $newsitem; $this->view->addContent($this->controller, __FUNCTION__); } } } ?> |
Als je een ? achter het sterretje plaatst zou het moeten werken. Da's het verschil tussen greedy en lazy binnen regular expressions.quote:Op vrijdag 20 november 2009 20:32 schreef PiRANiA het volgende:
Er is geen regex-topic, maar ik denk dat de PHP bazen hier mij wel kunnen helpen:
Ik wil een stuk tekst matchen tót een bepaald punt:
[..]
Ik wil dis het deel tot de EERSTE </td> hebben. Ik heb dit al geprobeerd maar dat werkt uiteraard niet:
[ code verwijderd ]
dan zoekt hij namelijk niet de eerste </td>, maar de laatste </td>
Anyone?
Werktquote:Op vrijdag 20 november 2009 20:38 schreef Sirolf het volgende:
[..]
Als je een ? achter het sterretje plaatst zou het moeten werken. Da's het verschil tussen greedy en lazy binnen regular expressions.
True, standaard zijn dingen als * en + in regular expressions allemaal greedy. Met de /U modifier maak je ze allemaal ungreedy. En met een ? erachter draai je greedy en ungreedy om op die plek.quote:Op vrijdag 20 november 2009 20:38 schreef Sirolf het volgende:
[..]
Als je een ? achter het sterretje plaatst zou het moeten werken. Da's het verschil tussen greedy en lazy binnen regular expressions.
Ik moet er eens een fatsoenlijk boek over lezenquote:Op vrijdag 20 november 2009 21:43 schreef Light het volgende:
[..]
True, standaard zijn dingen als * en + in regular expressions allemaal greedy. Met de /U modifier maak je ze allemaal ungreedy. En met een ? erachter draai je greedy en ungreedy om op die plek.
Een boek lezen hoeft nog niet eens vind ik. Gewoon dit downloaden en naast je leggen, en een programma als Regex Coach gebruiken om te oefenen.quote:Op zaterdag 21 november 2009 00:10 schreef PiRANiA het volgende:
[..]
Ik moet er eens een fatsoenlijk boek over lezen
Ik gebruik het best veel, maar moet steeds door forums achter dit soort dingetjes komen
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 | class db { private static $instance; private static $db; public function getInstance() { if (is_null(self::$instance)) { self::$instance = new db; } return self::$instance; } public function __construct() { mysql_connect('host', etc); } public function query($sql) { } } class user { private static $db; public function __construct() { $db = db::getInstance(); } public function login($u, $p, $t) { $query = self::$db->query("JE QUERY HIER"); } } $u = new user; print_r($u->login('username','password',true)); ?> |
1 2 3 | Fatal error: Call to a member function query() on a non-object in *\system\classes\class.user.php on line 29 |
Je moet gewoon eerst eens een goed boek kopen. En wat meer lezen over OO.quote:Op zondag 22 november 2009 17:21 schreef Chandler het volgende:
Gatverdamme, kun je dan eens een voorbeeld schetsen die wel zou moeten werken? ik sla blijkbaar gewoon continu de plank mis :'( :P
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | class user { private $db; public function __construct() { $this->db = db::getInstance(); } public function login($u, $p, $t) { $query = $this->db->query("JE QUERY HIER"); } } $u = new user(); ?> |
Da's ook een optie. Hoeveel verschil er is in geheugengebruik, weet ik niet.quote:Op zondag 22 november 2009 17:29 schreef Pakspul het volgende:
Haal die $db variabel uit de class, dat is echt geheugen versmering eerste klas
Wanneer je de DB nodig hebt doe je even DB::functienaam(); en dan query uitvoeren en waarde returnen. Garbage cleaner zorgt er dan zelf weer voor dat DB uit geheugen gaat en niet in de klasse blijft zwerven/.
Smarty ben ik nu even mee aan het klooien en ziet er goed uit! Vele malen uitgebreider dan m'n huidige template parserquote:Op zondag 22 november 2009 18:53 schreef hamkaastosti het volgende:
smarty is geloof ik de meest uitgebreide geloof ik. Zelf maak ik enkel nog gebruik van de beste template engine: php zelf
Je kunt eens zoeken naar btree of b-tree. Kun je ook nog dieper dan 7 niveau'squote:Op zondag 22 november 2009 19:10 schreef wobbel het volgende:
Is er btw een soort tutorial die mij verteld hoe ik met meerdere categorieen kan werken?
Heb nu een tabel "category" en "subcategory" maar dan houdt het al snel op... (Categorienaam => Subcategorienaam)
Ik wil ook tot wel 7 niveaus verder gaan indien dat mogelijk is...(Kleding => Heren => T-shirts => Merk X => Lijn Y => etc)
Moet ik dan met "nested id's" ofzo iets doen? zoals ik dat ooit een keer gehoord heb ofzo
Noem me eens een goed boek! dan zal ik deze aanschaffen!quote:Op zondag 22 november 2009 17:25 schreef Light het volgende:
[..]
Je moet gewoon eerst eens een goed boek kopen. En wat meer lezen over OO.
[ code verwijderd ]
Zo zou ik het doen. De verschillen met jouw code mag je zelf uitzoeken.
Ik ook niet, maar op deze manier is het niet goed in ieder geval.quote:Op zondag 22 november 2009 17:34 schreef Light het volgende:
[..]
Da's ook een optie. Hoeveel verschil er is in geheugengebruik, weet ik niet.
Upper camelcase, lower camelcase. Gewoon een kiezen en daar bij blijvenquote:Ik zou class names ook met een hoofdletter laten beginnen, voor een stukje extra duidelijkheid.
waar komt 251 vandaan?quote:Op zondag 22 november 2009 19:58 schreef Chandler het volgende:
oh en wat kun je tegen dit soort fouten doen?
imagecolorsforindex() [<a href='function.imagecolorsforindex'>function.imagecolorsforindex</a>]: Color index 251 out of range
heeft te maken dat een transparante kleur niet aanwezig is
Kun je dan eens een voorbeeld schetsen waarbij het geheugen niet veel overbodige data ontvangt?quote:Op zondag 22 november 2009 20:14 schreef Pakspul het volgende:
[..]
Ik ook niet, maar op deze manier is het niet goed in ieder geval.
[..]
Upper camelcase, lower camelcase. Gewoon een kiezen en daar bij blijven
quote:
1 2 3 | $trnprt_color = @imagecolorsforindex($im,$trnprt_indx); // error lijn |
singleton is een goed begin, maar pleur deze dan niet in een variable van een klasse, gewoon in de functie gebruiken en daarna ruimte de garbage collector hem wel weer op. Mocht je een obsessie hebben kun je altijd nog volgende doenquote:Op zondag 22 november 2009 20:15 schreef Chandler het volgende:
[..]
Kun je dan eens een voorbeeld schetsen waarbij het geheugen niet veel overbodige data ontvangt?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | functie gewoonEenFunctie() { $db = Database::GetInstance(); $query = "SELECT * FROM table WHERE x = y"; $result = $db->ExecuteQuery($query); // verder verwerking van gegevens hier $db = null; return "wat je ook maar hebt om terug te geven"; } ?> |
Klopt toch?quote:Op zondag 22 november 2009 20:20 schreef GlowMouse het volgende:
grappig, het enig verschil met de voorbeelden op http://nl2.php.net/imagecolortransparent is dat jij de kleur door php laat bepalen
waarmee aangegeven wordt als er een transparante kleur is ingesteld is, deze gereturned wordt, wat ik bij de 'nieuwe afbeelding' weer als transparante kleur aangeeft.quote:The identifier of the new (or current, if none is specified) transparent color is returned.
Ik denk dat ik singleton wel aardig begrijp, zoals beschreven hier: http://nl.wikipedia.org/wiki/Singleton_(informatica) kan het toch ook zo worden geschreven?quote:Op zondag 22 november 2009 20:21 schreef Pakspul het volgende:
singleton is een goed begin, maar pleur deze dan niet in een variable van een klasse, gewoon in de functie gebruiken en daarna ruimte de garbage collector hem wel weer op. Mocht je een obsessie hebben kun je altijd nog volgende doen
[ code verwijderd ]
Maar de garbage collector zal de ruimte die $db in nam zelf uit vrij maken na het eindigen van de functie.
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 | // object instance private static $instance; private function __construct() {} private function __clone() {} public static function getInstance() { if (!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; } public static function query($sql) { // doe query } } class user { public function login($u, $p, $t) { $db = db::getInstance(); $db->query("Doe je query"); } } $u = new user; $u->login('username','password',true); |
Een singleton blijft bestaan, zolang er een verwijzing naar is. En die is er, als class variabele in de singletonclass. De garbage collector zal dus niet al te veel doen.quote:Op zondag 22 november 2009 20:21 schreef Pakspul het volgende:
[..]
singleton is een goed begin, maar pleur deze dan niet in een variable van een klasse, gewoon in de functie gebruiken en daarna ruimte de garbage collector hem wel weer op. Mocht je een obsessie hebben kun je altijd nog volgende doen
[ code verwijderd ]
Maar de garbage collector zal de ruimte die $db in nam zelf uit vrij maken na het eindigen van de functie.
Omdat deze query in het voorbeeld gebruikt wordt....quote:Op maandag 23 november 2009 08:40 schreef Xcalibur het volgende:
Hoezo zou dat een probleem zijn? Hij zit toch op een andere plek...?
1 2 3 4 5 6 7 8 | SELECT parent.name, parent.content FROM nested_category AS node, nested_category AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.name = 'NAAAAM' ORDER BY parent.lft; ?> |
Done,quote:
De singleton blijft inderdaad bestaan omdat die in de static variabel van zichzelf is opgeslagen, maar het heeft geen nut om deze in andere klasse te gaan opslaan. In de methode die een database verbinding nodig heeft is die alleen nodig is de rest van de klasse niet.quote:Op zondag 22 november 2009 22:46 schreef Light het volgende:
[..]
Een singleton blijft bestaan, zolang er een verwijzing naar is. En die is er, als class variabele in de singletonclass. De garbage collector zal dus niet al te veel doen.
En een script draait sowieso niet langer dan nodig om een pagina te bouwen, daarna is het script afgelopen en mag de garbage collector alle zooi opruimen.
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 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | error_reporting(E_ALL); $mem = memory_get_usage(); class db { // object instance private static $instance; private static $queries = array(); private static $db_connection; private static $config; public static $message; public static function getInstance() { if (!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; } private function __construct() { self::$queries = array(); self::$config = config::getInstance(); self::$db_connection = @mysql_connect(self::$config->config_values['database']['hostname'], self::$config->config_values['database']['username'], self::$config->config_values['database']['password']); if (self::$db_connection) { $db_con = mysql_select_db(self::$config->config_values['database']['name'], self::$db_connection); if ($db_con == true) { return true; } self::$message = "Kan database tabel niet bereiken"; } else { self::$message = "Kan database server niet bereiken"; } return self::$message; } private function __clone() { } public static function query($sql) { $res = mysql_query($sql, self::$db_connection); if (mysql_error()) { self::$queries['query'][$sql] = array("err" => mysql_error(), "num" => (isset(self::$queries['query'][$sql]) ? self::$queries['query'][$sql]['num']+1 : 1)); } return $res; } public static function stats() { return self::$queries; } } class config { // object instance private static $config_file = 'config.ini'; private static $instance; private static $queries; public $config_values = array(); public static function getInstance() { if (!self::$instance instanceof self) { self::$instance = new self(); } return self::$instance; } private function __construct() { $this->config_values = parse_ini_file(self::$config_file, true); } public function getValue($key) { return self::$config_values[$key]; } private function __clone() { } } class user { public function login($u, $p, $t) { $db = db::getInstance(); $db->query("SELECT count(id) FROM users"); } } class mooi { private $db; public function __construct() { $this->db = db::getInstance(); $this->db->query("SELECT count(id) FROM gebruikers"); } public function startuptest() { $this->db->query("SELECT count(bestaatniet) FROM gebruikers"); } } $u = new user; print_r($u->login('username','password',true)); $u = new user; print_r($u->login('username','password',true)); $m = new mooi; $m->startuptest(); $db = db::getInstance(); echo '<pre>'; print_r($db->stats()); echo memory_get_usage() - $mem. "<br />"; ?> |
ik zou me eens verdiepen in pdo of mysqli.quote:Op maandag 23 november 2009 15:16 schreef Chandler het volgende:
Dus dit is nu goed? zoals ik het schets..
[ code verwijderd ]
gebruikt hier 17500 bytes... is dat veel? even self::$db veranderd in class mooi naar $this en scheelt 20 bytes (17480)
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 105 106 | final class database extends pdo { private $sth; private $numrows; public function __construct($dbconn) { extract($dbconn); parent::__construct('mysql:host=' . $server . ';dbname='. $database, $username, $password); parent::setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } /** * query the db * @param <string> $query * @param <array> $values */ private function doQuery($query, $values) { if(substr_count($query, '?') == count($values) || !is_array($values)) { $this->sth = parent::prepare($query); $i = 1; foreach ($values as $current) { switch($current) { case is_string($current): $type = PDO::PARAM_STR; break; case is_int($current): $type = PDO::PARAM_INT; break; case is_bool($current): $type = PDO::PARAM_BOOL; break; case is_double($current): $type = PDO::PARAM_STR; break; } $this->sth->bindValue($i, $current, $type); $i++; } $this->sth->execute(); } else { throw new exception('wrong parameters for binding'); } } /** * perform a select query on the database * @param <string> $query * @param <array> $values * @param <bool> $m_array * @return <array> */ public function select($query, $values, $m_array = false) { $this->doQuery($query, $values); $this->numrows = parent::query("SELECT FOUND_ROWS()")->fetchColumn(); if($this->numrows == 1 && $m_array == false) { $result = $this->sth->fetch(PDO::FETCH_ASSOC); } else { $result = $this->sth->fetchAll(PDO::FETCH_ASSOC); } return $result; } /** * @desc insert values into database * @param <string> $table * @param <array> $values */ public function insert($table, $values) { $fields = ''; $args = ''; foreach($values as $f => $v) { $fields .= $f . ', '; $args .= '?, '; } $fields = substr($fields, 0, -2); $args = substr($args, 0, -2); $query = ('INSERT INTO ' . $table . ' (' . $fields . ') VALUES (' . $args . ')'); $this->doQuery($query, $values); $this->numrows = $this->sth->rowCount(); } public function update($query, $values) { $this->doQuery($query, $values); $this->numrows = $this->sth->rowCount(); } } ?> |
1 2 3 | $this->db->select('SELECT * FROM news ORDER BY date ? LIMIT ?', array($sortingorder, $itemcount), true); ?> |
1 2 3 4 5 6 | $reaction['id'] = 1; $reaction['name'] = blaat; $this->db->insert('newsreactions', $reaction); ?> |
Dat lijken me nogal eenvoudige queries?quote:Op maandag 23 november 2009 16:00 schreef Darkeye89 het volgende:
We zijn bezig met het maken van een forum (php/mysql). de forums zelf werken alleen nu hebben we nog een voorpagina nodig.
hier moet het volgende op komen:
- totaal aantal berichten met een bepaald 'catid' uit de database
- laatste bericht met een bepaald 'catid' uit de database. (weergave: gebruiker/bericht/datum&tijd)
- laatste 25 berichten uit de database met alle 'catids' (weergave: gebruiker/bericht/datum&tijd)
zijn hier misschien standaard scripts voor te vinden?
sorry ik ben niet helemaal duidelijk, we gebruiken een script wat meerdere gastenboeken (dat worden de topics dan) kan aanmaken (door iemand anders gemaakt) nu willen we hier een voorpagina voor hebben. ik heb zelf heel weinig php kennis.quote:Op maandag 23 november 2009 16:05 schreef Xcalibur het volgende:
[..]
Dat lijken me nogal eenvoudige queries?
Als je een heel forum kunt maken, zouden deze queries ook niet zo'n probleem moeten zijn? Of mis ik nu iets?
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 | <head> <title>formulier</title> </head> <body> <table> <tr> <form action="formulier.php" method="post"> </tr> <tr><td>Vul hier je voornaam in:</td> <td><input type="text" name="voornaam" /></td> </tr> <tr><td>vul hier je achternaam in: </td> <td><input type="text" name="achternaam" /></td> </tr> <tr><td>Vul hier je tel. nr. in:</td> <td><input type="text" name="telefoon" /></td> </tr> <tr><td>Vul hier je postcode in:</td> <td><input type="text" name="postcode" /></td> </tr> <tr><td>geslacht:</td> <td>Jongen:<input type="radio" name="geslacht" value="jongen" checked="true" /></td> </tr> <tr><td></td> <td>Meisje<input type="radio" name="geslacht" value="meisje" /></td> </tr> <tr><td>Waar wil je een abonnement op?</td> <td><input type="checkbox" name="gamez" value="gamez" />Gamez</td> </tr> <tr><td></td> <td><input type="checkbox" name="girls" value="girls" />Girls</td> </tr> <tr><td></td> <td><input type="checkbox" name="uitgaan" value="uitgaan" />Uitgaan</td> </tr> <tr><td></td> <td><input type="checkbox" name="mode" value="mode" />Mode</td> </tr> <tr> <td><input type="submit" value="Verzend het formulier" /></td> </tr> </table> </body> </html> |
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 | <php? //variabelen $voornaam = $_POST["voornaam"]; $achternaam = $_POST["achternaam"]; $telefoon = $_POST["telefoon"]; $postcode = $_POST["postcode"]; $geslacht = $_POST["geslacht"]; $gamez = $_POST["gamez"]; $girls = $_POST["girls"]; $mode = $_POST["mode"]; $uitgaan = $_POST["uitgaan"]; if (empty($voornaam)) { echo "Je bent vergeten om je voornaam in te vullen!" } elseif (empty($achternaam)) { echo "Je bent vergeten om je achternaam in te vullen!" } elseif (empty($postcode)) { echo "Je bent vergeten om je postcode in te vullen!" } elseif (empty($gamez) && empty ($girls) && empty ($mode) && empty ($uitgaan)) { echo "Je moet tenminste 1 tijdschrift aankruisen"; } else { echo " <tr> <td>voornaam</td> <td>$voornaam</td> </tr> <tr> <td>achternaam</td> <td>$achternaam</td> </tr> <tr> <td>telefoon</td> <td>$telefoon</td> </tr> <tr> <td>postcode</td> <td>$postcode</td> </tr> <tr> <td>geslacht</td> <td>$geslacht</td> </tr> <tr> <td>gamez</td> <td>$gamez</td> </tr> <tr> <td>girls</td> <td>$girls</td> </tr> <tr> <td>mode</td> <td>$mode</td> </tr> <tr> <td>uitgaan</td> <td>$uitgaan</td> </tr> </table> "; } ?> |
Dat klinkt als een weinig degelijke constructie... is het niet veel makkelijker om een phpBB3 of WordPress neer te zetten, afhankelijk van wat je precies zoekt?quote:Op maandag 23 november 2009 16:09 schreef Darkeye89 het volgende:
[..]
sorry ik ben niet helemaal duidelijk, we gebruiken een script wat meerdere gastenboeken (dat worden de topics dan) kan aanmaken (door iemand anders gemaakt) nu willen we hier een voorpagina voor hebben. ik heb zelf heel weinig php kennis.
1 |
quote:Op maandag 23 november 2009 10:05 schreef Xcalibur het volgende:
ja, dan krijg je dus 2 resultaten
Die allebei geldig zijn....
Je zult dus in je PHP aan de slag moeten om uit te zoeken welke van de twee de gevraagde is
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 | require 'libs/Smarty.class.php'; require 'configs/default.php'; $RequestURI = $_SERVER['REQUEST_URI']; if ( substr ( $RequestURI, 0, 1 ) == "/" ) { $RequestURI = substr ( $RequestURI, 1 ); } if ( substr ( $RequestURI, -1 ) == "/" ) { $RequestURI = substr ( $RequestURI, 0, -1 ); } if ( $RequestURI == "" ) { $page_id = 1; } else { $RequestedVars = explode ( "/", $RequestURI ); $RequestedCount = count ( $RequestedVars ); $select = "SELECT parent.name, parent.category_id FROM nested_category AS node, nested_category AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt AND node.name = '" . $RequestedVars[$RequestedCount - 1] . "' ORDER BY parent.lft;"; $query = mysql_query ( $select ) or die ( mysql_error ( ) ); $count = mysql_num_rows ( $query ); if ( $count == $RequestedCount ) { $i = 0; $failed = false; while ( $assoc = mysql_fetch_assoc ( $query ) ) { if ( $RequestedVars[$i] != $assoc['name'] ) { $failed = true; } $page_id = $assoc['category_id']; $i++; } } else { $failed = true; } } ################# # PARSE PAGE # ################# $smarty = new Smarty; $smarty->compile_check = true; $smarty->assign ( "title_d", "Welkom op onze website" ); if ( $failed == true ) { $smarty->assign ( "c_content", "404 - pagina niet gevonden" ); } else { $MySQL_Content_Select = "SELECT * FROM nested_category WHERE category_id = '" . $page_id . "'"; $MySQL_Content_Query = mysql_query ( $MySQL_Content_Select ) or die ( mysql_error ( ) ); $MySQL_Content_Assoc = mysql_fetch_assoc ( $MySQL_Content_Query ); $smarty->assign ( "c_content", $MySQL_Content_Assoc['content'] ); } $smarty->display('index.tpl'); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | `category_id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `content` text NOT NULL, `lft` int(11) NOT NULL, `rgt` int(11) NOT NULL, PRIMARY KEY (`category_id`) ) ENGINE=MyISAM AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ; -- -- Dumping data for table `nested_category` -- INSERT INTO `nested_category` (`category_id`, `name`, `content`, `lft`, `rgt`) VALUES (1, 'beginpagina', 'welkom op de beginpagina (3, 'grafisch', 'pagina met dingetjes over grafisch, zoals ENVELOPPEN, VISITEKAARTJES, LOGO en DRUKWERK (11, 'drukwerk', 'wij ontwerpen allerhande drukwerk, maar doen het ook het DRUKKEN en de VERSPREIDING', 10, 15), (10, 'logo', 'logo ontwerp doen we ook (9, 'visitekaartjes', 'mooie visitekaartjes maken is onze hobby', 6, 7), (8, 'enveloppen', 'mooie envelopjes hebben? moet je lars ff bellen', 4, 5), (12, 'drukken', 'jah, wij kunnen het ontworpen drukwerk ook naar de drukker sturen', 11, 12), (13, 'verspreiding', 'en alles wat je hebt laten ontwerpen en hebt laten drukken kunnen we ook voor u verspreiden (14, 'websites', 'websites maken we ook, met CMS en ook soms met WEBSHOP', 17, 22), (16, 'cms', 'cms is makkelijk, content management system enzo (17, 'webshop', 'gimme teh moneyzzz online met je eigen webshop', 20, 21); |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |