Einige Fragen zu SQL-Anweisungen ...

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
YoOoOoOo
Mitglied
Beiträge: 71
Registriert: 01.05.2006 16:34
Wohnort: YoOoOoOoOo
Kontaktdaten:

Beitrag von YoOoOoOo »

Wow vielen Dank erstmal!
Nur zum nachprüfen, ist das hier okay?

Code: Alles auswählen

//
// Wert nicht unter 0
//
if ($row['user_goldmine'] && $row['user_steingrube'] && $row['user_saegewerk'] < 0) 
{ 
  'Deine Arbeiter müssen zuerst mehr Ressourcen abbauen'; 
}
Und ist es hier eigentlich nicht möglich, das auch irgendwie als Variable ausgeben zu können anstatt via echo, sodass dann der Text an beliebiger Stelle im Text eingefügt werden..?

Code: Alles auswählen

$dein_wert = 10;

$dein_array = array(
  10 => 'Apfel',
  20 => 'Banane',
  30 => 'Kirsche',
  [..]);

if ($dein_wert >= 5)
{
  echo $dein_array[$dein_wert]; // eine Varibale draus kreiren ..?
}
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

zum 1.: Nein, das musst du ausschreiben:

Code: Alles auswählen

if ($row['user_goldmine'] < 0 && $row['user_steingrube'] < 0 && $row['user_saegewerk'] < 0)
zum 2.: $dein_array[$dein_wert] kannst du an jeder x-beliebigen Stelle einfügen, du kannst es aber auch in eine neue Variable speichern:

Code: Alles auswählen

$deine_variable = $dein_array[$dein_wert];
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
YoOoOoOo
Mitglied
Beiträge: 71
Registriert: 01.05.2006 16:34
Wohnort: YoOoOoOoOo
Kontaktdaten:

Beitrag von YoOoOoOo »

So weit, so gut.

Code: Alles auswählen

$burg_1 = $burg_array[$row['user_burg']];

$row['user_burg'] = 10; 

$burg_array = array( 
  10 => 'Burg', 
  15 => 'Festung',
  20 => 'Schloss'); 

if ($row['user_goldmine'] >= 10) 
{ 
  echo $burg_array[$row['user_burg']]; // gibt Apfel aus 
}
Was ist denn daran noch falsch.
Wird ausgegeben als

Code: Alles auswählen

$template->assign_vars(array(
.
.
.
.
'BURG_1' => $burg_1)
Im .tpl steht dann {BURG_1}, aber dort wird dann nichts angezeigt - wo ist der Fehler?
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Äh, wie willst du einer Variable einen Wert zuweisen, den es noch gar nicht gibt?
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
YoOoOoOo
Mitglied
Beiträge: 71
Registriert: 01.05.2006 16:34
Wohnort: YoOoOoOoOo
Kontaktdaten:

Beitrag von YoOoOoOo »

Kannst du mir das näher erklären bzw. konkreter Löungsvorschläge notieren bitte?
Ich beherrsche PHP leider noch nicht allzugut ^^"
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Code: Alles auswählen

// $burg_array und $row{'user_burg'] existieren hier noch nicht!
$burg_1 = $burg_array[$row['user_burg']];

$row['user_burg'] = 10;

$burg_array = array(
  10 => 'Burg',
  15 => 'Festung',
  20 => 'Schloss');

// hier existieren sie ;-)
$burg_1 = $burg_array[$row['user_burg']];
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
YoOoOoOo
Mitglied
Beiträge: 71
Registriert: 01.05.2006 16:34
Wohnort: YoOoOoOoOo
Kontaktdaten:

Beitrag von YoOoOoOo »

Gut, alles klar.
Nun zurück zum Button - wie lese ich die USER ID heraus?
So funktioniert es leider nicht ...

Code: Alles auswählen

<?php 
define('IN_PHPBB', true); 
$phpbb_root_path = './'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 

// 
// Start session management 
// 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 
// 
// End session management 
// 

if(!$userdata['session_logged_in']) 
{ 
   redirect(append_sid("login.$phpEx?redirect=buildings.$phpEx", true)); 
} 

$is_auth_ary = array(); 
$is_auth_ary = auth(AUTH_VIEW, AUTH_LIST_ALL, $userdata, $forum_data); 

// 
// Start output of page 
// 
define('SHOW_ONLINE', true); 
$page_title = $lang['Index']; 
include($phpbb_root_path . 'includes/page_header.'.$phpEx); 

$template->set_filenames(array( 
   'body' => 'buildings_body.tpl') 
); 
        
/// Auslesen der User ID
        $this_userdata = get_userdata($user_id);
	$user_id = $this_userdata['user_id'];
/// 
/// Anweisung zum Updaten der Datenbank 
/// 
if(!empty($buttom)){ 
echo("Buttom gedrückt");
$db_query  = "UPDATE phpbb_users 
              SET user_posts = user_posts + 4, 
              user_cash = user_cash - 500, 
              user_holz = user_holz - 300, 
              user_stein = user_stein - 500, 
              user_church = user_church + 1 
              WHERE user_id = $user_id";
}

// 
// Generate the page 
// 
$template->pparse('body'); 

include($phpbb_root_path . 'includes/page_tail.'.$phpEx); 

?>
.tpl-Datei:

Code: Alles auswählen

<table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline">
  <tr> 
<td class="row1" align="left" width="1%">...
	</td><td class="row1" align="left" width="50%"><span class="gensmall">Kirche
	</td><td class="row1" align="right" width="50%">
	<form name="form1" method="post" action="buildings.php?buttom=1"><input type="submit" name="Buttom" value="Buttom"></td></form>
  </tr>
</table>
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Sehe ich das richtig, dass du einfach die Daten vom aktuell eingeloggten Benutzer aktualisieren willst? Wenn ja, dann musst du die User-ID nicht mehr auslesen, die steht schon im $userdata-Array:

Code: Alles auswählen

///
/// Anweisung zum Updaten der Datenbank
///
if (!empty($buttom))
{
  echo("Buttom gedrückt");
  $db_query  = "UPDATE phpbb_users
    SET user_posts = user_posts + 4,
      user_cash = user_cash - 500,
      user_holz = user_holz - 300,
      user_stein = user_stein - 500,
      user_church = user_church + 1
    WHERE user_id = " . $userdata['user_id'];
  if (!$db->sql_query($db_query))
  {
    message_die(GENERAL_ERROR, 'Could not update userdata', '', __LINE__, __FILE__, $db_query);
  }
}
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
YoOoOoOo
Mitglied
Beiträge: 71
Registriert: 01.05.2006 16:34
Wohnort: YoOoOoOoOo
Kontaktdaten:

Beitrag von YoOoOoOo »

Willst du mal Zugang zum FTP um das Problem näher anzusehen?
Es funktioniert nämlich immer noch nicht ganz ...
Meld dich einfach mal PN ...

YoOoOoOoOo
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Naja, deinen Fehler kannst du ruhig selbst reparieren, dann lernst du nämlich auch noch was dabei. :wink:

Was funktioniert denn nicht? Antworte doch mal auf meine Frage...
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „Coding & Technik“