Error bij Titel

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mike vd Veer

Mike vd Veer

14/03/2008 20:31:00
Quote Anchor link
Hee, weet iemand waarom hij hier niet verzend? Want ik krijg ''Unknow column 'titel' in 'field list''' bij dit script!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
include('connect.php');

$query = mysql_query("SELECT id, categorienaam FROM categorie ORDER BY id ASC") or die(mysql_error());

while($data = mysql_fetch_assoc($query)) {

?>

<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
" method="post">
Titel:
<input type="text" name="titel"><br />
Auteur:
<input type="text" name="auteur"><br />
Categorie: <SELECT NAME="hoofdcategorie">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
echo "<OPTION VALUE='" . $data['id'] . "'>" . $data['categorienaam'] . "";
      }

      ?>

</SELECT>
Bericht:<br />
<textarea name="tekst" cols="35" rows="10"></textarea><br />
<input type="submit" name="stuur" value="Stuur !">
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if (!isset($_POST['stuur'])) {
}
else {
$titel = trim($_POST['titel']);
$auteur = trim($_POST['auteur']);
$categorie = trim($_POST['categorie']);
$bericht = trim($_POST['tekst']);
$maanden = array("januari", "februari", "maart", "april", "mei", "juni",
         "juli", "augustus", "september", "oktober", "november", "december");
$date = date("j ") . $maanden[date("n") - 1] . date(" Y");
    mysql_query("INSERT INTO nieuws_posts SET titel='". $titel ."', auteur='".$bericht."', datetime='".$date."', tekst='".$bericht."', hoofdcategorie='".$categorie."'") or die (mysql_error());
    echo"Het bericht is toegevoegd!</a>";
}

?>


Mike,
 
PHP hulp

PHP hulp

24/11/2024 20:08:45
 
Sebastiaan Blaas

Sebastiaan Blaas

14/03/2008 20:34:00
Quote Anchor link
je haalt iig insert en update statement door elkaar
 
Frank -

Frank -

14/03/2008 20:36:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ORDER BY id ASC
Dit mag je lezen als: sorteer op niks en dan oplopend. Wat levert dan voor resultaat op? Niks... Een id is niks, betekent niks. Ga er dan ook geen betekenis aan toekennen, dat gaat altijd fout. Met een id herken je een uniek record, wat er in dit record staat, dat is een ander verhaal en daar zegt het id helemaal niks over.

Jouw datumtijd is geen datum met tijd, het is niet meer dan een stuk waardeloze tekst. Ga maar eens sorteren... Dat gaat niet lukken. Een datum met tijd sla je op in een DATETIME in het formaat yyyy-mm-dd hh:mm:ss. Dat je dat op het scherm anders wilt presenteren, staat daar helemaal los van en is een ander probleem.

Jouw query loopt stuk op de onbekende kolom 'titel', zie de foutmelding en jouw datamodel.

@Sebas: Goed gezien, het was mij niet eens opgevallen... Die INSERT is inderdaad hartstikke fout!
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Miniejjj

Miniejjj

14/03/2008 21:33:00
Quote Anchor link
Id is toch degelijk wat, een uniek nummer ( dit heoft trouwens niet zo te zijn ) en je kan daarop zeker sorteren. Daar dus niets aan veranderen.

Wat de 1e reactie al zei en de error trouwens ook , is dat titel in de query foutstaat, dit komt omdat je het gebruikt als UPDATE query.

Kijk even op internet hoe ze het daar hebben gedaan en verander het ;)
 
Frank -

Frank -

14/03/2008 21:43:00
Quote Anchor link
Miniejjj schreef op 14.03.2008 21:33:
Id is toch degelijk wat, een uniek nummer ( dit heoft trouwens niet zo te zijn ) en je kan daarop zeker sorteren. Daar dus niets aan veranderen.
Maar waar sorteer je dan op? Nergens op, geen mens die 284 of 193784 iets zegt, daar doe je als gebruiker zelfs helemaal niks mee. Een id is voor intern gebruik in de database, verder is het niks. En sorteren op niks, dat levert niks op. Ook niet als jij denkt van wel, je maakt dan een denkfout. Een id is een identifier, identifier 373 en identifier 2194 zijn allebei identifiers. Maar wat zegt dit nummertje nu over de inhoud? Niks, helemaal niks. id 2194 kan data bevatten die veel ouder is dan de data van id 373, dat is niks bijzonders.

Zet maar eens een stamboom in een database:
- jezelf
- je vader
- je moeder
- je opa
- je oma
- je zusje
- etc.

Nu zul jij wellicht id 1 hebben, maar zegt dit iets over jouw leeftijd? Nee. Jouw oma heeft een id lager dan die van je zusje, is zij dan jonger? Nee. Waarom niet? Omdat haar geboortedatum (die hier nergens staat!) anders is. Het id zegt niks! Zelfs niet over de volgorde van invoeren, ga maar eens klooien met oude backups en intergratie van verschillende systemen in 1 nieuw systeem. De oudste data kan zomaar de nieuwste id's krijgen.

Jongens, hou op over dat geklets over volgordes met id's, die bestaan gewoon niet. Het is een identifier en dat is het. punt.
 
- -

- -

14/03/2008 22:07:00
Quote Anchor link
Als je unieke ID's heb, is de volgorde er wel met bijvoorbeeld aanmeldingen. Als het auto_increment is tenminste.

Je kan dan namelijk niet meer ID 2 krijgen als er al 10 zijn aangemeld.
 
Frank -

Frank -

14/03/2008 22:13:00
Quote Anchor link
Kruidnootje.nl schreef op 14.03.2008 22:07:
Als je unieke ID's heb, is de volgorde er wel met bijvoorbeeld aanmeldingen. Als het auto_increment is tenminste.

Je kan dan namelijk niet meer ID 2 krijgen als er al 10 zijn aangemeld.
Nee, die is er niet, ga maar eens oude data uit een ander systeem samenvoegen met je huidige systeem. Of een backup terug zetten in een situatie waarbij je opnieuw bent gaan tellen met de auto_increment en ondertussen ook al nieuwe data in de database hebt staan... (denk aan een servercrash)

Een id kent geen volgorde, kent geen ouderdom, etc. etc. etc. Het is een identifier en that's it.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.