Zum Inhalt springen

Variablen per PHP zum Auslesen übergeben


Empfohlene Beiträge

Naben, ich habe ein PHP-Script geschrieben, welche die Auswahl aus Seite 1 an 2 weitergibt - diese geschiet durch das Verbinden der Daten aus der Mysql Datenbank - per $n -

nur wird $n nicht richtig an die Seite 2 übergeben.

vielleicht weiß jemand von euch wo der fehler liegt :

Weiß jemand von euch eventuell wir ich ein Datenbank - Daten in ein Textfeld lade ?


<?php

include "_language.inc";

include "__config.inc";

# my script 

# 

?>

<TABLE BGCOLOR="<? echo $tablebg; ?>" WIDTH="95%" BORDER="0" CELLSPACING="1" CELLPADDING="4" ALIGN="CENTER" CLASS="normaltext">

    <tr bgcolor="<? echo $tableb; ?>">

      <td width="100%" align="center">

        <b><FONT SIZE="5">Board Regeln<br><BR> <font size=-1><br></b></font></font></b>

		<TABLE BGCOLOR="<? echo $tableA ; ?>" WIDTH="100%" BORDER="0" CELLSPACING="1" CELLPADDING="6" ALIGN="CENTER" CLASS="normaltext">

</table>

<?

	# Datenbank Verbindung

	#

		$db = mysql_connect($mysqlhost, $mysqluser, $mysqlpassword);


	# Datenbank 

	#

		$boardregeln = boardregeln;


	echo "<form action='boardregeln_admin.php' method='post'>";

	echo "<div align='center'>";

	echo "<input type='submit' name='add' value='Regeln hinzufügen'>";

	echo "<input type='submit' name='change' value='Regeln ändern'>";

	echo "<input type='submit' name='show' value='Regeln anzeigen'>";

	echo "<p></div>";


# If Abfragen  für das Hinzufügen von Regeln

#

if ($add or $send)

{

	if ($send)

	{

	# Abfrage

	#

		$sqlab  = "insert $boardregeln";

		$sqlab .= "(nummer, regel) values";

		$sqlab .= "($nr, '$regel')";

	# Datenbank 

	# 

		mysql_db_query("$mysqldb", $sqlab);

		$num = mysql_affected_rows();

	# Sicherheitsabfrage

	#

		if($num>0)

			{

			echo "<div align='center'>";

			echo "<b>Die Regel wurde gespeichert</b><br>";

			echo "Alle Regeln <a href='./regel.php'>anzeigen</a>";

			echo "</div>";

			}	

		else 

			{

			echo "<div align='center'>";

			echo "<b>Beim Speichern der Regeln ist ein Fehler aufgetreten</b><br>";

			echo "<b>Bitte überprüfen Sie ihre Eingabe</b><p>";

			echo "</div>";

			}

	}


	echo "<div align='center'>";

	echo "<form action='boardregeln_admin.php' mehtod='post'>";

	echo "<input name='nr'> Nummer<p>";

	echo "Bitte hier einmal die Regel (max. 255Zeichen):<br>";

	echo "<textarea cols='42' rows='8' name='regel'></textarea><p>";

	echo "<input type='submit' name='send' value='Regel Speichern'>";

	echo "<input type='reset'>";


	echo "</div>";

}


#  If Abfrage für das ändern der Regeln

#


#	Speichern der Änderung

#

if ($send_ca)

{

	$sqlab_ca ="update $boardregeln set regel='$neurg' where nummer =$n";

	mysql_db_query("$mysqldb", $sqlab_ca);

	$num_ca = mysql_affected_rows();

	# Sicherheitsabfragung

	#

	if($num_ca>0)

	{

		echo "<b><div align='center'>Die Regel wurde geändert</div></b>";

	}

	else

	{

		echo "<b><div align='center'>Beim ändern der Regeln ist ein Fehler aufgetretten</div></b>";

	}

}

#	Auslesen der Regeln und erstellen der GUI 

#

if($send_c)

	{

	# Änderungs GUI

	# Datenbank / Abfrage

	#

		echo "<b> <div align='center'>Regel ändern </div></b><p>";

		$sqlab_c = "select * from $boardregeln where nummer='$n'";

		$res = mysql_db_query ("$mysqldb", $sqlab_c);


		$altnr = mysql_result($res, 0, "nummer");

		$altrg = mysql_result($res, 0, "regel");

		echo "Bitte ändern Sie die Regel $altnr<p>"; 

		echo "<textarea cols='42' rows='8' name='neurg' value='$altrg'></textarea><p>";

		echo "<input type='submit' value='Regel geändert Speichern' name='send_ca'>";

		echo "<input type='reset'></div><br>";

	}

if($change )

{


	# Anzeigen der ganzen Regeln zur auswahl 

	#

	# Datenbank 

	# 

		$res = mysql_db_query("$mysqldb","select * from $boardregeln order by nummer asc");

		$num = mysql_num_rows($res);


	# Tabelle 

	#

		echo "<div align='center'>";

		echo "<table border>";

		echo "<tr><td></td> <td><b> Nr. <b></td> <td><b> <div align='center'>Regeln </div</b></td> </tr>";	


	# For-Schleifen mit Ausgabe 

	#

		for($i=0; $i<$num; $i++)

		{

			$nr = mysql_result($res, $i, "nummer");

			$rg = mysql_result($res, $i, "regel");


			echo "<tr><td> <input type='radio' name='auswahl' value='$n'>";

			echo "<td> $nr </td> <td> $rg </td>";

		}

		 echo "</table><p>";

		 echo "<input type='submit' name='send_c' value='Ausgewählte Regel ändern'>";

		 echo "<br></div>";

}	

include "_footer.inc";


?>

Bin für jeder lösung offen :) alles läuft,

Tool-Time

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm, sieht etwas unübersichtlich aus - hättest lieber den PHP-Tag vom vBB nehmen sollen - wäre etwas farbiger geworden! ;)

Welche Links sind es denn, die Daten übergeben, die nicht funzen?

Also ich hab bisher nur ein Formular entdeckt, dem Du mehrere Submit-Buttons mit Namen zugewiesen hast. AFAIK kann das eigentlich nicht so funzen, da der Submit-Button nur dazu da ist, das Formular weiterzugeben, aber AFAIK keinen eigenen auslesbaren Wert erzeugt...

Ansonsten vermisse ich bei Deinen Links Get-Übergaben! Wenn Du die zu übergebenden Variablen per Get an den Link anhängst, sollte es doch gehen, oder?

Bsp:

echo "<a href='link.php?variable1=$variable1&variable2=$variable2'>Link</a>"

Link zu diesem Kommentar
Auf anderen Seiten teilen

achso, wegen der Datenbank-Daten in ein Textfeld: Das geht ganz einfach, indem Du die Daten in Variablen schreibst und diese Variablen dann an der Stelle, an der normalerweise der Text steht, einfügst!

Bsp:

<input type="text" name="name" value="<?php echo "$name"; ?>">

bzw.

<textarea name="text"><?php echo "$text"; ?></textarea>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich hab bisher nur ein Formular entdeckt, dem Du mehrere Submit-Buttons mit Namen zugewiesen hast. AFAIK kann das eigentlich nicht so funzen, da der Submit-Button nur dazu da ist, das Formular weiterzugeben, aber AFAIK keinen eigenen auslesbaren Wert erzeugt...

Doch: wenn ein Submitbutton Name(z.B. button) und value(z.B. 15) hat steht bei Methode get dann in der Adressleiste bla.php?button=15

MfG:)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie wärs es wie normale Menschen zu machen und Werte in Formularen die nicht sichtbar (auf der gerenderten Seite) sein sollen, mit hidden Feldern zu übergeben?

<input type="hidden" name="n" value="<? echo $n;?>">

laut Selfhtml sollte man dann auch jedem input Feld sagen, was für ein Typ es ist, sowas wie

<input name="irgendwas">

ist Blödsinn.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von beetFreeQ

achso, wegen der Datenbank-Daten in ein Textfeld: Das geht ganz einfach, indem Du die Daten in Variablen schreibst und diese Variablen dann an der Stelle, an der normalerweise der Text steht, einfügst!

Bsp:

<input type="text" name="name" value="<?php echo "$name"; ?>">

bzw.

<textarea name="text"><?php echo "$text"; ?></textarea>

Danke für die antworten :)

Das habe ich auch so gemacht, nur passiert das nicht so ganz :


# Änderungs GUI

	# Datenbank / Abfrage

	#

		echo "<b> <div align='center'>Regel ändern </div></b><p>";

		$sqlab_c = "select * from $boardregeln where nummer='$n'";

		$res = mysql_db_query ("$mysqldb", $sqlab_c);


		$altnr = mysql_result($res, 0, "nummer");

		$altrg = mysql_result($res, 0, "regel");

		echo "Bitte ändern Sie die Regel $altnr<p>"; 

		echo "<textarea cols='42' rows='8' name='neurg' value='$altrg'></textarea><p>";

		echo "<input type='submit' value='Regel geändert Speichern' name='send_ca'>";

		echo "<input type='reset'></div><br>";


ich versuche es nachher noch einmal per HIdden Input

:) vielleicht läuft es dann besser :)

schon einmal danke für euer Antworten Tool-Time ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

@ToolTime:

Deine Textarea kann auch so nicht funzen, denn eine Textarea hat - anders als Inputfelder - keinen Value! Da mußt Du die Variable zwischen dem Anfangs- und Endtag der Textarea packen (siehe mein Beispiel weiter oben!)!

@DanielH:

Hey, wußte ich garnicht... - feine Sache das - kann nette Vorteile haben :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von DanielH

Doch: wenn ein Submitbutton Name(z.B. button) und value(z.B. 15) hat steht bei Methode get dann in der Adressleiste bla.php?button=15

MfG:)

Wie meinst du das ?

etwa so :


for($i=0; $i<$num; $i++)

		{

			$nr = mysql_result($res, $i, "nummer");

			$rg = mysql_result($res, $i, "regel");


			echo "<tr><td> <input type='radio' name='auswahl' value='$n'>";

			echo "<td> $nr </td> <td> $rg </td>";

		}

		 echo "</table><p>";

		 echo "<form action ='boardregeln_admin.php' method ='get'>";

		 echo "<input type='submit' name='send_c' value='Ausgewählte Regel ändern'>";

		 echo "<br></div></form>";

Also, erstelle einen Radio Button mit dem name='auswahl' und mit value ='$n' . ist das richtig wenn ich nun einfach nur

echo "<form action ='boardregeln_admin.php' method ='get'>";

schreiben ?

:) Tool-Time

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

so in etwa...

wenn du Variablen an ein anderes Script übergibst, braucht der submitbutton keinen Namen.

Bei deiner Lösung über get müsste in dem Beispiel in der Adressleiste stehen:

z.B. i hat den wert 20

boardregeln_admin.php?auswahl=20&send_c=Ausgwählte%20Regel%20ändern

Aber es ist besser Variablen mittels post zu übergeben, weil sie dann nicht in der Adressleiste zu sehen sind.

Aber da ist ein Fehler drin:

Die Zeile echo"<form action=...." sollte über die for-Schleife, sonst wird der Wert des Radiobuttons nicht übergeben.

MfG:)

Link zu diesem Kommentar
Auf anderen Seiten teilen

:( Morgen, ich habe alles so gemacht / ausprobiert was ihr mir geraten habt, nur funktioniert es immer noch nicht.

Ich habe mir ein andres Script geschrieben, welches genau so bzw. ähnlich läuft:

Auszug


<?php
# Überschrift
#
echo"<div align='center'><font size='5'>Lager - Administration";
echo"</font><p>";

# Auswahl
#
echo"<form action='lager_admin.php' method='get'>";
echo"<input type='submit' name='add' value='Lagerliste ergänzen'>";
echo"<input type='submit' name='change' value='Lagerliste ändern'>";
echo"<input type='submit' name='del' value='Produkte löschen'>";
echo"<input type='submit' name='show' value='Lagerlister anzeigen'";
echo"<p><p></div>";
.
.
.

# Change
# Lagerliste ändern
else if($change)
{
echo"<div align='center'>";
echo"<font size='4'>Produkte von der Lagerliste ändern</font><p>";
//Produktgruppe
echo"<hr><p>";
$db_change = mysql_connect();
$sqldb_change = "select * from lager order by produktgruppe asc";
$res_change = mysql_db_query("ewes", $sqldb_change);
$num_change = mysql_num_rows($res_change);
# Sicherheitsabfrage
#
if($num_change==0)
{
echo"<p><div align='center'>";
echo"<Font Size='5'>Es wurden keine Produkte hinterlegt</font>";
echo"</div><p><p>";
}
echo"<table border>";
echo"<tr><td></td><td></td><td><b>Auswahl</b></td><td><b>Modell</b></td><td><b>Hersteller</b></td>";
echo"<td><div align='center'><b>Beschreibung</b></div></td><td><b>Anzahl</b></td>";
echo"<td><b>EK-Preis</b></td><td><b>VK-Preis</b></td><td><b>Reserviert</b></td></tr>";

# Auslesen der Datenbank :c )
#
for ($i=0; $i<$num_change; $i++)
{
$id = mysql_result($res_change, $i, "id");
$pro = mysql_result($res_change, $i, "produktgruppe");
$mod = mysql_result($res_change, $i, "modell");
$her = mysql_result($res_change, $i, "hersteller");
$men = mysql_result($res_change, $i, "menge");
$kon = mysql_result($res_change, $i, "beschreibung");
$ek = mysql_result($res_change, $i, "ek");
$vk = mysql_result($res_change, $i, "vk");
$re = mysql_result($res_change, $i, "res");
//ausgabe
echo "<tr><td><input type='hidden' name='pro' value='$pro'></td>";
echo "<td><input name='id_a' value='$id'></td>";
echo"<td><input type='radio' name='id_' value='$id'></td>";
echo "<td>$mod</td><td>$her</td><td>$kon</td>";
echo"<td><div align='center'>$men</td>";
echo "<td>$ek €</td><td>$vk € </td><td><b>$re</b></td></tr>";
}
echo"</tabel><p>";
echo"<div align='center'>";
echo"<input type='submit' name='send_change' value='Produkt ändern'><p></div>";
mysql_close($db_change);
}
# aulsesen der change vaiablen
#
if ($send_change)
{
echo"<div align='center'>";
echo"<font size='4'>Produkte von der Lagerliste ändern</font><p>";
echo"<hr><p>";

$db_change_sel = mysql_connect();
$sqlab_change_sel ="select * from lager where id = $id_a";
$res_change_sel = mysql_db_query("ewes", $sqlab_change_sel);
if($res_change_sel==0)
{
echo"Es wurde kein Produkt ausgewählt";
}
#Ausgabe
$id = mysql_result($res_change_sel, 0, "id");
$pro = mysql_result($res_change_sel, 0, "produktgruppe");
$mod = mysql_result($res_change_sel, 0, "modell");
$her = mysql_result($res_change_sel, 0, "hersteller");
$men = mysql_result($res_change_sel, 0, "menge");
$kon = mysql_result($res_change_sel, 0, "beschreibung");
$ek = mysql_result($res_change_sel, 0, "ek");
$vk = mysql_result($res_change_sel, 0, "vk");
$re = mysql_result($res_change_sel, 0, "res");

echo"<input name='id' value='$id_a'>";

}
.
.
.
?>
[/php]

Nicht wundern, aber bei der Ausgabe wollte ich extra sehen was für ID's ausgegeben werden :

[b] echo "<td><input name='id_a' value='$id'></td>";

[/b]

Leider bekomme ich im nächsten Fenster dann nur die Letzte ID als Auswahl angezeigt, während beim ersten Script zumindest immer Nummer 8 angezeigt wurde :(

Ich bin ratlos, ich habe auch schon mit dem Variabeln innerhalb der [i]if ($chagen) und if($send_change)[/i] herum gespielt. Leider Vergebens :(

Vielleicht seht ihr ja einen Fehler .

Kann es sein das ich einen Grundlegenden Fehler mache ?

Ich versuche es geleich einmal per [b]<a href='http://localhost/lager/lager_admin.php?pro=Drucker&id_a=2&pro=Monitor&id_a=1&pro=PC&id_a=4&pro=PC&id_a=5&pro=Sonstiges&id_a=3&pro=Sonstiges&id_a= $id &send_change=Produkt+%E4ndern'></a>

Aber irgendwie muss es doch auch mit den Radio-Buttons zu realisieren sein.

Schon einmal danke im voraus Tool-Time

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