Beste mede PHP Hulp forum gebruikers,


Voor een opdracht voor school moet ik een configuratiemanagement applicatie maken, nu heb ik vrij weinig ervaring met PHP en MySQL maar ik heb ondertussen wel al een paar simpele php scripts gemaakt.
Nu heb ik het voor elkaar gekregen om een configuratie toe te voegen aan de mysql database door middel van een form, ook heb ik een pagina waarin alle configuraties worden weergegeven in een tabel.
Nu wil ik ook graag een optie/knop in die tabel waarmee ik een specifieke configuratie/record kan aanpassen en updaten, ik heb al op internet naar informatie gezocht maar ik zie door de bomen het bos niet meer.

Kunnen jullie me hier bij helpen?


Met vriendelijke groet,


Niels
Je wilt een waarde in de database aanpassen? Gebruik dan een UPDATE-query.

Zomaar een voorbeeld, bij gebrek aan een extra informatie over je databaseopbouw:

UPDATE settings SET status='aan', optie_zus='dus', optie_zo='dat' WHERE id='1'


Dit heb ik tot nu toe, de pagina waarop een overzicht van de configuratie staan:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="description" content="Venstervullende lay-out met vaste header en 3 kolommen, middelste kan scrollen - voorbeeld. Gebruikt alleen xhtml en css." />
	<title>Home</title>
	<link rel="stylesheet" type="text/css" href="style.css" />
	<link href="/menu_assets/styles.css" rel="stylesheet" type="text/css">
	

</head>
<body>

		
</div></p>
	</div>
	<div id="links">
	
	<div class="menu_simple">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="configuratiebeheer.php">Configuraties</a></li>
<li><a href="ipbeheer.php">IP Beheer</a></li>
<li><a href="patchpunten.php">Patchpunten</a></li>
<li><a href="gebruikers.php">Gebruikers</a></li>
<li><a href="vlans.php">VLAN's</a></li>
</ul>
</div>
	</div>
</div>
		
	</div>
	</div>
	<div id="rechts">
	
	</div>
	<div id="midden">
	
	<?php 
mysql_connect('localhost','root',''); 
mysql_select_db('muziekgebouw') or die (mysql_error()); 



  { 
  ?> 

  
 <h1> Overzicht Configuraties:</h1>
<table border="1" style="width:45%">
<tr> 
<td><b>ID</b></td>
<td><b>Merk</b></td> 
<td><b>Type</b></td>  
<td><b>Serienummer</b></td>
<td><b>Besturingssysteem</b></td>
<td><b>Locatie</b></td>


</tr>


<?php 
  $select_configuratie  = mysql_query('SELECT * FROM `hardwarebeheer`') or die (mysql_error()); 
  while($configuratie = mysql_fetch_array($select_configuratie)) 
    { 
      echo '<tr> 
				<td>'.$configuratie['id'].'</td> 
				<td>'.$configuratie['merk'].'</td> 
				<td>'.$configuratie['type'].'</td> 
				<td>'.$configuratie['serienummer'].'</td> 
				<td>'.$configuratie['os'].'</td> 
				<td>'.$configuratie['locatie'].'</td> 
				
            </tr>'; 
    } 
     echo '</table>'; 
   } 
?>







	
	</div>
</div>
</body>
</html>
Je zou een link kunnen maken naar settings.php, waar je dan aan de hand van GET-waardes aan kan geven welke optie je wilt aanpassen en welke waarde je daarvan wilt gebruiken.

"settings.php?id=1&setting=merk&value=Sony"

Dan even uitlezen en met een UPDATE-query de boel aanpassen.
- gebruik MySQLi of PDO in plaats van mysql_-functies
- zorg dat je een character encoding selecteert bij het maken van je database-connectie

En dan wat Aar zegt: bak een formuliertje waarbij je refereert aan hardwarebeheer.id via een variabele in je URL. (aanroep: wijzig.php?id=1234, uitlezen in wijzig.php via $_GET['id']).
Bedankt voor de reacties!

De id is in dit geval het serienummer van de PC en is ook de PK, moet ik dit veranderen naar autoincrement zodat er steeds een automatische unieke ID word gemaakt voor elke nieuwe configuratie?
Mijn database tabel ziet er nu zo uit:


Niels Hurkmans op 10/04/2015 12:29:50
moet ik dit veranderen naar autoincrement zodat er steeds een automatische unieke ID word gemaakt voor elke nieuwe configuratie?

Dat lijkt mij wel zo handig ja.

EDIT: actually: misschien moet je het serienummer van een PC in een apart veld opslaan met de eigenschap "UNIQUE" als deze ook echt uniek is. Daarnaast heb je een auto-increment veld die als enig doel heeft om de informatie van een record "bij elkaar te houden".
Als het serienummer uniek is dan is het niet nodig om nog eens extra een unieke auto increment kolom als primary key te gebruiken. Men noemt dit niet voor niets surrogate keys.
Het probleem is dat de serienummers van de pc's die we hier hebben nogal lang zijn, voorbeeld: CZCXXXXXX

Hoe krijg ik dit voor elkaar: "bak een formuliertje waarbij je refereert aan hardwarebeheer.id via een variabele in je URL. (aanroep: wijzig.php?id=1234, uitlezen in wijzig.php via $_GET['id'])."
Het formulier maken is geen probleem, maar hoe zorg ik er voor dat als ik op een van de configuraties klik (op het ID denk ik) dat ik dan automatisch naar die pagina word gestuurd waarop ik de configuratie kan aanpassen?
Je haalt met een SELECT-query dan de juiste gegevens op in wijzig.php, aan de hand van het ID-nummer.

Reageren