Ik heb al eens een cronjob gemaakt maar dat was een simpele om kliks op nul te zetten met UPDATE. Dus ik heb er niet echt ervaring mee.
Nu wil ik graag dat er iedere eerste van de maand een geldbedrag wordt gestort met omschrijving.
-Het begroting_bedrag staat in de tabel "begroting" en hoort bij een begroting_id.
Dus dat bedrag moet erin gezet worden.
<?php
include("../budget/inloggen.php");
//maak verbinding met de database
$connection = mysql_connect ($hostname,$user,$password) or die ( "Sorry maar ik kan geen contact maken met de database, probeer het later opnieuw of ververs uw browser.");
$db = mysql_select_db ($database, $connection) or die ("Sorry, maar ik kan de database niet openen.");
$uitgave_naam = 'Storting';
$uitgave_datum = 'NOW()';
$uitgave_tekst = 'Maandelijkse storting';
$uitgave_bedrag = 'SELECT begroting_bedrag FROM begroting WHERE begroting_id = '.$begroting_id.' AND budget_id = 2';
$query='INSERT INTO uitgaven (uitgave_naam,uitgave_datum,uitgave_tekst,uitgave_bedrag)
VALUES ('$uitgave_naam','$uitgave_datum','$uitgave_tekst','$uitgave_bedrag') WHERE begroting_id = '.$begroting_id.'';
$result=mysql_query($query) or die ('Het is niet gelukt om de gegevens in de database te zetten');
?>
?
Onbekende gebruiker
01-01-2007 12:34
Ik zal even screenshots maken van de tabellen.....
[quote='SanThe schreef op 01.01.2007 12:27']Dan bestaat $begroting_id niet.
Ik bedoel dus dat die var leeg is of niet geset.[/quote]
?
Onbekende gebruiker
01-01-2007 13:00
Ja, ik had het wel gelezen maar ik snapte het niet goed.
Ik heb het nu zo gedaan en de gegevens worden er nu goed in gezet.
Alleen....hij doet het maar 1 keer, dus hij pakt de bovenste regel.
Ik heb er al een while lus omheen gezet maar dan krijg ik een foutmelding.
Hoe kan ik hem alles laten herhalen tot hij alle gegevens uit de tabel heeft gehaald.
<?php
include("../budget/inloggen.php");
//maak verbinding met de database
$connection = mysql_connect ($hostname,$user,$password) or die ( "Sorry maar ik kan geen contact maken met de database, probeer het later opnieuw of ververs uw browser.");
$db = mysql_select_db ($database, $connection) or die ("Sorry, maar ik kan de database niet openen.");
$query = "SELECT begroting_bedrag,begroting_id
FROM begroting
WHERE budget_id = 2";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
<?php
include("../budget/inloggen.php");
//maak verbinding met de database
$connection = mysql_connect ($hostname,$user,$password) or die ( "Sorry maar ik kan geen contact maken met de database, probeer het later opnieuw of ververs uw browser.");
$db = mysql_select_db ($database, $connection) or die ("Sorry, maar ik kan de database niet openen.");
$query = "SELECT begroting_bedrag,begroting_id
FROM begroting
WHERE budget_id = 2";
$result_for_while = mysql_query($query) or die(mysql_error());
Als we teruggaan naar de originele query: daar werd een SELECT gebruikt om een van de values in de insert-query te setten. Dat kan voor zover ik weet niet, maar je kan wel een SELECT gebruiken als vervanging van de VALUES in je query. Dit zou dus ook moeten werken:
<?php
$query = "INSERT INTO uitgaven (
uitgave_naam,
uitgave_datum,
uitgave_tekst,
uitgave_bedrag,
begroting_id
)
SELECT
'Storting',
NOW(),
'Maandelijkse storting',
begroting_bedrag,
begroting_id
FROM begroting
WHERE budget_id = 2";
?>
Hier worden alle resultaten van je SELECT gebruikt als invoer voor je INSERT.
Dat scheelt je een extra query en een while-loop.