Archiv verlassen und diese Seite im Standarddesign anzeigen : Suchen und gleichzeitig ändern
Hallo,
ich habe folgendes Problem.
Bei einer Datenbank hab ich mehre Funktionen auf ein Web-Frontend gepackt, unter anderem suchen und ändern.
Jetzt habe ich ein Problem, ich möchte die Ergebnisse der Suche ändern können, wenn dies nötig ist, aber leider klappt das net so ganz.
Hier der Codeauszug
<html>
<head>
<title>Knowledgebase SMC3</title>
</head>
<h1 align="center">Folgende Einträge wurden gefunden</h1>
<?php
include 'dbconnect.php';
// Die SQL Query
$sql = "SELECT * FROM `data` WHERE 1 AND `$radiob` LIKE '%$suche%' LIMIT 0 , 30 ";
$result = mysql_query($sql);
if (mysql_numrows($result)>0)
{
$username=mysql_result($result,0,"Frage");
$passwort=mysql_result($result,0,"Antwort");
}
?>
<html>
<p><h3 align="center"> Bitte Daten korrigieren </h3></p>
<table border="0">
<form action="update.php" method="POST">
<tr>
<td><input type="hidden" size="20" name="$update" value="<? echo $_POST['$update']; ?>"></td>
</tr>
<tr>
<td>Problem:</td>
<td><input type="text" size="40" name="$username" value="<? echo $username; ?>"></td>
</tr>
<tr>
<td>Lösung:</td>
<td><textarea name="$passwort" cols="50" rows="10"> <? echo $passwort; ?></textarea></td>
</tr>
<tr>
<td align="center"><input type="submit" name="eintrag" value="Ändern">
</td>
</tr>
</form>
</table>
</html>
Das Ergebnis der Suche ist aber nur ein Wert, denn ich auch ändern kann. Aber wenn mehrere Datensätze mit dem gleichen Suchbegriff existieren, zeigt er nur einen (ich schätze den ersten) an. Wie kann ich es hinbekommen, das alle angezeigt werden, und ich die ändernkann?
Gruß
Dennis
mysql_fetch_array ist dein Freund (s. Manual), oder du kannst auch mit
For-Schleife und mysql_result die Werte holen; Anzahl der Zeilen hast du
ja schon.
if (mysql_numrows($result)>0)
{
while($row=mysql_fetch_object($result)) {
$username=$row->tabellenname;
$passwort=$row->tabellenname2;
}
}
.... in etwa...
Hallo,
klar. hab die Schleife vergessen *grml*
werds gleich mal probieren, bis hier hin erst mal danke :)
Gruß
Dennis
Hallo,
habs mal ausprobiert, aber er rechnet sich tot, und dann kommt ne Fehlermeldung das die 30sec Grenze überschritten wurde.
Hm, weiß absolut nicht weiter.
Gruß
Dennis
Und wie sieht dein Code nun aus...?
Hallo,
<html>
<head>
<title>Knowledgebase SMC3</title>
</head>
<h1 align="center">Folgende Einträge wurden gefunden</h1>
<?php
include 'dbconnect.php';
// Die SQL Query
$sql = "SELECT * FROM `data` WHERE 1 AND `$radiob` LIKE '%$suche%' LIMIT 0 , 30 ";
$result = mysql_query($sql);
if (mysql_numrows($result)>0)
{
while ($row=mysql_fetch_object ($result))
{
$username=mysql_result($result,0,"Frage");
$passwort=mysql_result($result,0,"Antwort");
}
}
?>
<html>
<p><h3 align="center"> Bitte Daten korrigieren </h3></p>
<table border="0">
<form action="update.php" method="POST">
<tr>
<td><input type="hidden" size="20" name="$update" value="<? echo $_POST['$update']; ?>"></td>
</tr>
<tr>
<td>Problem:</td>
<td><input type="text" size="40" name="$username" value="<? echo $username; ?>"></td>
</tr>
<tr>
<td>Lösung:</td>
<td><textarea name="$passwort" cols="50" rows="10"> <? echo $passwort; ?></textarea></td>
</tr>
<tr>
<td align="center"><input type="submit" name="eintrag" value="Ändern">
</td>
</tr>
</form>
</table>
</html>
Das is der neue Code, habe eigentlich nur die schleife darum herum gesetzt
Gruß
Dennis
Lies mal hier...
http://ch2.php.net/manual/de/function.msql-result.php
Und machs mal so wie ich geschrieben hab...
Hallo,
hatte die andere Änderung überlesen, sorry.
Hab es mir durchgelesen, aber irgendwie klappt es net. Es wird nur ein Eintrag angezeigt.
Folgendermassen sieht der Code jetzt aus.
<html>
<head>
<title>Knowledgebase SMC3</title>
</head>
<h1 align="center">Folgende Einträge wurden gefunden</h1>
<?php
include 'dbconnect.php';
// Die SQL Query
$sql = "SELECT * FROM `data` WHERE 1 AND `$radiob` LIKE '%$suche%' LIMIT 0 , 30 ";
$result = mysql_query($sql);
if (mysql_numrows($result)>0)
{
while ($row=mysql_fetch_object ($result))
{
$username=$row -> Frage;
$passwort=$row -> Antwort;
}
}
?>
<html>
<p><h3 align="center"> Bitte Daten korrigieren </h3></p>
<table border="0">
<form action="update.php" method="POST">
<tr>
<td><input type="hidden" size="20" name="$update" value="<? echo $_POST['$update']; ?>"></td>
</tr>
<tr>
<td>Problem:</td>
<td><input type="text" size="40" name="$username" value="<? echo $username; ?>"></td>
</tr>
<tr>
<td>Lösung:</td>
<td><textarea name="$passwort" cols="50" rows="10"> <? echo $passwort; ?></textarea></td>
</tr>
<tr>
<td align="center"><input type="submit" name="eintrag" value="Ändern">
</td>
</tr>
</form>
</table>
</html>
Gruß
Dennis
Original geschrieben von Mannis
Es wird nur ein Eintrag angezeigt.
natürlich - weil du die ausgabe der daten ja erst nach der schleife machst.
Hallo,
argh wie dumm. Da merkt man das ich mich noch nich allzulange mit PHP beschäftige
Aber ich schaffe es nicht die html-ausgabe in die schleife zu setzen. Gibt es da Komplikationen zwischen php und html?
Gruß
Dennis
<title>Knowledgebase SMC3</title>
</head>
<h1 align="center">Folgende Einträge wurden gefunden</h1>
<html>
<p><h3 align="center"> Bitte Daten korrigieren </h3></p>
<table border="0">
<form action="update.php" method="POST">
<?php
include 'dbconnect.php';
// Die SQL Query
$sql = "SELECT * FROM `data` WHERE 1 AND `$radiob` LIKE '%$suche%' LIMIT 0 , 30 ";
$result = mysql_query($sql);
if (mysql_numrows($result)>0)
{
while ($row=mysql_fetch_object ($result))
{
$username=$row -> Frage;
$passwort=$row -> Antwort;
?>
<tr>
<td><input type="hidden" size="20" name="$update" value="<? echo $_POST['$update']; ?>"></td>
</tr>
<tr>
<td>Problem:</td>
<td><input type="text" size="40" name="$username" value="<? echo $username; ?>"></td>
</tr>
<tr>
<td>Lösung:</td>
<td><textarea name="$passwort" cols="50" rows="10"> <? echo $passwort; ?></textarea></td>
</tr>
<tr>
<td align="center"><input type="submit" name="eintrag" value="Ändern">
</td>
</tr>
<?
}
}
?>
</form>
</table>
</html>
Oder was geht nicht?
Hallo,
es klappt jetzt, musste die End-Tags aber in die Schleife packen, sonst hätte es nicht gefunzt. Sieht jetzt so aus:
html>
<head>
<title>Knowledgebase SMC3</title>
</head>
<h1 align="center">Folgende Einträge wurden gefunden</h1>
<?php
include 'dbconnect.php';
// Die SQL Query
$sql = "SELECT * FROM `data` WHERE 1 AND `$radiob` LIKE '%$suche%' LIMIT 0 , 30 ";
$result = mysql_query($sql);
if (mysql_numrows($result)>0)
{
while ($row=mysql_fetch_object ($result))
{
$username=$row ->Frage;
$passwort=$row ->Antwort;
?>
<br>
<br>
<table border="0">
<form action="update.php" method="POST">
<tr>
<td><input type="hidden" size="20" name="$update" value="<? echo $_POST['$update']; ?>"></td>
</tr>
<tr>
<td>Problem:</td>
<td><input type="text" size="40" name="$username" value="<? echo $username; ?>"></td>
</tr>
<tr>
<td>Lösung:</td>
<td><textarea name="$passwort" cols="50" rows="10"> <? echo $passwort; ?></textarea></td>
</tr>
<tr>
<td align="center"><input type="submit" name="eintrag" value="Ändern">
</td>
</tr>
</form>
</table>
</html>
<?
}
}
Aber es hat sich ein anderes Problem ergeben.
Wenn ich auf Ändern drücke, wird eine neue Seite aufgerufen, allerdings macht die nicht ihren Job, obwohl ich wie ich glaube alle bedacht habe.
Folgendermassen ist der Code:
<html>
<head>
<title>Knowledgebase SMC3</title>
</head>
<h1 align="center">Eintrag erfolgreich geändert</h1>
<?
include ("dbconnect.php");
$user = $_POST['$username'];
$pass = $_POST['$passwort'];
$id = $_POST['$update'];
$sqlwert =" update
data
set
Frage= '$user',
Antwort= '$pass'
WHERE
id = $id";
$sqlanfrage = mysql_query($sqlwert) or die (mysql_error()) ;
?>
</html>
Als Fehlermeldung kommt: Error in SQL-Syntax bei folgendem Befehl:
$user = $_POST['$username'];
Habe ich die Variable falsch übergeben?
Gruß
Dennis
Mach mal...
$sqlwert ="update
data
set
Frage= '$user',
Antwort= '$pass'
WHERE
id = $id";
echo $sqlwert;
$sqlanfrage = mysql_query($sqlwert) or die (mysql_error()) ;
Was gibt dir $sqlwert aus?
Oder mach mal..
$sqlwert ="update data set Frage= '".$user."',Antwort= '".$pass."' WHERE id = '".$id."'";
Hallo, folgendes wird ausgegeben:
update data set Frage= 'Keine Werte bei SNMP-Abfrage', Antwort= ' /nasa/bin/hub_ctrl.pl DNS-Name wenn dann \"falsche Angaben\" erscheint dann kann es ein dass der Hub ein falsches Gateway drin hat. Beispiel: ./hub_ctrl.pl -e XA301010.bln3.telekom.de 1 3 enabled den Port 3, Slot1. Kommt dann \"falsche Angaben\" dann s.o. Wenn die Maske im leer bleibt und auf der NWM im verbose.log nichts drin steht dann folgendes probieren: /opt/ucd-snmp/bin/snmpwalk 164.27.37.190 swatchsw .1.3.6.1.4.1.45.1.6.5.3.10.1.3 damit wird der MAC-Authentification-Table abgefragt. Falls die Antwort vom Switch unendlich ist und am Ende immer die selbe MAC rauskommt muss diese am Switch gelöscht werden! In diesem Fall war ein Einschub entfernt worden aus Slot 6 und die MAC war dort noch gespeichert.' WHERE id = You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 8
Ich habe es auch mal mit den "" versucht, aber hat er nicht angenommen, kam ein Parse-Fehler
Gruß
Dennis
WHERE id =
id = nichts? Weswegen?
Und was für ein Parse Error?
Hallo,
da steht einfach parse-error in line blabla, also die Zeile woch " eingesetzt habe.
Warum die ID nicht übergeben wird, ich habe keine Ahnung. Habe alles mögliche ausprobiert und komme einfach nicht zu einem Ergebnis :(
Gruß
Dennis
Hallo,
Problem hat sich erledigt, hatte ein paar $ vergessen oder falsch gesetzt.
Vielen Dank für die Hilfe :)
Gruß
Dennis
|
-
- |