PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   mysql Ergebnis in Variable speichern und per GET senden (http://www.selfphp.de/forum/showthread.php?t=19174)

mr.jones 17.04.2008 18:51:29

mysql Ergebnis in Variable speichern und per GET senden
 
Hi.
irgendwie komm ich hier nicht mehr weiter. Hab schon das Forum durchsucht,aber auch nicht wirklich was gefunden.

Here it is...

Ich habe eine DB in der Kundendaten gespeichert werden.Diese rufe ich über ein Suchmuster auf. Bei Treffern werden die dann einfach dargestellt. Ich will jetzt ein "edit" Button einbauen um die Daten zu editieren bzw. im Text was hinzu zu fügen. So ist das grob erklärt. Bis zum Punkt Eintragen,Suchen,Ausgeben ist alles klar. Jetzt aber zum edit Button. In meinem jugendlichen Leichtsinn dachte ich mir ich übergebe die Werte der mysql Ausgabe per GET an ein Skript "edit.php" um die Daten dort dann zu editieren und per UPDATE wieder einzufügen.

Hier der Code:
Sucheingabe und Antwort aus der DB
PHP-Code:

<form action="" method="post" name="formmask">
   <div id="eingabe">
      <table>
      <tr><td>KD-Nummer</td><td><input type="text" name="numb"></td></tr>
      <tr><td>Nachnamen</td><td><input type="text" name="quet"></td></tr>
      <tr><td>Wohnort</td><td><input type="text" name="platz"></td></tr>
      <tr><td style="text-align:center;background-color:#CCCC33;"><input type="submit" name="submy" value="suchen" /></td><td style="text-align:center;background-color:#CCCC33;"><input type="reset" name="resy" value="löschen" /></td></tr>
   </table>
   </form>
<?php
$quets 
$_POST["quet"];
$num $_POST["numb"];
$submy $_POST["submy"];
$place $_POST["platz"];
$editu "<a href='edit.php?kdn=$id&nachn=$nna&vorna=$vna'>edit</a>";
$id row['kdnummer'];
usw.


include(
"connect.php");

$abfra mysql_query("SELECT * FROM Kundenliste WHERE naname = '$quets' OR kdnummer = '$num' OR ort = '$place' ");

while(
$row mysql_fetch_assoc($abfra)){
  echo 
"id: " $row['kdnummer'] . "| " $row['naname'] . "| " $row['vorname'] . " |Telefon| " $row['telefon'] . "| " $row['ort'] ." " $editu"<br>";
}
?>

Code edit.php (nur der Anfang)
PHP-Code:

<?php
//Editiermaske DB Eintrag

$kdn $_GET['kdn'];
$vorna $_GET['vorna'];
$nachn $_GET['nachn'];

echo 
"Datensatz: " $kdn " " $vorna " " $nachn "<br>";
//nur als Testzweck,wird später dann durch Input Felder ersetzt

?>

So. Ich denke mal meine Idee
das: $id = row['kdnummer'];
dann an per GET zu senden: edit.php?kdn=$id&.....
ist wohl falsch. Setze ich für die Variablen ($id) normale strings ein gehts.

Frage:
Wie krieg ich die Ergebnisse der mysql Abfrage in die edit.php?

Die sicherheitsrelevanten Sachen lasse ich erstmal außen vor (htmlspecialchars und Co.) da es eine Offline-Privat-Anwendung sein wird (alles lokal). :)

DANKE
mr.jones

lukgestach 17.04.2008 20:50:16

AW: mysql Ergebnis in Variable speichern und per GET senden
 
Hallo,
Ein PHP script wird schön von oben nach unten ausgeführt. Du machst den Link mit der Variable $id und definierst diese eine zeile bzw. befehl weiter unten! Da ist das Problem doch einleuchtend, oder? Die Variable $id ist leer, da sie noch keinen Wert zugewiesen bekommen hat! Das gleiche ist mit allen andern Variablen!
Definiere diese VOR dem erzeugen des Link, dann wirds funktionieren.
PHP-Code:

