Ik moet voor school een PM systeem maken. Ik heb hierover nihil uitleg gekregen dus ik kan zelf beginnen klooien. Het probleem zit hem erin dat ik de id uit mijn select option maar niet weergegeven krijg, maar deze is wel noodzakelijk voor de rest :s iemand een oplossing ?

de tabel ziet er zo uit:

CREATE TABLE PmInbox (
PmInboxId INT PRIMARY KEY IDENTITY(1,1) NOT NULL,
PmInboxVerzenderId INT FOREIGN KEY REFERENCES Gebruikers(GebruikerId),
PmInboxOntvangerId INT FOREIGN KEY REFERENCES Gebruikers(GebruikerId),
PmInboxOnderwerp VARCHAR(64),
PmInboxTekst VARCHAR(4096),
PmInboxDatum DATETIME,
PmInboxGelezen INT,
);


mijn code die niet werkt:


<table cellpadding="1" cellspacing="1" width="230" align="center">
	<form action="?" method="post">

	<?php

	// dropdown met nicknames
				$sql = "SELECT GebruikerId, GebruikerNickname from Gebruikers ORDER BY GebruikerNickname ASC";
				$result = mssql_query($sql) or die('Kan geen categorie&euml;n selecteren');
				while($line = mssql_fetch_array($result, MSSQL_NUM)) {
					$lijst .= '<option value="'.$line[0].'">'.$line[1].'</option>';
				}

				if($lijst != '') {
					echo '<tr>'.'<td align="left">';
					echo 'Aan:';
					 echo $ontvanger;
					echo '</td>';
					echo '<td align="left">';
					echo '<select name="ontvangers" class="field">'.$lijst.'</select>';
					echo '</td>';
					echo '</tr>';

				}
				?>
	<?php

	###############################
	#   versturen van berichtje	  #
	###############################

	$GebruikerId;  //opgehaald uit tbl gebruikers
 	echo $GebruikerId;

 	// bepalen van id van ontvanger

	 $ontvanger = $_POST['ontvangers'];


	/*$onderwerp = $_POST['onderwerp'];
	$boodschap = $_POST['boodschap'];
	$datum = date('Y-m-d, H-i-s');

if (isset($_POST['verzenden'])) {

	$sql = "INSERT INTO PmInbox (PmInboxVerzenderId,PMInboxOntvangerId,PmInboxOnderwerp,PmInboxTekst,PmInboxDatum) VALUES
	('$verstuurder','$ontvanger','$onderwerp','$boodschap','$datum')";
	$uitvoeren = mssql_query($sql) or die ('kan niet wegschrijven');
}*/
	?>

	<tr>
		<td align="right">Onderwerp:</td><td><input type="text" name="onderwerp"/></td>
	</tr>
	<tr>
		<td valign="right">MSG:</td><td><textarea name="boodschap" rows=8 cols=40 WRAP="soft"></textarea></td>
	</tr>
	<tr>
		<td>&nbsp;</td><td><input type="submit" name="verzenden" class="button" value="verzenden" /></td>
	</tr>
	</form>
</table>

[edit] codetags toegevoegd[/edit]
Ja zo ongeveer. Maar dit:
<?php
$ontvanger = $_POST['ontvangers'];
$onderwerp = $_POST['onderwerp'];
$boodschap = $_POST['boodschap'];
$datum = date('Y-m-d, H-i-s');
?>
Hoort thuis in het eerste if-statement. En dit:
<?php
if(isset($_POST['verzenden']))
?>
Is overbodig aangezien je dat al controleert met if($_SERVER['REQUEST_METHOD'] == 'POST')
zucht schrijft nog altijd niks weg :s
<?php
// Verwerken van het formulier
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
$GebruikerId;
echo $GebruikerId;

$ontvanger = $_POST['ontvangers'];
$onderwerp = $_POST['onderwerp'];
$boodschap = $_POST['boodschap'];
$datum = date('Y-m-d, H-i-s');

// Insert in de database.
$sql = "INSERT INTO PmInbox (PmInboxVerzenderId,PmInboxOntvangerId,PmInboxOnderwerp,PmInboxTekst,PmInboxDatum)
VALUES ('$GebruikerId','$ontvanger','$onderwerp','$boodschap','$datum')";
$uitvoeren = mssql_query($sql) or die ('kan bericht niet wegschrijven');

}
else
{
// Tonen van het formulier:
echo '<table cellpadding="1" cellspacing="1" width="230" align="center">';
echo '<form action="?" method="post">';

// Benodigde gegevens ophalen uit database voor selectionbox
$sql = "SELECT GebruikerId, GebruikerNickname from Gebruikers ORDER BY GebruikerNickname ASC";
$result = mssql_query($sql) or die('Kan geen gebruiker selecteren');
while($line = mssql_fetch_array($result, MSSQL_NUM)) {
$lijst .= '<option value="'.$line[0].'">'.$line[1].'</option>';
}

// Formulier genereren.
if($lijst != '') {
echo '<tr>'.'<td align="left">';
echo 'Aan:';
echo $ontvanger;
echo '</td>';
echo '<td align="left">';
echo '<select name="ontvangers" class="field">'.$lijst.'</select>';
echo '</td>';
echo '</tr>';
}
?>
<tr>
<td align="left">Onderwerp:</td><td><input type="text" name="onderwerp"/></td>
</tr>
<tr>
<td valign="left">MSG:</td><td><textarea name="boodschap" rows=8 cols=40 WRAP="soft"></textarea></td>
</tr>
<tr>
<td>&nbsp;</td><td><input type="submit" name="verzenden" class="button" value="verzenden" /></td>
</tr>
</form>
</table>
<?}?>



dit is het ganse script, het vult momenteel niets in in de DB :s
dit werkt al helemaal, ben ondertussen al pak opgeschoten. bedankt blache voor je hulp. TOpic mag dicht
$datum = date('Y-m-d, H-i-s'); gaat fout! dit is geen datum en gaat problemen opleveren. In een DATETIME (het enige juiste datatype om een datum met tijd op te slaan) mag geen komma komen te staan.

Tevens is het handiger om met de database-functie NOW() de datum en tijd van het heden in te vullen. Daar komt geen letter php-code aan te pas.

Zie verder hoofdstuk 11 voor de datatypes en 12.5 voor de vele handige datum- en tijdfuncties.

Reageren