php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.01.2012, 01:52  
Neuer Benutzer
 
Registriert seit: 07.01.2012
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Falki14 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Checkbox aus datenbank Checked übernehmen

Guten Tag liebe PHP Community,

ich habe aktuell folgendes Problem und zwar habe ich es bereits hinbekommen das die Werte die Checked sind auch ein Checked bekommen, nur das die Werte zu oft gepostet werden.

Hier mal ein Screenshot:


Und hier der Quelltext:

PHP-Code:
db_connection();


//Hauptabfrage von der Haupttabelle
            
$leistung="SELECT ZLID, Name, Gebuer FROM leistungen"

        
$db_erg mysql_query$leistung );
        if ( ! 
$db_erg )
        {    
          die(
'Ungültige Abfrage: ' mysql_error());
        }

    
    
        while (
$zeile mysql_fetch_assoc$db_erg))
        {
// Zweite Abfrage mit der Detailtabelle
$gast_l="SELECT * FROM gast_leistungen WHERE GID = ".$gid."";
        
$db_erg2 mysql_query$gast_l);
        if ( ! 
$db_erg2 )
        {    
          die(
'Ungültige Abfrage: ' mysql_error());
        }

            
    
while (
$zeile2 mysql_fetch_assoc$db_erg2))
        {
    
    
// Überprüft ob es den Wert auch in der Tabelle gast_leistungen gibt //und wenn ja soll ein checked gesetzt werden    
        
if ($zeile['ZLID']==$zeile2['ZLID']) {
                echo 
'<input type="checkbox" checked="checked" name="zusatzleistung[]" value='$zeile['ZLID'] .'>'$zeile['Name'].' '$zeile['Gebuer'].' € <br>';    

        
// Wenn nicht vorhanden soll eine normale Checkbox angezeigt werden
        
else {
            echo 
'<input type="checkbox"  name="zusatzleistung[]" value='$zeile['ZLID'] .'>'$zeile['Name'].' '$zeile['Gebuer'].' € <br>';    
        }
        
        
        }
            
            } 
Ich hoffe ihr könnt mir weiterhelfen.

Mit freundlichen Grüßen

Falki14
Falki14 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.01.2012, 02:44  
vankizmann
Gast
 
Beiträge: n/a
Standard

PHP-Code:
$db_connection();

$leistung="SELECT ZLID, Name, Gebuer FROM leistungen;";  
if(!
$db_erg mysql_query$leistung )) die('Ungültige Abfrage: ' mysql_error());

while (
$zeile mysql_fetch_assoc$db_erg))
{
    
// Zweite Abfrage mit der Detailtabelle
    
$gast_l="SELECT * FROM gast_leistungen WHERE GID = '".$gid."';";
    if(!
$db_erg2 mysql_query$gast_l)) die('Ungültige Abfrage: ' mysql_error());
    
    
    while (
$zeile2 mysql_fetch_assoc$db_erg2))
    {
        switch(
$zeile['ZLID']) 
        {
            case 
$zeile2['ZLID']: // Überprüft ob es den Wert auch in der Tabelle gast_leistungen gibt //und wenn ja soll ein checked gesetzt werden  
            
echo '<input type="checkbox" checked="checked" name="zusatzleistung[]" value='$zeile['ZLID'] .'>'$zeile['Name'].' '$zeile['Gebuer'].' € <br>';
            break;
            default: 
// Wenn nicht vorhanden soll eine normale Checkbox angezeigt werden
            
echo '<input type="checkbox"  name="zusatzleistung[]" value='$zeile['ZLID'] .'>'$zeile['Name'].' '$zeile['Gebuer'].' € <br>';
            break;
        }
    }

teste mal dies, sollte das immernoch 3 mal kommen wirds daran liegen, dass in der einen schleife ne andere ausgeführt wird.

soweit ich verstanden hab wird der text aus der "leistung" entnommen und aus "gast_leistung" nur der wert obs checked ist oder nicht?!
  Mit Zitat antworten
Alt 07.01.2012, 09:53  
Neuer Benutzer
 
Registriert seit: 07.01.2012
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Falki14 befindet sich auf einem aufstrebenden Ast
Standard

Ja damit liegst du richtig in der Tabelle gast_leistungen sind nur die GID (Gast und ZLID) enthalten um zu prüfen ob checkend gesetzt werden soll oder nicht. Eben das was der Gast ausgewählt hat. Leider wird es immer noch 3 mal angezeigt, hoffe ihr könnt mit weiterhelfen ich weiß solangsam nicht mehr weiter.

Mit freundlichen Grüßen

Falki14
Falki14 ist offline   Mit Zitat antworten
Alt 07.01.2012, 12:24  
hts
Erfahrener Benutzer
 
Registriert seit: 07.09.2010
Beiträge: 722
PHP-Kenntnisse:
Fortgeschritten
hts befindet sich auf einem aufstrebenden Ast
Standard

Ist klar, dass du alles doppelt und dreifach bekommst, wenn du die Datenbankabfragen in zwei geschachtelten Schleifen laufen lässt.

Du könntest in einer ersten Datenbankabfrage alle gebuchten Leistungs-IDs des Gastes abfragen un in einem Array sammeln.

Anschließend dann deine Hauptschleife wie gehabt durchlaufen und mit in_array() prüfen, ob die Leistung gebucht und das checked-Attribut setzen.

Zweite Variante wäre, eine einzige Abfrage durchführen und bereits im SQL die check-Variable setzen. Das könnte so aussehen (ungetestet):
Code:
SELECT l.ZLID, l.Name, l.Gebuer, IF(gl.ZID IS NULL ,"", "checked=\"checked\"")) AS checked
FROM leistungen AS l
LEFT JOIN gast_leistungen AS gl ON(l.ZLID = gl.ZLID AND gl.GID = $gid)
hts ist offline   Mit Zitat antworten
Alt 08.01.2012, 22:13  
Neuer Benutzer
 
Registriert seit: 07.01.2012
Beiträge: 10
PHP-Kenntnisse:
Anfänger
Falki14 befindet sich auf einem aufstrebenden Ast
Standard

Hab es gelöst bekommen danke nochmals an alle und besonders an hts. Habe es mit einem in_array gelöst.

Mit freundlichen Grüßen

Falki14
Falki14 ist offline   Mit Zitat antworten
Antwort


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
Hilfe: datenbank mappen und kopieren M*I*B Datenbanken 29 15.02.2012 21:55
Formular Checkbox: Value in Datenbank schreiben? Moe LaRoqua PHP Tipps 2009 23 13.09.2010 11:55
[Erledigt] Daten in eine Datenbank mittels Checkbox speichern Persie Datenbanken 25 08.07.2010 12:25
Variablenname aus Datenbank auswerten Eratech PHP Tipps 2010 6 04.05.2010 18:09
Allgemein Werte in Datenbank updaten chunky PHP Tipps 2010 1 08.04.2010 22:35
Datenbank richtig aufgebaut? bageleudi Datenbanken 2 31.03.2010 21:01
Datenbank austauschbar machen durch Trennung von konkreter Implementierung Asipak PHP-Fortgeschrittene 10 04.09.2009 00:11
[Erledigt] Im- / Export einer MySQL Datenbank amaier161 Datenbanken 5 19.07.2009 00:42
[Erledigt] mysql datenbank anlegen...aber WIE??? PHP Tipps 2005-2 0 05.08.2005 19:33
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:32
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:31
[Erledigt] mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
mysql datenbank anlegen...aber WIE??? Datenbanken 0 05.08.2005 19:29
[Erledigt] checkbox werte in MySQL Datenbank PHP Tipps 2004 6 10.09.2004 23:38

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
checkbox im datenbank übernehmen, checkbox daten übernehmen php

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