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

Der CSS-Problemlöser

Der CSS-Problemlöser 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

Thema geschlossen
 
Themen-Optionen Ansicht
  #1  
Alt 13.01.2011, 10:23:09
tushkanwn tushkanwn ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 41
Beiträge: 6
Ausgabe von mehreren Datensätzen in Tabellen

Hallo! Habe folgendes Problem: ich habe für meine WEB-Seite eine Suchfunktion gebastelt, mit der ich die gesamte Datenbank nach einem Suchbegriff durchsuchen kann. Alles funktioniert einwandfrei, mir fehlt bloß eine korrekte Ausgabe von Datensätzen. Ich möchte, dass alle Datensätze in zugehörigen HTML-Tabellen ausgegeben werden, z.B. so:

Tabelle - Organisation
------------------------
ID Nummer Bezeichnung Leiter Knotenpunkt
62 2 zwei 1 0
65 5 eins 2 3

Bei mir sieht die Ausgabe momentan so aus:
Tabelle - Organisation
------------------------
ID Nummer Bezeichnung Leiter Knotenpunkt
62 2 zwei 1 0

Tabelle - Organisation
------------------------
ID Nummer Bezeichnung Leiter Knotenpunkt
65 5 eins 2 3

D.h. jeder Eintrag aus einer SQL-Tabelle wird in jeweils eine HTML-Tabelle eingepackt. Ich möchte aber, dass mehrere Einträge die zu einer SQL-Tabelle gehören in einer Tabelle ausgegeben werden.
Wie kann ich dieses Problem lösen?
Ich würde mich auf jede Antwort sehr freuen! Vielen Dank!
Hier ist der Code:

PHP-Code:
function mysqlSearch($volltext)
{

    
// replace multiple whitespaces with a simple blank
    
$aSearch explode(' 'preg_replace('#\s+#'' '$volltext));
       
    
// count search words once
    
$iSearch count($aSearch);
    if (
$iSearch == 0) {
        return array();
    }
    
// remove addslashes (automatically executed by php) and use mysql_real_escape_string instead. it's more secure against sql injection
    
if (get_magic_quotes_gpc()) {
        
$aSearch array_map('stripslashes'$aSearch);
    }
    
$aSearch array_map('mysql_real_escape_string'$aSearch);
    
     
    
// get all tables in selected database
  
       
    
$sSQL1 'SHOW TABLES';
    
$rRes1 mysql_query($sSQL1);

    
      
// save hits
    
$aHits = array();
    
    while (
$aTable mysql_fetch_array($rRes1)) {
        
$sTable $aTable[0];
    
    
        
// get all columns from each table
        
$sSQL2 "SHOW COLUMNS FROM `$sTable`"
        
$rRes2 mysql_query($sSQL2);
             
        
// combine search words with columns
        
$aPermutation = array();
        while (
$aColumn mysql_fetch_assoc($rRes2)) {
            
$sColumn $aColumn['Field'];
           
            for (
$i 0$i $iSearch$i++) {
                
$volltextword $aSearch[$i];
                
                
$aPermutation[] = "MATCH($sColumn) AGAINST ('.%$volltext%.' IN BOOLEAN MODE)";
                 
            }
        }
        
        
// combine as OR-condition
        
$sSQL4 "SELECT * FROM `$sTable` WHERE " implode(' OR '$aPermutation);
        
        
$rRes4 mysql_query($sSQL4);
        
        
// collect result
        
        
        
while ($aHit mysql_fetch_assoc($rRes4)) {
         
        
$aHits[$sTable][] = $aHit;
        
$total_cols count($aHit);
                              
        
$total_rows mysql_num_rows($rRes4);
        
          print 
"<HTML><BODY>";
          print 
"<br></br>";
          
          print 
"<p><table width='40%' border='1' cellspacing='0' cellpadding='0' align='left'>";
          print 
"<tr><td colspan=$total_cols align=center><b>".$sTable."</b> </td> </tr>";
          
$sSQL2 "SHOW COLUMNS FROM `$sTable`"
        
$rRes2 mysql_query($sSQL2);
          
        while (
$aColumn mysql_fetch_assoc($rRes2)) {
                
$sColumn $aColumn['Field'];
          
          print 
"<td>";
        print 
$sColumn."&nbsp;";
        print 
"</td>";       
        }
      
                
    print 
"<tr>";

           foreach(
$aHit as $cell){
        
        echo 
"<td>$cell</td>";
        
          
           }
                  
        print 
"</tr>";
    
           
    
          
                                
            print 
"</TABLE></BODY></HTML>";
           print 
"<br></br>"
           print 
"<br></br>";                         
          
            
//    var_dump($aHit);   
        
        
}             
    }
    print 
"<br>";   
   
//return $aHits;
    
}

