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');
?> 
Ik zal even screenshots maken van de tabellen.....
SanThe schreef op 01.01.2007 12:27
Dan bestaat $begroting_id niet.

Ik bedoel dus dat die var leeg is of niet geset.


Uit deze tabel moet hij het begroting_id halen en het begroting_bedrag.



In deze tabel moeten de gegevens komen te staan.
SanThe schreef op 01.01.2007 12:36
[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]
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);

$query = "INSERT INTO uitgaven (
uitgave_naam,
uitgave_datum,
uitgave_tekst,
uitgave_bedrag,
begroting_id
) VALUES (
'Storting',
NOW(),
'Maandelijkse storting',
'" . $row['begroting_bedrag'] . "',
'" . $row['begroting_id'] . "'
)";
$result = mysql_query($query) or die(mysql_error());
?>
<?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());

while($row = mysql_fetch_array($result_for_while))
{
$query = "INSERT INTO uitgaven (
uitgave_naam,
uitgave_datum,
uitgave_tekst,
uitgave_bedrag,
begroting_id
) VALUES (
'Storting',
NOW(),
'Maandelijkse storting',
'" . $row['begroting_bedrag'] . "',
'" . $row['begroting_id'] . "'
)";
$result = mysql_query($query) or die(mysql_error());
}
?>
Vervelend dat ik nog niet goed genoeg een script kan schrijven.
Ik had er dus net iets te veel ingezet.

Het werkt SanThe, je bent het nieuwe jaar weer goed begonnen.

Hopelijk kan ik nu weer vooruit en anders......ach ja, dan zie je me hier wel weer :)

Bedankt,

Elsy
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.

Reageren