Wat er in de Database staat + nieuw stuk

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michel

michel

02/02/2008 16:44:00
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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());
}


?>



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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_query("UPDATE `spellen` SET code='".($code2)."+".($code22)."' WHERE `id` = '".$incat."' ") or die(mysql_error());
 
PHP hulp

PHP hulp

24/11/2024 14:53:08
 
Martijn B

Martijn B

02/02/2008 16:47:00
Quote Anchor link
Dat kan dacht ik zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
UPDATE tabel SET kolom1=CONCAT(kolom1,'blaat')
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Joren de Wit

Joren de Wit

02/02/2008 16:47:00
Quote Anchor link
Ik denk dat er iets veel fundamentelers fout gaat. Waarom ben je namelijk verschillende codes in 1 record aan het opslaan?

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
 
Frank -

Frank -

02/02/2008 16:50:00
Quote Anchor link
1) $_POST[incat] mag worden: $_POST['incat']
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 -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.