php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.02.2010, 09:09  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] Durch einen DB Eintrag alle anderen Einträge bearbeiten

Hi,

ich habe eine DB in welcher der Platz des Datensatzes selbst bestimmt werden kann. Wenn nun ein neuer Datensatz angelegt wird oder ein Datensatz bearbeitet wird und der Platz geändert wird, ist es wahrscheinlich, dass dieser Platz in der DB schon belegt ist und dann müssen alle anderen angepasst werden.

Bsp.

DB
Platz
1
2
3
4
5
6
7
8

Nun will einer einen neue hinzufügen und gibt als Platz 4 an.

dann sähe es ja so aus:

DB
Platz
1
2
3
4
4
5
6
7
8

Allerdings soll es so aussehen:

1
2
3
4 der neue EIntrag
5 Der Eintrag der vorher 4 war
6 Der Eintrag der vorher 5 war
7 Der Eintrag der vorher 6 war
...

Das er den DB der identsich ist ändert habe ich schon hinbekommen:

PHP-Code:
$result mysql_query("SELECT id_art FROM tisch WHERE platz = '$platz_neu'");
while(
$row=mysql_fetch_array($result))
{
if (isset(
$row[id_art])){
  
$id_platz_check $row[id_art];
}
 
$id_platz_check_neu $platz_neu +1;
 
mysql_query("UPDATE tisch SET  platz = '$id_platz_check_neu'
           WHERE
           id_art = '$id_platz_check'"
)
           or die(
mysql_error());

Nun ändert er aber nur den Platz der identsich mit dem neuen war - also sähe es so aus:

1
2
3
4 Neuer Eintrag
5 Alter Eintrag der vorher 4 war
5
6
7
8

Ich möchte das mit einer while Scheife machen und komme einfach nicht weiter. Überlege schon seit stunden wie ich den ansatz machen könnte. Kann mir von euch vielleicht jemand helfen? Muss ich meinen ersten Teil ausführen und DANN eine Schleife einbauen oder kann ich das lösen NUR mit einer Schleife?
Rutor ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.02.2010, 09:16  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Ich bin irretiert! Arbeitest Du mit PRIMARY_KEY und auto_increment? Dann hast' eindeutige Kennungen.
Arne Drews ist offline  
Alt 08.02.2010, 09:21  
Erfahrener Benutzer
 
Registriert seit: 28.01.2010
Beiträge: 615
PHP-Kenntnisse:
Fortgeschritten
tkausl ist in Verruf geraten
Standard

versuchs doch mal so:
PHP-Code:
mysql_query("UPDATE tisch SET  platz = platz+1
           WHERE
           id_art >= '$platz_neu'"
); 
tkausl ist offline  
Alt 08.02.2010, 09:25  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Und ich sehe immer noch undefinierte Konstanten.
Asipak ist offline  
Alt 08.02.2010, 09:26  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Arne Drews Beitrag anzeigen
Ich bin irretiert! Arbeitest Du mit PRIMARY_KEY und auto_increment? Dann hast' eindeutige Kennungen.
nein kein primary key - der ist bei id_art vergeben.
Rutor ist offline  
Alt 08.02.2010, 09:27  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
nein kein primary key - der ist bei id_art vergeben.
Na wat nu???
Kein Primary_Key oder doch bei id_art???
Arne Drews ist offline  
Alt 08.02.2010, 09:37  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

PHP-Code:
$position 4;

$sql "UPDATE `table` SET `position` = `position` + 1 WHERE `position` >= " $position;
mysql_query($sql) OR die (mysql_error());

$sql "INSERT INTO `table` SET `position` = " $position;
mysql_query($sql) OR die (mysql_error()); 
So könnte es funktionieren.

Und kannst du bitte endlich mal anfangen Strings, bei denen es sich um Arrayindizes handelt, in Anführungszeichen einzufassen:
PHP-Code:
if (isset($row[id_art])){
  
$id_platz_check $row[id_art];

dringend ändern in:
PHP-Code:
if (isset($row['id_art'])){
  
$id_platz_check $row['id_art'];

.

Gruß
Asipak ist offline  
Alt 08.02.2010, 13:24  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Problem gelöst - aber danke --> das UPDATE platz SET platz = platz + 1 hat es angepasst getan.
Rutor ist offline  
Alt 08.02.2010, 13:25  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von Asipak Beitrag anzeigen
PHP-Code:
$position 4;

$sql "UPDATE `table` SET `position` = `position` + 1 WHERE `position` >= " $position;
mysql_query($sql) OR die (mysql_error());

$sql "INSERT INTO `table` SET `position` = " $position;
mysql_query($sql) OR die (mysql_error()); 
So könnte es funktionieren.

Und kannst du bitte endlich mal anfangen Strings, bei denen es sich um Arrayindizes handelt, in Anführungszeichen einzufassen:
PHP-Code:
if (isset($row[id_art])){
  
$id_platz_check $row[id_art];

dringend ändern in:
PHP-Code:
if (isset($row['id_art'])){
  
$id_platz_check $row['id_art'];

.

Gruß

Alles klar und das mit den Konstanten werd ich auch mal beachten. Nur das was ich bisher hab werd ich später überarbeiten.
Rutor ist offline  
 


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 Daten via Formular bearbeiten easyhoo PHP Tipps 2009 9 23.11.2010 14:26
[Erledigt] Menü ein - und ausklappen abdullah JavaScript, Ajax und mehr 8 27.02.2010 23:54
2 <form> überschneiden sich... voda HTML, Usability und Barrierefreiheit 16 06.08.2009 11:35
Array eintrag für Eintrag durchgehen und jeweils Feld hinzufügen Stephan_87 PHP Tipps 2009 3 12.02.2009 19:23
Datenbank Einträge Offline Setzen... noxx Datenbanken 9 25.01.2009 12:32
[Erledigt] Löschen mehrer Einträge RedDragon PHP Tipps 2008 5 04.08.2008 14:39
Sortierreihenfolge nach Eintrag oder letzter Änderung leuktra Datenbanken 7 29.01.2007 19:20
Anzahl der Einträge einer MySQL-Tabelle Datenbanken 8 19.06.2006 19:14
Mysql Eintrag über mehrere Zeielne Eintrag funzt nicht PHP Tipps 2006 3 14.03.2006 19:38
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
PHP klappmenü PHP Tipps 2005-2 1 15.10.2005 00:31
Eintrag wird nicht Anezeigt! PHP Tipps 2004 1 08.11.2004 22:12
Wie kann ich den lezten Eintrag wieder auslesen? Pimbolie1979 Datenbanken 7 19.08.2004 10:49
[Erledigt] Abfrage ob Eintrag schon in DBbevor Eintrag gespeichert wird Datenbanken 6 06.08.2004 22:10
Hielfe: WIE neue DB Einträge zählen& farbig markieren??? Datenbanken 2 20.07.2004 12:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php einträge bearbeiten, php bearbeiten db, db eintrag in mehrere kategorien, php update alle einträge, eintrag editieren, php bearbeiten von db einträgen, erledigt durch, seite bei neuen db-eintrag aktualisieren, $row[\id_art\] = 1, sql eintrag editieren

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