Update script
Ik moet dmv een database een rij gegevens wijzigen. Maar er zijn verschillende rijen en ik moet ze per stuk kunnen aanpassen.
Wie kan hiermee helpen, ik ben nu al een dag hiermee bezig om te zoeken naar scripts maar kan geen begin maken.
Ik hoop dat ik het een beetje goed uitgelegd heb...
UPDATE tabelnaam SET kolomnaam="waarde" WHERE kolomID=$id
| id | artiest | nummer | prijs | img | lengte |
| 1 | gast | joww | € gra | http://en.nl | 00:00:00 |
| 2 | gast | joww | € gra | http://en.nl | 00:00:00 |
| 3 | gast | joww | € gra | http://en.nl | 00:00:00 |
hoe kan ik dan elke artiest apart updaten?
Gewijzigd op 01/01/1970 01:00:00 door Naam Loos
UPDATE tabelnaam SET kolomnaam="waarde",kolomnaam2="waarde2" WHERE kolomID=$id
trouwens ik snap je vraag niet echt :P
Gewijzigd op 01/01/1970 01:00:00 door Kumkwat Trender
Maar als ik dan een artiest toevoeg dan moet ik de query ook weer wijzigen of zie ik dat dan weer verkeerd?
elke artiest heeft zijn unieke ID..(1, 2 , 3).. dan krijg je dus WHERE id=1(of 2,3)
Ja dat betekent dus dat ik voor elke artiest een aparte query moet hebben, of niet?
door middel van variables enzo werken
(Timen je plaatje is vaag :P)
Anyway voorbeeld van een update van mij:
Code (php)
1
2
3
2
3
<?php
$query = "UPDATE page_algemeen SET tekst='".addslashes($post['algemeenaanpas'])."' WHERE algemeenID=$id";
?>
$query = "UPDATE page_algemeen SET tekst='".addslashes($post['algemeenaanpas'])."' WHERE algemeenID=$id";
?>
Die $id = een $_GET die ik verstuur vanaf mijn beheer pagina
Aanpassen.php?edit=ID-uit-database-hier
Code (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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
require_once 'database.php';
$sql = "
UPDATE
muziekdata
SET
artiest = mysql_real_escape_string($_POST['artiest']);
WHERE
artiest = '".$artiest."'
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_affected_rows() == 0)
{
echo 'Geen records gewijzigd. <br />Query: '.$sql;
}
else
{
echo 'Update was succesvol!';
}
?>
require_once 'database.php';
$sql = "
UPDATE
muziekdata
SET
artiest = mysql_real_escape_string($_POST['artiest']);
WHERE
artiest = '".$artiest."'
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
elseif(mysql_affected_rows() == 0)
{
echo 'Geen records gewijzigd. <br />Query: '.$sql;
}
else
{
echo 'Update was succesvol!';
}
?>
Doe ik het zo goed?
''.$_POST['artiest']."'
Maar het is niet logisch om hetgene te verandert waar je ook naar verwijst.. pak de ID van de artiest ipv zn naam.
PHP Newbie schreef op 05.02.2009 10:47:
Je wilt geen zaken hebben die afhankelijk zijn van het ID. Een ID is slechts een uniek nummer om een rij aan te duiden.
Wanneer je een deel van je data kwijt raakt en je plaatst een backup terug kunnen de ID's best wel eens anders zijn. Dan zou je ook je php-code aan moeten passen omdat je daar het ID hard-coded in hebt staan. Niet helemaal de bedoeling lijkt me.
Pas de vergelijking daarom toe op de artiestennaam.
Wanneer je een deel van je data kwijt raakt en je plaatst een backup terug kunnen de ID's best wel eens anders zijn. Dan zou je ook je php-code aan moeten passen omdat je daar het ID hard-coded in hebt staan. Niet helemaal de bedoeling lijkt me.
Pas de vergelijking daarom toe op de artiestennaam.
... Tja wat is dan slim?
Bramboos schreef op 06.02.2009 21:19:
Dan zou je ook je php-code aan moeten passen omdat je daar het ID hard-coded in hebt staan.
Je ID niet hardcoden.. die ID haal je uit je database uiteraard....
http://img4.imageshack.us/img4/7933/toevoegwe4.jpg
Zo heb ik mijn toevoeg scriptje... zo wil ik ook het update scriptje hebben.
Je krijgt eerst een lijst met artiesten te zien je klikt op een artiest en het bovenstaande schermpje komt er dan te staan maar dan staan de huidige gegevens er.
Is dan id of artiest makkelijker?
Zo heb ik mijn toevoeg scriptje... zo wil ik ook het update scriptje hebben.
Je krijgt eerst een lijst met artiesten te zien je klikt op een artiest en het bovenstaande schermpje komt er dan te staan maar dan staan de huidige gegevens er.
Is dan id of artiest makkelijker?
Gewijzigd op 01/01/1970 01:00:00 door Naam Loos
uit vorig voorbeeld:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
while($row = mysql_fetch_array($result)){
<a href="algemeenedit.php?del='.$row['algemeenID'].'"><img src="menu/delete.jpg" border="0"></a>
<a href="algemeenedit.php?edit='.$row['algemeenID'].'"><img src="menu/edit.gif" border="0"></a>';
}
?>
while($row = mysql_fetch_array($result)){
<a href="algemeenedit.php?del='.$row['algemeenID'].'"><img src="menu/delete.jpg" border="0"></a>
<a href="algemeenedit.php?edit='.$row['algemeenID'].'"><img src="menu/edit.gif" border="0"></a>';
}
?>
ja dat is niet zo moeilijk, het probleem is: het formulier
IN je formulier verwerk je toch geen UPDATE-waarden, dat doe je pas als er op submit is gedrukt. Alle antwoorden zijn gegeven dus het zou moeten lukken als je de artiesten uitfilterd op hun unieke ID...
gewoon een sprintf(); string maken van de invoer en die als een soort template gebruiken?
krijg je iets als:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
//query
$result = mysql_query($query);
while($row=mysql_fetch_array($result)){
echo '<a href="editartiest.php?id='.$row['artiestID'].'">$row['artiestnaam']</a>';
}
?>
//query
$result = mysql_query($query);
while($row=mysql_fetch_array($result)){
echo '<a href="editartiest.php?id='.$row['artiestID'].'">$row['artiestnaam']</a>';
}
?>
als je dan vervolgens op artiest klikt krijg je:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
//query waar je single ID op haalt(Where artiestID=$_GET['id'])
while($row=mysql_fetch_array($result)){
echo '
naam:<input type="text" name="artiest" value="'.$row['artiest.'">
';
}
?>
//query waar je single ID op haalt(Where artiestID=$_GET['id'])
while($row=mysql_fetch_array($result)){
echo '
naam:<input type="text" name="artiest" value="'.$row['artiest.'">
';
}
?>
Vanaf daar moet je je echt zelf kunnen redden. anders wordt het tijd om effe back to basic te gaan met je formuliertjes, GET's en POST's