php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.06.2009, 02:22  
Neuer Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 7
PHP-Kenntnisse:
Fortgeschritten
Betullam befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Mehrere Datensätze auswählen und ändern

Hallo zusammen,

ich versuche gerade vergeblich (siehe Uhrzeit) von einer Access-DB auf eine SQL-DB umzusteigen und hab noch einige Schwierigkeiten.

Ich habe ein Problem, SQL-Datensätze über eine PHP-Seite auszuwählen und zu ändern. Ich habe eine SQL-Datenbank, in der Daten für Bestellungen gespeichert sind. Jeder Datensatz ist eine Bestellung. Nun lese ich die Datensätze aus dieser Datenbank per PHP aus, was kein Problem ist. Hier mal der Code dazu:

PHP-Code:
<?php
  
include("dbconnect.php");

  
$abfrage "SELECT *, DATE_FORMAT(datum, '%d.%m.%Y %H:%i') AS datum FROM fdv_daten";
  
$ergebnis mysql_query($abfrage);
  
?>

  
<table width="487" border="0" cellpadding="3" cellspacing="0">
<tr>
    <th width="127" align="left">Bestellnummer</th>
    <th width="148" align="left">Datum</th>
    <th width="96" align="right">Preis</th>
    <th width="116" align="right">Erledigt</th>
</tr>

<?php

   
while($row mysql_fetch_object($ergebnis)){
    echo 
'<tr>'."\r\n";

    echo 
'<td align="left">'.$row->bestellnr.'</td>'."\r\n";
    echo 
'<td align="left">'.$row->datum.'</td>'."\r\n";
    echo 
'<td align="right">'.$row->preis.' Euro </td>'."\r\n";
    echo 
'<td align="right">'.$row->erledigt.'</td>'."\r\n";

    echo 
'<tr>'."\r\n";
  }

?>
</table>
Das Problem liegt darin, aus den mit dem oben angeführten Code ausgelesenen Datensätzen bestimmte Datensätze auszuwählen (am Besten per Checkbox) und diese dann per Klick auf einen Button zu ändern (der Wert in der Spalte "Erledigt" soll für die ausgewählten Datensätze von "Nein" auf "Ja" geändert werden).

Meine Frage ist nun: wie kann ich eine Checkbox einbauen, um die gewünschten Datensätze zu markieren und für diese schlussendlich den Wert in der Spalte "Erledigt" zu ändern? Ich denke ich muss ein Formular basteln, aber ich weiß ehrlich gesagt nicht wie genau ich das anstellen soll.

Ich danke jetzt schon für alle Antworten!

Viele Grüße,
Michael
Betullam ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.06.2009, 05:10  
Erfahrener Benutzer
 
Benutzerbild von Mati_
 
Registriert seit: 27.06.2009
Beiträge: 107
PHP-Kenntnisse:
Fortgeschritten
Mati_ befindet sich auf einem aufstrebenden Ast
Mati_ eine Nachricht über ICQ schicken Mati_ eine Nachricht über MSN schicken
Standard

Bring eine HTML-Struktur da hinein, und erstelle ein Formular mit action-Attribut auf das Skript. In der while-Schleife gibst du dort wo du die Checkboxen haben willst ein <input type="checkbox" name="checkarr[]" value="$foo"> hinzu, wobei $foo der Primärschlüssel, also zB. die Bestellnr. ist.

Im Auswertungsskript machst du nun eine Sektion wo überprüft wird ob der GET/POST Wert für $checkarr gesetzt ist (am besten mit empty()), und wenn ja hast du die markierten Sachen in $_REQUEST['checkarr'] und kannst die entsprechenden DB-Operationen vornehmen.
Mati_ ist offline  
Alt 28.06.2009, 08:00  
Neuer Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 7
PHP-Kenntnisse:
Fortgeschritten
Betullam befindet sich auf einem aufstrebenden Ast
Standard

Guten Morgen Mati_,

vielen vielen Dank für die Antwort!!! Wird für mich als Anfänger vielleicht eine etwas harte Nuss, aber ich verstehe jedenfalls das Prinzip hinter der Methode. Also ich werd's mal ausprobieren. Falls es nicht klappt, werd ich's posten.

Grüße
Michael
Betullam ist offline  
Alt 29.06.2009, 07:55  
Neuer Benutzer
 
Registriert seit: 28.06.2009
Beiträge: 7
PHP-Kenntnisse:
Fortgeschritten
Betullam befindet sich auf einem aufstrebenden Ast
Standard Checkbox Mehrfachauswahl Daten ändern oder löschen

Hallo,

ich hab mein Problem nun gelöst und werde den Code hier posten, falls noch wer eine ähnliche Lösung braucht.

Ich hab jetzt mal einfach ne Löschabfrage statt einer Änderung gemacht, aber das Prinzip bleibt ja das Gleiche. Hier mal der Code für eine Löschabfrage mit Mehrfachauswahl über Checkboxen, die sich auf sich selbst bezieht (also die Formular-Aktion mit <?php echo $_SERVER['PHP_SELF']; ?>):

PHP-Code:
<html>
<head>

 <?php
 
//Zur Datenbank verbinden
  
include("dbconnect.php");
  
 
//Löschabfrage bei Klick auf Löschbutton ausführen
  
if(isset($_POST['loeschen'])){ 
     if (!empty(
$_POST['checkarr'])) { 
        foreach(
$_POST['checkarr'] as $v) { 
           
$loesch_id mysql_real_escape_string($v); 
           
$loesche "DELETE FROM tbl_name WHERE bestellnr ='$loesch_id'"
           
mysql_query($loesche); 
        } 
     } 
  }
  
  
?>

</head>
<body>
 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="change" id="change" lang="de">
  
<table width="611" border="0" cellpadding="3" cellspacing="0">
<tr>
    <th width="61" align="left">Auswahl (Checkboxen)</th>
    <th width="105" align="left">Bestellnummer</th>
    <th width="134" align="left">Datum</th>
    <th width="105" align="right">Preis</th>
    <th width="75" align="right">Erledigt?</th>
</tr>

<?php
    $abfrage 
"SELECT *, DATE_FORMAT(datum, '%d.%m.%Y %H:%i') AS datum FROM tbl_name";
    
$ergebnis mysql_query($abfrage);
    
    while(
$row mysql_fetch_object($ergebnis)){
    echo 
'<tr>'."\r\n";

    echo 
'<td align="left">'.'<input type="checkbox" name="checkarr[]" value="'.$row->bestellnr.'">'.'</td>'."\r\n";
    echo 
'<td align="left">'.$row->bestellnr.'</td>'."\r\n";
    echo 
'<td align="left">'.$row->datum.'</td>'."\r\n";
    echo 
'<td align="right">'.$row->preis.' Euro </td>'."\r\n";
    echo 
'<td align="left">'.$row->erledigt.'</td>'."\r\n";

    echo 
'<tr>'."\r\n";
  }

?>
</table>
<br>
<input type="submit" name="loeschen" id="loeschen" value="Löschen" />
</form>


</body>
</html>
Ich will auch gleich noch den Code für die Lösung mit der Löschabfrage in einer externen Datei posten (im Formular also bei "action" eine .php-Datei angeben). Ich weiß aber nicht, welche der beiden Lösungen die bessere oder "elegantere" ist ... dazu bin ich (noch) zu wenig drin in PHP und SQL ... aber ich hoffe das kommt noch. Die Datei mit der Tabelle und dem Formular sieht beim zweiten Lösungsansatz jedenfalls so aus:

PHP-Code:
<html>
<head>

 <?php
 
//Zur Datenbank verbinden
  
include("dbconnect.php");  
  
?>

</head>
<body>
 
<form action="action.php" method="post" name="change" id="change" lang="de">
  
<table width="611" border="0" cellpadding="3" cellspacing="0">
<tr>
    <th width="61" align="left">Auswahl (Checkboxen)</th>
    <th width="105" align="left">Bestellnummer</th>
    <th width="134" align="left">Datum</th>
    <th width="95" align="right">Preis</th>
    <th width="75" align="right">Erledigt?</th>
</tr>

<?php
    $abfrage 
"SELECT *, DATE_FORMAT(datum, '%d.%m.%Y %H:%i') AS datum FROM tbl_name";
    
