Haumis wbb hilfe (http://haumis-wbb-hilfe.de/wbb2/index.php)
- ...:::Trainingscenter-wbb2:::... (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=75)
-- mysql (http://haumis-wbb-hilfe.de/wbb2/board.php?boardid=82)
--- 3 Tabellen durchsuchen mit 1 Suchbefehl (http://haumis-wbb-hilfe.de/wbb2/thread.php?threadid=3111)


Geschrieben von haumi am 28.09.2019 um 07:58:

 

Dann schau mal nach wie die $id gebildet wird!

Im unteren Beispiel liegt der Updatebefehl außerhalb der while-Schleife.
Somit wird immer der letze Eintrag genommen.

Normalerweise kommt jedoch das where-Objekt aus einem Formular,
in dem der zu ändernde Datensatz an das php-Script gesendet wird!
In meinem Script wäre das:
<input type="hidden" value="<?php echo $id_fragen ?>" name="id_fragen">

LG
haumi



Geschrieben von Hangasilly am 30.09.2019 um 19:11:

 

öäm, dass heißt, die $id muss innerhalb des Aufbaus in den Button geschrieben werden?!?

Nun steh ich grad wie Ochs vorm Berg:

So baut sich mein Button auf:
code:
1:
2:
3:
4:
5:
6:
7:
8:
<if($in_work=="")><then>
<form method="POST" action="bugtracker.php">
<input type="hidden" name="action" value="workon">
<input type="submit" value="Bearbeiten" name="workon">
</then></if>
<if($in_work!="")><then>
$in_work
</then></if></td>



Wo soll ich da nu die ID unterbringen *dummguck



Geschrieben von haumi am 03.10.2019 um 13:15:

 

In dieser php-Datei wird die id ermittelt und an das Formular im template bugtracker_open per $id eingebunden!
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
$auszg = "SELECT * FROM `bb1_bugtracker` ORDER BY time DESC";
	$ausz = mysql_query($auszg);
	while ($ds = mysql_fetch_object($ausz)) {

		$id = $ds->id;

		$user = $ds->melder;
		$titel = $ds->titel;
		$text = $ds->bugtext;
		$zeit = $ds->time;
		$timestamp = date("H:i:s - d.m.Y",$zeit);
		$work = $ds->in_work;
		If($work != ""){
			$in_work = $work;			
		}else{
			$in_work = "button" ;
		} 
		eval ("\$bugtrackeropen .= "".$tpl->get("bugtracker_open")."";"); 
	}





ich setze mal voraus, dass das untere Formular das template bugtracker_open ist.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<if($in_work=="")><then>
<form method="POST" action="bugtracker.php">

<input type="hidden" value="<?php echo $id ?>" name="id">

<input type="hidden" name="action" value="workon">
<input type="submit" value="Bearbeiten" name="workon">
</then></if>
<if($in_work!="")><then>
$in_work
</then></if></td>






Die id wird bei Aufruf des Formulars aus der php-Datei durch $id mitgegegeben. bzw durch die Variable ins Formular übertragen und von dort an die weiter verarbeitende php-Datei weitergegeben.
$_POST['id'] mit dem Inhalt $id

LG
haumi



Geschrieben von Hangasilly am 05.10.2019 um 16:37:

 

Hey, danke für die Auflösung meines Bretts, das ich vorm Kopf hatte ;)

aber klappt so blöderweise trotzdem nicht:

TPL:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<if($in_work=="")><then>
<form method="POST" action="bugtracker.php">

<input type="hidden" value="$id" name="id">

<input type="hidden" name="action" value="workon">
<input type="submit" value="Bearbeiten" name="workon">
</then></if>
<if($in_work!="")><then>
$in_work
</then></if></td>



PHP:
code:
1:
2:
3:
4:
5:
//Bug-Bearbeitung durch
	if(isset($_POST['action']) == "workon" && ($_POST['action']) != "neu" && ($_POST['action']) != "search" && ($_POST['action']) != "fixxed" && ($_POST['action']) != "nobugintbl"){
		$worker = "UPDATE `bb1_bugtracker` SET in_work= '$wbbuserdata[username]' WHERE id = '$id' ";
		$worker_in= mysql_query($worker);
	}



zu der >> value="$id" << ... das hab ich in allen Varianten nun durchgetestet:
- value="<?php echo $id ?>"
- value=".$id."
- value="$id"

Nichts funktioniert... dann hab ich versucht, das nochmal in der PHP zu übergeben via
code:
1:
2:
3:
4:
5:
6:
//Bug-Bearbeitung durch
	if(isset($_POST['action']) == "workon" && ($_POST['action']) != "neu" && ($_POST['action']) != "search" && ($_POST['action']) != "fixxed" && ($_POST['action']) != "nobugintbl"){
                 $id = ($_POST['id']);
		$worker = "UPDATE `bb1_bugtracker` SET in_work= '$wbbuserdata[username]' WHERE id = '$id' ";
		$worker_in= mysql_query($worker);
	}


aber das führte nur dazu, dass es garnix mehr macht...



Hab da nu noch ein weiteres Problem entdeckt:

meine PHP hat nun (unter anderem) diese Reihenfolge:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
...//Tabellenlistung Bugs
//Offen
	$auszg = "SELECT * FROM `bb1_bugtracker` ORDER BY time DESC";
	$ausz = mysql_query($auszg);
	while ($ds = mysql_fetch_object($ausz)) {
		$id = $ds->id;
		$user = $ds->melder;
		$titel = $ds->titel;
		$text = $ds->bugtext;
		$zeit = $ds->time;
		$timestamp = date("H:i:s - d.m.Y",$zeit);
		$in_work = $ds->in_work;
		$fixed_time = $ds->fixed;
		$fixed = date("H:i:s - d.m.Y",$fixed_time);
		eval ("\$bugtrackeropen .= "".$tpl->get("bugtracker_open")."";"); 
	}

//Bug-Bearbeitung durch
	if(isset($_POST['action']) == "workon" && ($_POST['action']) != "neu" && ($_POST['action']) != "search" && ($_POST['action']) != "fixxed" && ($_POST['action']) != "nobugintbl"){
		$worker = "UPDATE `bb1_bugtracker` SET in_work= '$wbbuserdata[username]' WHERE id = '$id' ";
		$worker_in= mysql_query($worker);
	}


//Bug-Fix durch
	if(isset($_POST['action']) == "fixxed" && ($_POST['action']) != "workon" && ($_POST['action']) != "neu" && ($_POST['action']) != "search" && ($_POST['action']) != "nobugintbl"){
		$fixxer = "UPDATE `bb1_bugtracker` SET fixed= '$dateAkt' WHERE id = '$id' ";
		$fixxer_in= mysql_query($fixxer);
		$reload='<script language="javascript">
		document.location.reload();
		</script>';
	}
....



Ich habe also meine beiden Buttons NACH der Tabellenlistung - darum muss man die Seite halt neu laden, nachdem was in die DB kam, da ja die Tabelle neu gelistet werden muss - klar...
Sinnvoll ist das aber nicht! - die Einträge sollen ja direkt nach Buttonklick geladen werden.
Nun müsste man die Buttonverarbeitung VOR die Listung legen, eigendlich auch klar.

Problem ist, mache ich das, dann haben meine Buttons keine Funktionalität mehr...

Liegt das daran, dass die Buttons in der Tabelle erst gelistet werden und voher im Script nicht existieren können oder was ist da das Problem?
Uuuuuund - wie löse ich das am besten?!?



Geschrieben von haumi am 23.10.2019 um 09:45:

 

Ich war die letzte Zeit krank (nichts Schlimmes aber ein leichter Schmerz der die Konzentration zu Nichte macht) und konnte mich nicht so richtig konzentrieren.
Auf die Schnelle erst einmal.

Schau dir mal das folgende Scribt an:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
<html>
<head>
<meta http-equiv="refresh" content="2; url= bursch_neu.php">
</head>
<body>

<?php

require("./global.php");

list($anzahl) = $db->query_first("SELECT COUNT(*) FROM bb".$n."_burg_fragen_neu");

if($anzahl == '0') {
$id_fragen = '1';

}  else {
$anzahl_a = mysqli_query($dbi,"SELECT * FROM bb".$n."_burg_fragen_neu ORDER BY id_fragen DESC LIMIT 1");
$ds = mysql_fetch_object($anzahl_a);
$id_fragen = $ds->id_fragen;
$id_fragen = $id_fragen + '1';
}

 if($_POST[desc_antwort]=='' || $_POST[desc_frage] =='')  {
 echo "Bitte Frage und Antwort ausfuellen";
@header ("location: http://friendsbistro.de/wbb2/bursch_eingabe.php");
exit;
 }

//$desc_frage = $_POST[desc_frage];
$desc_answer = $_POST[desc_antwort];
//$desc_frage = $_POST[$desc_frage];
$desc_frage = mysqli_real_escape_string($dbi,$_POST[desc_frage]);

echo $id_fragen;
echo "<br>";
echo $desc_frage;
echo "<br>";
echo $desc_answer;


$neu= mysqli_query($dbi,"INSERT INTO bb1_burg_fragen_neu (id_fragen,auto_stufe,desc_frage,desc_answer,desc_bild) VALUES ('$id_fragen','$id_fragen','$desc_frage','$desc_answer','0')");


?>

Der Eintrag wurde übernommen!
<h2><a href="bursch_neu.php">Es geht gleich weiter!</a></h2>

</body>
</html>







Die Zeilen 3 und 46,47 spielen zusammen und rufen die gewünschte Seite auf
(hier die bursch_neu.php.)

LG
haumi



Geschrieben von Hangasilly am 25.10.2019 um 15:28:

 

Hmmm ja ok, das mim '@header... ' werd ich mal probieren...

Durch die Sache mit der ID blick ich immernoch nich durch st8



Geschrieben von haumi am 26.10.2019 um 14:58:

 

Zitat:
<if($in_work=="")><then>
<form method="POST" action="bugtracker.php">

<input type="hidden" value="<?php echo $id ?>" name="id">

<input type="hidden" name="action" value="workon">
<input type="submit" value="Bearbeiten" name="workon">
</then></if>
<if($in_work!="")><then>
$in_work
</then></if></td>


Mit
<input type="hidden" value="<?php echo $id ?>" name="id">
wird die id durch <?php echo $id ?> nicht sichtbar an das Formular weitergegeben.
Und kann nach absenden des Formulars mit
$_POST[id]
wieder ausgelesen und verwertet werden



Geschrieben von haumi am 26.10.2019 um 14:58:

 

Zitat:
<if($in_work=="")><then>
<form method="POST" action="bugtracker.php">

<input type="hidden" value="<?php echo $id ?>" name="id">

<input type="hidden" name="action" value="workon">
<input type="submit" value="Bearbeiten" name="workon">
</then></if>
<if($in_work!="")><then>
$in_work
</then></if></td>


Mit
<input type="hidden" value="<?php echo $id ?>" name="id">
wird die id durch <?php echo $id ?> nicht sichtbar an das Formular weitergegeben.
Und kann nach absenden des Formulars mit
$_POST[id]
ausgelesen und verwertet werden.

LG
:haumik:



Geschrieben von Hangasilly am 03.12.2019 um 20:28:

 

hmmm , ne....

also mit
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<if($in_work=="")><then>
<form method="POST" action="bugtracker.php">

<input type="hidden" value="<?php echo $id ?>" name="id">

<input type="hidden" name="action" value="workon">
<input type="submit" value="Bearbeiten" name="workon">
</then></if>
<if($in_work!="")><then>
$in_work
</then></if></td>



im TPL und

code:
1:
2:
3:
4:
	if(isset($_POST['action']) == "workon" && ($_POST['action']) != "neu" && ($_POST['action']) != "search" && ($_POST['action']) != "fixxed" && ($_POST['action']) != "nobugintbl"){
		$worker = "UPDATE `bb1_bugtracker` SET in_work= '$wbbuserdata[username]' WHERE id = '$id' ";
		$worker_in= mysql_query($worker);
	}



in der PHP macht er mir den Eintrag - egal was ich anklicke, in die letzte Output-Tabellenzeile :\ ?!??!



Geschrieben von Hangasilly am 25.12.2019 um 17:56:

 

Sooo.. ich hab nun mal das mit @header eingefügt, nu funzt der reload immerhin schonmal so wie er soll:

code:
1:
2:
3:
4:
5:
6:
7:
	if(isset($_POST['action']) == "workon" && ($_POST['action']) != "neu" && ($_POST['action']) != "search" && ($_POST['action']) != "fixxed" && ($_POST['action']) != "nobugintbl"){
		$worker = "UPDATE `bb1_bugtracker` SET in_work= '$wbbuserdata[username]' WHERE id = '$id' ";
		$worker_in= mysql_query($worker);
		@header ("location: http://corelith-forum.weltenband.de/bugtracker.php");
	}



nur die id-Geschichte is immernoch das selbe *seufz*

Wenn ich die Buttons untersuche stimmt die ID übrigens - nur die Übergabe kommt nicht hin...

mache ich das so (also wenn ich versuche die id neu zu deklarieren durch den $_POST):
code:
1:
2:
3:
4:
5:
6:
	if(isset($_POST['action']) == "workon" && ($_POST['action']) != "neu" && ($_POST['action']) != "search" && ($_POST['action']) != "fixxed" && ($_POST['action']) != "nobugintbl"){
		$id = $_POST['id'];
		$worker = "UPDATE `bb1_bugtracker` SET in_work= '$wbbuserdata[username]' WHERE id = '$id' ";
		$worker_in= mysql_query($worker);
		@header ("location: http://corelith-forum.weltenband.de/bugtracker.php");
	}


macht er garnix mehr damit...


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH