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 ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken 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
Hilfe Community Kalender Heutige Beiträge Suchen

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

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.03.2008, 21:03:51
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
Eindeutige Zusweisung mit Checkbox schlägt fehl

Hallo liebe PHP'ler,

ich habe ein Problem, dem ich nicht auf die schliche komme.
Und zwar: Eine Auflistung von Parametern wird dynamisch aus der Datenbank ausgelesen. Diese Parameter sind Kategorisiert. Es existiert eine Verwaltungstabelle, die die Verknüpfungen alle enthält. Unter all den Spalten, gibt es die Spalte "cb_status" die 1 (aktiv) und 0 (inaktiv) ist.
Ob diese Spalte nun 1 oder 0 ist entscheidet der Benutzer im Frontend per Checkbox. Setzt er in ein Kästchen ein Hächcken, so wird der Wert 1 in die Tabelle geschrieben, und so weiter...
Realisiert habe ich es ganz einfach mit UPDATE ... SET ... Es geht so weit, jedoch schlägt bei mir die eindeutige Zuordnung fehl. Im Klartext: Klicke ich ein Kästchen an und schicke das Formular ab, dann werden ALLE Zeilen auf "1" gesetzt und nicht das ausgewählte.
Grübele schon seit einiger Zeit dran und komme zu keinem Ziel. Ich hoffe, es findet jemand von Euch einen Anhaltspunkt aus meinem Code:

SKRIPT 1 (Per DropDown wird Datenbank ausgelesen und zeigt Inhalt an)
PHP-Code:

<?php
error_reporting
(E_ALL);
// Verbindungsdaten zur Datenbank und deren Datenbanktabellen \\
    
require("../../../db.inc.php");
// ********************************************************** \\
$res=mysql_db_query("datenbank_edv",   "SELECT edv.prdNr, PAR.parameter, PW.parameterwert, edv.prdZusatz, PW.cb_status, edv.id, 
                                               PW.para_id, PW.prd_position, PW.prdkat_id
                                        FROM prd_parawert PW, edv_produkte Edv, prd_parameter PAR, para_kat KAT
                                        WHERE PW.prdid = Edv.id
                                        AND PW.para_id = PAR.para_id
                                        AND PW.prdkat_id = PAR.prd_kategorie
                                        AND PW.Prdkat_id = KAT.prdkat_id
                                        ORDER BY Edv.prdNr, Edv.prdZusatz, PW.prd_position ASC"
);

while(
$row=mysql_fetch_array($res,MYSQL_NUM))
{
    
$pr_nrn[]=$row[0];
    
$pr_nrn_zu[]=$row[3];
    
$pr_para[]=$row[1];
    
$pr_parawert[]=$row[2];
    
$cb_status[]=$row[4];
    
$pr_id[]=$row[5];
    
$pr_para_id[]=$row[6];
    
$pr_position[]=$row[7];
    
$pr_kat[]=$row[8];

    
    if(isset(
$_GET['produkt']) && $_GET['produkt']==$row[0].$row[3])
    {
        
$zeige_produkt=$row;
    }
}


echo 
'
<form name="produktwahl" method="get" action="'
.$_SERVER['PHP_SELF'].'">
<select name="produkt" onchange="document.produktwahl.submit()">
<option value="-1">Bitte wählen</option><option value="-1"></option>'
;
$test=0;
    for(
$z=0;$z<count($pr_nrn);$z++)
    {
        if(isset(
$_GET['produkt']) && $_GET['produkt']==$pr_nrn[$z].$pr_nrn_zu[$z])
        {
            if(
$test!=$pr_nrn[$z].$pr_nrn_zu[$z])
            {
                echo 
'<option value="'.$pr_nrn[$z].$pr_nrn_zu[$z].'" selected>'.$pr_nrn[$z].$pr_nrn_zu[$z].'</option>';
            }
        }
        
        else
        {
            if(
$test!=$pr_nrn[$z].$pr_nrn_zu[$z])
            {
                echo 
'<option value="'.$pr_nrn[$z].$pr_nrn_zu[$z].'">'.$pr_nrn[$z].$pr_nrn_zu[$z].'</option>';
            }
        }
        
$test=$pr_nrn[$z].$pr_nrn_zu[$z];
    }
echo 
'</select>';

if(isset(
$zeige_produkt))
{
    echo
'
    <table width="650" border="1" cellspacing="0" cellpadding="3">
    <tr><td colspan="3" class="Stil4">Option '
; echo $zeige_produkt[0];
    echo 
'</tr></td>';

    for(
$z=0;$z<count($pr_nrn);$z++)
    {
        if(
$zeige_produkt[0].$zeige_produkt[3]==$pr_nrn[$z].$pr_nrn_zu[$z])
        {
            if(
$pr_para[$z]!="" && $pr_parawert[$z]=="")
            {
            }
            else
            {
                if(
$cb_status[$z]=="1")
                {
                    echo 
'<tr><td><input type="checkbox" name="prdpara['.$pr_para[$z].']" value="'.$pr_position[$z].'" checked></tr></td>';
                }
                else
                {
                    echo 
'<tr><td><input type="checkbox" name="prdpara['.$pr_para[$z].']" value="'.$pr_position[$z].'"></tr></td>';
                }
                echo
'
                <td width="250" class="Stil3">'
.$pr_para[$z].'</td>
                <td width="400" class="Stil4">'
.$pr_parawert[$z].'</td>
                </tr>'
;
            }            
        }
    }


        for(
$z=0;$z<count($pr_nrn);$z++)
        {
            if(
$zeige_produkt[0].$zeige_produkt[3]==$pr_nrn[$z].$pr_nrn_zu[$z])
            {
                    echo 
'
                    <input type="hidden" name="pr_id[]" value="'
.$pr_id[$z].'">
                    <input type="hidden" name="pr_para_id[]" value="'
.$pr_para_id[$z].'">
                    <input type="hidden" name="pr_kat[]" value="'
.$pr_kat[$z].'">';
            }
        }
}
?>
SKRIPT 2 (Führt UPDATE-Befehl aus)

PHP-Code:
<?php 
error_reporting
(E_ALL);

// Verbindungsdaten zur Datenbank und deren Datenbanktabellen \\
    
require("../../../db.inc.php");
// ********************************************************** \\

$prdid $_POST['pr_id'];
$prdparaid $_POST['pr_para_id'];
$prdkat $_POST['pr_kat'];
$cb_status $_POST['prdpara'];
$position $_POST['pr_pos'];

var_dump($cb_status);
if(isset(
$_POST['prdpara']))
{
    for(
$z=0;$z<count($cb_status);$z++)
    {
        
$query_para "UPDATE prd_parawert 
                        
                        SET prd_parawert.cb_status = '1'
    
                            WHERE prd_parawert.prdid = '"
.$prdid[0]."'
                                
                                    AND prd_parawert.para_id = '"
.$prdparaid[$z]."'
                                    
                                        AND prd_parawert.prdkat_id = '"
.$prdkat[$z]."'
                                        
                                            AND prd_parawert.prd_position = '"
.$position[$z]."'";
    
        
$result=mysql_query($query_para); 
    }
}

echo 
mysql_error();
mysql_close($link);
?>
Über einen Denkanstoß wäre ich euch sehr verbunden.

Gruß.
Mit Zitat antworten
  #2  
Alt 05.03.2008, 22:13:17
lukgestach lukgestach ist offline
Junior Member
 
Registriert seit: Feb 2007
Ort: Safnern, CH
Alter: 32
Beiträge: 255
AW: Eindeutige Zusweisung mit Checkbox schlägt fehl

Zitat:
$cb_status = $_POST['prdpara'];
Da wird wohl der Fehler liegen, da du die Checkboxen nicht so genannt hast!!
Deine Checkboxen haben den Namen:
Zitat:
name="prdpara['.$pr_para[$z].']"
also:
Zitat:
$_POST["prdpara[den Wert den $pr_para[$z] hatte]"]
Am besten geht das mit einer nochmaligen DB abfrage.

Gruss Lukas
Mit Zitat antworten
  #3  
Alt 05.03.2008, 23:38:21
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
AW: Eindeutige Zusweisung mit Checkbox schlägt fehl

Hi!

Wenn ich das richtig sehe, dann müsstest Du nur Deine Schleife um ein IF erweitern:

PHP-Code:
for ( $z 0$z count $cb_status ); $z++ )
{
  
// Nur updaten, wenn Checkbox aktiviert wurde.
  
if ( isset ( $_POST['prdpara'][$z] ) )
  {
    
$query_para "UPDATE
                     prd_parawert
                   SET
                     prd_parawert.cb_status = '1'
                   WHERE
                     prd_parawert.prdid = '"
.$prdid[0]."'
                     AND prd_parawert.para_id = '"
.$prdparaid[$z]."'
                     AND prd_parawert.prdkat_id = '"
.$prdkat[$z]."'
                     AND prd_parawert.prd_position = '"
.$position[$z]."'";
  
    
$result mysql_query $query_para );
  }

__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #4  
Alt 06.03.2008, 09:30:02
Luke85 Luke85 ist offline
Anfänger
 
Registriert seit: Aug 2007
Beiträge: 47
AW: Eindeutige Zusweisung mit Checkbox schlägt fehl

Zitat:
Zitat von lukgestach Beitrag anzeigen
Da wird wohl der Fehler liegen, da du die Checkboxen nicht so genannt hast!!
Ja aber das Array enthält ja noch ein Array mit den Parametern und auch die Position, mit Var_dump sehe ich das. Da kommt Coding's Vorschlag schon sehr nahe. Doch auch dieser bringt mich nicht weiter.

@Coding
Ich erhalte nämlich nun gar kein Update meiner Datenbanktabelle. Also es passiert nichts.
Mit Zitat antworten
  #5  
Alt 06.03.2008, 12:31:02
lukgestach lukgestach ist offline
Junior Member
 
Registriert seit: Feb 2007
Ort: Safnern, CH
Alter: 32
Beiträge: 255
AW: Eindeutige Zusweisung mit Checkbox schlägt fehl

Zitat:
Zitat von Luke85 Beitrag anzeigen
Da kommt Coding's Vorschlag schon sehr nahe..
Ja, da er das $_POST['prdpara'] Array richtig ausliest! Das ist nämlich ein mehrdimensionales Array das nur in der 2. dinemsion daten enthält, da $_POST["prdpara"] allein keine Daten enthält
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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
Vergleich schlägt fehl jeroedel PHP Grundlagen 3 30.12.2006 16:55:54
Update schlägt fehl Clownish PHP Grundlagen 6 22.11.2006 15:15:20
Vergleich schlägt fehl oder brauche ich noch eine Variable? Franzx MySQLi/PDO/(MySQL) 6 18.06.2006 12:33:41
2 Checkbox variablen? JPablo PHP Grundlagen 11 17.05.2005 14:03:45
Dateiupload über Mozilla schlägt fehl: Mime-Typ? mad-boy PHP Grundlagen 2 07.11.2004 18:13:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:09:08 Uhr.


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


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