Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP] Krijg form in php niet aan de praat(1)!

Pagina: 1
Acties:
  • 489 views

  • BlueZero
  • Registratie: Mei 2007
  • Laatst online: 19-11 20:51
Beste allemaal,

Ik ben voor een website bezig met een klein cms systeem, en probeer op die moment mijn linkpartnersysteem aan te passen via een adminpanel. Ik heb 3 opties:
- Linkpartners wijzigen
- Linkpartners verwijderen
- Linkpartners toevoegen.
De links staan in een mysql database. En nu heb ik over het Linkpartners wijzigen een vraag.

Ik heb een form gemaakt waarin je eerst de link die je wilt wijzigen selecteerd, daarna voer je een nieuwe naam en link in en je drukt op opslaan. Daaronder zie je de huidige linkpartners staan.
Dit werkt naar behoren.

Maar nu wilde ik het zo maken dat als je de linkpartner selecteerd dat je bij naam en link gelijk de huidige naam en link ziet staan van de desbetreffende linkpartner en dit lukt me niet. Ik krijg namelijk wel de juiste naam te zien en link te zien bij de velden Naam en Link, maar als ik die dan wijzig en op Wijzigen druk veranderen de waardes niet in de Mysql database.

Ik weet denk ik wel hoe het komt maar ik weet alleen geen oplossing voor het probleem.

Hieronder zal ik het script even uitleggen en het probleem voorleggen:

Zo selecteer ik de Linkpartner:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form enctype="multipart/form-data" action="wijzig1.php" method="POST">
<label>Selecteer een Linkpartner:</label>
<select name="id" >

<?php
include "../config.php"; //verbinding maken
$query = "SELECT * FROM `links` ORDER BY id";
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
while($record = mysql_fetch_object($sql)){
echo"<option value='".$record->id."'>".$record->naam."</option>";
}
?> 
</select>
<input type="submit" name="select" value="Selecteer">
</form>


Dan maak ik een php scriptje om van het ingevoerde ID een variabele te maken dat doe ik zo:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?

include "../config.php"; //verbinding maken

if(isset($_POST['select']))
  {
    $sid = ''.($_POST['id']).'';
  }


?>


Dan gebruik ik die variabele bij de volgende velden naam en link als value.
Dat deed ik zo:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
include "config.php"; //verbinding maken
$query = "SELECT * FROM `links` WHERE id='$sid'";
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
echo"<ul>";
while($record = mysql_fetch_object($sql)){
echo"<input value='".$record->hyperlink."' type='text' size='50' name='link'>";
}
mysql_close(); 
?>


Als ik dit testte werkte dit nog steeds redelijk goed. Ik zag netjes de juiste naam staan in het veld en kon deze wijzigen maar als ik dan op Wijzigen onderaan klikte gebeurde er niks. Het lag aan het ID volgens mij want als ik de Variabele $sid verving door het nummer van het ID dan werkte het wel.
Dit is mijn script voor het updaten van de tabel:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?

include "../config.php"; //verbinding maken

if(isset($_POST['edit']))
  {
    $ssrc = ''.($_POST['link']).'';
    $sname = ''.$_POST['name'].'';
    
    
    mysql_query("UPDATE links SET naam= '$sname', hyperlink= '$ssrc' WHERE id= '$sid'") or die (mysql_error());

    echo 'De linkpartner is gewijzigd!<br>';
  }


?>


Ik krijg geen foutmeldingen of iets dergelijks en er staat gewoon netjes "De linkpartners is gewijzigd".
Maar er gebeurt gewoon niks. En zoals ik al gezegd had als ik de variabele $sid vervang door een 1 van het id dan werkt het wel.

Hier nog een keer het complete script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<form enctype="multipart/form-data" action="wijzig1.php" method="POST">
<label>Nieuwe link:</label><br /> 
<?php
include "../config.php"; //verbinding maken
$query = "SELECT * FROM `links` WHERE id='$sid'";
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
echo"<ul>";
while($record = mysql_fetch_object($sql)){
echo"<input value='".$record->hyperlink."' type='text' size='50' name='link'>";
}
mysql_close(); 
?>
</p>


<label>Nieuwe naam:</label> <br />
<?php
include "../config.php"; //verbinding maken
$query = "SELECT * FROM `links` WHERE id='$sid'";
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
echo"<ul>";
while($record = mysql_fetch_object($sql)){
echo"<input value='".$record->naam."' type='text' size='50' name='name'>";
}
mysql_close(); 
?>
<br />
<br>
<input type="submit" name="edit" value="Wijzig"></form> <br>

<?

include "../config.php"; //verbinding maken

