php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.06.2006, 21:41  
Gast
 
Beiträge: n/a
Standard Daten über checkbox ändern

Hi also ich habe ein problem und zwar ändert mein Skript nicht die daten in der checkbox und ich bin ratloß

PHP-Code:
<?php 
include 'inc.conf.php';
$set=$_GET['set'];
if(
$set=="1")
{
      
$count2="1";
      
$count3="1";
      
$count4="1";
    
$count=$_POST['$count'];
    while(
$count>=$count4)
        {
              
$set=$_POST['$count4'];
            
$abfrage "UPDATE `lehrer` SET `'$count2'` = '$set', WHERE `id` ='$count3' LIMIT 1 ";
            echo 
$abfrage;
            
$ergebnis mysql_query($abfrage);
              
              
            
$count4++;
              if(
$count2>=9)
              {
                
$count2="1";
                
$count3++;
            }
            else
            {
              
$count2++;
            }
        }  
}




$abfrage "SELECT * FROM lehrer";
$ergebnis mysql_query($abfrage);
$count="1";
echo 
'<form action="admin_lehrer.php?set=1" method="POST" >';
echo 
"<table>";

   while(
$row mysql_fetch_array($ergebnis))
   {
         echo 
"<tr>";
         echo 
"<td>" ;echo $row['name'];echo "</td>";
         echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['1']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['2']=="1")
            {
                echo 
"checked";
            } 
            echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['3']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['4']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['5']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['6']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['7']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['8']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['9']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";

            echo 
"</tr>";
            
   }
echo 
'<input type="hidden" value="'.$count.'" name="count" />';
echo 
"</table>";
echo 
'<input type="submit" value="Übernehmen" />';   
echo 
"</form>";
?>
ich hoffe jeamnd kann miri ein wenig helfen
MFG
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.06.2006, 21:44  
Gast
 
Beiträge: n/a
Standard

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Die Funktion mysql_error hat auch ihren Sinn.

Auch das sollte man mal gelesen haben: http://www.php.net/manual/de/security.globals.php

Gruß
phpfan
 
Alt 09.06.2006, 22:33  
Gast
 
Beiträge: n/a
Standard

thx für die hilfe also das problem muss irgendwo oben in der schleife liegen , da di enicht gesatrten wird bloß ich habe keine ahnung wieso!

Der rest klappt alles

MFG
 
Alt 09.06.2006, 22:56  
Gast
 
Beiträge: n/a
Standard

Na dann wende die Tipps von phpfan doch mal auf die Schleife an.
Wo sind bspw die Debug-echos für $count, $count4 usw usw?

Fehlerbehandlung für die mysql Abfrage sehe ich auch keine -> http://www.phpfriend.de/forum/ftopic57412.html
 
Alt 09.06.2006, 23:34  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Was kommt denn als Parameter bei dem Script an?
Die Namen der Felder sind Ziffern?

Und das da:
$count=$_POST['$count'];

passt net zu dem da:
echo "<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';

Das müsste doch eher so lauten:
$count=$_POST["$count"];
????

Lasst Dir mal dringend $_POST ausgeben.

Und noch was:

$abfrage = "UPDATE `lehrer` SET `'$count2'` = '$set', WHERE `id` ='$count3' LIMIT 1 ";

Hast Du in der Tabelle wirklich Spalten, deren Name `'1'` etc. lautet?

Also so ganz persönlich finde ich die Feldnamen des Formulars und der Tabelle höchst gruselig.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 09.06.2006, 23:58  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php 
include 'inc.conf.php';
$set=$_GET['set'];
if(
$set=="1")
{
      echo 
$count2="1"//Stunden Count
      
echo $count3="1"//Zeilen Count
      
echo $count4="1"//KA
    
echo $count=$_POST['count'];
    while(
$count4<=$count)
        {
              
$set=$_POST[$count4];
              if(
$set=="")
              {
                
$set="0";
            }
            echo 
$abfrage "UPDATE `lehrer` SET `$count2` = '".$set."', WHERE `id` =".$count3." LIMIT 1 ";
            
$ergebnis mysql_query($abfrage)or die("Error using mysql_query($sql): ".mysql_error());              
            
$count4++;
              if(
$count2>="9")
              {
                
$count2="1";
                
$count3++;
            }
            else
            {
              
$count2++;
            }
        }  
}




