[PHP/MySQL] SQL Fehler

Wie lautet die Query denn ?


PHP:
if ($ref_views == $refer_views & $bekommen == 0){

$ask= "UPDATE `V4_accounts` SET geld=geld+$ref_geld WHERE `id` = '$refer_u'";
$result = mysql_query($ask) or die ("Error" . mysql_error(). " on line: " . __LINE__);

$asku= "UPDATE `V4_accounts` SET bekommen=bekommen+1 WHERE `id` = '$userid'";
$resultu = mysql_query($asku) or die ("Error" . mysql_error(). " on line: " . __LINE__);
}
 
Soweit kann ich selber lesen. Ich hab aber nach der Query gefragt, also dem, was du MySQL schickst, nicht dem PHP-Code, der die Query generiert, da der ja noch Variablen enthält.

Ich wette um 100k Lose, dass $ref_geld nicht gesetzt is :roll:
 
PHP:
$ask= "UPDATE `V4_accounts` SET klick_sp=0 WHERE klick_sp <= $nichtmehrgueltig";
$result = mysql_query($ask) or die ("Error" . mysql_error(). " on line: " . __LINE__);

$result_a = mysql_query("SELECT klick_sp, ref_views, bekommen, refererid, geld_ref, view_ref FROM V4_accounts WHERE id='$userid'");
$myrow_a = mysql_fetch_row($result_a);
$klick_sp = $myrow_a[0];
$ref_views = $myrow_a[1];
$bekommen = $myrow_a[2];
$refer_u = $myrow_a[3];
$ref_geld = $myrow_a[4];
$refer_views = $myrow_a[5];

Datenbank hab ich auch geprüft.. alles vorhanden

 
Zuletzt bearbeitet:
habe mal testweise eine id auslesen lassen:

https://www.bettertraffic.de/id_test.php

PHP:
<?php
include("header.inc.php");

require("./header.inc.php");



$result = mysql_query("SELECT id FROM `V4_accounts` WHERE `email` = '[email protected]'"); 
$row = mysql_fetch_row($result); 
$idausgabe = $row[0];

?>

<body bgcolor=#FFFFFF topmargin=2 leftmargin=2 rightmargin=2 bottommargin=2 marginwidth=2 marginheight=2>

Der User mit der Emailadresse [email protected] hat die Userid <?php echo $idausgabe; ?>
</body>

</html>

Das heiß jetzt das der fehler nicht in der prepend.inc.php ist!
 
was meinst du sonst mit das ref_geld nicht gesetzt ist?
Dass die Variable eben nicht gesetzt ist.
Das hat doch nix mit der Datenbank zu tun. Es geht einfach nur um diese Variable :pray:

Fragen wir anders: Welchen Wert hat sie denn ?
Wenn du versuchst, diese Frage zu beantworten, verstehst du automatisch auch die Postings alle.

Persönlicher Tip: Faul rumhocken und auf weitere Posts warten, bringt wohl gar nix. Schwing deinen Hintern mal auf und probier rum, sonst kommst du a) nie drauf und b) blickst nie, was wir dir versuchen beizubringen ;)
 
die variable ist ein vordeffinierter Wert der in der DB abgespeichert wurde. Erreicht ein geworbener User eine mindestanzahl an views erhält der werber den angegeben wert als bonus auf sein losekonto. der Wert ist bei allen usern gleich (25.000)

if ($ref_views == $refer_views & $bekommen == 0){

$ask= "UPDATE `V4_accounts` SET geld=geld+$ref_geld WHERE `id` = '$refer_u'";
$result = mysql_query($ask) or die ("Error" . mysql_error(). " on the line: " . __LINE__);

$asku= "UPDATE `V4_accounts` SET bekommen=bekommen+1 WHERE `id` = '$userid'";
$resultu = mysql_query($asku) or die ("Error" . mysql_error(). " on line: " . __LINE__);
}


