SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #11  
Alt 20.03.2012, 11:27:28
syntax syntax ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 40
Beiträge: 46
AW: Checkbox in BD-Tabelle schreiben

Ja stimmt,

hab jetzt nochmal drüber geschlafen und meine code überarbeitet.

PHP-Code:
if (isset($_REQUEST['checkbtn'])) {
         foreach (
$_REQUEST['checkbtn'] as $nonvalue => $value) {
          
mysql_query ("UPDATE fahrzeug SET status='$value' WHERE id='".$_GET['id']."'") OR die(mysql_error());
          }
        }; 
das else {
// print "0"
$buchungnonchecked;
}


von Oben lasse ich weg da ich die Spalte Status so formatiert habe das sie Standardmäßig immer NULL ist wenn kein Eintrag gemacht wurde.

PHP-Code:
<?php
    
while ($datensatz mysql_fetch_array$abfrageergebnis ))
    {
    echo 
'<table border="1">';
    echo 
'<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
    echo 
'<tr>';
    echo 
'<td style="width:75px"><input type="checkbox" name="checkbtn[]" value="1"></td>';
    echo 
'<td style="width:155px">' $datensatz['id'] . '</td>';
    echo 
'<td style="width:80px">' $datensatz['fahrzeug'] . '</td>';
    echo 
'</tr>';
    echo 
'</table>';
    }
    
?>
HTML-Code:
<table>
    <tr>
    <td><input type="submit" name="submit" value="Update"></td>
    </tr>
    </table>
Er bringt mir jetzt wenn ich den Haken im Checkbutton setze und auf meinen Submit-Button klicke

Undefined index: id was ich aber nicht verstehe denn die ID meines Datensatzes wird angezeigt und mit GET hole ich mir diesen doch aus meinem Datensatz um in mit WHERE zu vergelichen!?
Mit Zitat antworten
  #12  
Alt 20.03.2012, 12:55:38
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 52
Beiträge: 1.044
AW: Checkbox in BD-Tabelle schreiben

Zum Einen schreibst du trotz Hinweis immer noch $_SERVER['PHP_SELF'].

Zum Anderen können wir nicht erkennen, wie $abfrageergebnis aussieht bzw. ob per $_GET überhaupt eine "id" mit übergeben wird.
Mit Zitat antworten
  #13  
Alt 20.03.2012, 12:57:20
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.680
AW: Checkbox in BD-Tabelle schreiben

Macht es Dir viel Mühe den Code komplett zu posten, die Unterteilung in PHP und HTML usw. ist nicht zielführend.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #14  
Alt 20.03.2012, 13:12:05
syntax syntax ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 40
Beiträge: 46
AW: Checkbox in DB-Tabelle schreiben

Hier der ganz Code:
PHP-Code:
<?php
include("../php/connect.php");
?>
HTML-Code:
<!DOCTYPE html>

<html lang="de">

 <head>
	<title></title>
 </head>
<body>
     <div id="user_info">
      Benutzer: <?php echo $_SESSION["vorname"]; ?> <?php echo $_SESSION["nachname"]; ?>
    </div>
    <div class="site_txt">
    <strong>Arbeitszeiten</strong><br>
    <br>
PHP-Code:
    <?PHP
    $userid 
$_SESSION["user_id"];

    
// Anfrage zusammenstellen um die Datensaetze auszulesen
    
$sql "SELECT id, status, auto FROM fahrzeug";

        
// Anfrage an die DB schicken und die Rueckmeldung in eine Variable ablegen
    
$abfrageergebnis mysql_query$sql ) or trigger_error(mysql_error(),E_USER_ERROR);

    
// Checkboxabfrage für Buchungsfeld

     
if (isset($_REQUEST['checkbtn'])) {
         foreach (
$_REQUEST['checkbtn'] as $nonvalue => $value) {
          
mysql_query ("UPDATE fahrzeug SET status='$value' WHERE id='".$_GET['id']."'") OR die(mysql_error());
          }
        };


    
// Ermitteln wie viele Datensaetzen gefunden wurden
    
$anzahl mysql_num_rows$abfrageergebnis );

    echo 
"<p>Es wurden <strong>" .$anzahl"</strong> Einträge gefunden!</p>";

    
?>
HTML-Code:
        <table border="1">
    <tr><td style="width:70px"><b>Status</b></td><td style="width:15px"><b>ID</b></td><td style="width:65px"><b>Auto</b></td></tr>
    </table>
