gebruik van if en UPDATE

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dennis

Dennis

01/11/2008 11:04:00
Quote Anchor link
Hallo allemaal,

Ik heb onderstaande geschreven, echter vind ik het fijn als iemand anders zijn licht er ook even op kan laten schijnen. Naar mijn idee is het goed..

Het is de bedoeling dat als de state ( 0 is levend, 1 banned, 2 dood ) niet gelijk is aan 0 van een bodyguard, deze automatisch wegvalt bij zijn "werkgever" .

Hieronder de code die ik daarvoor heb :

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
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
<?php

$nsql
= "SELECT name,rank,health,armor,gang,location,sitestate,bodyguard,bgspot1,bgspot2,bgspot3,login_ip FROM login WHERE id='" .mysql_real_escape_string($_SESSION['user_id']). "'";
$query = mysql_query($nsql) or die(mysql_error());
$row = mysql_fetch_object($query);
$player_name = htmlspecialchars($row->name);
$player_state = htmlspecialchars($row->sitestate);
$player_bodyguard = htmlspecialchars($row->bodyguard);
$player_bgspot1 = htmlspecialchars($row->bgspot1);
$player_bgspot2 = htmlspecialchars($row->bgspot2);
$player_bgspot3 = htmlspecialchars($row->bgspot3);

$nsql = "SELECT name,sitestate FROM login WHERE name='".mysql_real_escape_string($target_name)."'";
$query = mysql_query($nsql) or die(mysql_error());
$row = mysql_fetch_object($query);
$bg_name = htmlspecialchars($row->name);
$bg_state = htmlspecialchars($row->sitestate);

//droppen eerste bg

if ($bgstate != 0) && ($player_bgspot1 = $bg_name ){

$result = mysql_query("UPDATE login SET bodyguard=bodyguard-1, bgspot1='".mysql_real_escape_string($player_bgspot2)."', bgspot2='".mysql_real_escape_string($player_bgspot3)."', bgspot3=''  WHERE name='" .mysql_real_escape_string($player_name). "'")
or die(mysql_error());

}


//droppen tweede bg

if ($bgstate != 0) && ($player_bgspot2 = $bg_name ){

$result = mysql_query("UPDATE login SET bodyguard=bodyguard-1, bgspot2='".mysql_real_escape_string($player_bgspot3)."', bgspot3=''  WHERE name='" .mysql_real_escape_string($player_name). "'")
or die(mysql_error());

}


//droppen derde bg

if ($bgstate != 0) && ($player_bgspot3 = $bg_name ){

$result = mysql_query("UPDATE login SET bodyguard=bodyguard-1, bgspot3=''  WHERE name='" .mysql_real_escape_string($player_name). "'")
or die(mysql_error());

}


?>
 
PHP hulp

PHP hulp

23/12/2024 12:02:26
 
Joren de Wit

Joren de Wit

01/11/2008 11:08:00
Quote Anchor link
Quote:
bgspot1,bgspot2,bgspot3
Het gebruik van genummerde kolomnamen duidt in 99 van de 100 gevallen op een verkeerd datamodel, dus dat zal ook hier het geval zijn...

Ga normaliseren en zorg dat je met een goed datamodel aan de slag gaat.

Verder kun je het updaten van de database wellicht zelfs gewoon met 1 query doen, als je gebruik maakt van een correct datamodel hoogstwaarschijnlijk zeker...
 



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.