php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.10.2007, 22:41  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard ausgelese Zeilen / bearbeiten / löschen

Hallo miteinander.

Anfängerproblem:

Ich mache eine Abfrage aus der mysql Datenbank.
Nun möchte ich ein einzelner bearbeiten oder löschen und stelle mir vor, einen Link in der gleichen Zeile zu erhalten z.B "bearbeiten" oder "löschen".

Doch irgendwie komme ich seit tagelangem Suchen nicht weiter wie ich das machen kann...

So lese ich ich die Daten aus:

PHP-Code:
 $abfrage "SELECT * FROM links";
  
$result mysql_query($abfrage);
echo 
'<table style="border-collapse:collapse;" cellspacing="0">'
while (
$zeile mysql_fetch_array$result)) 

echo 
"<tr>"
echo 
'<td width="150" style="border-width:1px; border-color:rgb(0,102,204); border-style:dotted;">'$zeile['id'] . "</td>"
echo 
'<td width="150" style="border-width:1px; border-color:rgb(0,102,204); border-style:dotted;">'$zeile['name'] . "</td>"
echo 
'<td width="150" style="border-width:1px; border-color:rgb(0,102,204); border-style:dotted;">'$zeile['url'] . "</td>"


echo 
'<td width="250" style="border-width:1px; border-color:rgb(0,102,204); border-style:dotted;">';

if (
$zeile['banner'] == "ch")
{
echo 
"$ch";
}
if (
$zeile['banner'] == "de")
{
echo 
"$de";
}
else
{
echo 
"" ;
}
echo 
"</td>";
echo 
'<td width="150" style="border-width:1px; border-color:rgb(0,102,204); border-style:dotted;">'$zeile['beschreibung'] . "</td>"
echo 
"</tr>"

echo 
"</table>"
Wie kann ich nun hinter diese Zeile (bei jeder ausgegeben Zeile) einen Bearbeitungs -und Löschungslink einfügen.. und dann genau diese Zeile bearbeiten?

vielen Dank schon mal im voraus für Eure Geduld..

Gruss Prinzli
prinzli ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 22.10.2007, 00:08  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hallo und willkommen hier im Forum!

Das kannst du ganz einfach machen, in dem du innerhalb der Schleife einen <a> Tag erstellst, jeweils für bearbeiten und löschen. Dem href dieses <a> Tags übergibst du als Parameter die ID des Datensatzes ($zeile["id"]).

PHP-Code:
<?php
echo '[url="delete.php?id=' $zeile["]löschen[/url]';
?>
Die delete.php holt sich per $_GET["id"] den Wert und löscht dann mit
Code:
DELETE FROM links WHERE id = $id LIMIT 1
den Eintrag. Beachte, dass nur die Personen mit Berechtigung den Link sehen und aufrufen können sollten. Beachte ebenfalls, dass man sich verklicken könnte, das heißt bau eine JavaScript oder besser serverseitige Bestätigung ein.
Zergling-new ist offline   Mit Zitat antworten
Alt 22.10.2007, 11:58  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

dann ruf ich doch glatt mal die delete.php folgenderweise auf

Code:
delete.php?id=1 OR 1=1
und prinzli freut sich

(würd ich natürlich nicht wirklich machen, aber ich könnte es )
cycap ist offline   Mit Zitat antworten
Alt 22.10.2007, 22:34  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard

Hallo.. und vielen Dank für die nette Begrüssung..

Und danke auch für die schnelle Antwort..

Nun habe ich das versucht.. doch der Eintrag wird nicht gelöscht...
Also entweder ich bin zu doof.. zu müde... oder ich habe wirklich keine Ahnung.. hmm..

So sieht die "loeschen.php" aus:
PHP-Code:
// Verbindung zur Datenbank

    
$db_server 'localhost';
    
$db_name 'link';
    
$db_user 'link';
    
$db_passwort 'xxx';

    
$db mysql_connect$db_server$db_user$db_passwort )
      or die (
'es konnte keine Verbindung mit der Datenbank aufgebaut werden');
    
$db_select mysql_select_db$db_name );


// LOESCHEN

    
$loeschen "DELETE FROM links WHERE id = $id LIMIT 1";
    
$loesch "mysql_query($loeschen)";

    echo 
"Eintrag wurde gelöscht"
Was ist hier falsch..?
prinzli ist offline   Mit Zitat antworten
Alt 22.10.2007, 22:38  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard

Zitat:
Zitat von cycap
dann ruf ich doch glatt mal die delete.php folgenderweise auf

Code:
delete.php?id=1 OR 1=1
und prinzli freut sich

(würd ich natürlich nicht wirklich machen, aber ich könnte es )
@ cycap...
angenommen ich würde Dir sagen.. Du seist ein "kleines Schlitzohr".. würdest Du das schmunzelnd annehmen..?
prinzli ist offline   Mit Zitat antworten
Alt 22.10.2007, 23:12  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo prinzli,

ich bin geneigt, den Thread in das PHP-Forum zu verschieben, da das mehr in Richtung PHP-Syntx geht, aber lassen wir das mal.
Dein Problem ist vermutlich, dass $id nicht in

PHP-Code:
<?php

    $loeschen 
"DELETE FROM links WHERE id = $id LIMIT 1"
?>
gesetzt ist. Das funktioniert auch nur, wenn die Direktive register_globals = On ist, was man tunlichst vermeiden soll. An dieser Stelle musst du dich des $_GET- oder $_REQUEST-Arrays bedienen und ein

PHP-Code:
<?php

    $loeschen 
'DELETE FROM links WHERE id = '.$_REQUEST['id'].' LIMIT 1'
?>
in deinen Quellcode schreiben. Allerdings muss ich die Aussage von cycap bekräftigen, das ist sicherheitstechnischer Wahnsinn.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 23.10.2007, 00:30  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von dr.e.
Allerdings muss ich die Aussage von cycap bekräftigen, das ist sicherheitstechnischer Wahnsinn.
Wieso postest Du dann nicht lieber ein Positivbeispiel:

PHP-Code:
<?php
$loeschen 
sprintf ('DELETE FROM links WHERE id = %d LIMIT 1' 
                              
$_REQUEST['id']);
?>
PHP-Code:
<?php
$id 
= (int) $_REQUEST['id'];
$loeschen "DELETE FROM links WHERE id = $id LIMIT 1"
?>
PHP-Code:
<?php
$loeschen 
'DELETE FROM links WHERE id = ' 
                   
mysql_real_escape_string ($_REQUEST['id'] , $db) . ' LIMIT 1'
?>
Dazu noch den Hinweis, sich unbedingt in die Problematiken rund um register_globals, unvalidierte Requestparameter und SQL Injection einzulesen.
.
nikosch ist offline   Mit Zitat antworten
Alt 24.10.2007, 06:00  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard

..oha..

..hmm.. mit dem "register_globals".. wie kann ich das am besten herausfinden.. ob das auf on oder off eingestellt ist..?
Und wie kann ich das ändern..? (Wenn man das überhaupt kann) Muss ich mich da mit meinem Hoster in Verbindung setzen..?

..Danke für Eure Geduld..
prinzli ist offline   Mit Zitat antworten
Alt 24.10.2007, 08:49  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

@nikosch:
Zitat:
Wieso postest Du dann nicht lieber ein Positivbeispiel:
Wäre sicher hilfreich gewesen, aber hierzu existieren schon 100 Beispiele und Hinweise im Forum. Ein weiteres ist einfach inflationär.


@prinzli:
Zitat:
.oha..
Hast du etwas nicht verstanden, oder war das nur viel auf einmal? Falls du etwas nicht verstanden hast, frag nach.


Zitat:
..hmm.. mit dem "register_globals".. wie kann ich das am besten herausfinden.. ob das auf on oder off eingestellt ist..?
Und wie kann ich das ändern..? (Wenn man das überhaupt kann) Muss ich mich da mit meinem Hoster in Verbindung setzen..?
Das ist gar nicht so schwer. Lass dir mit

PHP-Code:
<?php
phpinfo
();
?>
die aktuelle PHP-Konfiguration ausgeben und suche nach "register_globals". Sollte das auf "On" sein, stell das entweder in der .htaccess-Datei deines Root-Verzeichnisses mit

Code:
php_value register_globals Off
ab. Ein

PHP-Code:
<?php
ini_set
('register_globals','Off');
?>
in deinen Scripten hilft da laut http://de.php.net/manual/de/ini.core...gister-globals nichts. Du kannst alternativ auch deinen Hoster fragen, ob er dir das einfach in der Konfiguration deines Accounts deaktiviert, das ist das einfachste.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 24.10.2007, 20:55  
Erfahrener Benutzer
 
Registriert seit: 21.10.2007
Beiträge: 125
prinzli
Standard

..Hallo miteinander..

..erstmals herzlichen Dank für Eure Hilfe und schnelle Antworten..

Ich habe nun mal die Php-Info aufgerufen.. und gefunden die "register_globals".. und ich muss Euch enttäuschen.. "register_globals" ist auf OFF...

..dann liegt das wohl an etwas anderem..?

Falls ich noch einen weiteren Code posten soll.. werde ich das tun.. :wink:

..es grüsst Euch Prinzli
prinzli ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Grosse Bilder Serverseitig mit PHP bearbeiten ssm PHP-Fortgeschrittene 13 19.06.2006 11:37
Dateien Bearbeiten Alienuser PHP Tipps 2006 11 12.04.2006 17:48
Tabelle färben bei Bearbeiten PHP Tipps 2006 3 13.02.2006 09:25
Sql Updates mehrer Zeilen Fr33z3m4n PHP Tipps 2006 7 10.02.2006 09:07
Zeilen heruasfinden?! PHP Tipps 2007 4 02.12.2005 16:53
Perl Datei bearbeiten nussbaum Server, Hosting und Workstations 2 09.11.2005 08:05
beim bearbeiten werden keine neue Daten übernommen... PHP Tipps 2005-2 2 24.10.2005 12:25
Leere Zeilen löschen Datenbanken 4 22.07.2005 13:19
[Erledigt] MySQL Zeilen lassen sich nicht kategorisieren Datenbanken 3 24.05.2005 01:15
zeilen lesen/zählen PHP Tipps 2005 10 20.05.2005 23:15
Datenausgabe in 2 Spalten und mehrere Zeilen mediaindesign Datenbanken 8 27.03.2005 09:13
[Erledigt] Doppelte zeilen löschen Datenbanken 8 06.12.2004 17:17
wieviel zeilen in einer csv Ohrwurm83 PHP Tipps 2004 1 30.10.2004 00:40
[Erledigt] 0 Zeilen werden zurückgegeben Datenbanken 5 21.08.2004 01:13
Zeilen auslesn und speichern PHP Tipps 2004 9 14.07.2004 15:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
style löschen php, zeilen bearbeiten in perl, zeilen entfernen echo, apf bordercolor, löschen und ändern von datenbankeinträgen php, perl zeile löschen, zeile ändern php, zeile ändern löschen php, lese zeile löschen, php zeile lesen und dann löschen, datenbank php löschen und editieren, php bearbeiten löschen, artikel bearbeiten, löschen php, user löschen und bearbeiten mit php, in zeile ändern und löschen hinzufügen php, php zeile bearbeiten, zeile markieren und verarbeiten php, perl zeilen verändern, rgb(0,102,204), php zwei zeilen entfernen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:55 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.