Waarom niet gewoon een loop schrijven die per array-regel een volledige query uitvoert? En waarom gebruik je daarvoor de update query en niet de insert query?quote:Op zondag 14 januari 2007 10:39 schreef qu63 het volgende:
[ code verwijderd ]
hoe kan ik deze query nou goed laten gaan?
$id t/m $bedrag moeten meerdere waarden krijgen (een array dus) en die moeten allemaal de database in. Er komen geen nieuwe rijen bij, het wordt dus alleen maar geupdate.
ik keek al bij Multiple Queries op dev.mysql.com maar ik weet niet of dat allemaal goed werkt enzo..
iemand tips?
mij leek een enkele query makkelijker om uit te voeren, maar dat was idd mijn optie als dit niet werktequote:Op zondag 14 januari 2007 10:43 schreef zwambtenaar het volgende:
[..]
Waarom niet gewoon een loop schrijven die per array-regel een volledige query uitvoert?
ik haal de waarden uit mn database, daar bouw ik een mooi update-formulier omheen. Dit formulier kan dus ge-submit worden en de nieuwe waarden moeten weer de database inquote:Op zondag 14 januari 2007 10:43 schreef zwambtenaar het volgende:
[..]
Waarom niet gewoon een loop schrijven die per array-regel een volledige query uitvoert? En waarom gebruik je daarvoor de update query en niet de insert query?
Ik begrijp het inderdaad. Als een soort tabel-/spreadsheetoverview waarmee je in één keer vele records kunt editten.quote:Op zondag 14 januari 2007 10:49 schreef qu63 het volgende:
[..]
ik haal de waarden uit mn database, daar bouw ik een mooi update-formulier omheen. Dit formulier kan dus ge-submit worden en de nieuwe waarden moeten weer de database in
juistemquote:Op zondag 14 januari 2007 10:50 schreef zwambtenaar het volgende:
[..]
Ik begrijp het inderdaad. Als een soort tabel-/spreadsheetoverview waarmee je in één keer vele records kunt editten.
Volgens mij doe je de eerste regel (met index 0) nu dubbel.quote:Op zondag 14 januari 2007 10:39 schreef qu63 het volgende:
[ code verwijderd ]
hoe kan ik deze query nou goed laten gaan?
[...]
iemand tips?
ohja 8)7quote:Op zondag 14 januari 2007 12:27 schreef SuperRembo het volgende:
[..]
Volgens mij doe je de eerste regel (met index 0) nu dubbel.
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 | <table width="50%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>Datum</td> <td>Naam</td> <td>Offertenummer</td> <td>Ordernummer</td> <td>Order</td> <td>Bedrag</td> </tr> <tr><input type="hidden" name="id" value="1"> <td>vandaag</td> <td>Ik</td> <td><input name="offertenummer" value="" size="10"></td> <td><input name="ordernummer" value="" size="10"></td> <td><input name="order" value="ja" size="10">ja/nee</td> <td>¤<input name="bedrag" value="352,79" size="10"></td> </tr> <tr><input type="hidden" name="id" value="2"> <td>5</td> <td>5</td> <td><input name="offertenummer" value="" size="10"></td> <td><input name="ordernummer" value="5" size="10"></td> <td><input name="order" value="5" size="10">ja/nee</td> <td>¤<input name="bedrag" value="5" size="10"></td> </tr> </table> <input type="submit" name="submit" value="submit"> </form> |
1 2 3 | <input type="text" name="offertenummer[]" value="" size="10"> <input type="text" name="offertenummer[]" value="" size="10"> |
1 2 3 4 5 6 7 | $offertenummer = $_POST["offertenummer"]; echo $offertenummer[0]; echo $offertenummer[1]; echo $offertenummer[2]; ?> |
dat komt omdat ik er al een id uit heb geknikkerdquote:Op zondag 14 januari 2007 12:44 schreef HuHu het volgende:
Dan moet je van die input names een array maken.
[ code verwijderd ]
[ code verwijderd ]
Let op dat een array bij 0 begint met tellen en jij je ID's bij 1 laat beginnen.
Aha...quote:Op zondag 14 januari 2007 12:45 schreef qu63 het volgende:
[..]
dat komt omdat ik er al een id uit heb geknikkerd
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 | //dit poept dus alle waarden in een tabelletje.. while ($row = mysql_fetch_assoc($result)) { echo "<tr>n<td>".$row['tijd']."</td>n"; echo "<td>".$row['km']."</td>n"; echo "<td>n<input type="text" name="prijs[".$row['tijd']."][".$row['km']."]" value="".$row['prijs']."">n"; echo "<input type="hidden" name=oud[".$row['tijd'].']['.$row['km']."] value="".$row['prijs']."">n</td>n</tr>n"; } //en dit is de update functie. de rest vavn het script heb ik achterwege gelaten omdat dat alleen maar checks zijn of er iets anders gedaan moet worden.. function update() { //nieuwe waarden? $km = $_POST['km_nieuw']; $prijs = $_POST['prijs_nieuw']; $tijd = $_POST['tijd_nieuw']; if (is_array($km) && is_array($prijs) && is_array($tijd) && (count($km) == count($prijs)) && (count($km) == count($tijd))) { $query = 'INSERT INTO qu63 (tijd, km, prijs) VALUES (' . $tijd[0] . ', ' . $km[0] . ', ' . $prijs[0] . ')'; $num = count($km); for ($i = 0; $i < $num; $i++) { $query .= ',(' . $tijd[$i] . ', ' . $km[$i] . ', ' . $prijs[$i] . ')'; } mysql_query($query); } //if(($_POST['km_nieuw'] > 0) && ($_POST['tijd_nieuw'] > 0) && ($_POST['prijs_nieuw'] > 0)) { //mysql_query('INSERT INTO qu63 (prijs, tijd, km) VALUES ('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].'),('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].'),('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].'),('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].'),('.$_POST['prijs_nieuw'].','.$_POST['tijd_nieuw'].','.$_POST['km_nieuw'].')'); //mysql_query('INSERT INTO qu63 (prijs, tijd, km) VALUES ('.intval($_POST['prijs'][$tijd][$km]).','.$tijd.','.$km.')'); //$aangepast++; //} //Bij het begin beginnen :) reset($_POST['oud']); //De array bevat tijd, afstand en prijs. //Dat is niet in 1 lus uit te lezen, dus doen we het met twee. while (list($tijd, $tmp) = each($_POST['oud'])) { while (list($km, $prijs) = each($tmp)) { //Als er een andere prijs staat dan zetten we die in de database if($_POST['prijs'][$tijd][$km] != $prijs) { mysql_query('UPDATE qu63 SET prijs = '.intval($_POST['prijs'][$tijd][$km]).' WHERE tijd = '.$tijd.' AND km = '.$km); $aangepast++; } } } } ?> |
dat werkt iig ja..quote:Op zondag 14 januari 2007 12:44 schreef HuHu het volgende:
Dan moet je van die input names een array maken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | mysql_connect(DB_HOST, DB_USER, DB_PASS); mysql_select_db(DB_DATABASE); $id = $_POST['ID']; $datum = $_POST['datum']; $naam = $_POST['naam']; $offertenummer = $_POST['offertenummer']; $ordernummer = $_POST['ordernummer']; $order = $_POST['order']; $bedrag = $_POST['bedrag']; $nieuw = array($id,$datum,$naam,$offertenummer,$ordernummer,$order,$bedrag); //print_r($nieuw); //echo $nieuw[3][1]; if (is_array($nieuw) && (count($nieuw))) { $num = count($nieuw); for ($i = 0; $i < $num; $i++) { // foreach($id as $k => $w) { mysql_query("REPLACE 'order' ('ID', 'datum', 'naam', 'offertenummer', 'ordernummer', 'order', 'bedrag') VALUES('" . $nieuw[0][$i] . "', '" . $nieuw[1][$i] . "', '" . $nieuw[2][$i] . "', '" . $nieuw[3][$i] . "', '" . $nieuw[4][$i] . "', '" . $nieuw[5][$i] . "', '" . $nieuw[6][$i] . "')"); } } ?> |
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 | ( [0] => Array ( [1] => 1 [2] => 2 [3] => 3 ) [1] => Array ( [vandaag] => vandaag [5] => 5 [123] => 123 ) [2] => Array ( [1] => Ik [2] => 5 [3] => 123 ) [3] => Array ( [1] => [2] => [3] => 12 ) [4] => Array ( [1] => [2] => 5 [3] => 789 ) [5] => Array ( [1] => ja [2] => 5 [3] => 55 ) [6] => Array ( [1] => 352,79 [2] => 5 [3] => 333 ) ) |
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 | <table width="50%" border="0" cellspacing="0" cellpadding="0"> <tr> <td>Datum</td> <td>Naam</td> <td>Offertenummer</td> <td>Ordernummer</td> <td>Order</td> <td>Bedrag</td> </tr> <tr><input type="hidden" name="ID[1]" value="1"> <td><input type="hidden" name="datum[vandaag]" value="vandaag">vandaag</td> <td><input type="hidden" name="naam[1]" value="Ik">Ik</td> <td><input name="offertenummer[1]" value="" size="10"></td> <td><input name="ordernummer[1]" value="" size="10"></td> <td><input name="order[1]" value="ja" size="10">ja/nee</td> <td>€<input name="bedrag[1]" value="352,79" size="10"></td> </tr> <tr><input type="hidden" name="ID[2]" value="2"> <td><input type="hidden" name="datum[5]" value="5">5</td> <td><input type="hidden" name="naam[2]" value="5">5</td> <td><input name="offertenummer[2]" value="" size="10"></td> <td><input name="ordernummer[2]" value="5" size="10"></td> <td><input name="order[2]" value="5" size="10">ja/nee</td> <td>€<input name="bedrag[2]" value="5" size="10"></td> </tr> <tr><input type="hidden" name="ID[3]" value="3"> <td><input type="hidden" name="datum[123]" value="123">123</td> <td><input type="hidden" name="naam[3]" value="123">123</td> <td><input name="offertenummer[3]" value="12" size="10"></td> <td><input name="ordernummer[3]" value="789" size="10"></td> <td><input name="order[3]" value="55" size="10">ja/nee</td> <td>€<input name="bedrag[3]" value="333" size="10"></td> </tr> </table> <input type="submit" name="submit" value="submit"> </form> |
Ja natuurlijk is dit mogelijkquote:Op zondag 14 januari 2007 21:14 schreef broodmonkeh het volgende:
Ik heb een datum opgeslagen in de database , nu wil ik zeg maar een overzicht maken van alle gegevens met die datum ouder als een jaar
Dus ik sla het zo op: 2007-01-14 en ik wil zeg maar alle data na 2008-01-14 in een overzicht hebben.
Is dit mogelijk?
met NOW() komt er ook 2007-01-14 uit , dus maakt opzich niet zoveel uit toch? Dat INTERVAL-statement ga ik nu even uitzoeken.quote:Op zondag 14 januari 2007 21:24 schreef fate het volgende:
[..]
Ja natuurlijk is dit mogelijk.
Heb je je data als now() opgeslaan? Dan is het heel wat handiger dan als je het er letterlijk 2007-01-14 inzet...
Je moet maar eens zoeken mbv het INTERVAL-statement in MySQL hoe je data er zo het best gaat uithalen. (Ik geef niet de code omdat je er anders niets van leert)
Jawel, want op DATE en DATETIME velden kan je sql datum en tijd functies gebruiken. op een varchar veld niet.quote:Op zondag 14 januari 2007 22:47 schreef broodmonkeh het volgende:
[..]
met NOW() komt er ook 2007-01-14 uit , dus maakt opzich niet zoveel uit toch?
ik had hem al als DATE veld , gebruikte alleen geen NOW() maar ik had de datum al bepaald met date() en dat in de database gezet.quote:Op zondag 14 januari 2007 22:48 schreef Swetsenegger het volgende:
[..]
Jawel, want op DATE en DATETIME velden kan je sql datum en tijd functies gebruiken. op een varchar veld niet.
Als het maar een DATE veld is. Dan lijkt je methode me nog steeds nodeloos ingewikkeld, mits je een andere datum dan *nu* in de database wil hebben.quote:Op zondag 14 januari 2007 22:55 schreef broodmonkeh het volgende:
[..]
ik had hem al als DATE veld , gebruikte alleen geen NOW() maar ik had de datum al bepaald met date() en dat in de database gezet.
jep dat is ook het gevalquote:Op zondag 14 januari 2007 22:59 schreef Swetsenegger het volgende:
[..]
Als het maar een DATE veld is. Dan lijkt je methode me nog steeds nodeloos ingewikkeld, mits je een andere datum dan *nu* in de database wil hebben.
1 2 3 4 5 6 7 8 | function delete_cookie ( cookienaam ) { var cookie_date = new Date ( ); // current date & time cookie_date.setTime ( cookie_date.getTime() - 1 ); document.cookie = cookienaam += "=; expires=" + cookie_date.toGMTString(); } </script> |
http://www.sitemasters.be/?pagina=tutorials/tutorials&cat=4&id=160quote:Op zondag 14 januari 2007 23:38 schreef profielnaam het volgende:
Ik probeerde in eerste instantie mbv javascript een cookie te verwijderen, maar dit werkt niet zo te zien. de situatie is als volgt:
ik heb een domein waarop de meeste mensen binnenkomen via de index.html op deze pagina wordt een cookie gezet. als de user verder browsed naar een van de andere sites bijv. subdomein.hoofdomein.com dan moet de cookie die eerder op de mainpage gezet is verwijderd worden,
ik probeer dit nu wel met javascript te doen, omdat ik geen PHP ondersteuning heb ik op deze server, misschien dat ik dit er nog bij ga nemen..
ik kwam uit op deze javascript code, welke de cookie expiration time in het verleden zou moeten zetten en daardoor automatisch verwijdert.
De cookie blijft wel staan dus ik doe iets fout..
hopen maar dat iemand me anders wel kan helpen met PHP code hiervoor.
dit is de javascript code iedergeval
[ code verwijderd ]
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |