warum UPDATE nur einmal in while schleife

Du benutzt in der Schleife die gleiche Datenbankklasse-Instanz wie ausserhalb, weswegen du mir dem Query innerhalb der Schleife denn alten Query überschreibst.
Lösung: Erstelle in der Schleife einfach eine neue Instanz der Datenbankklasse und das Problem dürfte behoben sein.

grützi
 
Hi,

Du benutzt in der Schleife die gleiche Datenbankklasse-Instanz wie ausserhalb, weswegen du mir dem Query innerhalb der Schleife denn alten Query überschreibst.
Lösung: Erstelle in der Schleife einfach eine neue Instanz der Datenbankklasse und das Problem dürfte behoben sein.

genau für dieses Problem ist in der query-Methode der optionale $get-Parameter gedacht und in den fetch-Methoden der optionale $query-Parameter. Eine neue Instanz zu erzeugen, ist da nicht nötig.

LG
 
PHP:
$result = $db->query("SELECT * FROM spielplan", 1);

so hat es leider auch nicht funktioniert. Ich habe nun in der Schleife eine neue Instanz gesetzt und damit geht es :)

Wie kann ich jetzt noch überprüfen ob $result TRUE ist?
wenn ich mir die Variable anzeigen lassen möchte ist diese immer NULL.

Also ich möchte halt nach der SQL-Abfrage gerne weiterarbeiten wenn diese ausgeführt ist.

mit:

PHP:
if($result)
{
# weiterer code
}

geht es nciht.
 
Hi,

PHP:
$result = $db->query("SELECT * FROM spielplan", 1);

so hat es leider auch nicht funktioniert. Ich habe nun in der Schleife eine neue Instanz gesetzt und damit geht es :)

Hätte aber funktionieren sollen. Hast Du $result auch an fetch_array() übergeben?

Wie kann ich jetzt noch überprüfen ob $result TRUE ist?
wenn ich mir die Variable anzeigen lassen möchte ist diese immer NULL.

Also ich möchte halt nach der SQL-Abfrage gerne weiterarbeiten wenn diese ausgeführt ist.

mit:

PHP:
if($result)
{
# weiterer code
}

geht es nciht.

Auch das sollte funktionieren. Allerdings nicht, weil $result true ist. Wenn die Abfrage erfolgreich ausgeführt werden konnte, wird eine MySQL Result Resource zurückgeliefert, was in obiger Abfrage zu true evaluiert. Schlägt die Abfrage fehl, wird false zurückgeliefert, nicht NULL. Irgendwas machst Du da falsch. Zeig mal Deinen aktuellen Code.

LG
 
PHP:
if($_GET['action'] == "plan" && $_GET['create'] == 1)
{
	$liga = intval($_POST['liga']);
	if(isset($_POST['delete']))
	{
	 $del = $db->query("DELETE FROM spielplan WHERE liga_id=$liga");
		$smarty->assign('delete_plan', 1);
	}elseif(isset($_POST['create']))
	{
		$db->query("SELECT liganame FROM ligen WHERE ID=$liga LIMIT 1");
		$res = $db->fetch_array();
		$smarty->assign('liganame', $res['liganame']);

        // weiterer code.......
}

Ich möchte halt hier überprüfen ob der Eintrag in der DB auch wirklich gelöscht wurde. Klar, mit der Klasse wird ja dann eh der Fehler ausgegeben wenn es nicht funktioniert und das Script abgebrochen. Mich hätte es halt nur interessiert warum ich jetzt hier halt beim "DELETE" in der Var nichts drin habe wenn es trotzdem ausgeführt wurde.
 
Zurück