php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.08.2011, 19:05  
Neuer Benutzer
 
Benutzerbild von RockHound
 
Registriert seit: 19.08.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
RockHound befindet sich auf einem aufstrebenden Ast
Standard ID löschen in MySQL

Hallo zusammen!
Ich fange mal so an: google, foren, 10.000 versuche - hat alles nichts gebracht.
Auch hier habe ich fleißig geschaut, aber die codes unterscheiden sich immer wieder auf's neue - insofern gab es keine Lösung für mich.

Wie die Überschrift schon sagt, möchte ich per 'ID' löschen,
das Formular soll den Wert mit 'POST' an eine andere PHP übergeben,
aber wenn ich den Datensatz neu abrufe ist nichts gelöscht.


--Datei: del.php--
PHP-Code:
<form method="post" action="l.php">
  <
table width="351" border="0">
    <
tr>
      <
td valign="bottom">Welche ID soll gelöscht werden?<br></td>
      <
td valign="top"><br></td>
    </
tr>
    <
tr>
      <
td valign="bottom"><input type="text" name="nr" value="" size="3" />
      <
input type="submit" name="button" value="OK" /></td>
    </
tr>    
  </
table>
  </
form
--Datei: l.php--
PHP-Code:
<?php
$host 
"localhost";     
$user "****";         
$pass "****";         
$dbase "fleet";         

$connection mysql_connect("$host" "$user" "$pass"
              OR die (
"Verbindung zur Datenbank nicht m&ouml;lich.");
$db mysql_select_db($dbase $connection
              OR die (
"<h1>Auswahl der Datenbank nicht m&ouml;glich.<br>Datenbank existiert nicht oder keine definiert!<h1>");      

 
    
$nr $_POST["nr"];

  
$nr "DELETE FROM wood WHERE id = '$nr'";
$loesch mysql_query($loeschen);

mysql_close();
?>
Ich hoffe ihr könnt mir helfen und würde mich freuen,
wenn die Auflistung brauchbar war.

LG
RockHound ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 19.08.2011, 19:15  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

$loeschen stimmt nicht im query
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist offline   Mit Zitat antworten
Alt 19.08.2011, 19:21  
Neuer Benutzer
 
Registriert seit: 17.08.2011
Beiträge: 9
PHP-Kenntnisse:
Fortgeschritten
smon befindet sich auf einem aufstrebenden Ast
Standard

Hallo RockHound,

das SQL-Statement zum Löschen wird überhaupt nicht ausgeführt. Du übergibst eine nicht-existende Variable ($loeschen) an die mysql_query(...)-Funktion, dein Statement ist allerdings in der Variable $nr gespeichert.

Darüber hinaus ist, bzw. wäre, wenn das SQL-Statement so ausgeführt würde, der gepostete Code anfällig für SQL-Injection-Angriffe, da eine Benutzereingabe ungefiltert in das SQL-Statement eingefügt wird.

Viele Grüße
smon
smon ist offline   Mit Zitat antworten
Alt 20.08.2011, 00:19  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

na, wo haste das Script kopiert ? *g*

in der Zeile drüber heißt der Abfrage-Text noch $nr .. und direkt da drunter auf einmal $loeschen ?.. klar soweit ?
allerdings solltest du nun nicht $loeschen ändern, sondern $nr - denn $nr transportiert ja deine $_POST-Variable ...

außerdem DRINGENST anschauen .. SQL-Injections .. sonst lösch ich dir deine komplette Tabelle innerhalb von ein paar Sekunden
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 20.08.2011, 00:22  
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:
$connection = mysql_connect("$host" , "$user" , "$pass")
Auch hierzu gleich mal: PHP.de Wiki | Code Smells
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.08.2011, 03:50  
Neuer Benutzer
 
Benutzerbild von RockHound
 
Registriert seit: 19.08.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
RockHound befindet sich auf einem aufstrebenden Ast
Standard

Danke erst mal für die vielen und schnellen Antworten!

Okay, werde mich gleich mal dran machen den query zu ändern
(Vor lauter Bäume den Wald nicht mehr sehen - kannte jeder, nicht wahr?)

In der Tat, gewisse Fragmente aus div. vollständigen PHP schnipsel sind kopiert, na klar - es schleichen sich Fehler ein, aber ist ja auch recht bequem...


Über die Injection Geschichte muss ich mir später gedanken machen - allerdings weiß ja keiner um welche URL es sich handelt

Jedenfalls dient das Script im Augenblick nur zum eintragen von Ruhestörungen
(automatische Datums & Zeiteintragung in de db - das Textfeld entsprechend zum eintragen der Fälle)

Klappt soweit Prima... also mache ich mich gleich an die Arbeit - Melde mich dann wieder!

LG

__________________________________________

Gaaaanz lieben Dank noch mal! Hat auf anhieb das Problem gelöst -na logo!

Jetzt habe mal eben via google und div. wiki's herausgefunden, das mysql die ID beim löschen nicht automatisch runtersetzt - schlecht.
Ich war der meinung bei einer älternen mqsql version wäre das mal gegangen... autoincrement und unique meine ich...
Aber ich schätze das es tatsächlich das damalige script war, das die ID's wieder runtergesetzt hat nach dem löschen.
Kann das einer bestätigen?

Aufjeden fall bräuchte ich das noch, dass die ID nach dem klöschen kleiner wird, sodass beim löschen von z.B. 45 dann 44 ist, aber nicht auf 46 weiter zählt...

Geändert von RockHound (20.08.2011 um 04:06 Uhr). Grund: Ergänzung...
RockHound ist offline   Mit Zitat antworten
Alt 20.08.2011, 10:45  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von RockHound Beitrag anzeigen
Jetzt habe mal eben via google und div. wiki's herausgefunden, das mysql die ID beim löschen nicht automatisch runtersetzt - schlecht.
Nein - nicht „schlecht“.

Beim Googlen solltest du auch auf die Aussage gestossen sein, dass a) eine ID ausschließlich zur Identifikation eines Datensatzes dienen soll, und für nichts anderes, und b) eine einmal „benutzte“ ID nicht erneut vergeben wird, um die Datenintegrität zu gewährleisten.

Zitat:
Aufjeden fall bräuchte ich das noch, dass die ID nach dem klöschen kleiner wird
Nein, bräuchtest du nicht.
Wenn du meinst, du bräuchtest, machst du etwas falsch, und misst der ID eine Bedeutung bei, die sie nicht haben sollte.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 20.08.2011, 22:34  
Neuer Benutzer
 
Benutzerbild von RockHound
 
Registriert seit: 19.08.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
RockHound befindet sich auf einem aufstrebenden Ast
Standard

Hi ChrisB,
danke für deine Antwort.

Ja, doch, brauche ich - zumindest hatte ich es beim damaligen script so und es war auch ganz nützlich.
denn wenn ich ein array habe und aus dem array einen Eintrag lösche, ist es nur logisch den neuen Eintrag
mit der letzten id zu versehen.

Wer hat in seinem array schon gerne 32,33,35,39,40,41... also immense Lücken?

Geändert von RockHound (20.08.2011 um 22:35 Uhr). Grund: Änderung
RockHound ist offline   Mit Zitat antworten
Alt 20.08.2011, 23:09  
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

Arrays kann man problemlos auch mit Lücken verarbeiten.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 21.08.2011, 05:00  
Neuer Benutzer
 
Benutzerbild von RockHound
 
Registriert seit: 19.08.2011
Beiträge: 4
PHP-Kenntnisse:
Anfänger
RockHound befindet sich auf einem aufstrebenden Ast
Standard

Natürlich "kann" man das... ->soll<- aber nicht.

Ich möchte ja die ID's anzeigen und bei gelöschten Einträgen sollen eben keine
Lücken vorhanden sein.

Jedenfalls, wenn hier keiner dazu bereit ist mir nützliche Tipps
bezüglich dessen zu geben, muss ich natürlich schauen wie ich weiter komme.

Aber trotzdem, war total nett von Euch und ich kann mich nur noch mal
ganz Herzlich für die schnellen Antworten bedanken.

Jedenfalls bleibe ich diesem Forum hier treu!
RockHound 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
Mysql einträge mit ner Confirmbox löschen ~fransen~ PHP Einsteiger 12 10.01.2011 09:15
Scriptsuche MySQL und CSV vergleichen u. nicht vorhandenes löschen headbannger83 Scriptbörse 3 09.01.2011 13:45
Scriptsuche Daten aus MySQl Datenbank und CSV Datei vergleichen u. ggf übertragen oder löschen headbannger83 Scriptbörse 0 07.01.2011 01:00
MySQL Datentransfer (Dateigroesse 4MB) via Shell Zugang oder einfacher promoterlv Datenbanken 1 14.11.2010 22:12
[Erledigt] PHP bekommt keine Verbindung zu MySQL SaKe Datenbanken 15 20.09.2010 14:45
[Erledigt] Kann keine Umlaute im mysql client eingeben Oger Datenbanken 9 02.04.2009 11:54
MySQL Konsole und Umlaute unter Windows [LÖSUNG] f4ckm5 Datenbanken 8 30.03.2009 22:10
MySQL Tabelleninhalt löschen Paddy PHP Tipps 2008 19 10.12.2008 11:59
Lerne Grundlagen | Quellensammlung cycap PHP Einsteiger 0 12.11.2008 16:23
MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
MySQL per PHP zeilenweise löschen... PHP Tipps 2006 7 21.02.2006 15:29
Dateien über MySQL löschen Charly Shop Sui PHP Tipps 2005 4 06.05.2005 15:42
mysql query... alle datensäze älter als x tage löschen... Sclot Datenbanken 2 05.03.2005 23:04
Nur markierte Einträge löschen mysql php PHP-Fortgeschrittene 2 19.09.2004 21:53
LÖSCHEN VON MySQL Daten. PHP Tipps 2004 6 01.09.2004 17:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql auflistung vom id löschen, mysql datensatz durch id löschen button, mysql daten von bis id löschen, php mysql datenbank nicht verwendete id entfernen, mysql delete id, mysql delete where id, php uid löschen 2011, php mysql buttom löschen method=\post\, mysql update id neu vergeben, mitglied löschen mysql php formular, alle id löschen mysql, mysql delete ids, php id löschen, mysql soll keine leeren werte eintragen, id in mysql and php, bb id lõschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:46 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