Gegevens via PHP in MYSQL database

Status
Niet open voor verdere reacties.

KevinE

Gebruiker
Lid geworden
21 jan 2009
Berichten
39
Hallo allemaal,

Voor een project op school ben ik bezig met een website voor een basisschool. De bedoeling is dat docenten kunnen inloggen op de website en vanuit daar mededelingen kunnen plaatsen. Nu heb ik het login script werkend maar bij het maken van het script voor de mededelingen loop ik tegen een probleem op. De gegevens moeten in een MySQL database opgeslagen worden vanuit de form via PHP. Hier onder het html script:

HTML:
HTML:
		<table id="mededeling">
				<form name="formulier" method="post" action="mededelingen.php">
					<tr>
					<td>Betreft:</td><td> <input name="betreft" type="text" maxlength="40" id="betreft"> </td>
					</tr>
					<tr>
					<td>Mededeling:</td><td> <textarea name="mededelingen" cols="40" rows="5" maxlength="600" id="mededelingen"></textarea></td>
					</tr>
					<tr>
					<td></td><td><input class="sendbutton" type="submit" name="submit" value="Mededeling plaatsen"></td>
					</tr>
				</form>
		</table>
PHP:
PHP:
<?php
		session_start();
			$betreft= $_POST["betreft"];
			$mededelingen= $_POST["mededelingen"];			
			$submit= $_POST["submit"];

				
				
		if($submit) {
			$db = mysql_connect("localhost" ,"root",".(wachtwoord)");
			$dbnaam = "bijenkorf";
			mysql_select_db($dbnaam, $db) or die("De database is helaas niet beschikbaar, hierdoor kunt u geen mededelingen plaatsen.");
			$insert = "INSERT INTO mededelingen (betreft,mededelingen) VALUES (\"$betreft\",\"$mededelingen\")";
			$query = mysql_query($insert);
					}
?>
Als ik nu iets invul bij betreft en mededeling en op mededeling plaatsen klik kom ik op een witte pagina en gebeurd er verder niks. Om te kijken of het script wel uitgevoerd werd (en goed uitgevoerd werd) heb ik na de $query even een echo geplaatst met hallo en dan geeft de website ook hallo terug. Het script word dus uitgevoerd. Nu ga ik in de bewuste tabel in de database kijken en daar staat het aantal records nog steeds op 0. Er gaat dus ergens iets fout want er word niks in de database geschreven. Kan iemand me vertellen wat er precies fout gaat?

Voor alle duidelijkheid een leraar moet eerst inloggen met de eerste 2 letters van zijn achternaam en de eerste 2 letters van zijn voornaam (Voorbeeld: Jan Janssen logt in met jaja). De gebruiker die de gegevens moet gaan verzenden is gewoon de root gebruiker die alle rechten heeft.

Ook moet er uiteindelijk bijkomen wie de mededeling heeft geplaatst. Nu wil ik dat niet op de loginnaam hebben met jaja maar op de hele naam bijvoorbeeld Jan Janssen. Op dit moment heb ik een andere tabel met users met daarin de velden: Username, Password en Naam waarin naam de hele naam van deze persoon is. Hoe kan ik deze toevoegen aan de uiteindelijk te tonen mededeling op een andere pagina?

Hopelijk kan iemand met met deze twee vragen helpen. Bijvoorbeeld dank!

Kevin
 
Laatst bewerkt door een moderator:
Leuk project, ik denk dat ik de fout heb gezien. Je escaped namelijk " terwijl je die gewoon heel wil hebben. Dan ziet het er zo uit:
Code:
$sql = "INSERT INTO table_name (column1) VALUES (".$var1.")";

Je tweede vraag is op twee manieren op te lossen. Je kunt namelijk een join uitvoeren waarin je zegmaar een group maakt. In die group kun je dan meerdere velden uit verschillende tabelen halen. Dit is de snelste en beste manier maar wel de lastigste als je niet zoveel van sql weet. De tweede manier is om gewoon een nieuwe select query te maken met een WHERE erin.
 
Laatst bewerkt:
Leuk project, ik denk dat ik de fout heb gezien. Je escaped namelijk " terwijl je die gewoon heel wil hebben. Dan ziet het er zo uit:
Code:
$sql = "INSERT INTO table_name (column1) VALUES (".$var1.")";

Je tweede vraag is op twee manieren op te lossen. Je kunt namelijk een join uitvoeren waarin je zegmaar een group maakt. In die group kun je dan meerdere velden uit verschillende tabelen halen. Dit is de snelste en beste manier maar wel de lastigste als je niet zoveel van sql weet. De tweede manier is om gewoon een nieuwe select query te maken met een WHERE erin.

Oke bedankt voor je reactie! Maar hoe komt die code er dan uit te zien zoiets als dit?

PHP:
$sql = "INSERT INTO mededelingen (betreft,mededelingen) VALUES (".$betreft." . ".$mededelingen.")";

of zit ik nu helemaal fout?

EDIT:

Heb het inmiddels opgelost met behulp van een andere leraar. Hieronder de code voor diegene die hem wil hebben:

PHP:
<?php
		session_start();
			$betreft= $_POST["betreft"];
			$mededelingen= $_POST["mededelingen"];			
			$submit= $_POST["submit"];

		if($submit) {
			$db = mysql_connect("localhost" ,"root","test");
			$dbnaam = "mededelingen";
			mysql_select_db($dbnaam, $db) or die("De database is helaas niet beschikbaar, hierdoor kunt u geen mededelingen plaatsen.");
			$sql = "INSERT INTO `mededelingen`.`mededelingen` (`betreft`, `mededeling`) VALUES ('$betreft', '$mededelingen');";
			$query = mysql_query($sql, $db);
			
				header("location: mededeling_geplaatst.php");
					}
?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan