 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
13.03.2005, 10:43
|
#1
|
|
TP-Junior
Registriert seit: Mar 2005
Ort: Österreich
|
Kann mir wer weiterhelfen???
Hallo Leute,
ich bin absoluter Beginner in Sachen PHP, interessiere mich aber sehr dafür und hab auch schon so manches bewerkstelligt. Nun steh ich aber vor einem Problem und weiß nicht mehr weiter. Ich habe eine MySql Tabelle, in welcher Events gespeichert sind. Diese werden auf der Webseite angezeigt. Paralell dazu habe ich mir die selbe Tabelle noch mal ausgeben lassen, nur mit zwei zusätzlichen Funktionen - Daten löschen und Daten ändern.
Das Löschen der Daten hab ich schon hinbekommen, allerdings das Ändern nicht. Ich schaffe es, das die Daten mittels ID in einer neuen Seite schon in Formularfeldern ausgegeben werden, aber jetzt weiß ich nicht weiter wie ich das ändern machen.
Hier mal die Quelltexte meiner Bastelei:
Die erste Seite, wo die Daten ausgegeben werden:
PHP-Code:
<?
// Datenbankverbindung herstellen
$server = "localhost";
$user = "****";
$pass = "****";
$dbase = "*****";
$conn = @mysql_connect($server, $user, $pass);
if($conn) {
mysql_select_db($dbase, $conn);
} else {
die("Fehler, Verbindung konnte nicht hergestellt werden!");
}
function getUser($suchfeld, $page)
{
$page = (int) $page;
if ($page <= 0) $page=1;
if(!empty($suchfeld)) {
$suchfeld = trim($suchfeld);
$suchfeld = str_replace(" ","%",$suchfeld);
$suchfeld = "%".$suchfeld."%";
$sql = " SELECT
id, name, plz, ort
FROM
ev_fw
WHERE
name LIKE '$suchfeld' OR
plz LIKE '$suchfeld' OR
ort LIKE '$suchfeld' OR
id LIKE '$suchfeld'";
} else {
$sql = " SELECT
id, name, plz, ort
FROM
ev_fw";
}
$res = mysql_query($sql);
$anz = mysql_num_rows($res);
$itperpage = 10;
$maxpages_int = (int) ($anz/$itperpage);
$maxpages_float = $anz/$itperpage;
if ( $maxpages_float > $maxpages_int ) {
$maxpages = (int)(($anz/$itperpage)+1);
} else {
$maxpages = (int)(($anz/$itperpage));
}
if ($page > $maxpages) $page = $maxpages;
$sql2 = $sql." ORDER BY name ASC limit ".(($page-1)*$itperpage).",$itperpage";
$res2 = mysql_query($sql2);
$anz2 = mysql_num_rows($res2);
if($anz > 0) {
if(empty($suchfeld)) {
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1'><tr>
<td><strong>$anz Treffer in der Datenbank. Pro Seite werden $itperpage Veranstaltungen
angezeigt.</strong></td></tr></table>";
} else {
if($anz > 1) { $wortlaut = "wurden"; } else { $wortlaut = "wurde"; }
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1' ><tr>
<td><strong>Mit Ihrer Suchabfrage $wortlaut $anz Treffer
gelandet.</strong></td></tr></table>";
}
$i = 0; // Eine Zählvariable für unterschiedliche Zeilenfarben
$navi_left = ""; // HTML - Teil der Navigation zum zurückblättern
$navi_right = ""; // HTML - Teil der Navigation zum weiterblättern
$userliste = ""; // HTML - Inhalt der Userliste
$show_navi = ""; // HTML – Beinhaltet die Navigation und das Suchfeld
// Start der WHILE Schleife
while ($row = mysql_fetch_array($res2, MYSQL_ASSOC)) {
// Hier wird die Zeilenhintergrundfarbe für jeden Datensatz festgelegt,
// dies dient der Übersicht
if($i%2==0) { $trcolor = "#ffffff"; } else { $trcolor = "#FFFFCC"; }
if ($page > 1){
$navi_left = "<strong><input type=button value=\"«\"
onClick=\"pageset($page-1)\" style=\"WIDTH:25px\"></strong>";
}
if ($page < $maxpages){
$navi_right = "<strong><input type=button value=\"»\"
onClick=\"pageset($page+1)\" style=\"WIDTH:25px\"></strong>";
}
if(isset($_POST['suchfeld']) && !empty($_POST['suchfeld'])) {
$val_suchfeld = $_POST['suchfeld'];
} else {
$val_suchfeld = "";
}
$show_navi =
"
<form name='form1' method='post' action='index.php' style='margin:0px;padding:0px'>
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr>
<td width='50%'>
<input type=button value=\"Seite\" style=\"WIDTH:50px\" onClick=\"pageset2()\">
<input name='page' type='text' id='page' value='$page' style=\"WIDTH:60px\">
von $maxpages $navi_left$navi_right
</td>
<td width='60%'><div align = 'right'>
Suchen: <input name='suchfeld' type='text' id='suchfeld' value = '$val_suchfeld'
style=\"WIDTH:120px;HEIGHT:20px\">
<input type=submit value=\"Finden\" style=\"WIDTH:45px\">
<input type=hidden name=page_no value=\"$page\">
</div></td>
</tr>
</table>
</form>
";
$userliste = $userliste .
"
<tr bgcolor = '$trcolor'>
<td width='30%'><div align='left'><b>$row[name]</b></div></td>
<td width='10%'><div align='center'><b>$row[plz]</b></div></td>
<td width='15%'><div align='center'><b>$row[ort]</b></div></td>
<td width='20%'><div align='center'><b>$row[id]</b></div></td></tr>
<tr>
<td colspan='5' width='100%'><div align='right'><b>Auswahl: </b><a href='kill.php?id=$row[id]'><img src='b_drop.png' alt='Löschen' width='15' height='15' border='0'></a></div></td>
<td colspan='5' width='100%'><div align='right'><a href='test02.php?id=$row[id]'><img src='b_edit.png' alt='Bearbeiten' width='15' height='15' border='0'></a></div></td>
</tr>
";
$i++; // Zählschleife um 1 erhöhen
}// WHILE Schleife abschließen
} else {
$userliste = "
<tr>
<td colspan='5'><div align='center'>Keine Ergebnisse fuer Ihre Suche!<br><br>
<a href='index.php'>Zurück zur Eventliste</a></div>
</td>
</tr>";
}
$fertig = "
<table width='80%' border='0' cellspacing='1' cellpadding='1'>
<tr bgcolor='#006699'>
<td width='30%'><div align='center'><strong>Name</strong></div></td>
<td width='10%'><div align='center'><strong>PLZ</strong></div></td>
<td width='15%'><div align='center'><strong>Ort</strong></div></td>
<td width='20%'><div align='center'><strong>ID</strong></div></td>
</tr><tr height='15px' bgcolor='#000000'></tr>
$userliste
</table>
";
return $head.$show_navi.$fertig;
} // Funktion schließen – FERTIG
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Translation//EN">
<html>
<head>
<TITLE>Blaetterfunktion mit Navigator und Suchfunktion</TITLE>
<script language="JavaScript" type="text/javascript">
function pageset(wert)
{
document.form1.page_no.value = wert;
document.form1.submit();
}
function pageset2()
{
document.form1.page_no.value = document.form1.page.value;
document.form1.submit();
}
</script>
</head>
<body>
<?
// Aufruf der Funktion getUser() mit Suchbegriff und Seitennummer
echo $show = getUser($_POST['suchfeld'],$_POST['page_no']);
?>
Die zweite Seite, wo die Daten gelöscht werden:
PHP-Code:
<?php
include_once("./admin_header.php");
$id = $_GET['id'];
$delete = "DELETE FROM ev_fw WHERE id = $id";
echo "<p align='center'><b>";
if(mysql_query($delete))
{
echo 'Eintrag wurde erfolgreich gelöscht!';
//session_destroy();
}
else
{
echo "Beim Löschen des Eintrags trat ein Fehler auf!";
}
echo "</b><br /><br /><a href='index.php'>Zurück zur Liste</a></p>";
?>
Und nun die Seite, wo die Daten geändert werden sollten:
PHP-Code:
<?
// Datenbankverbindung herstellen
$server = "localhost";
$user = "*****";
$pass = "*****";
$dbase = "*****";
$conn = @mysql_connect($server, $user, $pass);
if($conn) {
mysql_select_db($dbase, $conn);
} else {
die("Fehler, Verbindung konnte nicht hergestellt werden!");
}
?>
<?
$sql = "SELECT * FROM ev_fw
WHERE id=".$_REQUEST['id'];
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($result);
?>
<p>
ID: <?= $_GET['id']; ?>
</p>
<form action="eintragen.php" method="post">
<input type="hidden" name="id" value="<?=$_GET['id']?>">
Name: <input type="text" name="name" value="<?=$row['name']?>"><br />
PLZ: <input type="text" name="plz" value="<?=$row['plz']?>"><br />
Ort: <input type="text" name="ort" value="<?=$row['ort']?>"><br />
<br />
<input type="submit" name="update" value="update">
</form>
Wie mach ich da weiter? Bin ich überhaupt am richtigen Weg? Kann mir wer ein Beispiel zeigen, wo ich das ablesen kann?
|
|
|
13.03.2005, 12:09
|
#2
|
|
TP-Veteran
Registriert seit: Jun 2003
Ort: Aachen
|
statt
<?=$_GET['id']?>
<? echo $_GET['id']; ?>
funktioniert das?
|
|
|
13.03.2005, 12:14
|
#3
|
|
TP-Junior
Registriert seit: Mar 2005
Ort: Österreich
|
PHP-Code:
<?=$_GET['id']?>
Die richtige ID usw wird schon angezeigt, also die Daten aus der DB hab ich schon in den Formularfelder stehen, aber wie mach ich das jetzt, das wenn ich auf Update klicke die Daten in der DB dann übernommen und geändert werden?
|
|
|
13.03.2005, 12:16
|
#4
|
|
TP-Veteran
Registriert seit: Jun 2003
Ort: Aachen
|
axo...^^
ließ dir mal die Syntac von UPDATE Befehlen in SQL durch.
dann solltest du es schaffen...
|
|
|
13.03.2005, 12:20
|
#5
|
|
TP-Veteran
Registriert seit: Jan 2003
Ort: Goch
|
Ich hab auch mal so ein kleines CMS gamacht. Vielleicht machst du es ja einfach so, dass wenn man auf den Sende-Button klickt, dasselbe passiert, als wenn man was neues speichert, mit dem unterscheid, dass er halt keine neue id etc. anlegt, sondern die id, die man editiert einfach überschreibt! Also ala "... where id = 3" oder so.
Ich hab das mit ner switch-abfrage gelöst. Ich sage der Seite was ich machen möchte (Save, edit, del, saveedit) und je nachdem führ der server dann halt eine andere aktion aus.
Mfg
Dittboy
|
|
|
13.03.2005, 12:36
|
#6
|
|
TP-Junior
Registriert seit: Mar 2005
Ort: Österreich
|
@Dittboy ich glaube das check ich noch weniger.....bin gerade an meinen Anfangsversuchen
@heatseeker
Ist das so in die Art richtig?
PHP-Code:
if($_POST['update'])
{
mysql_query("UPDATE $ev_fw SET name = 'name', ort = 'ort', plz ='plz' WHERE id = 'id'");}
|
|
|
13.03.2005, 12:37
|
#7
|
|
TP-Veteran
Registriert seit: Jun 2003
Ort: Aachen
|
das ist vom syntax richtig. nur jetzt musst du die statischen werte durch deine variablen aus dem POST-array ersetzen.
|
|
|
13.03.2005, 12:59
|
#8
|
|
TP-Junior
Registriert seit: Mar 2005
Ort: Österreich
|
jetzt bin ich einen schritt weiter, allerdings schreibt er mir jetzt immer
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 'WHERE id= 'id' SET name='FF Schwechat - Blutspenden', plz='12', or' at line 1
|
|
|
13.03.2005, 13:02
|
#9
|
|
TP-Veteran
Registriert seit: Jun 2003
Ort: Aachen
|
strings müssen in ' ' und zahlen nicht...
mysql_query("UPDATE $ev_fw SET name = 'name', ort = 'ort', plz =plz WHERE id = id");
ich denke das es so richtig ist. natürlich fehlen die variablen...
|
|
|
13.03.2005, 13:07
|
#10
|
|
TP-Junior
Registriert seit: Mar 2005
Ort: Österreich
|
Vielen Dank, es haut hin!!
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 16:37 Uhr.
|
 |