Datenbank Eintrag

Brian Folte

Angesehenes Mitglied
Hallo ich wollte euch mal Fragen ob ihr vielleicht ein Lösungsansatz für mich habt,
In meinem Profil werden zwar die Daten aus der Datenbank ausgelesen aber wenn ,an hier was ändern möchte klappt das leider nicht.

Z.B. bei der Beschreibung, wird der Text ausgegeben den man ganz am Anfang eingetragen hat.
Wenn man ihn nun ändern will wird einem zwar angezeigt das die Daten geändert wurden aber sie werden nicht in der datenbank gespeichert.

Gibt es vielleicht eine Möglichkeit genau zu schauen wo der Fehler steckt?

LG Brian
 
QUOTE (Brian Folte @ Fr 19.10.2007, 17:47) Hallo ich wollte euch mal Fragen ob ihr vielleicht ein Lösungsansatz für mich habt,
In meinem Profil werden zwar die Daten aus der Datenbank ausgelesen aber wenn ,an hier was ändern möchte klappt das leider nicht.

Z.B. bei der Beschreibung, wird der Text ausgegeben den man ganz am Anfang eingetragen hat.
Wenn man ihn nun ändern will wird einem zwar angezeigt das die Daten geändert wurden aber sie werden nicht in der datenbank gespeichert.

Gibt es vielleicht eine Möglichkeit genau zu schauen wo der Fehler steckt?

LG Brian

google nach "mysql update" ...

wie wärs mal mit code?
 
Hier der Code:

CODE $db = mysql_connect ($mysqlserver,$mysqluser,$mysqlpasswort); mysql_select_db ($mysqldbname,$db);
$profilabfragen = "SELECT * FROM userprofil where profilname='$alias'";
$profilergebnis = mysql_db_query($mysqldbname,$profilabfragen);
while (list($id,$profilname,$profilpass,$profilkopf,$profilbeschreibung,$profilmass,$profilgross,$profilkenfektion,$profilgewicht,$profilbh,$profilschuh,$profilrasur,$profilhaarfarbe,$profilbeziehung,$profilberuf,$profilmag_ich,$profilmag_nicht,$profilhobby,$profilbild,$profila,$profilb,$profilc,$profilagb,$profilguth,$profilklick) = mysql_fetch_row($profilergebnis))
{



CODE $eintrage = "update shopcount set counterzahl='$stat'";
$resulte = mysql_query($eintrage);

$eintrage = "update userprofil set profilb='$stat',profila='ja',profilbeschreibung='$umwandinhalt',profilmass='$profilmasse',profilgross='$profilgrosse',profilbild='$profilbildd',profilb='$profilbb',profilagb='$suche',profilguth='$profilguthh' where profilname='$benutzer'";
$resulte = mysql_query($eintrage);



CODE $eintrager = "INSERT INTO userprofil VALUES('0','$benutzer','$pass','$profilkopfdat','$umwandinhalt','$profilmasse','$profilgrosse','$profilbildd','ja','$stat','','$suche','$profilguthh','')";
$result = mysql_query($eintrager);

$eintrage = "update shopcount set counterzahl='$stat'";
$resulte = mysql_query($eintrage);


Ich kann den Fehler nicht finden.

LG Brian
 
Benutzt du mehrere Datenbanken?
Wenn nein, kannst du schonmal das überflüssige mysql_db_query durch mysql_query ersetzen.

Wenn nicht das passiert, was du möchtest, immer mysql_query("") or die(mysql_error()); verwenden, um die Fehlermeldung direkt von der Datenbank zu erhalten.
Auch sinnvoll zum debuggen ist sich das Query ausgeben zu lassen und dann in phpMyAdmin einzufügen und ggf. anzupassen/Fehler auszumerzen.
 
Mit mysql error wird mir kein Fehler angezeigt.
Finde das irgendwie sehr komisch den wie gesagt auslesen tut er ja alles.

LG Brian
 
Nun habe ich den fehler endeckt, weiß aber nicht was ich mit der Meldung anfangen soll:
Column count doesn't match value count at row 1

Kann mir jemand weiter helfen?

LG Brian
 
genau hier sitzt der Fehler, ich weiß nur nicht was ich da genau ändern soll. Google spuckt nur etwas aus das die Spaltenanzahl nicht übereinstimmt.
CODE
$eintrager = "INSERT INTO userprofil VALUES('0','$benutzer','$pass','$profilkopfdat','$umwandinhalt','$profilbildd','ja','$stat','','$suche','$profilguthh','')";
$result = mysql_query($eintrager) or die(mysql_error());


Nur in der tabelle userprofil sind von anfang an mehr Spalten als hier aufgelistet und nun habe ich ca. noch 10 Stück hinzugefügt.

Kann mir jemand genau sagen wie ich nun fortfahren muss?

LG Brian
 
Das hängt jetzt von Deinen zusätzlichen Spalten ab. Grundsätzlich hast Du zwei Möglichkeiten:

1. Explizit bei Inserts und beim Update sämtliche Spalten setzen.
2. Wenn Du in der Tabellen-Definition Default-Werte vorgesehen hast, die für Deine Zwecke brauchbar sind, sollte es reichen, wenn Du bei den Werten explizit die jeweilige Spalte angibst.

Viele Grüße
 
Hallo ich habe mal ein kleines Problemchen und zwar trägt min Script die Daten in eine leere Tabelle nicht ein, erst wenn ich selbst in der Tabelle die Felder vorgeben sprich den username u.s.w. einträgt.

CODE $profilabfragen = "SELECT * FROM userprofil where profilname='$benutzer'";
$profilergebnis = mysql_db_query($mysqldbname,$profilabfragen);
while (list($id,$profilname,$profilpass,$profilkopf,$profilbeschreibung,$profilbild,$profila,$profilb,$profilc,$profilagb,$profilguth,$profilklick) = mysql_fetch_row($profilergebnis))
{
if($benutzer == ($profilname)) {
}
else
{
include("falscheingabe.php");
exit;
}

$suche = substr_replace ($profilagbs,"",60);
$eintrager1 = "update userprofil set profilkopf='$profilkopfdat',profilbeschreibung='$umwandinhalt',profilbild='$profilbildd',profilb='$profilbb',profilagb='$suche',profilguth='$profilguthh' where profilname='$benutzer'";
$result = mysql_query($eintrager1);
}


Werde bald irre mit dem Script. Vielleicht findet jemand den Fehler ich finde ihn nämlich nicht.

LG Brian
 
'$profilkopfdat',profilbeschreibung

Ich mache nach dem Komma immer einen Abstand, weiss aber nicht, ob es einen Einfluss hat... Kann sonst nix entdecken...
 
QUOTE und zwar trägt min Script die Daten in eine leere Tabelle nicht ein


CODE update userprofil set

rolleyes.gif
Sicher, daß da kein INSERT hin sollte?
 
1. kein insert, sonst wäre das "where" unnötig
2. space nach , oder nicht macht keinen unterschied
3. was steht in $benutzer und gibt es überhaupt den benutzer?
4. debugge dein query in dem du dir den query ausgeben lässt und von hand in die mysql console (oder pma oder so) einträgst um zu sehen ob es sicher nicht am query liegt, debug: mysql_query(meinquery) OR die(mysql_error());
 
MIt OR die(mysql_error()); bekomme ich keine Meldung.
In der tabelle soll der $benutzer erst eingetragen werden, es ist sozusagen sein Profil. Angemeldet ist er schon, diese Daten sind in der Tabelle user und nun soll der benutzer sein Profil in der Tabelle userprofil speichern. Das komische ist das es gestern noch funktioniert hat bis ich ein neues Feld in die tabelle user eingetragen habe.

LG Brian
 
d.h. der $benutzer ist in der tabelle noch garnicht vorhanden? dann funktioniert ein update natürlich nicht, dann musst du die daten erst mit einem insert in den table einfügen.

INSERT INTO tabelle (feld1, feld2, feld3) VALUES (1, 'sven', 'hallo');
 
QUOTE (Sven K @ Di 23.10.2007, 16:18) INSERT INTO tabelle feld1 = '1', feld2 = 'sven', feld3 = 'hallo';

oder...
 
Zurück
Oben