PHP-Code:
    <?php
        
// Ab hier werden die Datensaetze zeilenweise ausgeben
    
while ($datensatz mysql_fetch_array$abfrageergebnis ))
    {
    
// Tabelle erstellen fuer die Ausgabe
    
echo '<table border="1">';
    echo 
'<form action="'.$_SERVER['PHP_SELF'].'" method="post">';
    echo 
'<tr>';
    echo 
'<td style="width:75px"><input type="checkbox" name="checkbtn[]" value="1"></td>';
    echo 
'<td style="width:15px">' $datensatz['id'] . '</td>';
    echo 
'<td style="width:155px">' $datensatz['auto'] . '</td>';
    echo 
'</tr>';
    echo 
'</table>';
    }
    
?>
HTML-Code:
    <table>
    <tr>
    <td><input type="submit" name="submit" value="Update"></td>
    </tr>
    </table>
  <br>
  </div>
  <div class="site_base"></div>
</div>
</body>
</html>
Mit Zitat antworten
  #15  
Alt 20.03.2012, 14:23:27
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 52
Beiträge: 1.044
AW: Checkbox in BD-Tabelle schreiben

Ich würd mir an deiner Stelle vorerst einmal Gedanken um dein erzeugtes Formular machen.
Zum Einen wird es nicht beendet und zum Anderen erzeugst du mehrere Formularheader, wenn dein select mehrere Ergebnisse liefert.

Dein geposteter Code bringt den Fehler mit undefined index id, weil es die Variable $_GET['id'] einfach nicht gibt.
In Verbindung mit deinem SQL-Statement noch unschöner.

Nun steht immernoch im Raum, wie bekommst du den Zusammenhang zwischen deinem Update und dem gewünschten Fahrzeug.

Als mögliche Lösung biete ich dir einmal folgendes an
PHP-Code:
......
echo 
'<td style="width:75px"><input type="checkbox" name="checkbtn[]" value="'.$datensatz['id'].'"></td>';
echo 
'<td style="width:15px">' $datensatz['id'] . '</td>';
echo 
'<td style="width:155px">' $datensatz['fahrzeug'] . '</td>';
....... 
Mit Zitat antworten
  #16  
Alt 20.03.2012, 14:56:23
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.680
AW: Checkbox in DB-Tabelle schreiben

Zitat:
Zitat von syntax Beitrag anzeigen
Hier der ganz Code:
Zitat:
Zitat von vt1816 Beitrag anzeigen
Macht es Dir viel Mühe den Code komplett zu posten, die Unterteilung in PHP und HTML usw. ist nicht zielführend.
Was war hieran nicht verständlich???



Wo kommen $_SESSION["vorname"] und $_SESSION["nachname"] her - vermisse session_start().

Wo wird die Fehleranzeige eingeschaltet?

Wozu erstellst Du für jeden gefundenen Eintrag eine eigene Tabelle im HTML?

Von dem nicht geschlossenen Formular wollen wir mal gar nicht reden.

Kann es sein, dass es Dir nach wie vor an den Grundlagen fehlt? Die Dr. zu Gutenberg-Methode (Copy & Paste) bringt Dich hier nicht weiter!
Setze Dich hin und mach die schlau. Literatur und Nachschlagewerke, die Du kennst / mit denen Du arbeitest:
  1. PHP Handbuch
  2. PHP Tutorial
  3. PHP FAQ
  4. PHP Kompendium
  5. MySQL Tutorial
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #17  
Alt 20.03.2012, 15:27:32
syntax syntax ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 40
Beiträge: 46
AW: Checkbox in BD-Tabelle schreiben

Vielen Danke erstmal für das finden der Fehler.

Hab das mit dem Formular und der Tabelle beseitigt.

PHP-Code:
<table border="1">
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<?php
    
while ($datensatz mysql_fetch_array$abfrageergebnis ))
    {
    echo 
'<tr>';
    echo 
'<td style="width:75px"><input type="checkbox" name="checkbtn[]" value="1"></td>';
    echo 
'<td style="width:15px">' $datensatz['id'] . '</td>';
    echo 
'<td style="width:155px">' $datensatz['auto'] . '</td>';
    echo 
'</tr>';
    }
    
?>
    </table>
    </form>
Das session_start() steht in meiner checkuser.php die wie die connect.php included wird.
Das hab ich vergessen mit rein zu kopieren, sorry.

