laatste artikel database
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.
En zo dan?
Ps. Waarom is de vraag ineens verdwenen?
SELECT * FROM artikels ORDER BY date DESC LIMIT 1
= werkt niet
waarom niet?
Omdat 'date' een foute kolomnaam is?
MySQL statement om laatste record uit DB te halen
Gewijzigd op 01/01/1970 01:00:00 door Lars Koning
SanThe schreef op 21.11.2007 10:13:
Nee, deze naam wordt geaccepteerd, de fout wordt anders te vaak gemaakt.Omdat 'date' een foute kolomnaam is?
Een datumtijd-stempel is namelijk het enige waarmee je kunt sorteren in de tijd en derhalve het laatst toegevoegde artikel kunt ophalen.
hoe maak ik die derhalve aan?
waar moet ik opletten.
Waar je op moet letten? Geef je kolom een duidelijke naam, bijvoorbeeld 'toegevoegd' en zorg dat het type DATE of DATETIME is.
En zet hij automatisch de tijd er dan in of moet ik iets aanpassen in mijn artikel_toevoegen script?
Vervolgens mag je gaan bepalen wat voor jou het handigste is.
guido schreef op 21.11.2007 10:41:
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:
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.
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 schreef op 21.11.2007 11:11:
Je moet zo te zien nog steeds een heel duidelijke error krijgen.