laatste artikel database
Met welke query kan ik het laatse artikel uit database halen?
Gewijzigd op 01/01/1970 01:00:00 door Lars Koning
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
SELECT
artikel.naam,
afbeelding.Artikel_id,
afbeelding.Bestandstype
FROM
artikel
JOIN afbeelding ON artikel.id = afbeelding.Artikel_id
WHERE
artikel.id = 23
artikel.naam,
afbeelding.Artikel_id,
afbeelding.Bestandstype
FROM
artikel
JOIN afbeelding ON artikel.id = afbeelding.Artikel_id
WHERE
artikel.id = 23
Aannames: De tabel 'artikel' heeft een kolom genaamd 'id' die gelijk is aan 'Artikel_id' in de tabel 'afbeelding' en in bovenstaand voorbeeld wil je nr. 23 opvragen.
Mocht er geen verband zijn tussen beide tabellen, geen foreignkey aanwezig zijn, dan kan bovenstaande query uiteraard niet, dan gaat het namelijk helemaal niet lukken.
SELECT * FROM artikels ORDER BY date DESC LIMIT 1
En zo dan?
En zo dan?
Wat dacht je van even testen?
Ps. Waarom is de vraag ineens verdwenen?
Ps. Waarom is de vraag ineens verdwenen?
Omdat ik de vraag te omslachtig stelde
SELECT * FROM artikels ORDER BY date DESC LIMIT 1
= werkt niet
waarom niet?
SELECT * FROM artikels ORDER BY date DESC LIMIT 1
= werkt niet
waarom niet?
Omdat 'date' een foute kolomnaam is?
date bestaat niet als kolom ik heb eerst Gegoogled maar vind bijna niks over
MySQL statement om laatste record uit DB te halen
MySQL statement om laatste record uit DB te halen
Gewijzigd op 01/01/1970 01:00:00 door Lars Koning
'SanThe:
Nee, deze naam wordt geaccepteerd, de fout wordt anders te vaak gemaakt.Omdat 'date' een foute kolomnaam is?
Je moet die query natuurlijk wel aanpassen naar je eigen situatie. Aannemend dat jij een kolom in je tabel hebt waarin je een datumtijd-stempel van het plaatsen van een artikel hebt opgenomen, zul je moeten sorteren op die kolom.
Een datumtijd-stempel is namelijk het enige waarmee je kunt sorteren in de tijd en derhalve het laatst toegevoegde artikel kunt ophalen.
Een datumtijd-stempel is namelijk het enige waarmee je kunt sorteren in de tijd en derhalve het laatst toegevoegde artikel kunt ophalen.
Ik heb geen kolom datumtijd-stempel
hoe maak ik die derhalve aan?
waar moet ik opletten.
hoe maak ik die derhalve aan?
waar moet ik opletten.
Hoe je die aanmaakt? Bijvoorbeeld via phpMyAdmin?
Waar je op moet letten? Geef je kolom een duidelijke naam, bijvoorbeeld 'toegevoegd' en zorg dat het type DATE of DATETIME is.
Waar je op moet letten? Geef je kolom een duidelijke naam, bijvoorbeeld 'toegevoegd' en zorg dat het type DATE of DATETIME is.
welke is beter date of datetime of maakt dat geen snars uit.
En zet hij automatisch de tijd er dan in of moet ik iets aanpassen in mijn artikel_toevoegen script?
En zet hij automatisch de tijd er dan in of moet ik iets aanpassen in mijn artikel_toevoegen script?
Raadseltje: Wat zou er in een DATE worden opgeslagen en wat wordt er in een DATETIME opgeslagen?
Vervolgens mag je gaan bepalen wat voor jou het handigste is.
Vervolgens mag je gaan bepalen wat voor jou het handigste is.
'guido:
En zet hij automatisch de tijd er dan in
Computers doen nooit iets automatisch, tenzij ze daarvoor geprogrammeerd zijn.
Datemtime logisch nu ik erover nadenk maar mijn tweede vraag is hij zet het natuurlijk niet zelf in de database hoe pak ik dit aan?
Quote:
Lijkt me dat je daarin wel iets moet aanpassen. Je wilt namelijk de huidige datum/tijd in de database invoeren tijdens het toevoegen.En zet hij automatisch de tijd er dan in of moet ik iets aanpassen in mijn artikel_toevoegen script?
Dit kun je heel eenvoudig met de sql functie NOW() doen:
Onderstaande heb ik nu echter zonder suc6
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
if(isset($_POST['knop'], $_POST['naam'], $_POST['omschrijving'], $_POST['prijs'])){
$sql = "INSERT INTO artikel (Naam, Omschrijving, Prijs) VALUES ('".$_POST["naam"]."', '".$_POST["omschrijving"]."', ".$_POST["prijs"].")";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen artikel mislukt!" . mysql_error();
exit;
} else {
$artikelid = mysql_insert_id(); // primaire sleutel van zojuist toegevoegde rij
$sql = "INSERT INTO categorie_per_artikel (Artikel_id, Categorie_id) VALUES ('".$artikelid."','".$_POST["categorieid"]."')";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen categorie mislukt!" . mysql_error();
exit;
}
$sql ="INSERT INTO artikel (toegevoegd,)";
VALUES ('titel', NOW())";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen datumtijd mislukt!" . mysql_error();
exit;
}
echo "OK, uw advertentie ".$_POST["naam"]." is toegevoegd.";
} else {
?>
if(isset($_POST['knop'], $_POST['naam'], $_POST['omschrijving'], $_POST['prijs'])){
$sql = "INSERT INTO artikel (Naam, Omschrijving, Prijs) VALUES ('".$_POST["naam"]."', '".$_POST["omschrijving"]."', ".$_POST["prijs"].")";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen artikel mislukt!" . mysql_error();
exit;
} else {
$artikelid = mysql_insert_id(); // primaire sleutel van zojuist toegevoegde rij
$sql = "INSERT INTO categorie_per_artikel (Artikel_id, Categorie_id) VALUES ('".$artikelid."','".$_POST["categorieid"]."')";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen categorie mislukt!" . mysql_error();
exit;
}
$sql ="INSERT INTO artikel (toegevoegd,)";
VALUES ('titel', NOW())";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen datumtijd mislukt!" . mysql_error();
exit;
}
echo "OK, uw advertentie ".$_POST["naam"]." is toegevoegd.";
} else {
?>
Je moet zo te zien een heel duidelijke error krijgen.
Ja was weer te snel en te onzorgvuldig
hij POST nu 0000-00-00 00:00:00 in veld toegevoegd
hij POST nu 0000-00-00 00:00:00 in veld toegevoegd
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if(isset($_POST['knop'], $_POST['naam'], $_POST['omschrijving'], $_POST
['prijs'])){
$sql = "INSERT INTO artikel (Naam, Omschrijving, Prijs) VALUES ('".$_POST
["naam"]."', '".$_POST["omschrijving"]."', ".$_POST["prijs"].")";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen artikel mislukt!" . mysql_error();
exit;
} else {
$artikelid = mysql_insert_id(); // primaire sleutel van zojuist toegevoegde rij
$sql = "INSERT INTO categorie_per_artikel (Artikel_id, Categorie_id) VALUES
('".$artikelid."','".$_POST["categorieid"]."')";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen categorie mislukt!" . mysql_error();
exit;
}
$sql ="INSERT INTO artikel (toegevoegd,) VALUES ('".$_POST["titel"].")";
}
echo "OK, uw advertentie ".$_POST["naam"]." is toegevoegd.";
} else {
?>
if(isset($_POST['knop'], $_POST['naam'], $_POST['omschrijving'], $_POST
['prijs'])){
$sql = "INSERT INTO artikel (Naam, Omschrijving, Prijs) VALUES ('".$_POST
["naam"]."', '".$_POST["omschrijving"]."', ".$_POST["prijs"].")";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen artikel mislukt!" . mysql_error();
exit;
} else {
$artikelid = mysql_insert_id(); // primaire sleutel van zojuist toegevoegde rij
$sql = "INSERT INTO categorie_per_artikel (Artikel_id, Categorie_id) VALUES
('".$artikelid."','".$_POST["categorieid"]."')";
if (!mysql_query($sql)) { // voer SQL code uit
echo "Toevoegen categorie mislukt!" . mysql_error();
exit;
}
$sql ="INSERT INTO artikel (toegevoegd,) VALUES ('".$_POST["titel"].")";
}
echo "OK, uw advertentie ".$_POST["naam"]." is toegevoegd.";
} else {
?>
Je voegt ook nergens met NOW() de huidige datum en tijd in?
'SanThe:
Je moet zo te zien nog steeds een heel duidelijke error krijgen.