Den zusammenhang zw. Update und dem gewünschten Fahrzeug stelle ich doch mit hilfe der ID her die in meiner SQL-Abfrage und meiner Ausgabe in der Tabelle steht.

Der Value Wert in meiner Checkbox soll doch in meine Tabelle eingetragen werden und nicht die ID.
Mit Zitat antworten
  #18  
Alt 20.03.2012, 20:08:17
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 52
Beiträge: 1.044
AW: Checkbox in BD-Tabelle schreiben

Wenn du das Formular so absendest, wie es momentan ist, wird lediglich die Checkbox (sofern angehakt) und der Submit-Button übermittelt. Somit steht dir nur der Value aus der Checkbox (1) und der Value vom Submit-Button zur Verfügung.

Relativ einfach zu überprüfen.
PHP-Code:
if (isset($_REQUEST['checkbtn'])) {
         foreach (
$_REQUEST['checkbtn'] as $nonvalue => $value) {
          
mysql_query ("UPDATE fahrzeug SET status='$value' WHERE id='".$_GET['id']."'") OR die(mysql_error());
          }
echo 
'<pre>';
print_r($_POST); #alternativ var_dump($_POST);
echo '</pre>'
        

Somit besteht nach dem Absenden des Formulars kein Zusammenhang mehr zwischen dem Fahrzeug, welches dem Update zugrunde liegen soll und der Checkbox.

Da du immernoch $_SERVER['PHP_SELF'] nutzt, solltest du mal dringend dich über diese Variable informieren. Es ist immer noch böse.

$_GET['id'], welches du ungeprüft (mysql injektion) in dein SQL Statemant nutzen willst existiert ebenfalls nicht. Somit ist diese Anweisung umsonst. Ausser, dass du einen Error erhälst.

Was dir aber komplett noch fehlt ist die Möglichkeit den Status des Fahrzeuges wieder auf 0 nzw. mittlerweile ja NULL zu setzen.
Mit Zitat antworten
  #19  
Alt 20.03.2012, 23:50:02
syntax syntax ist offline
Anfänger
 
Registriert seit: Apr 2010
Alter: 40
Beiträge: 46
AW: Checkbox in BD-Tabelle schreiben

Also ich steig langsam dahinter was gemeint ist.

Das mit dem $_SERVER['PHP_SELF'] hab ich ersetzt durch $_SERVER['SCRIPT_NAME']

Danke für den Tipp, wieder was gelernt.

Habs auch jetzt so hinbekommen das es mit einem einzelnen Datensatz funktioniert.
Ich kann das mit der ID prüfen nicht ganz nachvollziehen.

Meinst du das in etwa so:

PHP-Code:
 if(!isset($_GET['id']) OR !is_numeric($_GET['id'])) 
Mit Zitat antworten
  #20  
Alt 21.03.2012, 10:32:28
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 52
Beiträge: 1.044
AW: Checkbox in BD-Tabelle schreiben

HTML-Code:
<form action="'.$_SERVER['SCRIPT_NAME'].'" method="post">
Dein Formular verweist auf sich selbst. Im Browser erscheint also sowas wie

www.meine.de/hier.php

Wenn du dich jetzt mit der vordefinierten Variable $_GET beschäftigt hättest, dann wüstest du, dass nach dem Absenden des Formulares niemals irgend ein Get-Wert vorhanden sein wird.

Dein Formular sendest du per POST. Ist auch ok, würde ich auch so machen.
Eine Möglichkeit, wie du deine ID übermitteln könntest, hatte ich die auch schon als Tip weiter oben geschrieben. Allerdings hast du diesen Teil ignoriert.

Kopie/Paste Lösungen wirst du hier im Forum eher selten bekommen.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Checkbox in Tabelle anzeigen!? Daktari HTML, CSS und JavaScript Help! 2 24.02.2012 13:03:15
Feld hinzufügen, in Mysql Tabelle, Tabelle hat aktive Daten juerle PHP Grundlagen 2 19.03.2010 17:54:46
Daten nach Spalteninhalte aus anderer Tabelle sortieren paedda MySQL/MySQLi 2 14.05.2009 15:46:15
Tabelle verliert Datensätze ?! TuxCommander MySQL/MySQLi 5 26.05.2008 17:11:03
Problem MySql Tabelle Checkbox phisa MySQL/MySQLi 5 20.07.2006 19:34:53


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:38:07 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.


© 2001-2020 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt