Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Sql => Update

Empfohlene Antworten

Nachdem ich den Punkt enfernt hab, gehts immernoch nicht.

das steht in der $sql drinne:

SELECT * FROM Testfall WHERE Funktionsbeschreibung LIKE 'Aktivitätsmonitor öffnen%'

Funktionsbeschreibung = Spalte

Aktivtätsmonitor öffnen = Spalteninhalt, nachdem ich filter.

  • Antworten 50
  • Ansichten 5.4k
  • Erstellt
  • Letzte Antwort

SELECT * FROM Testfall WHERE Funktionsbeschreibung LIKE 'Aktivitätsmonitor öffnen%'

Wenn Testfall der Name der Tabelle ist, bin ich gerade zu dumm einen Fehler zu sehen..

Sieht hier jemand das Problem, das DB-Layout soll mal egal sein ;)

Jap,

Testfall = Tabellenname

Funktionsbeschreibung = Spaltenname

Aktivitätsmonitor öffnen = Index, nachdem gefiltert wird.

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-.-

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..

Hey Du,

kannst das Update auch für mehrere Attribute in einem Statement machen, da es die gleiche Tabelle betrifft ;O)

Also:

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

'Auswertung getestet' ='0'",

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

Winkegruß,

Gnomeline

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

Hi.

Gibts vlt. jemanden, der übers Wochenende eine Lösung gefunden hat? Wäre super.

$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'";

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..

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...

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.

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()); 

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...

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());

}

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...

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.

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);

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...

Moep.

Es geht:D:D:D

Ich danke dir!!! Echt prima!!

Einen besseren Support kann man sich nicht wünschen;)

Wie MOEP?

Wasn das?

Monty stell das sofort ab!!

Was soll der Post jetzt???

Na kannst doch hier net rum moepedieren!

Quatsch war nurn Witz. Ignoriers einfach.

Schön das ihr dein Problem in griff bekommen habt ;-)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.