Zum Inhalt springen

Sql => Update


Herr_der_Ringe

Empfohlene Beiträge

  • Antworten 50
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Fehlt der Edit-Button, also Doppelpost.

Selbst diese einfache $sql-anweisung geht nicht:

$sql = "SELECT ".$was." FROM Testfall ";

Sprich, in meinem Bsp: "SELECT Funktionsbeschreibung FROM Testfall";

Er zeigt mir trotzdem die komplette Tabelle an. Soll er ja aber nicht! Kann es sein, da ich ganz am Anfang des Scriptes ja auch ein $SQL hab ("Select * FROM Testfall ORDER BY Auto_Testfall_ID"), dass er immer wieder das dann ausführt? Warum auch immer-.-

Link zu diesem Kommentar
Auf anderen Seiten teilen

Och,dazu hätt ich auch noch ne Frage:D

Und zwar, funktioniert es ja jetzt, dass das Testdatum auf 0 gesetzt wird.

Aber, es sollen gleichzeitig noch 2 wietere Spalten auf 0 gesetzt werden.

diese heissen:

Auswertung getestet

Auswertung in Abläufen

Habs so versucht (Glaube, das war ein dummer versuch-.-)

$sql = "UPDATE Testfall SET Testdatum ='0000-00-00 00:00:00'";

$sql = "UPDATE Testfall SET 'Auswertung getestet' ='0'";

$sql = "UPDATE Testfall SET 'Auswertung in Abläufen' ='0'";

Jo, und die SQL-Anweisung beim Filtern geht mir auch noch aufn Keks.. kA was da los ist..

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jo, das weiss/dachte ich mehr oder weniger auch schon. Habs auch ausprobiert. Aber geht net-.-

$sql = "UPDATE Testfall SET Testdatum ='0000-00-00 00:00:00',

'Auswertung getestet' ='0',

'Auswertung in Abläufen' ='0'";

MySQL-Fehler:You have an error in your SQL syntax near ''Auswertung getestet' ='0', 'Auswertung in Abläufen' ='0'' at line 2

Link zu diesem Kommentar
Auf anderen Seiten teilen

$sql = "UPDATE Testfall SET Testdatum ='0000-00-00 00:00:00',

'Auswertung getestet' ='0',

'Auswertung in Abläufen' ='0'";

Wenn's wirklich diese Spaltennamen sein müssen ;)...


$sql = "UPDATE Testfall SET Testdatum = '0000-00-00 00:00:00', `Auswertung getestet` = '0', `Auswertung in Abläufen` = '0'";

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hab die Spaltennamen in Auswertung_getestet und Auswertung_in_Ablauf geändert.

Was sehr komisch ist. Testdatum löschen => ging. Dann hab ich die Auswertungen mit dazugenommen. Jetzt geht nurnoch die Auswertung_in_Ablauf-.-

vlt. liegts daran, dass ich 3 $sql*** gemacht hatte und er nur die letzte ausführt?! Dürfte ja aber eigentlich nicht so sein.

PS: Das mit dem Filtern geht immernoch net-.-

Die SQL-Anweisung scheint korrekt.. aber er filtert nicht..

Link zu diesem Kommentar
Auf anderen Seiten teilen

vlt. liegts daran, dass ich 3 $sql*** gemacht hatte und er nur die letzte ausführt?!

Hast Du für jedes einzelne SQL-Statement ein mysql_query() drin?

Mit dem Statement aus meinem letzten Post brauchst Du doch nur noch ein Statement...

Zum Filtern hätte ich nochmal gerne ne aktuelle Fehlermeldung und den Code-Block, in dem es ausgeführt wird...(nicht alles ;)) sowie den Inhalt von $sql zu dem Zeitpunkt...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Testdatum zurücksetzen:

if (!empty($_GET['action']) && $_GET['action'] == "nullen")

{

$sql = "UPDATE Testfall SET Testdatum ='0000-00-00 00:00:00', Auswertung_getestet = '0', Auswertung_in_Ablauf = '0'";

if (!mysql_query($sql))

{

die("MySQL-Fehler:".mysql_error());

}

}

<= Geht jetzt-.- :D

Filter-Funktion:

if ($_SERVER['REQUEST_METHOD'] == "GET")

{

if (isset($_GET['suche']))

{

$filter = $_GET['suche'];

$was = $_GET['was'];

$sql = "SELECT * FROM Testfall WHERE ".$was." LIKE '".mysql_escape_string($filter)."%'";

echo $sql;

if (!mysql_query($sql))

{

die("MySQL-Fehler:".mysql_error());

}

}

}

else

{

echo "Geht net";

}

Das steht in $sql drinne, wenn ich in Funktionsbeschreibung nach a suche:

SELECT * FROM Testfall WHERE Funktionsbeschreibung LIKE 'a%'

Fehlermeldungen gibts keine.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du wertest Die Ergebnismenge des SQL-Statements ja gar nicht aus...

$filter = $_GET['suche'];

$was = $_GET['was'];

$sql = "SELECT * FROM Testfall WHERE ".$was." LIKE '".mysql_escape_string($filter)."%'";

echo $sql;

