Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Suchen und gleichzeitig ändern [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Suchen und gleichzeitig ändern


 
Mannis
05-04-2004, 11:07 
 
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

 
asp2php
05-04-2004, 11:16 
 
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.

 
Seccho
05-04-2004, 11:19 
 
if (mysql_numrows($result)>0)
{
while($row=mysql_fetch_object($result)) {
$username=$row->tabellenname;
$passwort=$row->tabellenname2;
}
}


.... in etwa...

 
Mannis
05-04-2004, 11:21 
 
Hallo,

klar. hab die Schleife vergessen *grml*

werds gleich mal probieren, bis hier hin erst mal danke :)

Gruß
Dennis

 
Mannis
05-04-2004, 12:00 
 
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

 
Seccho
05-04-2004, 12:37 
 
Und wie sieht dein Code nun aus...?

 
Mannis
05-04-2004, 13:13 
 
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

 
Seccho
05-04-2004, 13:29 
 
Lies mal hier...

http://ch2.php.net/manual/de/function.msql-result.php

Und machs mal so wie ich geschrieben hab...

 
Mannis
05-04-2004, 13:44 
 
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

 
wahsaga
05-04-2004, 13:46 
 
Original geschrieben von Mannis
Es wird nur ein Eintrag angezeigt.
natürlich - weil du die ausgabe der daten ja erst nach der schleife machst.

 
Seccho
05-04-2004, 13:51 
 
Denkfehler ;)

 
Mannis
05-04-2004, 14:07 
 
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

 
Seccho
05-04-2004, 14:26 
 
<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?

 
Mannis
06-04-2004, 08:28 
 
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

 
Seccho
06-04-2004, 08:43 
 
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."'";

 
Mannis
06-04-2004, 11:30 
 
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

 
Seccho
06-04-2004, 18:30 
 
WHERE id =

id = nichts? Weswegen?

Und was für ein Parse Error?

 
Mannis
07-04-2004, 07:42 
 
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

 
Mannis
07-04-2004, 12:28 
 
Hallo,

Problem hat sich erledigt, hatte ein paar $ vergessen oder falsch gesetzt.

Vielen Dank für die Hilfe :)

Gruß
Dennis

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:47 Uhr.