Schnelle Überprüfung ob alle Felder einer Tabelle einen Inhalt haben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Schnelle Überprüfung ob alle Felder einer Tabelle einen Inhalt haben

    Hallo an Alle,

    sitze gerade an meiner bisher größten DB, und komme an meine Grenzen.

    Suche eine Funktion oder einen von mir noch nicht entdeckten kurzen befehl, mit dem ich testen kann, ob in einer Tabelle für eine bestimmte ID alle Variablen einen Wert haben, oder nicht.

    Sinn und Zweck:

    DB besteht aus 7 Tabellen, jede steht für eine Gruppe von Einträgen.
    Über 7 Fromulare können die daten eingefügt bzw. Bearbeitet werden, zu den einzelnen Formularen gelangt man über eine Navigation.

    In dieser Naviagtion werden die Links verschiedenfarbig dargestellt:

    grüne Schrift -> Daten zu ID vorhanden, alle Felder ausgefüllt -- BEREITS UMGESETZT
    orange Schrift -> Daten zu ID vorhanden, nicht alle Felder ausgefüllt
    rote Schrift -> Daten zu ID nicht vorhanden -- BEREITS UMGESETZT

    Die Tabellen haben zw. 20 u. 30 Werte, will jetzt nicht jeden mit strlen() testen.

    Gibts da was ?

    Vielen Dank im Voraus !!!

  • #2
    meinst du sowas?

    Code:
    SELECT id, name FROM tabelle WHERE name IS NULL OR name = ''

    btw *VERSCHIEB* nach sql
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Kannst du mir deinen Code erklären, verstehe grad nett was der macht !

      Danke fürs verschieben !!

      Kommentar


      • #4
        was soll ich da erklären?
        das ist doch eine ganz einfache query.

        was verstehst du daran nicht?

        aber schaue vorher bei www.mysql.com vorbei, bevor ich dir einen SELECT erklären muss.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Sorry, war zu faul zu denken und hatte schon quadratische Augen.

          PHP-Code:
          SELECT idname FROM tabelle WHERE name IS NULL OR name '' 
          An sowas hab ich schon gedacht, da meine Tabellen aber bis zu 30 Spalten haben is das dann ja ein elendig langer befehl

          PHP-Code:
          SELECT FROM tabelle WHERE id=$id and (spalte1 IS NULL OR spalte1 '' OR spalte2 IS NULL OR spalte2 '' ... 
          Andererseits mit einem Array mit allen spaltennamen und einem für die Tabellennamen und ein bis zwei Schleifen müsste das eigentlich gehen.

          Werde das übers WE mal testen, danke für den Denkanstoss ! :-)

          Schönes WE an Alle !

          Kommentar


          • #6
            So,

            hab es hinbekommen, und falls es nochmal jemand brauchen kann, hier ist der Code :
            PHP-Code:
            <?PHP
            //Liste der zu durchsuchenden Tabellen
            $dbanken=array('db1','db2',...);
            //Liste der zu überprüfenden Spalten der einzelnen Tabellen            
            $spalten=array(        array('spalte1','spalte2','spalte3'),
                                array(...),
                                ...);
            connect();            
            for(
            $i=0;$i<sizeof($dbanken);$i++)
                {
                
            $db=$dbanken[$i];
                
            //Überprüfung ob Eintrag überhaupt vorhanden ist
                
            $sql="SELECT * FROM $db WHERE id='$id'"
                   
            $resultmysql_query($sql) or die(mysql_error());
                if ( 
            mysql_num_rows($result)>0
                    {
                    
            //Wenn Eintrag gefunden wird, Überprüfung ob alle eintraege nicht NULL und nicht leer sind
                                        
                        
            for($j=0;$j<sizeof($spalten[$i]);$j++)
                            {
                        
                                
            $spaltname=$spalten[$i][$j];
                                
            $sql="SELECT * FROM $db WHERE id='$id' AND ($spaltname IS NULL OR $spaltname='')"
                                   
            $result2mysql_query($sql) or die(mysql_error());
                                if ( 
            mysql_num_rows($result2)>0)
                                    {
                                        
            //Es wurde ein leerer Eintrag gefunden, Wert wird gespeichert und Suche abgebrochen
                                        
            $ergebnis[$i]="1";
                                        
            $j=sizeof($spalten[$i]);
                                        
                                    }
                                @
            mysql_free_result($result2);
                            }
                    
            //Festlegung der Schriftfarbe anhand der Ergebnisse
                    
            if($ergebnis[$i]=="1"$farbe="orange";
                    else 
            $farbe="gruen";
                    
                    
            //Ausgabe der Links zur Berabeitungsseite, entweder orange oder grün hinterlegt
                    
            echo"<a href=\"bearb.php\" target=\"_parent\"><span class=\"".$farbe."\">BLABLA[$i]</span></a>";
                    
                    }
                
            //Kein Eintrag gefunden, Link zur Erstellung des Datensatzes
                
            else
                    {
                    
            //Ausgabe zur Write-Seite, da Datensatz noch nicht vorhanden
                    
            echo"<a href=\"write.php\" target=\"_parent\"><span class=\"rot\">BLABLA[$i]</span></a></td>";
                    }
                }
                                                                                
            @
            mysql_free_result($result);
            @
            mysql_close();
            ?>
            Schönen Sonntag noch,

            EI

            Kommentar

            Lädt...
            X