quote:Op zaterdag 3 juni 2006 18:50 schreef SuperRembo het volgende:
Als je alleen de parent-child relatie vastlegt in je database, dan kan je nooit in 1 query bepalen welke nodes er allemaal bij een bepaalde parent in een tree horen. Tenzij je van te voren vast legt hoe diep de tree maximaal gaat, maar fraai wordt je query dan niet.
quote:Op zaterdag 3 juni 2006 18:52 schreef Swetsenegger het volgende:
[..]
misschien moet je eens hier naar kijken.
Ik gebruik het zelf om hierarchische menu's te maken.
Ik bedoel ook meer; de hele tabel in een array zetten (geen WHERE-statements) en daarna met php de child-parent relatie berekenen en tonen.quote:Op zaterdag 3 juni 2006 18:50 schreef SuperRembo het volgende:
Als je alleen de parent-child relatie vastlegt in je database, dan kan je nooit in 1 query bepalen welke nodes er allemaal bij een bepaalde parent in een tree horen. Tenzij je van te voren vast legt hoe diep de tree maximaal gaat, maar fraai wordt je query dan niet.
Het is helemaal geen overkill. Je tabel bestaat uit niet meer dan 3 velden: name, lft en rgt.quote:Op zaterdag 3 juni 2006 19:07 schreef Nevermind het volgende:
[..]
Ik bedoel ook meer; de hele tabel in een array zetten (geen WHERE-statements) en daarna met php de child-parent relatie berekenen en tonen.
@Swets: Bedankt voor de link. Het ziet eruit als overkill voor waar ik het voor nodig heb. Ik wil alleen een handig overzicht hebben van hoe mijn site in elkaar zit, zoals hieronder:
[afbeelding]
De layout is maar een test. Ik wil er nog wat links in zetten zodat ik makkelijk nodes kan verplaatsen, bewerken of verwijderen.
Ik werd overdonderd door alle uitgebreide queries die er stondenquote:Op zaterdag 3 juni 2006 19:10 schreef Swetsenegger het volgende:
[..]
Het is helemaal geen overkill. Je tabel bestaat uit niet meer dan 3 velden: name, lft en rgt.
En daarmee kan je alles. Met 1 query kan je alles uit je tabel trekken inc parent child relatie, oneindig diep
In het begin lijkt het heel moeilijk, maar het is inderdaad rete simpelquote:Op zaterdag 3 juni 2006 19:14 schreef Nevermind het volgende:
[..]
Ik werd overdonderd door alle uitgebreide queries die er stonden(maar dat is eigenlijk copypastewerk)
Iets beter bekeken, en het ziet er inderdaad erg handig uit. Ik ga het proberen te implementeren
Precies, heb ik ook gedaan in sommige gevallen.quote:Op zaterdag 3 juni 2006 19:15 schreef Roönaän het volgende:
jups, en voor de handigheid kan je een depth field toevoegen om dat "oneindig" diep enigszins te beperken
Wat ik me dan afvraag. Met een directe parent <--> child relatie heb je weinig updates nodig, maar wat ik van dit relationeel model heb begrepen is dat als je ergens een item wilt plaatsen, je bijvoorbeeld alle 'right' waardes moet ophogen? Is dat niet funest als je een grote database hebt met veel updates? (vb; reacties op T.net frontpage)quote:Op zaterdag 3 juni 2006 19:10 schreef Swetsenegger het volgende:
[..]
Het is helemaal geen overkill. Je tabel bestaat uit niet meer dan 3 velden: name, lft en rgt.
En daarmee kan je alles. Met 1 query kan je alles uit je tabel trekken inc parent child relatie, oneindig diep
alle lft EN rgt waardes 'rechts' van het in te voegen produkt inderdaadquote:Op zaterdag 3 juni 2006 22:25 schreef JeRa het volgende:
[..]
Wat ik me dan afvraag. Met een directe parent <--> child relatie heb je weinig updates nodig, maar wat ik van dit relationeel model heb begrepen is dat als je ergens een item wilt plaatsen, je bijvoorbeeld alle 'right' waardes moet ophogen?
Dat denk ik ook, maar reacties op een topic zou ik niet op deze manier hierarchisch opslaan. Ik denk dat dit model mooi is wanneer er meerdere levels zijn, als er alleen direkte parent <-> child relaties zijn kan je beter met een koppeltabelletje werken lijkt me.quote:Is dat niet funest als je een grote database hebt met veel updates? (vb; reacties op T.net frontpage)
quote:![]()
zkersquote:
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 | require('fpdf/fpdf.php'); class PDF extends FPDF { //Page header function Header() { $this->SetFont('Arial'); $this->Cell(0,5,'txt',B,0,'R'); $this->Ln(20); } //Page footer function Footer() { $this->SetFont('Arial','',10); $this->SetY(-15); $this->Cell(0,5,'txt',T,0,'L'); $this->Ln(20); } } //Instanciation of inherited class $pdf = new FPDF(); $pdf->AddPage(); $pdf->SetFont('Times','B',12); $pdf->Cell(40,10,'Hello World!'); $pdf->Output(); ?> |
1 2 3 | $result = mysql_query($sql_query); if(mysql_num_rows($result) < 1) {die($text); } |
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 | Error SQL query: -- phpMyAdmin SQL Dump -- version 2.8.1 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generatie Tijd: 05 Jun 2006 om 19:53 -- Server versie: 5.0.21 -- PHP Versie: 5.1.4 -- -- Database: `test` -- -- -------------------------------------------------------- -- -- Tabel structuur voor tabel `producten` -- CREATE TABLE `producten` ( `item` int( 11 ) NOT NULL AUTO_INCREMENT , `naam` text CHARACTER SET ascii COLLATE ascii_bin NOT NULL , `prijs` text CHARACTER SET ascii COLLATE ascii_bin NOT NULL , PRIMARY KEY ( `item` ) ) ENGINE = MYISAM DEFAULT CHARSET = latin1 COLLATE = latin1_general_ci AUTO_INCREMENT =4; MySQL said: #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 'character set ascii collate ascii_bin NOT NULL, `prijs` text [ Back ] |
Weet je zeker dat je die compatibility goed hebt gezet? MySQL 4.0 verslikt zich in "CHARACTER SET ascii COLLATE ascii_bin".quote:Op maandag 5 juni 2006 20:00 schreef BloodhoundFromHell het volgende:
Ik heb een vraagje. Als ik een mysql database importeer krijg ik de volgende error:
[ code verwijderd ]
Ik snap er geen biet van ,want de export komt gewoon ook van een mysql database die ik lokaal heb geinstalleerd. Ik heb compatabiliy gezet op mysql 4.0 (remote draait mysql 4.0 en lokaal draai ik mysql 5.0)
ben er al uit, forum gebruikt engelse namen voor de velden...quote:Op maandag 5 juni 2006 19:57 schreef Light het volgende:
Het lijkt erop dat er een fout in de query zit. Ik kan alleen niet zien waar precies.
Ik weet niet wat dit doet, maar 'migration toolkit' geeft hoop: http://dev.mysql.com/downloads/migration-toolkit/1.0.htmlquote:Op maandag 5 juni 2006 22:32 schreef BloodhoundFromHell het volgende:
weet iemand een gratis programmatje om access databases over te zetten naar mysql?? ik kan alleen maar betaalde programmas vinden
1 |
quote:Op dinsdag 6 juni 2006 00:03 schreef Light het volgende:
Dit lijkt me een javascript / AJAX probleem, niet een php probleem. En dan preciezer bij
[ code verwijderd ]
IE en FF / Safari gebruiken verschillende methodes om dat xmlHttp ding te maken. Een leuk voorbeeld staat hier.
1 |
1 |
1 |
Hmm... goed puntquote:Op dinsdag 6 juni 2006 00:05 schreef BaggerUser het volgende:
maar FF pakt wel de andere button het enige verschil is dat submitten niet meer kan dan ?
dus i vraag me af of het een echt ajax probleem is hoor ?
hey je hebt gelijk als ik dat weglaat en het met behulp van javascrit eable en disable werkt hetquote:Op dinsdag 6 juni 2006 00:21 schreef DionysuZ het volgende:
het probleem komt me bekend voor. Ik heb het gehad bij input velden die ik had gedisabled. Die werden niet doorgegeven. Probeer eens om disabled='true' weg te laten en mbv javascript te disablen/enablen
1 2 3 | $teller = 1; // geeft niveau aan waarop gezocht gaat worden haal_niveau_lager($getoonde_cpas[$cpa_id], $teller); |
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 | { if ($teller == 5) {// meer dan 5 niveau's diep hoort niet voor te komen return $menu_array; } $vv_id_menu = $menu_array[0]; $sql = "SELECT DISTINCT <zooi velden> FROM menu WHERE hoort_bij='" . $vv_id_menu . "'"; if(!($result = mysql_query($sql))) { fout("database fout: [$sql][" . mysql_error() . "]"); } $menus = array(); while($myrow = mysql_fetch_assoc($result)) { $menus[] = array(<zooi velden>); } reset($menus); if (!empty($menus)) { $menu_array["lagere_menus"] = $menus; } print_r($menu_array); if (isset($menu_array["lagere_menus"])) { for ($j = 0; $j < count($menu_array["lagere_menus"]); $j++) { $menu_array["lagere_menus"][$j] = haal_niveau_lager($menu_array["lagere_menus"][$j], $teller+1); } } return $menu_array; } |
"Other Files" > "Binaries"quote:Op dinsdag 6 juni 2006 17:47 schreef TheUnreal het volgende:
Waar kan ik tegenwoordig de apache webserver voor win32 vinden![]()
Op apache.org staat alleen de source ?! Of ben ik nou blind..
1 2 3 4 5 6 | $configfile .= $line."\r\n"; } $fp=fopen('file.php','w+'); fwrite($fp,$configfile); fclose($fp); |
1 |
1 2 3 | 4 8 |
1 |
Dat is niet wat ik bedoel. Ik gebruik nu URLencode en decode op mijn pagina om het menu op te bouwen en dingen uit de database te halen. Ik heb nu query met een WHERE clasule waarin ik bv naar mijnmenuitems vraag, foto%27s is daar een van. Alleen kan ik deze niet uitvoeren. interpreteert MYSQL %27 als een single quote?quote:Op dinsdag 6 juni 2006 22:08 schreef Swetsenegger het volgende:
urldecode?
1 2 | $result = mysql_query($query); |
Dank je wel dat is de oplossing waar ik naar op zoek was!quote:Op dinsdag 6 juni 2006 23:03 schreef JeRa het volgende:
@ExCibular
Wat er in de URI staat wordt door PHP op de juiste manier geparset, daar hoef je je geen zorgen over te maken. Je krijgt dus gewoon een single quote in plaats van de code hiervoor (%27).
Waar je wel zorgen over moet maken is SQL injection in je queriesje moet zoiets doen:
[ code verwijderd ]
Op die manier wordt de quote op de juiste manier geëscapet
Prima opzet, door de input te valideren met een door jou gedefinieerde array voorkom je ook dat mensen iets in je query kunnen plaatsenquote:Op woensdag 7 juni 2006 00:32 schreef ExCibular het volgende:
Dat was mij idee om SQL injection tegen te gaan.
1 2 3 | echo $key." - ".$value."<br>"; } |
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 | function datetotext($date) { $time = substr($date, 11, 15); $date = substr($date, 0, 10); $now = time(); $day_time = 60*60*24; list($post_year, $post_month, $post_day) = explode("-", $date); list($post_hour, $post_minit, $post_second) = explode(":", $time); $post_date = mktime (0, 0, 0, $post_month, $post_day, $post_year); $today_date = mktime (0, 0, 0, date("m"), date("d"), date("y")); $yesterday_date = mktime (0, 0, 0, date("m"), date("d"), date("y")) - $day_time; $week_date = date("w", mktime (0, 0, 0, $post_month, $post_day, $post_year)); $today_year_time = mktime (0, 0, 0, 0, 0, date("y")); $post_year_time = mktime (0, 0, 0, 0, 0, $post_year); $dagen = array("zondag","maandag","dinsdag","woensdag","donderdag","vrijdag","zaterdag"); $maanden = array(1 => "januari", 2 => "februari", 3 => "maart", 4 => "april", 5 => "mei", 6 => "juni", 7 => "juli", 8 => "augustus", 9 => "september", 10 => "oktober", 11 => "november", 12 => "december"); $post_curr_day = $dagen[intval($week_date)]; $post_curr_mnt = $maanden[intval($post_month)]; if ($post_month == "01") { $post_prev_mnt = $maanden[12]; } else { $post_prev_mnt = $maanden[intval($post_month) -1]; } if ($today_date == $post_date) { // vandaag "vandaan om 10:10" return "vandaag om " . date("H:i", mktime($post_hour, $post_minit, $post_second, $post_month, $post_day, $post_year)); } elseif ($post_date == $yesterday_date) { // gisteren " gisteren om 10:10 " return "gisteren om " . date("H:i", mktime($post_hour, $post_minit, 0, 0, $post_month, $post_day, $post_year)); } elseif ($post_year_time == $today_year_time && $post_month == date("m") -1) { // vorige maand " vorige maand op maandag 1 januari om 10:10 " return "vorige maand op " . $post_curr_day . " " . $post_day . " " . $post_prev_mnt . " om " . $post_hour . ":" . $post_minit; } elseif ($post_year_time == $today_year_time) { // zelfde jaar " op Maandag 1 januari om 10:10" return "op " . $post_curr_day . " " . $post_day . " " . $post_curr_mnt . " om " . $post_hour . ":" . $post_minit; } else { // vorig jaar " op Maandag 1 januari 1999 om 10:10" return "op " . $post_curr_day . " " . $post_day . " " . $post_curr_mnt . " " . $post_year . " om " . $post_hour . ":" . $post_minit; } } ?> |
includequote:Op woensdag 7 juni 2006 10:02 schreef Desdinova het volgende:
Ik heb een aantal stukjes code in een database staan in gewoon textformaat. Met welke functie kan ik PHP dit stukje tekst laten verwerken?
dusseh, voorbeeldje:
[ code verwijderd ]
en dan php het laten uitvoeren
function haal_niveau_lager(&$menu_array, $teller)quote:Er staat vast maar 1 klein foutje in, maar ja, wat??
eval() is het waarschijnlijkquote:Op woensdag 7 juni 2006 10:35 schreef Swetsenegger het volgende:
[..]
include
edit, ow in database.... even denken
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |