PHP met Database SQL

Status
Niet open voor verdere reacties.

Viperr

Gebruiker
Lid geworden
23 feb 2009
Berichten
93
Hallo iedereen,

Ik ben bezig met een systeem op te zetten waar je snel en overzichtelijk een database kan beheren vanaf een website, dus zonder het gedoe met PHPMyadmin.
Het gaat om een database van de Metro van Toronto.
De volgende pagina's heb ik:

INDEX (index.php)
PHP:
<?PHP
include('check.php');
?>
<!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Welkom</title>
</head>
<body link="#000000" vlink="#000000">
<h2>Inhoudsopgave Tabellen Database Metro Toronto</h2>
<p>
<ul>
<li><a href=metrolijn.php>Tabel MetroLijn</a></li>
<li><a href=metrolijnzat.php>Tabel MetroLijnZaterdag</a></li>
<li><a href=metrolijnzon.php>Tabel MetroLijnZondag</a></li>
<li><a href=metrooverstapstation.php>Tabel MetroOverstapStation</a></li>
<li><a href=metrostationlijn.php>Tabel MetroStationLijn</a></li>
<li><a href=metrostationreistijd.php>Tabel MetroStationReistijd</a></li>
</br></ul></p>
<button onClick="window.location='logout.php'">Uitloggen</button></br>

</body>
</html>

EEN LAAG ONDER DE INDEX (metrolijn.php)
PHP:
<?PHP
include('check.php');
include ('Includes/verbinding.inc.php');
?>
<!DOCTYPE html PUBLIC 
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Welkom</title>
</head>
<body>
<p>
<table border="1" cellpadding="5">
	<tr>
		<th>Lijnnaam</strong></th>
		<th>Begin Tijd</strong></th>
		<th>Eind Tijd</strong></th>
	</tr>					
<?php
	$database = "venbruxj_metro";
	$db = mysql_select_db("$database", $verbinding) or die("Database error:" . mysql_error());
	$query = "SELECT * FROM MetroLijn";
	$resultaat = mysql_query($query);
	while ($row = mysql_fetch_array($resultaat)) {
?>
	<tr>
		<td><?php print($row["lijnnaam"]); ?>  </td>			
		<td><?php print($row["Begintijd"]); ?> </td>
		<td><?php print($row["Eindtijd"]); ?>  </td>
	</tr>
<?php
}
?>
</table>				
</p>
<button onClick="window.location='toevoegenmetrolijn.php'">Tabel Aanpassen</button>
</br>
</br>
<button onClick="window.location='index.php'">Terug</button>
<button onClick="window.location='logout.php'">Uitloggen</button></br>
</body>
</html>

TWEEDE LAAG ONDER DE INDEX (toevoegenmetrolijn.php)
PHP:
<?php
print "<html>";
print "<head>";
print "<title>Aanpassen Tabel Metrolijn</title>";
print "</head>";
print "<body>";
print "<h2> Aanpassen Tabel MetroLijn</h2>";
print "<form action=\"aanpassenmetrolijn.php\" method=\"post\">";
print "<table cellpadding=\"2\">";
	print "<tr>";
		print "<td align=\"left\">Lijnnaam:</td>";
		print "<td><input type=\"text\" name=\"lijnnaam\" size=\"25\"></td>";		
	print "<tr>";
		print "<td align=\"left\">Begin Tijd:</td>";
		print "<td><input type=\"text\" name=\"begintijd\" size=\"25\"></td>";	
	print "<tr>";
		print "<td align=\"left\">Eind Tijd:</td>";
		print "<td><input type=\"text\" name=\"eindtijd\" size=\"25\"></td>";
	print "</tr>";
	print "</tr>";
		print "<tr>";
		print "<td><input type=\"submit\" value=\"Toevoegen\"></td>";	
		print "<td><input type=\"reset\" value=\"Velden leegmaken\"></td>";
	print "</tr>";
print "</table>";
print "</form>";
print "<button onClick=\"window.location='metrolijn.php'\">Terug</button>";
print "</body>";
print "</html>";
?>


PHP BESTAND BIJ toevoegen (aanpassenmetrolijn.php)
PHP:
//<?php
//include("includes/verbinding.inc.php");
//$lijnnaam = addslashes($_POST["lijnnaam"]);
//$begintijd = addslashes($_POST["begintijd"]);
//$eindtijd = addslashes($_POST["eindtijd"]);
//$sql = "INSERT INTO MetroLijn(lijnnaam, Begintijd, Eindtijd) VALUES('$lijnnaam','$begintijd','$eindtijd')";
//$resultaat = mysql_query(sql);
//print "De gegevens van $lijnnaam zijn opgeslagen in de tabel.";
//?>

VERBINDINGSBESTAND (includes/verbinding.inc.php)
PHP:
<?php
$host = "localhost";
$gebruiker = "venbruxj_root";
$wachtwoord = "root";
$verbinding = mysql_connect("$host", "$gebruiker", "$wachtwoord")
or die("verbinding met de server mislukt:" . mysql_error());
?>

aanpassenmetrolijn.php staat nog volledig met '//' omdat ik niet wil dat ik per ongeluk de database verander.
Het probleem dat ik nu heb en waar ik tot nu toe nog niet ben uitgekomen is het volgende.
Op de pagina van het toevoegen staan nu een paar invoervelden waarmee je een nieuwe metrolijn kan toevoegen aan de database.
Daaronder wil ik nog 2 dingen hebben staan:

- updaten van lijnen
- deleten van lijnen

Maar ik kom elke keer op internet en in een boekje wat ik heb alleen maar tegen hoe je een specifieke waarde kan veranderen met een php code.
Dit terwijl ik juist wil hebben bij het updaten dat je eerst een lijn selecteert uit een lijstje en vervolgens een waarde kan aanpassen ofzoiets dergelijks (ik weet niet wat de beste manier is)
BIj het deleten wil ik dat je een lijn kan selecteren en dat deze dan volledig gedeleted wordt uit de tabel..

In de list in index.php staan nog meerdere tabellen waarnaar gelinkt wordt hiervoor geldt het zelfde verhaal, alleen die kan ik zelf oplossen als ik deze ene weet.

Alvast bedankt!

Viperr


ps als er vragen zijn of iemand ondekt iets fouts, zeg het maar ! :P graag zelfs!
 
Als je wilt dat je een veld kunt wijzigen, dan moet je het veld ophalen (met een SELECT), tonen op het scherm, en daarna als de gebruiker het veld ingevuld heeft en invoert, het oude veld overschrijven met het nieuwe met een UPDATE.

Daarna kun je met een SELECT weer de nieuwe data ophalen en op het scherm tonen.


Verwijderen werkt ongeveer hetzelfde; je SELECT de huidige velden, toont die op het scherm en als de gebruiker een veld wil verwijderen dan stuurt hij het ID van dat veld door (je kunt dat bijv. opslaan in een checkbox of in een hidden bij een knop ofzo) en dan kun je een DELETE aanroepen op dat ID.
 
Ik begrijp het nog niet helemaal.. :P
het volgende lijkt mij het beste/mooiste:

DE TABEL:

[table="width: 500, class: dotted"][tr][td]lijnaam [/td][td] begintijd [/td][td] eindtijd[/td][/tr]
[tr][td]Bloor-Danforth [/td][td] 20460 [/td][td] 5460[/td][/tr]
[tr][td]Scarborough RT [/td][td] 20700 [/td][td] 5460[/td][/tr]
[tr][td]Sheppard [/td][td]19860 [/td][td] 8700[/td][/tr]
[tr][td]Yonge-University-Spadina [/td][td]20400 [/td][td] 5460[/td][/tr][/table]

Dan moet er ergens een mogelijkheid zijn om een bepaalde waarde te selecteren, bijvoorbeeld door er op de klikken
en dat er dan verschijnt:

oude waarde: (bijvoorbeeld 8700)
nieuwe waarde: 8750

<button>updaten</button>

Zoiets heb ik in gedachten
maar ik heb nog geen idee hoe dit uit te voeren is
 
Zoals ik al zei ;)

* Stap 1: Haal alle data uit de tabel op, en toon deze op het scherm. Plak aan het eind van elke rij een linkje naar een pagina "wijzig", met in de url het ID dat gewijzigd moet worden, bijv "wijzig.php?id=1"

* Stap 2: Op de pagina wijzig.php, lees met $_GET['id'] uit welke id de gebruiker wil wijzigen. Haal die data op, maak een Form aan op de pagina met velden die je kunt updaten, met de huidige waarden erin

* Stap 3: Koppel een knop aan het formulier naar hetzelfde formulier. Als het formulier is ingezonden, controleer de door de gebruiker ingezonden waarden, en maak een UPDATE query om de data te wijzigen.

Als je dit niet kunt volgen, moet je misschien even wat tutorials volgen om een beter begrip te krijgen van PHP en SQL.
 
Oke bedankt
ik zal dit uns proberen
als ik nog ergens mee zit zet ik het weer op het forum:P
 
Ik kom er nog niet helemaal uit
Ik heb nu het volgende:


De pagina waar de tabel staat met wijzig erbij
PHP:
<?php
include('check.php'); 
include ('Includes/verbinding.inc.php');
?>
<html>
<head>
<title>Aanpassen Tabel Metrolijn</title>
</head>
<body>
<h2> Aanpassen Tabel MetroLijn</h2>
<form action="aanpassenmetrolijn.php" method="post">
<h3>Toevoegen van een metrolijn</h3>
<table cellpadding="2">
	<tr>
		<td align="left">Lijnnaam:</td>
		<td><input type="text" name="lijnnaam" size="25"></td>	
	<tr>
		<td align="left">Begin Tijd:</td>
		<td><input type="text" name="begintijd" size="25"></td>	
	<tr>
		<td align="left">Eind Tijd:</td>
		<td><input type="text" name="eindtijd" size="25"></td>
	</tr>
	</tr>
		<tr>
		<td><input type="submit" value="Toevoegen"></td>	
		<td><input type="reset" value="Velden leegmaken"></td>
	</tr>
</table>
</form> 

<p>
<table border="1" cellpadding="5">
	<tr>
		<th>Lijnnaam</strong></th>
		<th>Begin Tijd</strong></th>
		<th>Eind Tijd</strong></th>
		<th></th>	
	</tr>					
<?php
	$database = "venbruxj_metro";
	$db = mysql_select_db("$database", $verbinding) or die("Database error:" . mysql_error());
	$query = "SELECT * FROM MetroLijn";
	$resultaat = mysql_query($query);
	while ($row = mysql_fetch_array($resultaat)) {
?>
	<tr>
		<td><?php print($row["lijnnaam"]); ?> </td>			
		<td><?php print($row["Begintijd"]); ?> </td>
		<td><?php print($row["Eindtijd"]); ?>  </td>
		<td><a href="updatemetrolijn.php?lijnnaam=Bloor-Danforth">Wijzig</a></td>
					
	</tr>
<?php
}
?>
</table>				
</p>

<button onClick="window.location='metrolijn.php'">Terug</button>
</body>
</html>


FORMULIER
PHP:
<?php
include("Includes/verbinding.inc.php");
echo $_GET["lijnnaam"];
?>
<html>
<head>
<title>Aanpassen Tabel Metrolijn</title>
</head>
<body>
<form action="update1.php" method="post">
<h3>Wijzigen van een metrolijn</h3>
<table cellpadding="2">
	<tr>
		<td align="left">Lijnnaam:</td>
		<td><input type="text" name="lijnnaam" size="25"></td>	
	<tr>
		<td align="left">Begin Tijd:</td>
		<td><input type="text" name="begintijd" size="25"></td>	
	<tr>
		<td align="left">Eind Tijd:</td>
		<td><input type="text" name="eindtijd" size="25"></td>
	</tr>
	</tr>
		<tr>
		<td><input type="submit" value="Toevoegen"></td>	
		<td><input type="reset" value="Velden leegmaken"></td>
	</tr>
</table>
</form> 
<button onClick="window.location='toevoegenmetrolijn.php'">Terug</button>
</body>
</html>

UPDATE1.php
PHP:
<?php
include("Includes/verbinding.inc.php");
$lijnnaam = addslashes($_POST["lijnnaam"]);
$begintijd = addslashes($_POST["begintijd"]);
$eindtijd = addslashes($_POST["eindtijd"]);
$wherecode = addslashes($_GET["lijnnaam"]);
$sql = "UPDATE MetroLijn SET lijnnaam = $lijnnaam, begintijd = $begintijd, eindtijd = $eindtijd WHERE lijnnaam = ";
$resultaat = mysql_query(sql);
print "De gegevens van $lijnnaam zijn opgeslagen in de tabel.";
?>

En ik heb hier meerdere problemen bij:

1. bij het wijzigen: de links achter de row.
hoe kan ik deze het beste neerzetten, want ik weet niet hoe ik het voor elkaar krijg dat er achter elke rij een andere link komt te staan
want nu staat achter elke rij dezelfde link
terwijl er achter de tweede rij een link moet staan naar de lijnnaam van die rij
2. ik krijg ik als ik bijv de eindtijd op het formulier invul en dus wil aanpassen wel het bericht dat de tabel succesvol is aangepast maar als ik dan ga kijken is er niets veranderd
3. hoe krijg ik de huidige waarden direct in de invoervelden/


Mijn excuses voor mijn weinige kennis van Php
maar voor school moeten we een grote opdracht maken en daar is dit onderdeel van
Zelf maar beperkt materiaal gekregen van school waar amper iets instaat
en ik ben ook continu aant zoeken op internet maar ik kom niet tegen wat ik nodig heb
zou het fijn vinden als iemand me zou antwoorden op mijn bovenstaande vragen

(mijn deadline is morgen, dus ik heb een beetje haast :P)
 
1. bij het wijzigen: de links achter de row.
hoe kan ik deze het beste neerzetten, want ik weet niet hoe ik het voor elkaar krijg dat er achter elke rij een andere link komt te staan
want nu staat achter elke rij dezelfde link
terwijl er achter de tweede rij een link moet staan naar de lijnnaam van die rij

HTML:
<td><a href="updatemetrolijn.php?lijnnaam=Bloor-Danforth">Wijzig</a></td>
Hier staat de lijnnaam hardgecodeerd in het HTML-bestand. In plaats daarvan moet je de lijnnaam uit de database gebruiken:
PHP:
echo '<td><a href="updatemetrolijn.php?lijnnaam=' . $row['lijnnaam'] . '">Wijzig</a></td>'

2. ik krijg ik als ik bijv de eindtijd op het formulier invul en dus wil aanpassen wel het bericht dat de tabel succesvol is aangepast maar als ik dan ga kijken is er niets veranderd

PHP:
$sql = "UPDATE MetroLijn SET lijnnaam = $lijnnaam, begintijd = $begintijd, eindtijd = $eindtijd WHERE lijnnaam = ";
$resultaat = mysql_query(sql);
print "De gegevens van $lijnnaam zijn opgeslagen in de tabel.";

Je query klopt niet. Je moet aangeven welk record aangepast moet worden en je bent het dollarteken voor "sql" vergeten:
PHP:
$sql = "UPDATE MetroLijn SET lijnnaam = $lijnnaam, begintijd = $begintijd, eindtijd = $eindtijd WHERE lijnnaam = '$wherecode'";
$resultaat = mysql_query($sql);

3. hoe krijg ik de huidige waarden direct in de invoervelden/
Dat is een kwestie van de gegevens opvragen met een query. Daarna kan je ze als "value" er in zetten.
PHP:
echo '<td><input type="text" name="lijnnaam" size="25" value="' . $row['lijnnaam'] . '"></td>';
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan