Datenbankeintrag auslesen und ändern

Hi Leutz :ps:

zu erst ma das Vorwort :ps: :
ich hab mir vor ner kleinen weile die domain qaiL.de gekauft und so und möcht nun ne commu draus machen. Habe bis jetzt alle scripts etc. einigermasen selber gescriptet, nur an eins zerbrech ich mir den kopf: dem auslesen und ändern des datenbank eintrages :smiley: ich habe mir schon etliche tut’s angeschaut , die mich auch weiterbrachten, aber nicht komplett weiterbrachten ich kann jetzt den datenbank ein trag von ‚Hallo‘ ungewollt auf ‚1‘ ändern :ps: . Wie gesagt konnte ich das mit SELECT und UPDATE nich mit php realisieren, deswegen frage ich euch ob jemand vllt mir tipps geben kann :smiley:. Am besten wärs natürlich wenn jemand mir den ganzen code mitgibt :smiley:

gruß Pat :ps:

vlt. hilft es uns, wenn du uns dein query zeigst :wink:

ich mach das immer so:

und das tut auch immer…

eventuell kanns du dir auch selber helften, mit echo mysql_error()

mfg Joey

[quote=„bcg“]vlt. hilft es uns, wenn du uns dein query zeigst :wink:

ich mach das immer so:

UPDATE `tabelle` Set `spalte1` = 'Wert', `spalte2` = 'wert'

und das tut auch immer…

eventuell kanns du dir auch selber helften, mit echo mysql_error()

mfg Joey[/quote]

thx, es geht nun - jedoch nicht ganz wie ichs haben will… er ändert leider alle datenbank einträge von allen „usern“ zudem wird in dem eingabefeld nicht der eintrag angezeigt, is ja klar, da SELECT nicht ausgeführt wird,

wenn ich jedoch WHERE id=’$_POST[id]’ verwende wird garnichtsmehr geändert

hier mein code:

[code]

<?php include "config.php"; $eintrag=mysql_fetch_array(mysql_query("SELECT id,user,time,test1,test2 FROM user WHERE id='$_GET[of]'")); $sql = "UPDATE `user` Set `test1` = '$_POST[ausgabe]' WHERE id = `$_POST[id]`"; $do = mysql_query($sql); echo " "; ?>[/code]

Gruß :ps:

Versuch es mal so:

Und geh sicher, dass die Variablen auch nicht leer sind. :wink:

Wieso ist das klar, dass das Select nicht ausgefuehrt wird?
Und wie soll in dem Formularfeld irgendetwas anzeigt werden, wenn du dort gar kein value fuer das Feld angibst?

Btw: Bitte verschachtele nicht, wie in deinem Code gezeigt, mehrere Anweisungen auf diese Weise ineinander - das erschwert die Fehlersuche.
Statt $eintrag=mysql_fetch_array(mysql_query("SELECT…
schreibe es bitte so in der Art:
$query = “SELECT …”;
$abfrageErgebnis = mysql_query($query) or die(mysql_error());
$datenSatz = mysql_fetch_array($abfrageErgebnis);

Und wo soll ein solcher POST-Wert deiner Meinung nach herkommen?

Dein Formular enthaelt zumindest kein Feld dieses Namens.

Das kann ja gar nicht gehen :wink:
SQL interpretier die von ` eingeklammerten Strings als ähm… Angaben, wie Felder, DB Tabelle etc.
bei Werten müssen zu Single-quates gegriffen werden:

mfg Joey

Oh, die zwei `` hab Ich gar nich gesehen! :astonished:
Brille mal anziehen geh :unamused:

mfg

Ich habs nun nach den anweisungen von chrisb ein wenig geändert, es geht jetzt.
ich habe bei dem „SELECT…“ etc. mal das WHERE id="$_GET[‚of‘]" asu dem code entfernt und unten bei $sql „.$_POST[‚id‘].“ gelöscht und einfach 1 hingemacht und zudem noch die ’ an „id“ hingemacht, nun geht es

[code]<?php
include „config.php“;

$query = „SELECT id,user,time,test1,test2 FROM user“;
$abfrageErgebnis = mysql_query($query) or die(mysql_error());
$datenSatz = mysql_fetch_array($abfrageErgebnis);
$sql = „UPDATE user Set test1 = '“.$_POST[‚ausgabe‘]."’ WHERE id = ‚1‘";
$do = mysql_query($sql);

echo „<form action=“".$_SERVER[‚SELF_PHP‘]."" method=„post“>
inhalt <input type=„text“ name=„ausgabe“>
<input type=„submit“ value=„Senden“>

"; ?>[/code]

da ich ein PHP Noob bin brauche ich nun nurnoch die ausgabe der schon vorhandenen informationen in der datenbank. Wenn mir jemand n tipp geben würde wäre das super^^

Gruß :ps:

de.selfhtml.org/html/formulare/e … orbelegung

(Und natuerlich htmlspecialchars())

Kein Problem: http://dev.mysql.com/doc/refman/5.0/en/select.html

ich würde bei dem post und get werten, die du in der abfrage verarbeitest noch mysql_real_escape_string() verwenden, damit du dich vor sql-injection schützt :wink: