Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  10 1130
Hei. Jeg har et SQL database register over mine "Kunder"
Har laget et web grensesnitt der jeg kan hente frem kunde data og lagre nye kunder.

Så kommer det jeg sliter med og det er å endre kunde opplysninger.
Database tabellen er slik:

kundenr (int(5) NULL standard:Null)
Resten er VARCHAR (25) - username - userpassord - fornavn - etternavn - adresse - postnr - sted - tlf - epost - abbonementer - priv_for - rabbat - kommentar

Endre kunde skjema (html / php)

Kode

<h2>Endre en kunde</h2>
				<p>Når du trykker på knappen, blir kunden oppdatert i databasen</p>
				<form action='endre_kunde_registrer.php' method='get'>
					<table cellpadding='10' width='400'>
						<tr>
						<!-- Alternativ kode-->
							<td>Kunde nummer:
							</td>
							<td>
							
								<select name='endre_kundenr'>
								<option value='ingen valgt'>--Velg kunde nummer fra listen--</option>
									<?php
									//tilkobling
										$tilkobling = mysql_connect("localhost",
																"ertsadat_admin",
																"**********");
										mysql_select_db("ertsadat_mine_sider", $tilkobling);
										
									//Henter db kolone fra db table
										$sql = "SELECT kundenr, fornavn, etternavn
										FROM kunder";
									//Resultat
										$resultat = mysql_query($sql, $tilkobling);
									//til slutt
										while ($rad = mysql_fetch_array($resultat)) {
									//henter en og en rad som en assosiativ matrise
										$id = $rad['kundenr'];
										$navn = $rad['fornavn'] . " " . $rad['etternavn'];
										echo "<option value='$id' name='kundenr'>'$navn'</option>";
										}
									?>
							</td>
						</tr>
						<tr>
							<td>Brukernavn:</td>
							echo "<td><input type='text' value="" name='username'>
							</td>
						</tr>
						<tr>
							<td>Passord:</td>
							<td><input type='text' name='userpassord'></td>
						</tr>
						<tr>
							<td>Fornavn:</td>
							<td><input type='text' value="" name='fornavn'></td>
						</tr>
						<tr>
							<td>Etternavn:</td>
							<td><input type='text' name='etternavn'></td>
						</tr>
						<tr>
							<td>Adresse:</td>
							<td><input type='text' name='adresse'></td>
						</tr>
						<tr>
							<td>Post nummer:</td>
							<td><input type='text' name='postnr'></td>
						</tr>
						<tr>
							<td>Sted:</td>
							<td><input type='text' name='sted'></td>
						</tr>
						<tr>
							<td>Telefon nummer:</td>
							<td><input type='text' name='tlf'></td>
						</tr>
						<tr>
							<td>e-post:</td>
							<td><input type='text' name='epost'></td>
						</tr>
						<tr>
							<td>Abbonemanter:</td>
							<td><input type='text' name='abbonementer'></td>
						</tr>
						<tr>
							<td>Privat eller forettningskunde?:</td>
							<td><input type='text' name='priv_for'></td>
						</tr>
						<tr>
							<td>Rabbatter:</td>
							<td><textarea rows='4' cols='30'
							name='rabbat'></textarea></td>
						</tr>
						<tr>
							<td>Kommentarer:</td>
							<td><textarea rows='4' cols='30'
							name='kommentar'></textarea></td>
						</tr>
						<tr>
							<td><input type='submit' value='Lagre kunde'></td>
							<td><a href="kunder.php">Avbryt / Tilbake</a></td>
						<tr>
					</table>
					</form>

Endre kunde register (php)

Kode