if(isset($_POST['edit']))
  {
    $ssrc = ''.($_POST['link']).'';
    $sname = ''.$_POST['name'].'';
    
    
    mysql_query("UPDATE links SET naam= '$sname', hyperlink= '$ssrc' WHERE id= '$sid'") or die (mysql_error());

    echo 'De linkpartner is gewijzigd!<br>';
  }


?>
<br>
<Br>
<div id="updates" class="boxed">
<h2 class="title">Recente Linkpartners </h2>  
<div class="content">
<ul>
<?php
include "../config.php"; //verbinding maken
$query = "SELECT * FROM `links` ORDER BY 'id'";
//query is aangemaakt
$sql = mysql_query($query) or die ( mysql_error( ) );
//query is uitgevoerd
echo"<ul>";
while($record = mysql_fetch_object($sql)){
echo"<li><a href=".$record->hyperlink.">".$record->naam."</a></li>";
}
mysql_close(); 
?>



Ik hoop dat ik mijn vraag zo wel naar behoren heb gesteld en dat iemand mij kan helpen!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Print de update query voordat je hem uitvoert. En kijk dan wat er fout is.

Programmer - an organism that turns coffee into software.


  • BlueZero
  • Registratie: Mei 2007
  • Laatst online: 19-11 20:51
Hey ik heb de query geprint en wat ik dacht was ook zo de variabele "$sid" heeft geen inhoud of werkt niet.
Hieronder de print:
UPDATE links SET naam= 'Wings Walking dogs', hyperlink= 'http://www.wingswalkingdogs.nl/' WHERE id= ''De linkpartner is gewijzigd!

Ik hoop dat iemand weet hoe ik deze variabele wel kan laten werken.

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

BlueZero schreef op woensdag 12 maart 2008 @ 14:46:
Hey ik heb de query geprint en wat ik dacht was ook zo de variabele "$sid" heeft geen inhoud of werkt niet.
Hieronder de print:
UPDATE links SET naam= 'Wings Walking dogs', hyperlink= 'http://www.wingswalkingdogs.nl/' WHERE id= ''De linkpartner is gewijzigd!

Ik hoop dat iemand weet hoe ik deze variabele wel kan laten werken.
Als je goed naar je code kijkt dan weet je het zelf wel....

tip: waarom werkt "naam" wel?

Programmer - an organism that turns coffee into software.


  • BlueZero
  • Registratie: Mei 2007
  • Laatst online: 19-11 20:51
Je bedoelt waarschijnlijk de apostrofs die ik er niet staat. Maar in werkelijkheid staan die wel in het script kijk maar hierboven in mijn script.

[ Voor 28% gewijzigd door BlueZero op 12-03-2008 14:55 ]


  • l1dert
  • Registratie: Oktober 2007
  • Laatst online: 26-08 12:19
Je variabele is php en moet dus buiten "" dus ipv '$naam' '". $naam ."'

  • BlueZero
  • Registratie: Mei 2007
  • Laatst online: 19-11 20:51
Volgens mij heb je het probleem nog niet helemaal begrepen de andere variabelen werken wel alleen die $sid niet en ze zijn allemaal op dezelfde manier geschreven.

Ik heb het trouwens wel geprobeerd wat jij zei en het maakt geen verschil.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:34

Creepy

Tactical Espionage Splatterer

LuCarD bedoelt heel iets anders en eerlijk gezegd is het nogal schandalig dat je dit zelf niet eens ziet. Het is namelijk enorm simpel (ja echt). en met een beetje simpel debuggen zou je er zelf moeten uitkomen.

Maar ok:
PHP:
1
2
3
4
5
6
7
 $ssrc = ''.($_POST['link']).''; 
    $sname = ''.$_POST['name'].''; 
     
     
    mysql_query("UPDATE links SET naam= '$sname', hyperlink= '$ssrc' WHERE id= '$sid'") or die (mysql_error()); 

    echo 'De linkpartner is gewijzigd!<br>';

Kijk nu nog eens goed en zie dat je $sid nergens een waarde geeft ondanks dat je in je startpost ergens in een los stukje code roept van wel. In je totale script is dit niet het geval. Het feit dat je query een lege $sid oplevert had je toch een idee moeten opleveren wat er mis is.

Anyway, dit doe ik dicht. Ik krijg niet het idee dat je weet waar je mee bezig bent en je jezelf er ook niet echt in wilt verdiepen terwijl je tegen andere mensen gaat roepen dat ze het niet helemaal begrepen hebben.

[ Voor 6% gewijzigd door Creepy op 12-03-2008 15:22 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.