Variabelen
Code (php)
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
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
<?php
mysql_connect ("localhost","root","");
mysql_select_db("test123");
$result = mysql_query("SELECT * FROM test123");
echo "<table border='1'>
<tr>
<th>Achternaam</th>
<th>Voorletters</th>
<th>Roepnaam</th>
<th>Dienst</th>
<th>E-mail</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['achternaam'] . "</td>";
echo "<td>" . $row['voorletters'] . "</td>";
echo "<td>" . $row['roepnaam'] . "</td>";
echo "<td>" . $row['dienst'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
mysql_connect ("localhost","root","");
mysql_select_db("test123");
$result = mysql_query("SELECT * FROM test123");
echo "<table border='1'>
<tr>
<th>Achternaam</th>
<th>Voorletters</th>
<th>Roepnaam</th>
<th>Dienst</th>
<th>E-mail</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['achternaam'] . "</td>";
echo "<td>" . $row['voorletters'] . "</td>";
echo "<td>" . $row['roepnaam'] . "</td>";
echo "<td>" . $row['dienst'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Nu wil ik achternaam in een variabele zetten. Maar daar loop ik nu vast. Iemand een tip of tut? Bvd Joey
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
while($row = mysql_fetch_array($result)){
$achternaam = $row['achternaam'];
//en dan de rest
}
?>
while($row = mysql_fetch_array($result)){
$achternaam = $row['achternaam'];
//en dan de rest
}
?>
Joey Schroder op 25/04/2012 13:54:25:
Nu wil ik achternaam in een variabele zetten. Maar daar loop ik nu vast.
Het zit toch al in een variabele: $row['achternaam']
<form name="form" action="test2.php" method="POST">
<p>1. Basisgegevens deelnemer</p><br />
Achternaam: <input type="text" name="achternaam" value="" /><br />
Voorletters: <input type="text" name="voorletters" /><br />
Roepnaam: <input type="text" name="roepnaam" /><br />
Datum uit dienst: <input type="text" name="dienst" /><br />
E-mailadres: <input type="text" name="email" /><br /><br>
</form>
Maar zoals je hier boven al kunt zien wil het niet zo. Dan krijg ik Notice: Undefined variable: achternaam in C:\wamp\www\Formulier\controle1.php on line 60 Call Stack #TimeMemoryFunctionLocation 10.0123679880{main}( )..\controle1.php:0 " />
Je selecteert alle gegevens van alle gebruikers. Hoeveel formulieren wil je dan gaan vullen?
Ja dat bedenk ik mij nu ook net. Ik wil van de laatste ingevulde formulier een controle maken en dat is deze pagina. Dus dan moet ik op de laatste ID sorteren en niet op row. Dus moet ik nog even kijken hoe ik dat ga klaar spelen.
SELECT .. WHERE id=...
Zo heb ik het nu en dat werkt mooi. Alleen het weergeven van de achternaam voorletters enzovoort in het form wil nog niet echt lukken.
Wat is volgorde waarin je alles doet? Dus, gegevens ophalen, form echoen etc?
1 grote form. Die sla ik op in DB1 van daar uit haal ik het eerste deel gegevens en die wil ik nu weer in een form zetten ter controle en zo gauw er op submit wordt geklikt worden die gegevens in een DB2 opgeslagen. Dan wordt deel twee van het form opgehaald en in een form gestopt ter controle en als daar op submit wordt geklikt word dat opgeslagen in DB3. Zo doende.
De error die je krijgt zegt namelijk dat je een variabele gebruikt die nog niet bestaat. Meestal gebeurt dat doordat je een variabele aanroept voor je er een waarde aan toekent. Met de beschrijving die jij nu geeft krijg ik ergens het gevoel dat je data wilt ophalen die helemaal niet (meer) in de dataset zit.
Gewijzigd op 25/04/2012 15:07:15 door Erwin H
Code (php)
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
53
54
55
56
57
58
59
60
61
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
53
54
55
56
57
58
59
60
61
<?php
mysql_connect ("localhost","root","");
mysql_select_db("test123");
$result = mysql_query("SELECT * FROM test123 ORDER BY id DESC LIMIT 1");
echo "<table border='1'>
<tr>
<th>Achternaam</th>
<th>Voorletters</th>
<th>Roepnaam</th>
<th>Dienst</th>
<th>E-mail</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['achternaam'] . "</td>";
echo "<td>" . $row['voorletters'] . "</td>";
echo "<td>" . $row['roepnaam'] . "</td>";
echo "<td>" . $row['dienst'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>";
while($row = mysql_fetch_array($result))
{
$achternaam = $row['achternaam'];
$voorletters = $row['voorletters'];
$roepnaam = $row['roepnaam'];
$dienst = $row['dienst'];
$email = $row['email'];
}
echo "<form name=\"form\" action=\"test2.php\" method=\"POST\">";
echo "<p>1. Basisgegevens deelnemer</p><br />";
echo "Achternaam: <input type=\"text\" name=\"achternaam\" /><br />";
echo "Voorletters: <input type=\"text\" name=\"voorletters\" /><br />";
echo "Roepnaam: <input type=\"text\" name=\"roepnaam\" /><br />";
echo "Datum uit dienst: <input type=\"text\" name=\"dienst\" /><br />";
echo "E-mailadres: <input type=\"text\" name=\"email\" /><br /><br>";
echo "</form>";
?>
mysql_connect ("localhost","root","");
mysql_select_db("test123");
$result = mysql_query("SELECT * FROM test123 ORDER BY id DESC LIMIT 1");
echo "<table border='1'>
<tr>
<th>Achternaam</th>
<th>Voorletters</th>
<th>Roepnaam</th>
<th>Dienst</th>
<th>E-mail</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['achternaam'] . "</td>";
echo "<td>" . $row['voorletters'] . "</td>";
echo "<td>" . $row['roepnaam'] . "</td>";
echo "<td>" . $row['dienst'] . "</td>";
echo "<td>" . $row['email'] . "</td>";
echo "</tr>";
}
echo "</table>";
while($row = mysql_fetch_array($result))
{
$achternaam = $row['achternaam'];
$voorletters = $row['voorletters'];
$roepnaam = $row['roepnaam'];
$dienst = $row['dienst'];
$email = $row['email'];
}
echo "<form name=\"form\" action=\"test2.php\" method=\"POST\">";
echo "<p>1. Basisgegevens deelnemer</p><br />";
echo "Achternaam: <input type=\"text\" name=\"achternaam\" /><br />";
echo "Voorletters: <input type=\"text\" name=\"voorletters\" /><br />";
echo "Roepnaam: <input type=\"text\" name=\"roepnaam\" /><br />";
echo "Datum uit dienst: <input type=\"text\" name=\"dienst\" /><br />";
echo "E-mailadres: <input type=\"text\" name=\"email\" /><br /><br>";
echo "</form>";
?>
Dit is wat ik heb. Zoals je ziet maak ik in de while een variabele aan. Dus $achternaam bestaat wel degelijk.
Zoals ik eerder vermeld heb. Er wordt een lange formulier ingevuld. Dat alles word opgeslagen in DB1 vervolgens word het eerste deel van het 1ste formulier terug gehaald ter controle zo gauw er dan op submit wordt geklikt wordt dat opgeslagen in DB2. Dan wordt het 2de tergelijke tijd ook de laatste deel van het formulier weergegeven ter controle en moet dat ook worden opgeslagen in DB3
Quote:
Dus $achternaam bestaat wel degelijk.
En daar vergis je je dus in. De eerste while() zal alle records ophalen (in dit geval slechts 1 door de LIMIT 1) waardoor de tweede while() helemaal niet wordt uitgevoerd. De records zijn namelijk op. Dus die tweede while() kan gewoon weg. Daarbij is het copiëren van variabelen ook niet echt zinvol, eerder zinloos geheugenverlies. Gebruik gewoon $row['achternaam'].
@SanThe: amen....
Code (php)
1
2
3
2
3
<?php
echo 'Achternaam: <input type="text" name="achternaam" value="'.$row['achternaam'].'" /><br />';
?>
echo 'Achternaam: <input type="text" name="achternaam" value="'.$row['achternaam'].'" /><br />';
?>
Dan wordt het niet weergegeven in de input ;)
if($row = mysql_fetch_array($result))
...
Dan blijf je in de zelfde structuur, zelfde accolades, zelfde gedachtegang.
Dit lijkt me het meest simpele.
Gewijzigd op 25/04/2012 16:46:21 door Kris Peeters
Ik moet Kris helemaal gelijk geven! Doordat je het in een while loop uitleest is $row op het einde false. Dus NA de while loop kan je niet meer bij de $row['achternaam'].