Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Update oder Insert wählen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Update oder Insert wählen


 
meierhans
06-12-2005, 17:23 
 
Hallo !

Ich prüfe ob der User schon in der Tabelle steht, wenn ja, dann
soll er die Daten updaten, wenn nicht, sollen die neuen Daten
gespeichert (insert) werden. Leider speichert er mir immer
den neune Datensatz ohne zu prüfen ob der user schon
vorhanden ist.

if ($aktion == "mehr_speichern") {




$query = "SELECT * FROM dateuser_mehr ";
$resulta = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

while($row = mysql_fetch_object($resulta)){

if ($user == $row->user) {
$queryb = "UPDATE dateuser_mehr SET traummann = '$traummann',
beziehung = '$beziehung', treue = '$treue', seitensprung = '$seitensprung',
eifersucht = '$eifersucht', eifersucht = '$eifersucht', sex = '$sex',
wieviele_beziehungen = '$wieviele_beziehungen', romantik = '$romantik' ,
freunde ='$freunde' , familie = '$familie', geld = '$geld', erfolg = '$erfolg',
abwechslung = '$abwechslung', traeume = '$traeume' , traeumer = '$traeumer'
where user = '$user' ";
$eintragen1 = mysql_query($queryb);

}
elseif(!isset($user))
{


$queryc="INSERT INTO dateuser_mehr (traummann, beziehung,
treue, seitensprung, eifersucht, sex, wieviele_beziehungen, romantik, freunde, familie,
geld, erfolg, abwechslung, traeume, traeumer, user) values('$traummann','$beziehung',
'$treue','$seitensprung',
'$eifersucht', '$sex','$wieviele_beziehungen', '$romantik', '$freunde','$familie','$geld','$erfolg','$abwechslung',
'$traeume','$traeumer', '$user')";

mysql_query($queryc) or die("Anfrage fehlgeschlagen2: " . mysql_error());

}
}
$daten = mysql_query ( "SELECT * FROM dateuser_mehr WHERE user='$o_user'" );
$datensatz = mysql_fetch_array($daten);
$nachricht = "Daten wurden gespeichert !";
$site="uebermich/mehr_ueber_mich";
include("my_berlindaters2.php");
}

 
Kropff
06-12-2005, 17:27 
 
warum nicht
$query = 'SELECT * FROM dateuser_mehr WHERE user = '."'".$user."'";
und dann
if ($row->user)

anderenfalls
nein
elseif(!isset($user))
ja
else if(!$user)
vielleicht wurde die variable $user schon gesetzt, hat aber keinen inhalt.

gruß
peter

 
goth
06-12-2005, 17:56 
 
Und warum nicht:

SELECT COUNT(*) FROM dateuser_mehr WHERE user = '{$user}'

??

 
php_jan
06-12-2005, 18:00 
 
Ich prüfe ob der User schon in der Tabelle steht, wenn ja, dann
soll er die Daten updaten, wenn nicht, sollen die neuen Daten
gespeichert (insert) werden.

Eventuell mal über ON DUPLICATE KEY UPDATE ... nachdenken !

http://dev.mysql.com/doc/refman/5.0/en/insert.html

Damit ist folgendes möglich: Wenn ein bestehender Wert exisitert dann updaten, wenn nicht ->anlegen!

Müsste man natürlich mal nachsehen, ab welcher MySQL Version soetwas unterstützt wird.

 
ghostgambler
06-12-2005, 19:29 
 
Original geschrieben von php_jan
Eventuell mal über ON DUPLICATE KEY UPDATE ... nachdenken !

http://dev.mysql.com/doc/refman/5.0/en/insert.html

Damit ist folgendes möglich: Wenn ein bestehender Wert exisitert dann updaten, wenn nicht ->anlegen!

Müsste man natürlich mal nachsehen, ab welcher MySQL Version soetwas unterstützt wird.
warum nicht einfach REPLACE?

 
Abraxax
06-12-2005, 19:32 
 
weil der primary-key hierbei wahrscheinlich auf einem autoinc. feld liegt. daher macht das nicht wirklich sinn mit REPLACE ;-)

 
thommyk
06-12-2005, 19:58 
 
vielleicht wurde die variable $user schon gesetzt, hat aber keinen inhalt.

Also ist eventuell mal wieder register_globals auf off und $user leer, weil nicht mit $user = $_POST['user']; gesetzt.

 
ghostgambler
06-12-2005, 20:01 
 
Original geschrieben von Abraxax
weil der primary-key hierbei wahrscheinlich auf einem autoinc. feld liegt. daher macht das nicht wirklich sinn mit REPLACE ;-)
tja...hab nur den letzten Post gelesen :D
dumme Frage Nummer 2:
Wozu Anmeldung und Update auf einer Seite? :confused:


$user = $_POST['user'];
bring ihn nicht auf dumme Gedanken! Oo,


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:45 Uhr.