anpera.net
https://anpera.homeip.net/phpbb3/

insert-frage
https://anpera.homeip.net/phpbb3/viewtopic.php?f=25&t=5096
Seite 1 von 1

Autor:  drimatu [ Mo 08 Feb, 2010 15:24 ]
Betreff des Beitrags:  insert-frage

hallo, hab hier folgende datei:

<?php
require_once "common.php";
page_header("Charaktererstellung");
addnav("weiter","village.php");
$gw = mt_rand(1900 , 2600) /100*($session['user']['go']*$session['user']['go']);
$gw = round($gw , 1);
$sql = "INSERT INTO accounts
(gw
) VALUES (
'$gw'
)";
db_query($sql);
page_footer();
?>

wofür das sein soll dürft ja klar sein. nur leider wird der wert nicht in der db gespeichert. was mach ich falsch?
mfg

Autor:  Lori [ Mo 08 Feb, 2010 15:38 ]
Betreff des Beitrags:  Re: insert-frage

Wenn das Tabellenfeld schon vorhanden ist würde ich eher auf UPDATE tippen statt INSERT und wenn, dann gehört noch eine AccountID dazu.

Sollte das ganze in der create.php sein, dann gehört es in den vorgesehenen INSERT. Nur existiert dort noch kein SessionUser.

Autor:  drimatu [ Mo 08 Feb, 2010 15:48 ]
Betreff des Beitrags:  Re: insert-frage

hallo, ja, ich hab es aus der create.php. insert ist schon hier richtig weil oben geschriebenes in eine art createnext.php steht, die felder sind also noch nicht defeniert
es ist also nicht so ohne weiteres möglich das aus der create.php in eine andere datei zu übernehmen, selbst wenn die felder noch leer sind? mfg

Autor:  Lori [ Mo 08 Feb, 2010 15:53 ]
Betreff des Beitrags:  Re: insert-frage

Ich nehme an, diese Script folgt der create.php.

Wenn du $session[user] benutzt existiert der Account, samt dem Feld gw (in dem Falle als default-Wert) bereits. Also musst du UPDATE benutzen.

Autor:  drimatu [ Mo 08 Feb, 2010 16:05 ]
Betreff des Beitrags:  Re: insert-frage

ok vielen dank mfg

Autor:  drimatu [ Di 09 Feb, 2010 12:59 ]
Betreff des Beitrags:  Re: insert-frage

sorry, irgend wie zu doof dafür. muss das nun heißen:

$gw = mt_rand(1900 , 2600) /100*($session['user']['go']*$session['user']['go']);
$gw = round($gw , 1);
$sql = "UPDATE accounts SET gw='' WHERE acctid='$_GET[userid]'";
db_query($sql);

Autor:  Lori [ Di 09 Feb, 2010 13:17 ]
Betreff des Beitrags:  Re: insert-frage

$sql = "UPDATE accounts SET gw='$gw' WHERE acctid='$session[user][acctid]'";

wäre mein Vorschlag ^^

Autor:  drimatu [ Di 09 Feb, 2010 14:53 ]
Betreff des Beitrags:  Re: insert-frage

hallo, hab nun mal zur überprüfung die drei varianten genommen. bei allen dreien wurde die acctid jedoch nicht zurück gegeben. daran liegt nun der speicherfehler. nun aber die frage: welche variante ist davon richtig und warum wird bei keiner variante die acctid zurück gegeben?

echo "UPDATE accounts SET gewi='$gewi' WHERE acctid='$row[ACCTID]'";

echo "UPDATE accounts SET gewi='$gewi' WHERE acctid='$session[user][acctid]'";

echo "UPDATE accounts SET gewi='$gewi' WHERE acctid='$_GET[userid]'";

Autor:  Eliwood [ Di 09 Feb, 2010 15:11 ]
Betreff des Beitrags:  Re: insert-frage

Wie wärs mit:
$this->bbcode_second_pass_code('', '$session['user']['gewi'] = $gewi;')
?

Ich hab keine Ahnung, was du genau willst. Um dem aktuellen User aber etwas zu geben, brauchst du keinen direkten Datenbankquery - ja, mit dem funktionierts sogar nicht.

