[PHP] wat doe ik fout?

Status
Niet open voor verdere reacties.

BrEeZeR

Inventaris
Lid geworden
27 apr 2001
Berichten
12.877
Hoi,

Ik ben bezig met een datasysteem voor school en aangezien het met Access niet wou lukken probeer ik het maar in PHP aangezien dit ook meer mogelijkheden heeft en makkelijker te leren is.

Ik heb nu de volgende code :

PHP:
<?
include ("connect.php");
  	$insert = "INSERT INTO probleem (onderwerp, beschrijving, oplossing) VALUES ('$onderwerp','$beschrijving','$oplossing')";
	mysql_query($insert) or die(mysql_error());
	echo "Probleem toegevoegd!";
	?>

Maar zodra ik de pagina opvraag gaat hij direct informatie in de database invoeren (bovenin komt direct 'probleem toegevoegd' te staan en dat is niet de bedoeling) weet iemand wat ik hier fout doe?

Heb de layout / pagina verder in Dreamweaver gemaakt dus lijkt me niet echt nuttig om de code hier te posten.

Alvast bedankt :)
 
Waarom niet:

PHP:
$query = mysql_query("INSERT INTO probleem (onderwerp, beschrijving, oplossing) VALUES ('$onderwerp','$beschrijving','$oplossing')");

Scheelt een regel en is wat overzichtelijker :)

Als je dit script draait gaat hij natuurlijk gelijk alles invoeren. Je kan met een formulier de waardes aan $onderwerp etc. geven. De variabelen worden dan: $_POST['naamvanveld']

Als je het PHP script opslaat als bv. verstuur.php moet je de action van form verstuur.php laten aanroepen.
 
Laatst bewerkt:
je zegt dat je al een pagina eronder hebt staan met het formulier? Maar deze code doet gewoon niets anders dan het inserten. Als je er nog een controle bij in wilt dan moet je dat boven de insert doen...
 
Ik weet niet of je met method="post" of method="get" doet, ik hou de post maar even aan.

PHP:
<?
if(IsSet($_POST['onderwerp'])) // Checken of er wat verstuurd is
{
if(empty($_POST['onderwerp']) || empty($_POST['beschrijving']) || empty($_POST['oplossing'])) // Als er velden leeg zijn, dan...
print("Niet alle velden zijn ingevuld");
else // Als ze allemaal ingevuld zijn, dan...
{
include ("connect.php");
$insert = "INSERT INTO probleem (onderwerp, beschrijving, oplossing) VALUES ('{$_POST['onderwerp']}','{$_POST['beschrijving']}','{$_POST['oplossing']}')";
mysql_query($insert) or die(mysql_error());
echo "Probleem toegevoegd!";
}
}
else // Als er niet wat verstuurd is
print("Error! Er is niks verstuurd");
?>

Als je met get doet, moet je alle $_POST veranderen in $_GET.
 
Dat $POST gebeuren is stukken moeilijker dan wat ik gezien had met $insert = "INSERT INTO bla bla bla.. zoeits valt niet te begrijpen zonder goeie tutorial. (Heb hier 1 die goed is maar die gebruikt dat niet)
 
Geplaatst door BrEeZeR
Dat $POST gebeuren is stukken moeilijker dan wat ik gezien had met $insert = "INSERT INTO bla bla bla.. zoeits valt niet te begrijpen zonder goeie tutorial. (Heb hier 1 die goed is maar die gebruikt dat niet)

Waar begrijp je het niet meer?
 
Het draait ondertussen nadat ik veel gekeken heb naar andere scripts en aantal dingen gewoon geprobeerd had.

De url is http://breezert.linuxsys.nl/datasys/ maar de layout e.d is nog niet helemaal goed (moet wat netter ;))

Wat ik niet snapte is dat de 1 $_POST gebruikt en de ander weer wat anders.. (iets met veiligheid te maken?)
 
Leuk en aardig Dennis.
Maar om nou dit erin te zetten.
Oplossing : Tsja.. niet mijn probleem opzich..
Win je hier klanten mee :D
 
Mooi dat het gelukt is :) Een tip: zorg ervoor dat je database vanaf het begin gelijk goed in elkaar zit. Niet dat je later nog wat toe moet voegen e.d.
 
Ik denk dat ik de problemen maar ga sorteren op ABC.. mocht ik over 2 weken nog geen zoekfunctie in elkaar gezet hebben.

Iwan -> Moest toch even wat testen.. en sommige klanten zijn irritant en willen niks snappen dus dan is zo'n antwoord zeer gepast :p
 
Kweet dat het lastig is, maar kun je neit meteen een tabel aanmaken met status "opgelost" "onopgelost" ?
Das easy dude:cool:
 
Geplaatst door rene_overtoom
Kweet dat het lastig is, maar kun je neit meteen een tabel aanmaken met status "opgelost" "onopgelost" ?
Das easy dude:cool:

Nee, het is een database voor mensen die in een bedrijf werken waar de systeembeheer maar 1 keer in de week kan komen.

Deze mensen moet adhv dit 'programma' hun problemen op kunnen lossen. Dus de status opgelost / onopgelost lijkt me niet zo nuttig ;)
 
Het lijkt allemaal te werken.. bedankt voor het testen allemaal ;)

Met welke PHP functie begin je eigenlijk als je een zoekfunctie maakt? Of is dat beetje teveel voor een PHP n00b als ik..
 
Zoekfunctie voor pagina's of zoekfunctie waarbij je zoekt in de database?
 
Stel dat het veld dat verstuurd de name 'trefwoord' heeft.

PHP:
<?
// mysql connectie gegevens

$query = mysql_query("SELECT * FROM tabel WHERE kolom LIKE '%{$_POST['trefwoord']}%'");

// de % staan voor dat daar nog wat voor en achter mag staan, dat dat niet persé een heel woord hoeft te zijn.
?>
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan