msql tabel uitlezen probleem
ik heb een msql tabel waar een id naam en nog paar dingen in worden opgeslagen door een form in te vullen alleen nu wil ik de tabel uitlezen maar maar 1 resultaat laten zien dus ik bedoel zoiets:
id: naam:
10 test10
9 test9
8 test8
7 test7
6 test6
5 test5
4 test4
3 test3
2 test2
1 test1
er hebben 10 mensen het formulier ingevuld ik wil alleen nummer 10 dus de laatste aan de mensen laten zien hoe doe ik dit?
alvast bedankt
stefano
SELECT blablabla, FROM tabel LIMIT 1 ORDER BY DESC
DESC kan ook ASC wezen. Heb ik even niet scherp nu
Je hebt auto_increment veld neem ik aan? of een datum veld waarop je de ORDER BY kan toepassen?
alleen krijg errors als ik hem gebruik hier mijn code:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Uitlezen van emails
$lezen = mysql_query ("SELECT * FROM `donateur` LIMIT 1 ORDER BY `id` DESC");
$count_rows = mysql_num_rows ($lezen);
while ($read = mysql_fetch_assoc($lezen))
{
?>
<td><?php echo $read['naam']; ?></td>
<td><?php echo $read['geld']; ?></td>
</tr>
<?php
}
?>
errors:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
// Uitlezen van emails
$lezen = mysql_query ("SELECT * FROM `donateur` LIMIT 1 ORDER BY `id` DESC");
$count_rows = mysql_num_rows ($lezen);
while ($read = mysql_fetch_assoc($lezen))
{
?>
<td><?php echo $read['naam']; ?></td>
<td><?php echo $read['geld']; ?></td>
</tr>
<?php
}
?>
errors:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in
Gewijzigd op 02/06/2010 19:01:05 door stefano test
Het url is dan b.v. : http://mijnsite.nl/laatzien.php?id=10
laatzien.php (primitief voorbeeld):
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
// Als $_GET['id'] 0 wordt weet je zeker dat de select geen resultaat heeft.
$_GET['id'] = ( empty($_GET['id']) ? 0 : $_GET['id'] );
$sQry = 'SELECT id, naam' .
' FROM tabel' .
' WHERE id = ' . (int)$_GET['id'];
$rQuery = mysql_query($sQry);
$aRecord = array();
if( mysql_num_rows($rQuery) )
{
$aRecord = mysql_fetch_assoc($rQuery);
}
print_r($aRecord);
?>
// Als $_GET['id'] 0 wordt weet je zeker dat de select geen resultaat heeft.
$_GET['id'] = ( empty($_GET['id']) ? 0 : $_GET['id'] );
$sQry = 'SELECT id, naam' .
' FROM tabel' .
' WHERE id = ' . (int)$_GET['id'];
$rQuery = mysql_query($sQry);
$aRecord = array();
if( mysql_num_rows($rQuery) )
{
$aRecord = mysql_fetch_assoc($rQuery);
}
print_r($aRecord);
?>
Edit:
Gewijzigd op 02/06/2010 19:04:29 door Martijn B
als iemand op het formulier drukt kom je bij een bedank pagina en ik wil onder de bedank tekst dit hebben:
dus ik wil eigenlijk laten zien wat die persoon net ingevuld heeft in het formulier?
tis mischien een domme vraag maarja begin net met php/msql dusja
Gewijzigd op 02/06/2010 19:09:47 door stefano test
http://nl3.php.net/manual/en/function.mysql-insert-id.php
Het resultaat van deze functie is altijd het laatst ingevoegde id in de tabel. Zelf als iemand gelijktijdig het formulier verzend gaat dit goed, volgens mij.
Gewijzigd op 02/06/2010 19:13:48 door Martijn B
maar hoe lees ik dat uit ik zie namelijk alleen insert kun je mischien klein voorbeeldje maken?
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
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
<?php
// Als het formulier verzonden is
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
// Formulier velden controleren
// ...
// Gegevens in de database zetten
$sQry = 'INSERT INTO tabel ' .
' (kolom)'
' VALUES (\'' . mysql_real_escape_string($_POST['veld1']) . '\')';
mysql_query($sQry);
// Eigelijk kun je alles in $_POST ook op het scherm zetten.
// Maar we gaan hieronder het net ingevoegde record selecteren uit de database.
$iRecordId = mysql_insert_id();
$sQry = 'SELECT id, naam' .
' FROM tabel' .
' WHERE id = ' . $iRecordId;
$rQuery = mysql_query($sQry);
$aRecord = array();
if( mysql_num_rows($rQuery) )
{
$aRecord = mysql_fetch_assoc($rQuery);
}
// Laat het ingevoegde record als test op het scherm zien
print_r($aRecord);
}
else
{
// Er is niets gepost dus laat het formulier zien
}
?>
// Als het formulier verzonden is
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
// Formulier velden controleren
// ...
// Gegevens in de database zetten
$sQry = 'INSERT INTO tabel ' .
' (kolom)'
' VALUES (\'' . mysql_real_escape_string($_POST['veld1']) . '\')';
mysql_query($sQry);
// Eigelijk kun je alles in $_POST ook op het scherm zetten.
// Maar we gaan hieronder het net ingevoegde record selecteren uit de database.
$iRecordId = mysql_insert_id();
$sQry = 'SELECT id, naam' .
' FROM tabel' .
' WHERE id = ' . $iRecordId;
$rQuery = mysql_query($sQry);
$aRecord = array();
if( mysql_num_rows($rQuery) )
{
$aRecord = mysql_fetch_assoc($rQuery);
}
// Laat het ingevoegde record als test op het scherm zien
print_r($aRecord);
}
else
{
// Er is niets gepost dus laat het formulier zien
}
?>
Gewijzigd op 02/06/2010 19:24:27 door Martijn B
Als je net een INSERT met verse gegevens hebt gedaan dan heb je die gegevens toch al en heb je geen SELECT nodig lijkt mij.
Quote:
hoe kan ik het dan doen via verse gegevens ?
???
Ik zou gewoon op je PC gaan testen. Ik gebruik daar altijd wamp voor.
Gewijzigd op 02/06/2010 19:31:12 door Martijn B
martijn bedankt voor je voorbeeld maar waar santhe nvt het over heeft is toch makkelijker en hoe doe ik dat dan?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
// Als het formulier verzonden is
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
// Formulier velden controleren
// ...
// Gegevens in de database zetten
$sQry = 'INSERT INTO tabel ' .
' (kolom)'
' VALUES (\'' . mysql_real_escape_string($_POST['veld1']) . '\')';
mysql_query($sQry);
// Laat de verstuurde gegevens als test op het scherm zien
print_r($_POST);
}
else
{
// Er is niets gepost dus laat het formulier zien
}
?>
// Als het formulier verzonden is
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
// Formulier velden controleren
// ...
// Gegevens in de database zetten
$sQry = 'INSERT INTO tabel ' .
' (kolom)'
' VALUES (\'' . mysql_real_escape_string($_POST['veld1']) . '\')';
mysql_query($sQry);
// Laat de verstuurde gegevens als test op het scherm zien
print_r($_POST);
}
else
{
// Er is niets gepost dus laat het formulier zien
}
?>
LIMIT 1?
Dat geeft de laatste gebruiker