<?php
$quets 
$_POST["quet"];
$num $_POST["numb"];
$submy $_POST["submy"];
$place $_POST["platz"];
//$editu = "<a href='edit.php?kdn=$id&nachn=$nna&vorna=$vna'>edit</a>";
//$id = row['kdnummer'];
//usw.
//Hier ist die Variable $id immer noch leer, da $row[...] noch keinen Wert hat!


include("connect.php");

$abfra mysql_query("SELECT * FROM Kundenliste WHERE naname = '$quets' OR kdnummer = '$num' OR ort = '$place' ");

while(
$row mysql_fetch_assoc($abfra)){ //Hier wird dem Array $row[...] ein Wert zugewiesen
  
echo "id: " $row['kdnummer'] . "| " $row['naname'] . "| " $row['vorname'] . " |Telefon| " $row['telefon'] . "| " $row['ort'] ." " $editu"<br>";
//Hier kannst du jetzt den Variablen $id usw einen Wert zuweisen!
$id row['kdnummer'];
//alle anderen Wertzuweisungen
//Dann kann der Link kommen
$editu "<a href='edit.php?kdn=$id&nachn=$nna&vorna=$vna'>edit</a>";
}
?>

Hier ist der geändertte Code, ich habe mit Kommentar die schritte grob erklärt

Gruss Lukas

mr.jones 18.04.2008 11:59:49

AW: mysql Ergebnis in Variable speichern und per GET senden
 
mhh... Ja guten Morgen....[manchmal steh ich echt auf der Leitung]

Danke @ luk,probiers gleich mal aus

mr.jones 18.04.2008 12:15:55

AW: mysql Ergebnis in Variable speichern und per GET senden
 
Habe das jetzt mal getestet. Und wo wir gerade bei der Reihenfolge sind...

Wenn die Variable $editu erst nach der While-Schleife kommt,dann ist die Variable zum Zeitpunkt der Anfrage natürlich auch noch leer :(

PHP-Code:

<?php
$quets 
$_POST["quet"];
$num $_POST["numb"];
$submy $_POST["submy"];
$place $_POST["platz"];

include(
"connect.php");

$abfra mysql_query("SELECT * FROM Kundenliste WHERE naname = '$quets' OR kdnummer = '$num' OR ort = '$place' ");


while(
$row mysql_fetch_assoc($abfra)){
  echo 
"id: " $row['kdnummer'] . "| " $row['naname'] . "| " $row['vorname'] . " |Telefon| " $row['telefon'] . "| " $row['ort'] ." " . [B]$editu[/B]. "<br>";
}
$id $row['kdnummer'];
$nna $row['naname'];
$vna $row['vorname'];
$editu "<a href='edit.php?kdn=$id&nachn=$nna&vorna=$vna'>edit</a>"// nach der Schleife ist $editu aber während der While-Schleife unbenannt. Folge, es wird kein "edit" für den Datensatz angezeigt.


?>

Also müsste die $editu wieder vor die Schleife damit die Variable gefüllt ist,dann sind aber widerrum die GET-Variablen kdn=$id leer..

bernhard3105 18.04.2008 14:15:56

AW: mysql Ergebnis in Variable speichern und per GET senden
 
PHP-Code:

$id $row['kdnummer'];
$nna $row['naname'];
$vna $row['vorname'];
$editu "<a href='edit.php?kdn=$id&nachn=$nna&vorna=$vna'>edit</a>"

Ich wär dafür es IN die while-Schleife zu setzen...

mr.jones 18.04.2008 14:33:20

AW: mysql Ergebnis in Variable speichern und per GET senden
 
Zitat:

Ich wär dafür es IN die while-Schleife zu setzen...
Danke hat geklappt. :)

lukgestach 18.04.2008 17:59:08

AW: mysql Ergebnis in Variable speichern und per GET senden
 
Zitat:

Zitat von mr.jones (Beitrag 115303)
Wenn die Variable $editu erst nach der While-Schleife kommt,dann ist die Variable zum Zeitpunkt der Anfrage natürlich auch noch leer :(

Sry, habe den Code in der While schleife nicht angeschaut, ja in der Schleife ist immer gut. Wenn du mehrere Datensätze hast, dann sind die Variablen aus der while schleife immer noch mit dem letzten Wert gefüllt!

Gruss Lukas


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:28:13 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.