Wat er in de Database staat + nieuw stuk
Ik heb ben met een project bezig in php.
Ik wil dat in de database, de tabel code wordt uitgelezen en een code er bij toevoegen. Ik heb het nu zo:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?PHP
$sql2 = mysql_query("SELECT * FROM spellen WHERE catogorie='1' AND id='".$incat."' ORDER BY naam ASC");
$rij2 = mysql_fetch_array($sql2);
$code2=$rij2['code2'];
$incat = $_POST[incat];
$inmenu = $POST[inmenu];
$code22 = "<a href=\"player.php?game=".$id."\"><div style=\"color: #000;\">".$naam."</div></a>";
if ($inmenu != "0"){
mysql_query("UPDATE `spellen` SET code='".($code2)."+".($code22)."' WHERE `id` = '".$incat."' ") or die(mysql_error());
}
?>
$sql2 = mysql_query("SELECT * FROM spellen WHERE catogorie='1' AND id='".$incat."' ORDER BY naam ASC");
$rij2 = mysql_fetch_array($sql2);
$code2=$rij2['code2'];
$incat = $_POST[incat];
$inmenu = $POST[inmenu];
$code22 = "<a href=\"player.php?game=".$id."\"><div style=\"color: #000;\">".$naam."</div></a>";
if ($inmenu != "0"){
mysql_query("UPDATE `spellen` SET code='".($code2)."+".($code22)."' WHERE `id` = '".$incat."' ") or die(mysql_error());
}
?>
Hij doet nu dat als ik het gebruik wordt de database tabel code leeggehaald en komt er in te staan + en dan wat hij moet doen.
Maar al voeg ik nog iets toe gaat hij dus weer leeg en komt er weer + en de link maar de ooude is weg.
Ik kan het niet zo goed uitleggen maar kort:
Ik wil de database code behouden en $code22 erbij.
Alvast bedankt.
PS: het probleem zit hier dus:
Verschillende gegevens sla je op in verschillende records in al dan niet een andere tabel. Je gaat ze in ieder geval niet allemaal gescheiden door een + in 1 veld proppen!
ps. Kijk ook eens naar deze tut over normaliseren
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
2) $incat = $_POST[incat]; maakt eens kansloze kopie aan die zorgt voor veiligheidslekken. Gebruik $_POST['incat'] totdat je deze hebt gecontroleerd en beveiligd, dán kun je een variabele aanmaken die je 100% kunt vertrouwen.
3) Zie punt 2, beveiling ontbreekt in zijn geheel, SQL-injection ligt op de loer.
4) Waar controleer jij of de query is gelukt? Je hebt geen enkele garantie dat deze zal lukken.
5) Backtics ` mag je ritueel verbranden, met die onzin zet jij jezelf voor gek en ga je uiteindelijk alleen maar bugs aanmaken in je systeem.
6) Waar controleer jij of de update-query ook daadwerkelijk iets heeft bijgewerkt? mysql_affected_rows() is je beste vriend.
Succes!
Edit: Pfffff, de opmerkingen van Martijn en Blanche mag je ook nog even toevoegen aan het lijstje. Ik was inderdaad niet helemaal compleet. Kortom, nog genoeg werk aan de winkel!
@Martijn: CONCAT() mag je vervangen door pipes ||, dat is SQL-standaard. Evt. de settings van MySQL aanpassen, dan accepteert deze ook de pipes.
Gewijzigd op 01/01/1970 01:00:00 door Frank -