Also hat der geworbene die vorgegbenen Punkte erreicht, bekommt der Werber die Bonuspunkte - Die Abfrage sieht für mich korrekt aus... Wenn ja dann update account des Werbers und addiere die Bonuspunkte bei den Losen (Geld heißt das hier) dazu.

$refer_u ist die Werberid
$geld ist das Loseguthaben
$ref_geld der Bonus für das werben eines aktiven users
 
Zuletzt bearbeitet:
*gg*
was das bedeuten soll ist uns auch klar, was wir dir sagen wollen ist, dass zu dem Zeitpunkt wo du dieser Fehler auftritt, in der Variable $ref_geld (PHP nicht MySQL) nichts drinne steht, die ist leer, daher kommt der Fehler, lass dir doch einfach mal mit echo den gesamten Query ausgeben (genauso wie er an die Datenbank geschickt wird), das mach ich immer so, und hilft immens, dann siehst du gleich was wir versuchen dir zu erklären.
 
PHP:
<?php
include("header.inc.php");

///////////////////////////

$result9 = mysql_query("SELECT *  FROM `V4_admin`");
$myrow2 = mysql_fetch_row($result9);
$a = $myrow2[12];
$surfen = $myrow2[31];
$zeit = time ();
$nichtmehrgueltig = $zeit-$a;


$ask= "UPDATE `V4_accounts` SET klick_sp=0 WHERE klick_sp <= $nichtmehrgueltig";
$result = mysql_query($ask) or die ("Error" . mysql_error(). " on line: " . __LINE__);

$result_a = mysql_query("SELECT klick_sp, ref_views, bekommen, refererid, geld_ref, view_ref FROM V4_accounts WHERE id='$userid'");
$myrow_a = mysql_fetch_row($result_a);
$klick_sp = $myrow_a[0];
$ref_views = $myrow_a[1];
$bekommen = $myrow_a[2];
$refer_u = $myrow_a[3];
$ref_geld = $myrow_a[4];
$refer_views = $myrow_a[5];


$ask= "UPDATE `V4_accounts` SET geld=geld+$ref_geld WHERE `id` = '$refer_u'";
$result = mysql_query($ask);

$asku= "UPDATE `V4_accounts` SET bekommen=bekommen+1 WHERE `id` = '$userid'";
$resultu = mysql_query($asku) or die ("Error" . mysql_error(). " on line: " . __LINE__);

//////////////////////// 
			
?>

<body>

<table width=100% height=50 align="center" cellspacing="1" cellpadding="2"  border="0" bgcolor=#29395A>
	<tr>
		<td bgcolor=#FFFFFF valign=top>

			<table border=0 cellspacing=0 cellpadding=0 width=100%>
				<tr>
					<td>asku= <?php $asku; ?> ask= <?php $asku; ?></td>


	</tr>
        
</table>

</body>

</html>

Das ist der Link: https://www.bettertraffic.de/ref_geld_test.php

Der gibt nix aus
 
Wozu noch was überprüfen, was offensichtlich ist? Der Fehler ist vermutlich ein Folgefehler dieser Zeile:
PHP:
$result_a = mysql_query("SELECT klick_sp, ref_views, bekommen, refererid, geld_ref, view_ref FROM V4_accounts WHERE id='$userid'");
Da $userid offensichtlich nirgends vorher definiert wird, vermute ich ganz stark, dass es einfach so aus dem Request oder der Session übernommen werden soll, was wiederum vermutlich wegen register_globals = off nicht funktioniert.

Also Skript auf korrektes Verwenden der Superglobalen $_POST, $_GET und $_SESSION umschreiben oder register_globals wieder anstellen, was aber nur die Quick-And-Dirty-Lösung wäre...
 
danke.. daran lag es...!!! Ich werde heute abend noch genau gucken ob alles geht.. aber die surfbar zumindest funktioniert wieder!

*edit*
Funktioniert wieder alles wie gewohnt :)
 
Zuletzt bearbeitet: