Het volgende probleem:
In mijn programma roep ik een pagina op met
while (list($id, $voornaam, $achternaam, $klas) = mysql_fetch_row($result)){
Dit gebeurt dus met record per record.
Achteraf zou ik al de gegevens naar een nieuwe tabel willen overschrijven, met andere waarden, omdat er intussen bewerkingen gebeuren met de gegevens.
Hiervoor roep ik dezelfde pagina op met $_SERVER["PHP_SELF" en versluis ik de gegevens naar een nieuwe tabel.
Hier is het probleem. Het programma onthoudt alleen het laatste record. Ik heb geprobeerd met arrays maar in html bestaat er binnen mijn kennis geen lusstructuur.
Weet er iemand hiervoor een oplossing?
Ik heb hetzelfde probleem reeds ervaren bij een identieke tabel, er worden gegevens record per record ingelezen, maar wanneer er een cel gewijzigd wordt, moet ik telkens record per record laten wegschrijven, kan dit niet ineens????
Ik voeg hierbij een beknopte code toe ….

<?php
// verbinding met database invoegen
include("inc_connect.php");

// controleren of pagina zichzelf heeft aangeroepen
// via hidden-field uit het formulier
if (isset($_POST["bevestiging"])){
$query="INSERT INTO tussenarchief (id, voornaam, achternaam, klas,… ) ";
$query .= "VALUES ('";

$query .= $_POST["id"] ."', '" ;
$query .= $_POST["voornaam"] ."', '" ;
$query .= $_POST["achternaam"] ."', '" ;
$query .= $_POST["klas"] ."', '" ;
...



$result = mysql_query($query) or die ("FOUT: " . mysql_error());
if ($result){
echo ("Record nummer " .$_POST["id"] . " is bijgewerkt<br>\n");
echo ("<a href=\"archief_tussenarchief_verder.php\">Verder</a>");
}
}else{
$query= "SELECT * FROM gegevensvm";
$result = mysql_query($query) or die ("FOUT: " . mysql_error());
?>

<html>
<head>
<title>Tussenarchief</title>
</head>


<?php
$query="select * from gegevensvm";
$result = mysql_query($query) or die ("Problem connecting to Database");


while (list($id, $voornaam, $achternaam, $klas,)){

$x1 = $id;
$vn[$x1]=$voornaam;
$an[$x1]=$achternaam;
$kl[$x1]=$klas;
//hier volgen een aantal bewerkingen ….
If ($klas == "6"){
$prijs = 2.48;
$cultact = 5;
}elseif ($klas =="5"){
$prijs = 2.48;
$cultact = 5;

$sabid[$x1] = $id;
$toezichtvo[$x1] = $toezichtvoor;
$toezichtmi[$x1] = $toezichtmid;
$stud[$x1] = $studie;
$ab[$x1] = $abon;
$extra[$x1] = $extramuros;
$spo[$x1] = $sport;
$bus[$x1] = $busgeld;
$beta[$x1] = $betaling;
$betamelk[$x1] = $betalingmelk;
$tota[$x1] = $totaal;


}?>

<form action="<?php echo($_SERVER["PHP_SELF"]);?>" method="post">
<input type="hidden" name="bevestiging" value="1">
<input type="hidden" name="id" value="<?php echo($sabid[$x1]);?>">
<input type="hidden" name="voornaam" value="<?php echo($vn[$x1]);?>">
<input type="hidden" name="achternaam" value="<?php echo($an[$x1]);?>">
<input type="hidden" name="klas" value="<?php echo($kl[$x1]);?>">

<hr>
<input type="Submit" value="Bijwerken">
<input type="Button" value="Terug" onclick="javascript:history.back();">


</form>

<?php
// else-blok correct afsluiten
}
?>

</body>
</html>
je hoeft je bericht niet 2x te posten :) maar begrijp wel waarom je het doet.. magoed..

tis heel simpel, om iets uit de database te lezen doe je het als volgt:

<?
$sql = "SELECT * FROM tabel_naam WHERE iets = 'iets'";
$res = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($res >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo "Mijn idnummer is: " . $row['id'] . "!";
}
}
else
{
echo "Er is niets in de database gevonden";
}
?>

Zo zou je het moeten doen, en dan loop je dus door alle resultaten die je als resultaat krijgt met mysql_fetch_array().

Als dit antworod niet is wat je zoekt, zou ik je vraag wat beter, korter en duidelijker formuleren want ik snap er weinig van.. Denk dat je geen reacties kreeg omdat je een grote lap code post met een ingewikkelde vraag waar niet veel mensen zin in hebben om door te lezen en uit te pluizen wat je nou precies bedoelt :)) Zie dit als opbouwend kritiek, bedoel het namelijk niet verkeerd.. succes :)
Neen, inderdaad dat is niet wat ik zoek. Ik zal het wat eenvoudiger formuleren. Het inlezen van gegevens uit een tabel is geen probleem, maar ik zou ze naar een nadere tabel moeten overhevelen, nadat de waarden veranderd zijn. Maar dan wel in 1 keer alle gegevens van alle records. Stel dat er 120 records zijn dan zou ik 120 keer op submit moeten duwen en ze 1 voor 1 overhevelen ...
Het heeft iets te maken met arrays, maar tot nu toe slaag ik er niet in ....

Groeten
Serge
waarom niet iets als dit:
INSERT INTO `nieuwe_database`.`nieuwe_tabel` (`kolom1`,`kolom2`)
SELECT `kolom1`,`kolom2` FROM `oude_database`.`oude_tabel` ;
Neen, kan niet want de velden van de oude tabel komen niet overeen met de nieuwe...
En met de waarden van de oude veleden worden er bewerkingen verricht zodat er nieuwe waarden ontstaan. BV. In het oude veld bij maandag staat er "on" of "off" door bewerkingen ontstaat er een getal .... die nieuwe waarde wordt dan weggeschreven ....
Of ben ik verkeerd?????

Reageren