1 | "REPLACE INTO `tabel` (`een`,`twee`,`drie`) VALUES (:een,:twee,:drie)" |
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 | <?php $db_old = new PDO(...); $db_new = new PDO(...); $res_new = $db_new->query("DESCRIBE `database_nieuw`.`tabel_nieuw`"); $fields = array(); $fields_types = array(); $fields_filling = array(); while ($row_new = $res_new->fetchObject()) { array_push($fields,"`".$row_new->Field."`"); array_push($fields_filling,":".$row_new->Field.""); if (preg_match("/int\(\d+\)/",$row_new->Type)) { $fields_types[$row_new->Field] = PDO::PARAM_INT; } elseif (preg_match("/date|text|varchar/",$row_new->Type)) { $fields_types[$row_new->Field] = PDO::PARAM_STR; } else { $fields_types[$row_new->Field] = PDO::PARAM_STR; } } $to_prepare = "REPLACE INTO `database_nieuw`.`tabel_nieuw` (".implode(",",$fields).") VALUES (".implode(",",$fields_filling).")"; echo "To prepare: " . $to_prepare . "\n"; $res = $db_old->query("SELECT * FROM `database_oud`.`tabel_oud`"); while($row = $res->fetchObject()) { $this_array = array(); $sth = $db_new->prepare($to_prepare); foreach ($fields as $f) { $f2 = preg_replace("/`/","",$f); $sth->bindValue(":".$f2,$row->$f2,$fields_types[$f2]); echo "Binding " . $f2 ." : " .$row->$f2. "\n"; } $sth->execute(); } ?> |
Hij gaf in het vorige topic het volgende voorbeeld.quote:Op woensdag 16 maart 2011 09:13 schreef Keiichi het volgende:
Als je de string waarin straat en huisnummer vermeld staat, split per spatie, het laatste element eraf popt (array_pop) en de rest weer joined. Dan heb je denk (als huisnummer altijd vermeld is!) een redelijk scheiding volgens mij.
Het is iets in ieder geval. Maar ik dacht dat die database redelijke compleet was.quote:Op woensdag 16 maart 2011 10:16 schreef GlowMouse het volgende:
Dat zijn helemaal niet alle straten van heel Nederland. Maar bij die paar straten die er wel instaan kun je het wel gebruiken.
Kun je het niet jatten van goeggel maps?quote:Op woensdag 16 maart 2011 10:19 schreef Keiichi het volgende:
[..]
Het is iets in ieder geval. Maar ik dacht dat die database redelijke compleet was.
Die kent ook niet alle straten.quote:Op woensdag 16 maart 2011 10:47 schreef shintek het volgende:
[..]
Kun je het niet jatten van goeggel maps?
Heb je voorbeelden? Ik kan me voorstellen dat een straat in een nieuwbouwwijk die net 1 dag geleden opgeleverd is er niet instaat.quote:
Het is wel iets meer dan een paar straten hoor.quote:Op woensdag 16 maart 2011 10:16 schreef GlowMouse het volgende:
Dat zijn helemaal niet alle straten van heel Nederland. Maar bij die paar straten die er wel instaan kun je het wel gebruiken.
En als hij er niet instaat ga je zelf splitten.quote:Op woensdag 16 maart 2011 10:16 schreef GlowMouse het volgende:
bij die paar straten die er wel instaan kun je het wel gebruiken.
Hmmm die x was gewoon willekeurig he...quote:Op dinsdag 15 maart 2011 21:15 schreef GlowMouse het volgende:
[..]
In dat geval zoek je [0-9x]*\.[0-9x]*, waarna je de x via str_replace uit het resultaat haalt.
Waarom geen 81.831?quote:1bnj4w8.0%81.83%1 ook 148.081
Ik zou 0 voor false en 1 voor true gebruiken. Maakt de code wel zo logischquote:Op woensdag 16 maart 2011 19:27 schreef GlowMouse het volgende:
0/1 voor true false, of ENUM('Y','N'), net wat je voorkeur is.
Geen idee, maar ik zou denken dat 0/1 sneller is omdat je in de code dan geen stringvergelijking hoeft te doen.quote:Op woensdag 16 maart 2011 20:48 schreef Chandler het volgende:
maar ik vraag me af wat sneller is een tinyint (voor boolean) of een enum met y/n of 0/1
Dan heb je volgens mij twee regexen nodig, en twee keer preg_replace. Eerst gooi je alles weg wat geen cijfer en/of punt is, daarna moet alles vanaf de tweede punt weg.quote:Op woensdag 16 maart 2011 13:30 schreef Dale. het volgende:
[..]
Hmmm die x was gewoon willekeurig he...
Hij moet van 1bnj4w8.0%81 ook gewoon 148.081 maken en van 1bnj4w8.0%81.83%1 ook 148.081
Er worden in database voor een enum veld wel eea aan trucje gebruikt lijkt me zo. Als je een vastgesteld aantaal waarden heb, dan kun je eigenlijk het daadwerkelijke type INT maken waarbij een onzichtbare tabel gebruikt voor de daadwerkelijke waardes. Zeg maar een soort snelkoppeling naar een foreign key.quote:Op woensdag 16 maart 2011 21:02 schreef Light het volgende:
[..]
Geen idee, maar ik zou denken dat 0/1 sneller is omdat je in de code dan geen stringvergelijking hoeft te doen.
Voor een Enum wordt een smallint gebruikt, met 65535 mogelijkheden. Maar daar had ik het niet over. Als je in de database een enum('Y', 'N') gebruikt, krijg je bij het ophalen van de data altijd een 'Y' of een 'N'.quote:Op woensdag 16 maart 2011 21:05 schreef Keiichi het volgende:
[..]
Er worden in database voor een enum veld wel eea aan trucje gebruikt lijkt me zo. Als je een vastgesteld aantaal waarden heb, dan kun je eigenlijk het daadwerkelijke type INT maken waarbij een onzichtbare tabel gebruikt voor de daadwerkelijke waardes. Zeg maar een soort snelkoppeling naar een foreign key.
1 2 3 4 5 6 7 8 | <?php if($enum_value == 'Y') { // doe iets } if($tinyint_value) { // doe iets } ?> |
Je hebt in dit geval een formulier, bovenaan het formulier ga jij na of er een postcommando is en ga je $subject definieren. Alleen als $subject niet met een postcommando meekomt bijvoorbeeld als een gebruiker de pagina voor de eerste keer bezoekt is $subject leeg.quote:Op vrijdag 18 maart 2011 13:42 schreef Peem het volgende:
Hoi!
Ik hoopte op wat hulp!
Ik ben bezig met een php form, in de simpele vorm, alleen ik kom er niet uit qua radio boxes..
Ik zal even complete code erneer plempen:
Het probleem is nu, dat hij aangeeft als het de mail binnenkomt: (nosubject) terwijl ik daar juist 1 van de 3 opties wil hebben, kan iemand mij hiermee helpen?
Dank
Iedere dropdown heeft een eigen form, dus als je je zoekfilter submit, wordt alleen maar de waarde van de laatste naar de pagina gestuurd. Je moet dus sowieso al je categorieën in 1 formulier hebben staan. In je verwerkingscript ga je deze opties bij elkaar voegen in je query.quote:Op maandag 21 maart 2011 02:36 schreef Eline.S het volgende:
Ben een beginnertje, dus hopelijk een simpele vraag....
Dit is mijn site: http://www.succesvolwonen.nl
(let nog niet op de opmaak, want ik ben net begonnen....)
Nu heb ik een probleem met het zoek-gedeelte aan de rechterkant.
De view-button werkt alleen op de laatste categorie in plaats van alle categoriëen "bij elkaar op te tellen". Het is ongetwijfeld iets met AND en zo, maar wat ik ook probeer, ik kom er niet uit.
Ik gebruik onderstaand script:
[ blurp code ]
Wie o wie helpt mij een stukje op weg?
Op die manier heb je inderdaad bij iedere dropdown een submitknop, dat wil je helemaal niet hebben. In principe zet je het als volgt op:quote:Op maandag 21 maart 2011 10:37 schreef Eline.S het volgende:
Ik had eerst ook onder iedere dropdown:
<input class="view-button" type="submit" value="<?php _e('view','ElegantEstate'); ?>" name="submit" />
</form>
Maar dan krijg ik 4x een view button die alleen op zijn eigen dropdown werkt....
Is het dan zoiets als <input class="input" ........ etc/> ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <form action="..." method="GET"> <div class="select"> <select class="option-listing" name="option-listing"> <?php foreach ($listings3 as $item) { ?> <option value="<?php echo $item; ?>"><?php echo get_cat_name($item); ?></option> <?php } ?> </select> </div> <div class="select"> <select class="option-listing" name="option-listing"> <?php foreach ($listings2 as $item) { ?> <option value="<?php echo $item; ?>"><?php echo get_cat_name($item); ?></option> <?php } ?> </select> </div> <!-- ... de rest van je dropdown boxjes --> <input type="submit" value="view"> </form> |
Kun je niet gewoon ORDER BY op parent doen?quote:Op maandag 21 maart 2011 13:34 schreef PiRANiA het volgende:
Tabel:
id - parentid
Ik wil een lijstje met:
Parent 1
• id dat onder deze parent valt
• id dat onder deze parent valt
• id dat onder deze parent valt
Parent 2
• id dat onder deze parent valt
Dus dacht ik te sorteren op het zelf te maken veld 'pid_id': een samenvoeging van parentid en id.
(hoe) kan dit: "SELECT id,parent,
CONCAT(IF(`parent`) `parent` ELSE `id`,`id`) as pid_id
FROM `asset`
ORDER BY pid_id
?
De parents zelf hebben geen parent. Wat jij zegt zou alleen werken als de parents ook een parent_id hadden...quote:Op maandag 21 maart 2011 13:50 schreef AlchemistOfSorrows het volgende:
[..]
Kun je niet gewoon ORDER BY op parent doen?
Als je op 'submit' drukt gaat hij de 'action' uitvoeren, als jij daar verstuur.html hebt neergezet doet het formulier niks meer als naar verstuur.html gaan wanneer jij op submit drukt. Als je PHP gebruikt voor je formulier kun je toch wanneer hij verzonden is met een header naar de 'bedankt'-pagina navigeren?quote:Op maandag 21 maart 2011 14:51 schreef Peem het volgende:
Even een vervolgje op mijn noob vraag van vrijdag:
Ik begin de form met een ---> <form method="post" action="#contact_form"> <---
hij verstuurd het netjes naar de betreffende email, maar zodra ik er action="verstuur.html"> van maak, gaat hij wel nadat ik op verstuur heb gedrukt naar verstuur.html, maar word het formulier niet verzonden, kan iemand mij hierbij helpen?
Dank!
Ik doe altijdquote:Op maandag 21 maart 2011 19:02 schreef KomtTijd... het volgende:
En als je wilt dat een form naar de pagina zelf verstuurd wordt (dus als verwerking en plaatsing door het zelfde script gedaan wordt), kun je het action-attribuut ook weg laten. Al weet ik niet of dat gedocumenteerd gedrag is...
1 2 | action="<?php echo $_SERVER['PHP_SELF']; ?>" |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |