WinFuture-Forum.de: Mysql Und Die Unbekannte Spalte - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Mysql Und Die Unbekannte Spalte


#1 Mitglied ist offline   MaDDiN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 997
  • Beigetreten: 18. Juni 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stink Tönis

geschrieben 16. Januar 2009 - 15:10

Hallo sehr geehrte Damen und Herren,

nach langer Zeit befasse ich mich malwieder mit PHP und MySQL. Ich möchte einen kleinen "Eventplaner" basteln. Keine große Sache also.

Soweit steht auch schon alles. Nur eine Sache gibt es, die ich nicht in den Griff kriege.

Ich möchte, dass man auf einer Admin-Seite den Status der Teilnehmer ändern kann. Es gibt folgende Möglichkeiten: "Warteschlange" (=0901), "Bestätigt" (=0902) und "Abgewiesen/Ersatzbank" (=0903). Die Werte in den Klammern sind die Werte die in der DB gespeichert werden sollen.

Die Werte werden über ein Formular per POST weitergegeben, und in der Zieldatei direkt ins SQL eingebaut:
	$sql = "UPDATE
				ev01.eventsetup
			SET
				attendeestatus = '".$_POST['attendeestatus']."'
			WHERE
				eventID = ".$_POST['eventID']."
			AND
				eventattendees = ".$_POST['eventattendees']."
			LIMIT 1
			";

Das ist also mein SQL-Code.
Ich will also die Tabelle 'eventsetup' Spalte 'attendeestatus' mit einem Wert (0901, 0902, 0903) updaten, aber nur bei dem Mitglied, welches an dem Event X (eventID) teilnimmt. Da mehrer Mitglieder zu einer eventID gehören, soll die Spalte geupdatet werden, in der sowohl die eventID als auch den Name (eventattendees) mit den via POST übergebenen Variablen übereinstimmen.

Doch was ist das? Folegende Fehlermeldung erhalte ich beim ausführen des Skripts:
Etwas stimmte mit dem Query nicht: Unknown column 'Testname' in 'where clause'

Dabei ist der Wert "Testname" in der Spalte "eventattendees" vorhanden, und auch die übermittelte eventID ist korrekt.

Warum ist die Spalte also unbekannt? Mache ich was falsch? Oder denke ich gar komplett falsch? Geht das alles gar nicht? Muss ich jetzt jämmerlich weinen, oder wisst ihr weiter?

Falls es helfen sollte, hier der ganze Code aus dem Skript, welches die DB updaten soll:
<?php

$db = @new mysqli('localhost', 'root', '', 'ev01');
if (mysqli_connect_errno()) {
	die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')');
}

	$sql = "UPDATE
				ev01.eventsetup
			SET
				attendeestatus = '".$_POST['attendeestatus']."'
			WHERE
				eventID = ".$_POST['eventID']."
			AND
				eventattendees = ".$_POST['eventattendees']."
			LIMIT 1
			";

$result = $db->query($sql);

if (!$result) {
	die ('Etwas stimmte mit dem Query nicht: '.$db->error);
}
while ($row = $result->fetch_assoc()) {
	echo $sql;
}

$result->close();
unset($result);

?>


Gruß
Martin
0

Anzeige



#2 Mitglied ist offline   cmohr5690 

  • Gruppe: Mitglieder
  • Beiträge: 4
  • Beigetreten: 16. Januar 09
  • Reputation: 0

geschrieben 16. Januar 2009 - 16:25

Müsste das nicht, wenn "eventattendees" ein String ist, so heissen?

eventattendees = '".$_POST['eventattendees']."'

Das is jetzt nur mal so aus dem Bauch heraus.

Dieser Beitrag wurde von cmohr5690 bearbeitet: 16. Januar 2009 - 16:25

0

#3 Mitglied ist offline   MaDDiN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 997
  • Beigetreten: 18. Juni 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stink Tönis

geschrieben 16. Januar 2009 - 16:41

Wenn ich das so schreibe, erhalte ich:
Fatal error: Call to a member function fetch_assoc() on a non-object in C:\xampp\htdocs\test.php on line 30


Mach ich die ' wieder weg, stehe ich wieder mit einer unbekannten Spalte da.

Was sagt der o.g. Fehler aus?
0

#4 Mitglied ist offline   tavoc 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.448
  • Beigetreten: 22. Juli 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 16. Januar 2009 - 17:22

bei einem UPDATE kann man kein FETCH machen, da nix zurückgegeben wird...

und deshalb der fehler, es wird auf ein nicht existentes Objekt zugegriffen

Dieser Beitrag wurde von tavoc bearbeitet: 16. Januar 2009 - 17:27

your IP is 127.0.0.1 or ::1
you are running an OS
you use a Browser
I know so much about you...
0

#5 Mitglied ist offline   MaDDiN 

  • Gruppe: aktive Mitglieder
  • Beiträge: 997
  • Beigetreten: 18. Juni 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stink Tönis

geschrieben 17. Januar 2009 - 02:44

Beitrag anzeigenZitat (tavoc: 16.01.2009, 18:22)

bei einem UPDATE kann man kein FETCH machen, da nix zurückgegeben wird...

und deshalb der fehler, es wird auf ein nicht existentes Objekt zugegriffen

NARF!

Also kürze ich das Script entsprechend:
	$sql = "UPDATE
				ev01.eventsetup
			SET
				attendeestatus = '".$_POST['attendeestatus']."'
			WHERE
				eventID = ".$_POST['eventID']."
			AND
				eventattendees = ".$_POST['eventattendees']."
			LIMIT 1
			";

$result = $db->query($sql);

if (!$result) {
	die ('Etwas stimmte mit dem Query nicht: '.$db->error);
}


Jetzt klappt es wunderbar :D .
Danke für diesen Denkanstoss :) .

Martin
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0