Für fremde User hingegen bräuchtest du einen. Nur - was willst du?

Autor:  Lori [ Di 09 Feb, 2010 16:29 ]
Betreff des Beitrags:  Re: insert-frage

Mir ist gerade etwas eingefallen. Kann es sein, dass das Script gleich an die create.php folgt?
Könnte es sein, dass $session[user] noch gar nicht existiert? Dieser wird doch erst erstellt, wenn sich der User einloggt über Login.

Autor:  Salator [ Di 09 Feb, 2010 19:32 ]
Betreff des Beitrags:  Re: insert-frage

drimatu hat geschrieben:
echo "UPDATE accounts SET gewi='$gewi' WHERE acctid='$row[ACCTID]'";

Die Variable $row wird im Lotgd-Code oft dafür benutzt um einen Datensatz aus der Datenbank zu lesen. Guck dir also die zugehörige SQL-Abfrage an. Ich vermute mal, mit ziemlicher Sicherheit wird da kein ACCTID in Großbuchstaben abgerufen.

drimatu hat geschrieben:
echo "UPDATE accounts SET gewi='$gewi' WHERE acctid='$session[user][acctid]'";

Siehe Antwort von Lori, der Sessionuser existiert nur im eingeloggten Zustand.

drimatu hat geschrieben:
echo "UPDATE accounts SET gewi='$gewi' WHERE acctid='$_GET[userid]'";

Hier guckst du dir mal die URL an, die in deinem Browser steht. für ein gültiges $_GET sollte es sowas sein wie deinserver.de/datei.php?userid=123
Nebenbei bemerkt willst du ganz sicher nicht so leichtsinnig sein und etwas ungeprüft an die Datenbank schicken was man in der Browserzeile eintippen kann. Stichwort SQL-Injection.

Und noch ein Vorschlag zu einer ganz anderen Herangehensweise: Wenn etwas in einen frisch angelegten Account geschrieben werden soll, wieso machst du das nicht gleich in der create.php und erweiterst dort den entsprechenden sql-String?

Autor:  Anderswelt [ Di 09 Feb, 2010 19:50 ]
Betreff des Beitrags:  Re: insert-frage

Am einfachsten währe es ersteinmal wenn du genau sagst was du überhaupt erreichen willst, denn ansonsten endet das hier doch bloß im heiteren Rätselraten.

Autor:  drimatu [ Do 11 Feb, 2010 11:50 ]
Betreff des Beitrags:  Re: insert-frage

hallo,

@Salator:
Und noch ein Vorschlag zu einer ganz anderen Herangehensweise: Wenn etwas in einen frisch angelegten Account geschrieben werden soll, wieso machst du das nicht gleich in der create.php und erweiterst dort den entsprechenden sql-String?

weil ich unter anderem zufallsereignisse erschaffen wollte die auf die werte zugreifen die in der create.php erst erstellt werden.
z.b. in der create wird die abstammung festgelegt, ein darauf aufbauender wert wär z.b. die hautfarbe.

@Eliwood
ähm, ja, mit
$session['user']['gewi'] = $gewi;
funktionierte es dann auch.
sorry, weiss nicht was ich da unbedingt mit dem sql-zeug wollte. hab diesen aufbau so in der create gesehen und weshalb auch immer gemeint in der darauf folgenden datei createnext.php ähnlich arbeiten zu müssen.
nur zum verständnis: die createnext.php dient zur weitererstellung und vervollständigung des profils.
danke @all. mfg

Autor:  Anderswelt [ So 21 Feb, 2010 08:38 ]
Betreff des Beitrags:  Re: insert-frage

drimatu hat geschrieben:
weil ich unter anderem zufallsereignisse erschaffen wollte die auf die werte zugreifen die in der create.php erst erstellt werden.
z.b. in der create wird die abstammung festgelegt, ein darauf aufbauender wert wär z.b. die hautfarbe.


und wieso machst du das nicht über die Create? zb: if($_POST[abstammung]=='Frauholleöhnlicherdunkelelfenzwerg') $hautfarbe="Dunkelpink"; ??
dann nur noch das entsprechende Sql Insert erweitern und feddisch...

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/