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

Problem mit sql-Befehl
https://anpera.homeip.net/phpbb3/viewtopic.php?f=25&t=4882
Seite 1 von 1

Autor:  Minerva [ Mo 04 Mai, 2009 15:35 ]
Betreff des Beitrags:  Problem mit sql-Befehl

ok, das erste mal, dass ich selbst mal Hilfe brauche,
aber weder ich noch mein Co-Progger haben einen Fehler finden können, warum das Mistding nicht funktioniert...
bei dem Script geht es um eine einfachere Umstellung zwischen rp und level-char, da mich die dauernden anfragen nerven
eigentlich klappt auch alles, nur wird der user nicht umgestellt.
da die source bei mir spinnt (sowohl mit show source als auch highlightfile) mal den wichtigsten Teil an gehangen:

$this->bbcode_second_pass_code('', 'if ($_GET['id'])
{

$sql1='Select anzahl, rp FROM wechsel, accounts WHERE wechsel.acctid='.$_GET['id'].' AND wechsel.acctid=accounts.acctid';
$row=db_fetch_assoc(db_query($sql1));

//bedarf am wechseln zurücksetzen.
$sql2 ='UPDATE wechsel SET wechsel="0" WHERE wechsel.acctid="'.$_GET['id'].'"';
db_query($sql2);
$meldung='';
if($_GET['aktion']=='yes')
{
if ($row['rp']=='1')
{
$sql5=('UPDATE accounts SET rp = 1 WHERE acctid='.$_GET['id'].' LIMIT 1');
}
else
{
$sql5=('UPDATE accounts SET rp = 2 WHERE acctid='.$_GET['id'].' LIMIT 1');
}

db_query($sql5);
$date=getdate();
$sql3 =('UPDATE wechsel SET lastchange="'.$date['year'].'-'.$date['mon'].'-'.$date['mday'].'" WHERE acctid="'.$_GET['id'].'"');
db_query($sql3) ;
//anzahl der volzogenen wechsel erhöhen
$a=strval ($row['anzahl']+1);
$sql4 =('UPDATE wechsel SET anzahl="'.$a.'" WHERE acctid="'.$_GET['id'].'"');
db_query($sql4);

output($sql1."`n".$sql2."`n".$sql3."`n".$sql4."`n".$sql5);
$meldung=('Ein Admin hat zugestimmt deinen Kämpfer-Typ ändern zu lassen.');
}')
ok, sieht etwas verwirrender aus, wie gesagt, es funktioniert alles, bis auf der Teil mit der Umstellung(sql5) wir haben nun ~20 Möglichkeiten ausprobiert diesen Code nun richtig zu bekommen..
er spuckt ihm beim output unten sogar richtig aus...
bei der manuellen Eingabe in die db funktioniert er, nur nicht in der Datei.
auch alle anderen Befehle funktionieren.
nur dieser eine nicht
jemand ne Idee woran das liegen könnte?

danke im Vorraus

Autor:  Rohen [ Mo 04 Mai, 2009 16:10 ]
Betreff des Beitrags:  Re: Problem mit sql-Befehl

ok ich tipp einfach mal ins blaue:

wäre es möglich, das ein nachfolgender Bestandteil (oder der evtl. eingeloggte User) den Inhalt des RP-Feldes wieder zurücksetzt? Sprich habt ihr euch den Feldinhalt direkt nach dem db_query mal anzeigen lassen?

Kann man eine Ausgabe des sql5 mal sehen?


Was in eigener Sache:
Die Datenbankabfrage sql1 ist unsauber. Auch wenn die Datensätze sicherlich gering sind, lasst sowas nicht erst einreisen, das ist ne Performanceverschwendung (JOIN Abfragen verwenden anstatt Komma-Abfragen)

Autor:  Minerva [ Mo 04 Mai, 2009 16:21 ]
Betreff des Beitrags:  Re: Problem mit sql-Befehl

zu sql1.. ja das habe ich meinem Co-Progger auch schon gesagt, aber im Moment klappts noch, von daher wird das erst später geändert, soll ja erst mal funktionieren, danach kann mans immer noch verbessern...


und hier die ausgaben für jedes sql, der reihe nach
Select anzahl, rp FROM wechsel, accounts WHERE wechsel.acctid=15 AND wechsel.acctid=accounts.acctid;
UPDATE wechsel SET wechsel="0" WHERE wechsel.acctid="15";
UPDATE wechsel SET lastchange="2009-5-4" WHERE acctid="15";
UPDATE wechsel SET anzahl="15" WHERE acctid="15";
UPDATE accounts SET rp = 2 WHERE acctid=15 LIMIT 1

wie gesagt, ich habe shcon alles probeirt, mit ` bei den tabellen feldern, mit " statt ' und alles was mir noch so eingefallen ist, wie man den Befehl gestalten könnte, aber immer das gleiche... keine Umstelung
habs nun auch extra mit nem andren Char probiert, klappt einfach nicht...
und wenn du mit Fehlinhalt or die(db_error(LINK)); meinst, ja hab ich auch schon gemacht,hat auch nichts geändert...
und wie gesagt, führe ich die Zeile vom sql 5 in der db aus, funktioniert es ja...

Autor:  Rohen [ Mo 04 Mai, 2009 16:37 ]
Betreff des Beitrags:  Re: Problem mit sql-Befehl

nein eigentlich meinte ich die accounts direkt nach dem sql5 nochmal abzufragen und den Feldinhalt auszugeben, weil irgendwie vom Code her bin ich offenbar genauso mit Blindheit geschlagen wie du.

Die einzig sichtbare Abweichung zu den restlichen Statements ist bei dem sql5 die fehlende Hochkommasetzung für die Werte der Felder, aber das wäre mir neu, dass sich daran irgendwas stoßen würde.

Autor:  Minerva [ Mo 04 Mai, 2009 16:56 ]
Betreff des Beitrags:  Re: Problem mit sql-Befehl

wie geschrieben hatte ich die auch mal drinne...
in etlichen unterschiedlichen variablen...
aber ok, habs nun hinbekommen
1 und 2 waren vertauscht ^^'
*kopf und Wand guten Tag sagt*
aber ohne des mit dem nachkucken wäre ich nu auch nicht drauf gekommen...
da fällts dann doch auf wenn vorher 2 war und danach immer noch 2...
blöd kann man sein >.<

danke für die Hilfe

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