<?php
			//Lager en konstant med tilbake-lenke
			define("TILBAKE",
				"<p><a href='javascript:history.go(-1)'>Tilbake</a></p>");
			//$endre_kundenr = $_GET['kundenr'];
			
			//Hvis ikke en kunde ble valgt
			if ( $endre_kundenr == "ingen valgt" ) {
				die("<p>Prosjektet må ha en kontaktperson</p>" . TILBAKE );
			}
			//$id = $_GET['id']; //ID
			$kundenr = $_GET['kundenr']; //kundenr
			$username = $_GET['username']; //Brukernavn
			$userpassord = $_GET['userpassord']; //Passord
			$fornavn = $_GET['fornavn']; //For navn
			$etternavn = $_GET['etternavn']; //Etter navn
			$adresse = $_GET['adresse']; //Adresse
			$postnr = $_GET['postnr']; //Post nr
			$sted = $_GET['sted']; //Sted
			$tlf = $_GET['tlf']; //TLF
			$epost = $_GET['epost']; //E-post
			$abbonementer = $_GET['abbonementer']; //Abbomenter
			$priv_for = $_GET['priv_for']; //Privat eller foretningskunde
			$rabbat = $_GET['rabbat']; //Rabbat
			$kommentar = $_GET['kommentar']; //Kommentar
			
			//Koble til databasen
			$tilkobling = mysql_connect("localhost",
											"ertsadat_admin",
											"**********");
			mysql_select_db("ertsadat_mine_sider", $tilkobling);
			
			//skriv til databasen
			$sql = "
					INSERT INTO kunder
						(kundenr, username, userpassord, fornavn, etternavn, adresse, postnr, sted, tlf, epost, abbonementer, priv_for, rabbat, kommentar)
						
					SELECT
						('$kundenr', '$username', '$userpassord', '$fornavn', '$etternavn', '$adresse', '$postnr', '$sted', '$tlf', '$epost', '$abbonementer', '$priv_for', '$rabbat', '$kommentar')
					";
			
			//Testing, erstatt dette med en annen melding etter ferdig
			mysql_query($sql, $tilkobling);
			echo "<h2>Kunden er lagret!</h2>";
			echo "<p>$sql </p>";
			echo TILBAKE;
			
			//For videre testing, fjern til slutt!
			echo "ID: $id - Kunde nr: $kundenr - Brukernavn: $username";
			?>
Da håper jeg på svar som kan lede meg i rett vei.
Der boka mi (Webprogrammering i PHP av Svend Andreas Horgen) ikke kan hjelpe meg

Takker på forhånd
Sist endret av ertsaas; 2. august 2012 kl. 12:25.

Kode

//$endre_kundenr = $_GET['kundenr'];
Denne linjen må iallefall ikke være kommentert ut.
Er du sikker på at alle oppføringene i tabellen din har et kundenummer? Jeg lurer, siden du har satt som standard at det kan være hva som helst mellom 0 og 99999. Og, siden et kundenummer kan gjelde for flere forskjellige kunder (ut fra hva jeg kan se av det du har gitt oss av tabelldefinisjon), er du sikker på at du endrer riktig kunde?

Kode

INSERT INTO kunder (kundenr, username, userpassord, fornavn, etternavn, adresse, postnr, sted, tlf, epost, abbonementer, priv_for, rabbat, kommentar)
Denne bør byttes ut med en UPDATE, siden du endrer på en enkelt linje i tabellen.

Kode

UPDATE Kunder SET navn='$navn' WHERE kundenr='$kundenr'

Kode

SELECT ('$kundenr', '$username', '$userpassord', '$fornavn', '$etternavn', '$adresse', '$postnr', '$sted', '$tlf', '$epost', '$abbonementer', '$priv_for', '$rabbat', '$kommentar')
Er ikke denne spørringen litt vanskelig for MySQL å forstå? Du sier ikke hvilken tabell du skal velge fra. Jeg ville heller gjort en

Kode

SELECT * FROM Kunder WHERE kundenr='$kundenr'
Er ikke sikker i det heletatt. Begynte først for 3 dager siden å programmere SQL. SÅ jeg kjenner ikke hvilken table instillinger jeg bør velge. "kundenr", skall fungere som "ID". Skall jeg sende et skjembilde av databasen fra MyPhpAdmin?

Her ser dere databasen: http://ertsasdata.no/MyPhpAdmin-Kunder.pdf
Takker og bukker for forslag til endringer...
Ettersom 'kundenr' skal fungere som en ID, kan du ikke da la 'kundenr' være unik og samtidig slå på 'auto increment' i MySQL?

http://www.w3schools.com/sql/sql_autoincrement.asp
Sist endret av s1gh; 2. august 2012 kl. 13:27.
Da er kolonen "kunder" oppdatert

Fungerer fortsatt ikke...
Når du bruker autoincrement på "Kundenr", så kan du ikke sette inn verdier til "Kundenr" med SQL. Derfor må du endre SQL-spørringen din, slik at du ikke prøver å inserte noe til "Kundenr".

I tillegg er jeg ganske sikkert på at du har syntax-feil i INSERT-spørringen din.

"INSERT INTO `tabell` (`rad1`, `rad2`) VALUES('verdi1', 'verdi2')", legg merke til "VALUES", hvor du har skrevet "SELECT" i din spørring.

I tillegg, som nevnt over, ser hensikten med scriptet ditt ut til å være for å endre en eksisterende kunde. Da må man bruke en UPDATE spørring i SQL, og ikke en insert.
Sist endret av danielsk; 2. august 2012 kl. 13:58.
Har nå endret koden etter forslag ifra dere og ifra andre steder... Fungerer fortsatt ikke....


Endre kunde skjema:

Kode

<h2>Endre en kunde</h2>
				<p>Når du trykker på knappen, blir kunden oppdatert i databasen</p>
				<form action='endre_kunde_registrer.php' method='get'>
					<table cellpadding='10' width='400'>
						<tr>
						<!-- Alternativ kode-->
							<td>Kunde nummer:
							</td>
							<td>
							
								<select name='endre_kunde'>
								<option value='ingen valgt'>--Velg kunde nummer fra listen--</option>
									<?php
									//tilkobling
										$tilkobling = mysql_connect("localhost",
																"ertsadat_admin",
																"**********");
										mysql_select_db("ertsadat_mine_sider", $tilkobling);
										
									//Henter db kolone fra db table
										$sql = "SELECT kundenr, fornavn, etternavn
										FROM kunder";
									//Resultat
										$resultat = mysql_query($sql, $tilkobling);
									//til slutt
										while ($rad = mysql_fetch_array($resultat)) {
									//henter en og en rad som en assosiativ matrise
										$kundenr = $rad['kundenr'];
										$navn = $rad['fornavn'] . " " . $rad['etternavn'];
										echo "<option value='$kundenr' name='kundenr'>'$navn''$kundenr'</option>";
										}
									?>
							</td>
						</tr>
						<tr>
							<td>Brukernavn:</td>
							echo "<td><input type='text' value="" name='username'>
							</td>
						</tr>
						<tr>
							<td>Passord:</td>
							<td><input type='text' name='userpassord'></td>
						</tr>
						<tr>
							<td>Fornavn:</td>
							<td><input type='text' value="" name='fornavn'></td>
						</tr>
						<tr>
							<td>Etternavn:</td>
							<td><input type='text' name='etternavn'></td>
						</tr>
						<tr>
							<td>Adresse:</td>
							<td><input type='text' name='adresse'></td>
						</tr>
						<tr>
							<td>Post nummer:</td>
							<td><input type='text' name='postnr'></td>
						</tr>
						<tr>
							<td>Sted:</td>
							<td><input type='text' name='sted'></td>
						</tr>
						<tr>
							<td>Telefon nummer:</td>
							<td><input type='text' name='tlf'></td>
						</tr>
						<tr>
							<td>e-post:</td>
							<td><input type='text' name='epost'></td>
						</tr>
						<tr>
							<td>Abbonemanter:</td>
							<td><input type='text' name='abbonementer'></td>
						</tr>
						<tr>
							<td>Privat eller forettningskunde?:</td>
							<td><input type='text' name='priv_for'></td>
						</tr>
						<tr>
							<td>Rabbatter:</td>
							<td><textarea rows='4' cols='30'
							name='rabbat'></textarea></td>
						</tr>
						<tr>
							<td>Kommentarer:</td>
							<td><textarea rows='4' cols='30'
							name='kommentar'></textarea></td>
						</tr>
						<tr>
							<td><input type='submit' value='Lagre kunde'></td>
							<td><a href="kunder.php">Avbryt / Tilbake</a></td>
						<tr>
					</table>
					</form>