echo 
mysqlSearch($volltext);


  #2  
Alt 13.01.2011, 11:45:43
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Ausgabe von mehreren Datensätzen in Tabellen

Schau Dir im speziellen noch mal die Ausgabe an:

PHP-Code:
        $total_rows mysql_num_rows($rRes4); 
         
          print 
"<HTML><BODY>"
          print 
"<br></br>"
           
          print 
"<p><table width='40%' border='1' cellspacing='0' cellpadding='0' align='left'>"
          print 
"<tr><td colspan=$total_cols align=center><b>".$sTable."</b> </td> </tr>"
          
$sSQL2 "SHOW COLUMNS FROM `$sTable`";  
        
$rRes2 mysql_query($sSQL2); 
           
        while (
$aColumn mysql_fetch_assoc($rRes2)) { 
                
$sColumn $aColumn['Field']; 
           
          print 
"<td>"
        print 
$sColumn."&nbsp;"
        print 
"</td>";        
        } 
       
                 
    print 
"<tr>"

           foreach(
$aHit as $cell){ 
         
        echo 
"<td>$cell</td>"
         
           
           } 
                   
        print 
"</tr>"
     
            
     
           
                                 
            print 
"</TABLE></BODY></HTML>"
           print 
"<br></br>";  
           print 
"<br></br>";                          
           
            
//    var_dump($aHit);    
         
        
}              
    } 
    print 
"<br>"
Hier musst Du ansetzen. Ziehe den notwendigen HTML-Teil vor bzw. hinter Deine Schleifen.

PS: Wozu sind die Zeilenumbrüche nach dem Ende des HTML-Teils?
PPS: Es gibt keine HTML-Tabellen!
PPPS: Für eine bessere und schnelle Hilfe formatiere bitte zukünftig Deinen Code besser.
__________________
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!
  #3  
Alt 13.01.2011, 12:31:17
tushkanwn tushkanwn ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 41
Beiträge: 6
AW: Ausgabe von mehreren Datensätzen in Tabellen

Danke für die Antwort! Den HTML-Teils habe ich hinter der Schleife gezogen. Nun wird mir gar nichts ausgegeben( Wo ist der Fehler?

PHP-Code:
 $total_cols count($rRes4);                              
        
$total_rows mysql_num_rows($rRes4);        
        while (
$aHit mysql_fetch_assoc($rRes4)) {
         
        
$aHits[$sTable][] = $aHit;
               
        
        } 

        
    }
       
   return 
$aHits;
   
   print 
"<HTML><BODY>";
   print 
"<p><table width='40%' border='1' cellspacing='0'  cellpadding='0' align='left'>";
   print 
"<tr><td colspan=$total_cols align=center <b>".$sTable."</b> </td> </tr>";                                                
     
        print 
"<td>";
        print 
$sColumn."&nbsp;";
        print 
"</td>";       
        print 
"<tr>";

           foreach(
$aHit as $cell){
        
    echo 
"<td>$cell</td>";
        
          
      }
                  
       print 
"</tr>";      
       print 
"<br>";      
       print 
"</TABLE></BODY></HTML>";       
}
 

echo 
mysqlSearch($volltext);


Zitat:
Zitat von vt1816 Beitrag anzeigen

Hier musst Du ansetzen. Ziehe den notwendigen HTML-Teil vor bzw. hinter Deine Schleifen.

PS: Wozu sind die Zeilenumbrüche nach dem Ende des HTML-Teils?
PPS: Es gibt keine HTML-Tabellen!
PPPS: Für eine bessere und schnelle Hilfe formatiere bitte zukünftig Deinen Code besser.
  #4  
Alt 13.01.2011, 12:44:29
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Ausgabe von mehreren Datensätzen in Tabellen

Es sollte ja nicht alles hinter die Schleifen.

Vor die Schleife(n):
PHP-Code:
   print "<HTML><BODY>"
   print 
"<p><table width='40%' border='1' cellspacing='0'  cellpadding='0' align='left'>"
In die Schleife(n) und die richtigen Stelle(n):
PHP-Code:
   print "<tr><td colspan=$total_cols align=center><b>".$sTable."</b> </td></tr>";                                                 
     
   print 
"<tr><td>"
   print 
$sColumn ."&nbsp;"
   print 
"</td></tr>"

   foreach(
$aHit as $cell)
   { 
       echo 
"<td>$cell</td>"
   } 
Hinter die Schleife(n):
PHP-Code:
       print "</TABLE></p></BODY></HTML>"
**ungetestet!!**

Bitte prüfe selbstständig noch die richtige Syntax. Schalte dazu die Fehleranzeige ein bzw. höher.
__________________
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!
  #5  
Alt 13.01.2011, 14:04:12
tushkanwn tushkanwn ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 41
Beiträge: 6
AW: Ausgabe von mehreren Datensätzen in Tabellen

Wenn ich die zeile:

PHP-Code:
print "<tr><td colspan=$total_cols align=center><b>".$sTable."</b> </td> </tr>"
in die Schleife einfüge, dann kriege ich dasselde Problem wie am Anfang - zwei Enträge aus der gleichen SQL-Tabelle werden separat dargestellt.
Wenn außerhalb der Schleife - werden Sie korrekt dargestellt aber es werden dann die gesamte Datenbank ausgegeben(( Ich werd langsam verrückt...
  #6  
Alt 14.01.2011, 11:21:56
tushkanwn tushkanwn ist offline
Anfänger
 
Registriert seit: Jan 2011
Alter: 41
Beiträge: 6
AW: Ausgabe von mehreren Datensätzen in Tabellen

Habe Suchfunktion und Ausgabe voneinander getrennt, das Problem ist aber nicht verschwunden, es wird trotzdem für jeden Eintrag eine Tabelle gebaut.Bitte SOS!!!

PHP-Code:
.......

 
$sSQL4 "SELECT * FROM `$sTable` WHERE " implode(' OR '$aPermutation);        
 
$rRes4 mysql_query($sSQL4);
        
        
// collect result
            
      
                             
        
$total_rows mysql_num_rows($rRes4);        
                    
        
$sSQL6 "SHOW COLUMNS FROM `$sTable`"
        
$rRes6 mysql_query($sSQL6);
                 
         
        while (
$aHit mysql_fetch_assoc($rRes4)) {
         
$total_cols count($rRes4);          
       
        
$aHits[$sTable][] = $aHit;
               
         print 
"<tr>";
        print 
"<td colspan=$total_cols align=center><b>".$sTable."</b></td>"
        print 
"</tr>";
        while (
$aColumn mysql_fetch_assoc($rRes6)) {
              
$sColumn $aColumn['Field'];
          
        print 
"<td>";
        print 
$sColumn."&nbsp;";
        print 
"</td>";       
        
          }
        
          print 
"<tr>";
           foreach(
$aHit as $cell){        
        print 
"<td>$cell</td>";
        
          
          }
                              
       print 
"</tr>";
     
        } 
           
      return 
$aHits;
    
}
}                                              
                       
print 
"</TABLE></BODY></HTML>";        
echo 
mysqlSearch($volltext);


  #7  
Alt 14.01.2011, 16:05:35
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Ausgabe von mehreren Datensätzen in Tabellen

Hi

ist das wirklich von dir gecoded? oder was fertiges was du mithilfe
vieler veränderst?

schön auf welchen Seiten du noch unterwegs bist ;)
http://forum.joergkrusesweb.de/mysql...-t-2491-1.html
http://www.wer-weiss-was.de/theme165...le6219422.html
http://www.php.de/php-einsteiger/760...-tabellen.html
http://www.tutorials.de/relationale-...sql-suche.html

mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
  #8  
Alt 14.01.2011, 16:14:54
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.707
AW: Ausgabe von mehreren Datensätzen in Tabellen

Crossposting

[mod: closed]
__________________
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!
Thema geschlossen


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
Objekte eindeutig identifizieren (unique key bei view aus mehreren Tabellen?) bill26 MySQLi/PDO/(MySQL) 2 04.06.2009 15:42:37
Ausgabe auf mehreren Seiten. Nicht Link zu jeder Seite, sondern mit [...] arbeiten? DieMilchMachts PHP Grundlagen 0 14.11.2005 20:45:44
Abfrage aus mehreren Tabellen Zudecke PHP für Fortgeschrittene und Experten 19 30.08.2005 21:57:42
Ausgabe verknüpfter Tabellen klaus-maus MySQLi/PDO/(MySQL) 8 28.02.2005 11:09:35
Daten aus mehreren Tabellen holen hoschy MySQLi/PDO/(MySQL) 1 12.08.2004 20:57:24


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:10:31 Uhr.


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


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