$ergebnis mysql_query($abfrage);
    
    while(
$row mysql_fetch_object($ergebnis)){
    echo 
'<tr>'."\r\n";

    echo 
'<td align="left">'.'<input type="checkbox" name="checkarr[]" value="'.$row->bestellnr.'">'.'</td>'."\r\n";
    echo 
'<td align="left">'.$row->bestellnr.'</td>'."\r\n";
    echo 
'<td align="left">'.$row->datum.'</td>'."\r\n";
    echo 
'<td align="right">'.$row->preis.' Euro </td>'."\r\n";
    echo 
'<td align="left">'.$row->erledigt.'</td>'."\r\n";

    echo 
'<tr>'."\r\n";
  }

?>
</table>
<br>
<input type="submit" name="loeschen" id="loeschen" value="Löschen" />
</form>


</body>
</html>
Die Datei "action.php" sieht folgendermaßen aus:

PHP-Code:
<?php

 
// Verbindung zur Datenbank
 
require_once('dbconnect.php'); 
  
 
//Löschabfrage bei Klick auf Löschbutton ausführen
  
if(isset($_POST['loeschen'])){ 
     if (!empty(
$_POST['checkarr'])) { 
        foreach(
$_POST['checkarr'] as $v) { 
           
$loesch_id mysql_real_escape_string($v); 
           
$loesche "DELETE FROM tbl_name WHERE bestellnr ='$loesch_id'"
           
mysql_query($loesche); 
        } 
     } 
  }

  
//Springen zur angegebenen Datei
  
header("Location: index.php"); 

?>
Das war's. Vielleicht kann's ja irgendjemand brauchen.

Grüße
Michael
Betullam ist offline  
Alt 29.06.2009, 10:32  
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

Sehr freundlich...
Nun bloß noch ERLEDIGT markieren, bitte!
Arne Drews 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
Mehrere Datensätze updaten, die zuvor durch Checkboxen ausgewählt wurden. peefonic PHP Tipps 2008 4 22.09.2009 11:23
Datensätze aus Datenbank in Flash auflisten beta02 JavaScript, Ajax und mehr 5 23.06.2009 16:03
Datensätze ändern homermg PHP Tipps 2009 6 14.06.2009 20:34
Userdaten einlesen und ändern 54ch4 PHP Tipps 2009 3 16.03.2009 22:54
Registrierte User sollen ihre Daten ändern können 54ch4 PHP Tipps 2009 17 14.03.2009 14:29
Formularauswertung mit Arrays -> Datensätze ändern r-ene PHP Tipps 2009 11 06.03.2009 01:54
mehrere datensätze mit mehreren submits ändern kladotti PHP Tipps 2008 2 27.04.2008 21:43
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
Datensätze ändern toko1284 PHP Tipps 2006 3 18.03.2006 07:29
Datensätze ändern PHP Tipps 2007 1 04.12.2005 18:45
bestimmte datensätze anhand des Datums auswählen tommi89 Datenbanken 2 20.10.2005 09:43
Alle Datensätze ab dem zweiten Datensatz auswählen Datenbanken 2 13.05.2005 15:32
Bild für MySQl Datensätze ändern PHP Tipps 2005 3 15.01.2005 11:37
datensätze einer mysql datenbank ändern PHP Tipps 2004 4 25.08.2004 17:54
[Erledigt] Datensätze anzeigen lassen und dann ändern? Datenbanken 3 10.07.2004 13:57

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
access mehrere datensätze ändern, php mehrere auswahl, mehrere datensätze ändern, http://www.php.de/php-einsteiger/56517-erledigt-mehrere-datensaetze-auswaehlen-und-aendern.html, einzelne datensätze auswählen in r, php datensatz auswählen, php checkbox mehrfach löschen, mehrere datensätze markieren access, access formular alle datensätze ändern, access formular mehrere datensätze, mehrere datensätze ändern php 2012, access wert mehrere datensätze ändern, datensatz bearbeiten mit r, datensätze markieren und löschen php, php datensatz auswählen und dann verändern, access mehrere datensätze bearbeiten, access mehrere ändern, php datensätze markieren, access formular mehrere datensatz markieren über kontrollkästchen, php auswählen und wert ändern

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