Endre kunde registrer:

Kode

<?php
			//Lager en konstant med tilbake-lenke
			define("TILBAKE",
				"<p><a href='javascript:history.go(-1)'>Tilbake</a></p>");
			$endre_kunde = $_GET['kundenr']; //Kommentar ifra nff: Denne linjen må ivertfall ikke være kommentert ut.
			
			//Hvis ikke en kunde ble valgt
			if ( $endre_kunde == "ingen valgt" ) {
				die("<p>Prosjektet må ha en kontaktperson</p>" . TILBAKE );
			}
			$kundenr = $_GET['kundenr']; //kundenr
			$username = $_GET['username']; //Brukernavn
			$userpassord = $_GET['userpassord']; //Passord
			$fornavn = $_GET['fornavn']; //For navn
			$etternavn = $_GET['etternavn']; //Etter navn
			$adresse = $_GET['adresse']; //Adresse
			$postnr = $_GET['postnr']; //Post nr
			$sted = $_GET['sted']; //Sted
			$tlf = $_GET['tlf']; //TLF
			$epost = $_GET['epost']; //E-post
			$abbonementer = $_GET['abbonementer']; //Abbomenter
			$priv_for = $_GET['priv_for']; //Privat eller foretningskunde
			$rabbat = $_GET['rabbat']; //Rabbat
			$kommentar = $_GET['kommentar']; //Kommentar
			
			//Koble til databasen
			$tilkobling = mysql_connect("localhost",
											"ertsadat_admin",
											"*********");
			mysql_select_db("ertsadat_mine_sider", $tilkobling);
			//skriv til databasen
			$sql = "
					UPDATE kunder
						SET username='$username', userpassord='$userpassord', fornavn='$fornavn', etternavn='$etternavn', adresse='$adresse', postnr='$postnr', sted='$sted', tlf='$tlf', epost='$epost', abbonementer='$abbonementer', priv_for='$priv_for', rabbat='$rabbat', kommentar='$kommentar'
					WHERE
						kundenr='$kundenr'
					";
			
			//Testing, erstatt dette med en annen melding etter ferdig
			mysql_query($sql, $tilkobling);
			echo "<h2>Kunden er lagret!</h2>";
			echo "<p>$sql </p>";
			echo TILBAKE;
			
			//For videre testing, fjern til slutt!
			echo "Kunde nr: $kundenr - Brukernavn: $username";
			?>
Sist endret av ertsaas; 2. august 2012 kl. 14:29.
Sikker på at du bruker korrekt kundenr i spørringen din?
I PhpMyAdmin kan du teste spørringene dine direkte mot databasen. Test spørringen der.
Sist endret av s1gh; 2. august 2012 kl. 14:37.
$endre_kunde = $_GET['kundenr']; //Kommentar ifra nff: Denne linjen må ivertfall ikke være kommentert ut.
$kundenr = $_GET['kundenr']; //kundenr

$_GET['kundenr'] finnes jo ikke,

Bytter du ut "kundenr" med "endre_kunde", så tenker jeg det blir andre boller.
Select'en heter jo endre_kunde, ikke kundenr.
Takk. Da fungerer det
Da er det bare å hoppe over til neste del av nettsiden, kommer sikkert tilbake med nye problemer da også, hehe

Takk igjen til alle