if (!mysql_query($sql)) {

die("MySQL-Fehler:".mysql_error());

}


...

if ($sqlRes = mysql_query($sql)) { 

	while ($row = mysql_fetch_assoc($sqlRes)) {

		echo "<pre>";

		print_r($row);

		echo "</pre>";

	}

}

else die("MySQL-Fehler:".mysql_error()); 

Link zu diesem Kommentar
Auf anderen Seiten teilen

LoL!

Also, folgendes!

Oberhalb der Tabelle, die er mir ja anzeigt, zeigt er mir jetzt folgendes an:

Array

(

[Auswertung_Items] => 1

[Auswertung_getestet] => 0

[Auswertung_in_Ablauf] => 0

[Nr] => 2.01.01

[Auto_Testfall_ID] => 1

[GV_Funktion_ID] => 1

[Funktionsbeschreibung] => Applikation starten

[Testdatum] => 0000-00-00 00:00:00

[beschreibung] => Applikation starten

[Vorraussetzung] => Benutzer ist in PPSFR angelegt, verteilte Umgebung ist gestartet

[sollergebnis] => Zugbildungsbrowser startet, korrekter Besteller und Bestellerdaten werden angezeigt

[Verweis] =>

[Reihenfolge] => 1

)

Und das für alle Datensätze, wo Funktionsbeschreibung mit A beginnt. Also demnach schon korrekt.

Nur, sollte er mir halt die Tabelle anzeigen, nur mit den Datensätzen mit den gewünschten Kriterien...

Link zu diesem Kommentar
Auf anderen Seiten teilen

So siehts mom. aus:

if ($_SERVER['REQUEST_METHOD'] == "GET")

{

if (isset($_GET['suche']))

{

$filter = $_GET['suche'];

$was = $_GET['was'];

$sql = "SELECT * FROM Testfall WHERE ".$was." LIKE '".mysql_escape_string($filter)."%'";

echo $sql;

if (!mysql_query($sql))

{

die("MySQL-Fehler:".mysql_error());

}

if ($sqlRes = mysql_query($sql))

{

while ($row = mysql_fetch_assoc($sqlRes))

{

echo "<pre>";

print_r($row);

echo "</pre>";

}

}

else die("MySQL-Fehler:".mysql_error());

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann musst Du das filternde Statement vor der Stelle setzen, an der die Ergebnismenge für die Tabelle ausgelesen wird...

Quasi noch vor dem hier:


$sql = "SELECT * FROM Testfall ORDER BY Auto_Testfall_ID";

$datenbank = "ppsfr_spielwiese";

mysql_select_db($datenbank,$db_handle);

$ergebnis = mysql_query($sql);

Abhängig von dem, ob gefiltert wird oder nicht, nimmst Du den gerade zittierten Inhalt von $sql, alternativ dann das filternde Statement...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hm..kapier ich jetzt nicht ganz..

wenn ichs vor dem connect setze, dann heisst es, es wird nicht connected.logisch.

wenn ichs so mache, wie von dir beschrieben, dann heisst es, keine datenbank ausgewählt.auch logisch (da diese ja später erst beschrieben ist).

wenn ich es danach einfüge, zeigt er mir wieder alles an. oben die arrays, die gefiltert wurden und unten die KOMPLETTE Tabelle. So auch, wenn ich die Funktion nach dem von dir beschriebenen einfüge.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie hast Du es denn gemacht?

Ich meinte so in etwa:


	if (isset($_GET['suche'])) {

		$filter = $_GET['suche'];

		$was = $_GET['was'];

		$sql = "SELECT * FROM Testfall WHERE ".$was." LIKE '".mysql_escape_string($filter)."%'";

	}

	else $sql = "SELECT * FROM Testfall ORDER BY Auto_Testfall_ID";

	$datenbank = "ppsfr_spielwiese";

	mysql_select_db($datenbank,$db_handle);

	$ergebnis = mysql_query($sql);

Link zu diesem Kommentar
Auf anderen Seiten teilen

YEAH!!!

$db_handle = mysql_connect($HOST,$USERID,$PW) or die("Die Datenbank ist momentan nicht erreichbar");

$datenbank = "ppsfr_spielwiese";

mysql_select_db($datenbank,$db_handle);

if ($_SERVER['REQUEST_METHOD'] == "GET")

{

if (isset($_GET['suche']))

{

$filter = $_GET['suche'];

$was = $_GET['was'];

$sql = "SELECT * FROM Testfall WHERE ".$was." LIKE '".mysql_escape_string($filter)."%'";

if (!mysql_query($sql))

{

die("MySQL-Fehler:".mysql_error());

}

if ($sqlRes = mysql_query($sql))

{

while ($row = mysql_fetch_assoc($sqlRes))

{

echo "<pre>";

print_r($row);

echo "</pre>";

}

}

}

}

else $sql= "SELECT * FROM Testfall ORDER BY Auto_Testfall_ID";

$ergebnis = mysql_query($sql);

$anz_datensaetze = mysql_num_rows($ergebnis);

So funktioniert es, bis auf einen Schönheitsfehler!

Diese Datensätze in den Arrays, werden immernoch oberhalb der Tabelle angezeigt...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...