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']; ?>" |
Ik kook mijn sites het liefst met een een eetlepel firefox compatibiliteit, en een schepje chrome.quote:Op maandag 21 maart 2011 19:14 schreef lifeblind het volgende:
Dat is het beste inderdaad, misschien dat er hier of daar een exotische browser is die het anders interpreteerd ofzo.
Hier hetzelfde en zo min mogelijk IE6 compatibilieit. Persoonlijk ondersteun ik pas vanaf IE7.quote:Op maandag 21 maart 2011 19:35 schreef shintek het volgende:
[..]
Ik kook mijn sites het liefst met een een eetlepel firefox compatibiliteit, en een schepje chrome.
quote:Op dinsdag 22 maart 2011 15:55 schreef MrNiles het volgende:
hoe kan ik een checkbox uitlezen uit een tabel?
1 = checked in de tabel
maar als ik dan naar een html pagina ga dan zie ik niet dat de checkbox gevinkt is
hoe kan ik die checked maken?
1 | <input type="checkbox"<?=$databasewaarde==1?" checked='checked'":""?> /> |
1 2 3 4 5 6 7 8 9 | <?php $to = "iemand@hotmail.com"; $subject = "Test mail"; $message = "Hello! This is a simple email message."; $from = "someonelse@example.com"; $headers = "From:" . $from; mail($to,$subject,$message,$headers); echo "Mail Sent."; ?> |
Heb je wel sendmail geinstalleerd enzo?quote:Op dinsdag 22 maart 2011 18:26 schreef MrNiles het volgende:
[ code verwijderd ]
dit zou toch moeten werken??
iemand enig idee waarom ik niets kan ontvangen op gmail en hotmail...ook niet in de spambox
Als er geen user input is, is er ook geen injection.quote:Op dinsdag 22 maart 2011 19:33 schreef GlowMouse het volgende:
Misschien was hij niet zo blij met je header injection.
Hier niet, maar ik kan me goed voorstellen dat je als hoster sendmail voor bepaalde users uitschakelt ivm spam.quote:Op dinsdag 22 maart 2011 19:39 schreef KomtTijd... het volgende:
[..]
Als er geen user input is, is er ook geen injection.
Zou kunnen, maar het heeft altijd gewerkt.quote:Hier niet, maar ik kan me goed voorstellen dat je als hoster sendmail voor bepaalde users uitschakelt ivm spam.
1 2 3 | <?php $commando="SELECT koppeltabel.*, optredens.* FROM koppeltabel, optredens WHERE koppeltabel.O_id = optredens.O_id AND koppeltabel.G_id=$G_id"; ?> |
1 2 3 | [basket54] => 74|kabel 2m|kabels|1.00|1.19|19 [basket35] => 23|utp kabel 1m|netwerk kabels|2|2.38|19 [basket5] => 3|A4 papier|kantoorartikelen|10.00|11.90|19 |
1 | [basket_no] => 54|35|5| |
1 2 3 4 | id | product | categorie | prijs inc | prijs exc | % BTW 74 | kabel 2m | kabels | 1.00 | 1.19 | 19 23 | utp kabel 1m | netwerk kabels | 2 | 2.38 | 19 3 | A4 papier | kantoorartikelen | 10.00 | 11.90 | 19 |
Dank, zal het opslaan van de sessions aanpassen.quote:Op donderdag 24 maart 2011 14:02 schreef GlowMouse het volgende:
Je begint met normaal opslaan, je kunt gewoon $_SESSION['basket'][] = array('id' => 74, 'aantal' => 1, 'beschrijving' => ....) doen.
Ik zal eens spelen met foreach. Ik zou inderdaad alleen de product id en aantal kunnen opslaan in de sessie en de rest uit de database opvragen.quote:Op donderdag 24 maart 2011 14:18 schreef GlowMouse het volgende:
Daarna volstaat een foreach. Let op dat je prijzen nu in sessies opslaat, en wijzigingen in de database niet direct worden meegenomen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [basket] => Array ( [0] => Array ( [id] => 5 [beschrijving] => netwerk kabel 2m [prijs] => 6.99 ) [1] => Array ( [id] => 2 [beschrijving] => A4 papier [prijs] => 3.00 ) [2] => Array ( [id] => 65 [beschrijving] => nietmachine [prijs] => 2.50 ) |
1 2 3 4 5 | foreach ($_SESSION['basket'] as $v1) { foreach ($v1 as $key=>$v2) { echo $key. ': ' .$v2. '<br />'; } } |
1 2 3 4 5 6 7 8 9 | id: 5 beschrijving: netwerk kabel 2m prijs: 6.99 id: 2 beschrijving: A4 papier prijs: 3.00 id: 65 beschrijving: nietmachine prijs: 2.50 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |