• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

von 0 updaten

Status
Für weitere Antworten geschlossen.

Page

Neues Mitglied
Ich habe eine Funktion:
Code:
function build($build)
{
$sql_build = 'SELECT * FROM user WHERE id='.$_SESSION['user_id'];
$query_build = mysql_query($sql_build);
$fetch_build = mysql_fetch_array($query_build);


$sql_insert = 'UPDATE user SET '.$build.'='.$build.'+1 WHERE id='.$_SESSION['user_id'];

echo '<input type="submit" name="'.$build.'" value="'.$fetch_build[$build].'" />';

if($_POST[$build])
{
if(! $query_insert = mysql_query($sql_insert))
{
echo 'Deine Anfrage konnte nicht ausgeführt werden.';
}
}



}
Diese soll eine Variable in der DB von 0 auf 1 erhöhen(sollte)
Das geht aber nciht -.-
Wenn ich die Variable Manuell in phpmyadmin auf 1 der höher stelle, dann geht die Fun ktion. nur eben so nciht.
(die Datei mit der funktion wird includiert.Die <form> Wird shcon in der index angewandt.)
 
Werbung:
was willst du eigentlich machen?
das erscheint mir extrem viel aufwand um eine zahl um eins zu erhöhen ^^
 
Page schrieb:
$sql_insert = 'UPDATE user SET '.$build.'='.$build.'+1 WHERE id='.$_SESSION['user_id'];

ähm... deine spalte in der tabelle heisst so wie der wert in der variable $build?
und soll den wert aus $build+1 erhalten?
in deinem beispiel hieße die spalte in der tabelle 0 und bekäme den wert 1 ?

$sql_insert = 'UPDATE user SET 0 = 0+1 WHERE id=...;'

ist das wirklich so gewollt? oO
 
Werbung:
Wer sagt denn, dass sie null heißt?
Der sinn von Update liegt eigentlich darin:

build(zahl);
==
Update user SET zahl=zahl+1;

Und der große AUfwand besteht nur, weil ich das öfters machen will. Und nicht nur einmal.
 
ich weiss was update macht und wozu's gut is (:

nur gibst du als zu ändernden spaltenname den wert der varialbe $build an..
und wenn die zahl in $build, die hochgezählt werden soll nunmal 0 ist, dann heisst die spalte der tabelle auch 0.
wenn ein anderer wert in der variable $build steht, heisst die spalte eben anders.

vielleicht hast du sämtliche möglichen werte der varibalen $build ja als spalten in deiner tabelle, aber irgendwie glaub ich das nich wirklich.

wenn sie nicht '0' heisst, dann solltest du den richtigen spaltennamen einfach angeben.
mehr wollte ich damit nicht sagen.

$sql_insert = 'UPDATE user SET 'spaltenname' = ".$build."+1 WHERE id=...;'
 
neeee-.-
ICH gebe an, was $build enthält. nicht irgendjemand anders.
Daher weiß ich auch ganz genau, dass die Variablen, die eingegeben werden auch existent sind.
 
Werbung:
warum machst du das nicht einfacher?
[php:1:38a1479e5e]<?php
$column = 'spalte';
$table = 'tabelle';
$sql = "UPDATE $table SET $column = '$column'+1 WHERE ID = '$_SESSION['id']";
$res = @mysql_query($sql);
if (!$res) {
echo 'Deine Anfrage konnte nicht ausgeführt werden';
}
?>
[/php:1:38a1479e5e]
 
Weil ich das Script ja immer schreiben müsste.
ICh führe dsa ganze aber ein paar mal auf einer Seite aus.
Dann includier ich das und spar mir somit ne menge code.
 
aber, selbst wenn du den wert für $build festlegst...

trotzdem muss es für dein skript immer ne spalte geben die wie der -festgelegte- wert in $build heißt.
und da du $build ja hochzählen willst, muss es sich ja irgendwie um ne zahl handeln oder?
das is das, was mich so verwirrt.

vielleicht isses einfacher zu verstehn, wenn du mal nen fallbeispiel gibts.
 
Werbung:
Aber, wenn ich über phpmyadmin die zahl auf 1 setze, gehts-.-

Fallbeispiel:
ein buttoncounter(?)
Da schreib cihd ann einfach <?php build(namederzeile); ?>
 
dann speicher das doch einfach als datei ab und include es immer wenn du es brauchst. naja ich bin heut auch nic ganz auf der höhe und versteh nicht ganz.
 
hüü?
Sag ich doch!
Ich includiere das script immer.
Und ich will es auch auf verschiedenem wege einsetzen, deshalb die funktion.
 
Werbung:
dein fehler ist folgender du kannst auf der rechten seite der zuweisung nicht die spalte aufrufen. du musst ihren expliziten wert kennen und dort +1 recheen so:

spalte = spalten_wert + 1

aber so wie ich dich verstehe willst du den wert ja einfach auf eins setzten. wozu dann der aufwand mach doch einfach

spalte = 1

und fertig
 
Prophet schrieb:
dein fehler ist folgender du kannst auf der rechten seite der zuweisung nicht die spalte aufrufen. du musst ihren expliziten wert kennen und dort +1 recheen so:

spalte = spalten_wert + 1

aber so wie ich dich verstehe willst du den wert ja einfach auf eins setzten. wozu dann der aufwand mach doch einfach

spalte = 1

und fertig
Das hab ich mir vorher auch gedacht.
Und da es ja mit der Zahl 1 in der Variable funktioniert, hab ich folgendes geschrieben:
Code:
if($fetch_build[$build]==0)
{
$sql_insert = 'UPDATE user SET '.$build.' = 1 WHERE id='.$_SESSION['user_id'];
}
else
{

$sql_insert = 'UPDATE user SET '.$build.'=('.$fetch_build[$build].'+1) WHERE id='.$_SESSION['user_id'];
}
Nur leider geht nicht mal das :(
 
Werbung:
vll heißen die spalten ja gar nicht so...

hast du überhaupt eine verbindung zur db aufgebaut?
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben