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 05.01.2011, 15:28  
Neuer Benutzer
 
Registriert seit: 16.12.2010
Beiträge: 8
PHP-Kenntnisse:
Anfänger
tushkanwn befindet sich auf einem aufstrebenden Ast
Standard Ausgabe von Datensätzen in Tabellen. Eine Zeile fehlt!

Hallo! Habe folgendes Problem: habe mir ein Suchformular mit einer Suchfunktion gebastelt, die die gesamte Datenbank nach einem Suchbegriff durchsucht und die Ergebnisse in Tabellen ausgibt. Es funzt alles soweit, nun fehlt immer ein Datenzatz in jeder Tabelle.
D.h. wenn es drei Einträge in der Tabelle 'kostenstelle' vorhanden sind werden nur zwei davon ausgegeben.
var
Bitte um Hilfe!

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)) {
     
     
    
        
       
        
$row mysql_fetch_row($rRes4);
          
$total_cols count($row);
          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>";          
          
$y=0;          
        while(
$y $total_cols){          
        print 
"<td>";             
        print 
$row[$y]."&nbsp;";          
        print 
"</td>";
      
          
$y++;
  }
    
        print 
"</tr>";
    
    
        while(
$row mysql_fetch_row ($rRes4)) {        
        
$y 0;
        print 
"<tr>";
        while(
$y $total_cols){
        print 
"<td>";    
        print 
$row[$y]."&nbsp;<br>";
        print 
"</td>";
        

        
$y++;
    }
     
          print 
"</tr>";
  
  }
        
  print 
"</TABLE></BODY></HTML>";
           print 
"<br></br>"
           print 
"<br></br>";                         
        
             
        }             
    }
    print 
"<br>";   
    return 
$aHits;
    
}

echo 
mysqlSearch($volltext);


var_dump($aHit) zeigt mir die fehlende Einträge!

Danke im Voraus!
tushkanwn ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.01.2011, 16:24  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Code:
while ($aHit = mysql_fetch_assoc($rRes4)) { 
  $row = mysql_fetch_row($rRes4);
  $total_cols = count($row);
Damit überspringst du jedes zweite Ergebnis.

Wenn du die Anzahl der Spalten haben möchtest, zähl doch einfach $aHit:
Code:
while ($aHit = mysql_fetch_assoc($rRes4)) { 
  $total_cols = count($aHit);
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 05.01.2011, 16:48  
Neuer Benutzer
 
Registriert seit: 16.12.2010
Beiträge: 8
PHP-Kenntnisse:
Anfänger
tushkanwn befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für deine Antwort!
Wenn ich $aHit zähle, bekomme ich eine zeile in jeder Tabelle, aber die ist leer
Wie kann ich sie jetzt mit dem fehlenden Datensatz befüllen?

Geändert von tushkanwn (05.01.2011 um 17:15 Uhr).
tushkanwn 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
2 Tabellen in 1 Ausgabe ? Zerdux PHP Tipps 2010 2 21.02.2010 16:05
[Erledigt] INSERT INTO zwei Tabellen mit Foreign Key und mehreren Datensätzen - wie? 6setzen PHP Tipps 2009 18 24.11.2009 14:21
[Erledigt] Tabellen fehler bei Ausgabe DjRay PHP Tipps 2009 3 22.11.2009 17:24
Verschiedene Tabellen abfragen und Ausgabe sortieren efrasch Datenbanken 4 12.10.2009 04:04
Lange Zahlenkombination in kurze Zeichenfolge umwandeln Heinerlutscher PHP-Fortgeschrittene 27 28.02.2009 16:45
[Erledigt] Limit auf Ergebnissumme mehrerer Tabellen Frank Datenbanken 8 02.09.2008 11:33
[MATCH...AGAINST] mit mehreren Tabellen und Datensätzen? becks123 Datenbanken 6 20.06.2007 12:17
2 Tabellen, 1 Ausgabe (+Dubletten abfangen) madSoul Datenbanken 2 04.09.2006 10:37
Ausgabe der Verknüpften tabellen über php skript PHP Tipps 2006 4 07.02.2006 15:04
Zwei Tabellen in einen Array + Ausgabe (no primkey) PHP Tipps 2007 6 07.12.2005 10:14
IP Logger + .txt ausgabe (gibt nur in einer zeile aus !?) PHP Tipps 2005 6 08.01.2005 16:43
Bei ausgabe jede 2. Zeile einfärben PHP Tipps 2004 20 05.08.2004 17:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ausgabe von datensätzen, fetch_array erster satz fehlt, php5 mysql_fetch_assoc 1 satz fehlt, mysql_fetch_assoc eine zeile fehlt, jede zweite zeile fehlt, sql php ausgabe zeile fehlt, in boolean mode show tables injection, php ausgabe von datensätzen in eine tabelle, lesezeichen zeile fehlt, http://www.php.de/php-einsteiger/75766-ausgabe-von-datensaetzen-tabellen-eine-zeile-fehlt.html

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