$abfrage "SELECT * FROM lehrer";
$ergebnis mysql_query($abfrage);
$count="1";
echo 
'<form action="admin_lehrer.php?set=1" method="POST" >';
echo 
"<table>";

   while(
$row mysql_fetch_array($ergebnis))
   {
         echo 
"<tr>";
         echo 
"<td>" ;echo $row['name'];echo "</td>";
         echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['1']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['2']=="1")
            {
                echo 
"checked";
            } 
            echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['3']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['4']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['5']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['6']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['7']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['8']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";
        echo 
"<td>";echo '<input type="checkbox" value="1" name="'.$count++.'"';
            if(
$row['9']=="1")
            {
                echo 
"checked";
            } 
        echo 
">";echo "</td>";

            echo 
"</tr>";
            
   }
echo 
'<input type="hidden" value="'.$count.'" name="count" />';
echo 
"</table>";
echo 
'<input type="submit" value="Übernehmen" />';   
echo 
"</form>";
?>
So habe noch ein paar fehler gefunden bloß da mus snoch ein kleiner fehle rin der SQL syntaxe sein bloß den finde ich absolut nicht für mich sieht alles richtig aus

Zitat:
UPDATE `lehrer` SET `1` = '1', WHERE `id` =1 LIMIT 1 Error using mysql_query(): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id` =1 LIMIT 1' at line 1

MFG
 
Alt 10.06.2006, 00:17  
Gast
 
Beiträge: n/a
Standard

Das Komma vor WHERE ist falsch.
 
Alt 10.06.2006, 00:18  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von pchero
So habe noch ein paar fehler gefunden bloß da mus snoch ein kleiner fehle rin der SQL syntaxe sein bloß den finde ich absolut nicht für mich sieht alles richtig aus

Zitat:
UPDATE `lehrer` SET `1` = '1',WHERE `id` =1 LIMIT 1 Error using mysql_query(): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id` =1 LIMIT 1' at line 1
Na was steht denn direkt vor "WHERE `id`=1 LIMIT 1"?????
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 10.06.2006, 13:39  
Gast
 
Beiträge: n/a
Standard

Dein echo-Marathon in der while-Schleife ist einfach nur grausam!
PHP-Code:
<?
  
while($row mysql_fetch_array($ergebnis)) 
  { 
      echo 
"<tr>\n 
            <td>" 
$row['name'] .  "</td>";
      for (
$i 1$i <= 9$i++)
      {
         echo 
"<td><input type='checkbox' value='1' name='" $count++ . "'"
         echo (
$row[$i] == "1") ? " checked" ""
         echo 
"></td>";
      }
      echo 
"</tr>";            
   }
?>
Und überlege, was für einen Namen die Checkboxen haben. Ich würde sagen, 1 bis 9 und somit sind das eigentlich ungültige Variablennamen, denn Variablen dürfen nicht mit Zahlen anfangen. Wieso benutzt du dazu eigenlich kein Array???

11.10. Wie kann man Checkboxen verarbeiten?
http://www.php-faq.de/q/q-formular-checkbox.html

Gruß
phpfan
 
 


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 Arrays unterschiedlicher Größe kombinieren querfisch PHP Tipps 2007 9 31.03.2007 21:34
Checkbox jacos PHP Tipps 2006 5 01.04.2006 10:19
Session Frage - gleiches Formular 2 mal alle Daten behalten NetLook PHP Tipps 2007 1 21.11.2005 18:42
speicherung der daten bei stromausfall? MrCavity Datenbanken 2 19.11.2005 17:39
[Erledigt] sql daten für einen kunden auslesen/ändern im Formular PHP Tipps 2005-2 3 12.10.2005 08:36
[Erledigt] Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
Daten auslesen und ändern Datenbanken 2 17.09.2005 19:28
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
Daten überschreiben in einer txt datei!? CHRIS PHP Tipps 2005 2 02.03.2005 15:02
Daten in Datenbank ändern PHP Tipps 2005 3 27.01.2005 14:40
Daten übergeben kampfnickel PHP Tipps 2005 4 05.01.2005 14:12
[Erledigt] MySQL-DB gibt keine Daten zurück!!! Datenbanken 4 21.12.2004 21:00
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
[Erledigt] Formular mit Daten werden auf anderer Seite zusammengefasst PHP Tipps 2004 4 15.08.2004 15:44
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php checkbox datensatz ändern, type checkbox ändern

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