PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Problem mit 2 tabellen spalten in einer while schleife ! (http://www.selfphp.de/forum/showthread.php?t=10702)

akasa 06.06.2005 20:11:05

Problem mit 2 tabellen spalten in einer while schleife !
 
Ich habe auf meiner Page eine kleine Geschichtenecxke wo ich immer geschichten meines Lebens rein schreibe, diese ist in 4 kategorien unterteilt, ich versuche es gerade hin zu bekommen, dass per whileschleife etwa so aussieht
|Kategorie1----| |Kategorie2----|
|GEschichte1-1| |GEschichte2-1|
|Geschichte1-2| |Geschichte2-2|
---------------- ---------------
|Kategorie3----| |Kategorie4----|
|GEschichte3-1| |GEschichte4-1|
|Geschichte3-2| |Geschichte4-2|

PHP-Code:

//Title der Kategorien heraussuchen
$head "SELECT
                TitleName,
                TitleID
            FROM
            GeschichtenTitle
            ORDER BY
            TitleID ASC"
;
$head mysql_query($head) OR die(mysql_error());
<
table width="100%" cellspacing="0" cellpadding="0">
';
    $i = 1;
    while($row=mysql_fetch_assoc($head)) {
//Überschrift der Geschichte heraussuchen!
           $sql = "SELECT
                GeschHeader
            FROM
            Geschichten
            WHERE
            GeschZiel=$i
            ORDER BY
            GeschId DESC";
    $sql= mysql_query($sql) OR die(mysql_error());

             echo'
<tr>
               <
td width="50%">
                <
table width="100%">
                 <
tr>
                  <
td class="top"'.$row['TitleName'].''.$i.'</td>
                 </
tr>
                 <
tr>
                  <
td class="zitat">';
                  while($roew=mysql_fetch_assoc($sql))
                  {echo'
<br'.$roew['GeschHeader'].'';}
                  echo''.$i.'
</td>
                 </
tr>
                </
table>
               </
td>
               
';
              $i++;
              if($i % 2){
               echo'
<td width="50%">
                <
table width="100%">
                 <
tr>
                  <
td class="top">'.$row['TitleName'].' '.$i.'</td>
                 </
tr>
                 <
tr>
                  <
td class="zitat">';
                  while($sql=mysql_fetch_assoc($sql))
                  {echo'
<br'.$roew['GeschHeader'].'';}
                  echo''.$i.'
</td>
                 </
tr>
                </
table>
               </
td>
              </
tr>';}
    }

echo'
</table>;



momentaner Stand

xabbuh 06.06.2005 21:30:16

AW: Problem mit 2 tabellen spalten in einer while schleife !
 
Wie sieht denn deine Datenbankstruktur aus?

akasa 06.06.2005 21:45:22

AW: Problem mit 2 tabellen spalten in einer while schleife !
 
also die geschichten
GeschID int(11)
GeschHeader varchar(255)Einzigartig Volltext
GeschText text
GeschOrt varchar(255)
GeschZiel int(11)

und die Kategorien:
TitleId int(11)
TitleName char(255)

xabbuh 06.06.2005 21:53:42

AW: Problem mit 2 tabellen spalten in einer while schleife !
 
PHP-Code:

<?php
    
//  erstmal alle Kategorien holen
    
$sql "SELECT
                TitleId,
                TitleName
            FROM
                GeschichtenTitle
            ORDER BY
                TitleName"
;
    
$result mysql_query($sql);
    
$i 0;
    while(
$row mysql_fetch_assoc($result)) {
        
//  ein div aufmachen
        //  (nach jeder zweiten Kategorie eine neue Zeile anfangen)
        
print '<div style="' . ($i == 'clear:both;' '') . 'width:50%;float:left;">';

        
//  alle Geschichten zu dieser Kategorie holen
        
$sql "SELECT
                    GeschID,
                    GeschHeader,
                    GeschOrt,
                    GeschZiel
                FROM
                    GeschHeader
                WHERE
                    GeschZiel = '{$row['TitleID']}'"
;
        
$result2 mysql_query($sql);
        while(
$row2 mysql_fetch_assoc($result2)) {
            
//  hier können jetzt die Geschichten ausgegeben werden
            
print_r($row2);
        }

        
//  das div schließen
        
print '</div>';
    }
?>


akasa 07.06.2005 13:47:29

AW: Problem mit 2 tabellen spalten in einer while schleife !
 
Hab mal error_reporting(E_ALL) an gemacht, dann kam diese fehlermeldung !
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /data/members/paid/d/e/der-seega.de/htdocs/www/test/index.php on line 40
PHP-Code:

30:        $sql2 "SELECT
                    GeschID,
                    GeschHeader,
                    GeschOrt,
                    GeschZiel
                FROM
                    GeschHeader
                WHERE
                    GeschZiel = $i"
;
        
$result2 mysql_query($sql2);
40:        while($row2 mysql_fetch_assoc($result2)) {
            
//  hier können jetzt die Geschichten ausgegeben werden
            
print'<tr>
                   <td>'
.$row2['GeschHeader'].'</td>
                  </tr>'
;
45:        } 

ist das jetzt ein fehler in der abfrage oder liegts an der whileschleife ?

akasa 07.06.2005 18:18:54

AW: Problem mit 2 tabellen spalten in einer while schleife !
 
Liste der Anhänge anzeigen (Anzahl: 1)
habs jetzt geschafft, aber es exestiert noch ein darstellungsfehler!
(siehe Anhang)
PHP-Code:

        $i 0;
        print 
'<div align="center" style="' . ($i == 'clear:both;' '') . 'width:50%;float:left;">
        <table class="zitat" width="230">
               <tr>
                <td class="top">'
.$row['TitleName'].'</td>
               </tr>
               <tr>
                <td>
                 <table >'
;
$id=$row['TitleId'];
        
//  alle Geschichten zu dieser Kategorie holen
        
$sql2 "SELECT
                    GeschID,
                    GeschHeader,
                    GeschOrt,
                    GeschZiel
                FROM
                    Geschichten
                WHERE
                    GeschZiel = $id"
;
        
$result2 mysql_query($sql2);
        while(
$row2 mysql_fetch_assoc($result2)) {
            
//  hier können jetzt die Geschichten ausgegeben werden
            
print'<tr>
                   <td><a href="http://www.der-seega.de/link.php?id=gesch&gesch='
.$row2['GeschID'].'">'.$row2['GeschHeader'].'</a></td>
                  </tr>'
;
        }
        
//  das div schließen
        
print '
            </table>
           </td>
          </tr>
         </table>
        </div>'



akasa 08.06.2005 14:00:07

AW: Problem mit 2 tabellen spalten in einer while schleife !
 
habs jetzt gelöst mithilfe eienr tabelle !
PHP-Code:

//Ausrichtung und Formattabelle erstellen !
print '<div align="center"><table vspace="0" cellpadding="10" width="100%">';
//Kategorien ausgeben
   
$sql "SELECT
                TitleId,
                TitleName
            FROM
                GeschichtenTitle
            ORDER BY
                TitleId ASC"
;
    
$result mysql_query($sql);
        while(
$row mysql_fetch_assoc($result)) {
// $i erhöhen  
$i++;
// prüfen ob $i gerade oder ungerade Zahl
$b $i 2;
// Titelid festlegen
$id=$row['TitleId'];
//  alle Geschichten zu dieser Kategorie holen
        
$sql2 "SELECT
                    GeschID,
                    GeschHeader,
                    GeschOrt,
                    GeschZiel
                FROM
                    Geschichten
                WHERE
                    GeschZiel = $id"
;
        
$result2 mysql_query($sql2);
// wenn $i ungerade ist neue tabellenzeile
if ($b == ){
    print 
'<tr>';
}
//Ausgabe in tabelle
        
print '<td width="50%" valign="top" align="center"><table height="100%" class="zitat" width="230">
               <tr>
                <td valign="top" height="100%" class="top">... '
.$row['TitleName'].'</td>
               </tr>
               <tr>
                <td valign="top" height="100%">
                 <table width="100%">'
;
                while(
$row2 mysql_fetch_assoc($result2)) {
            print
'<tr>
                   <td style=" border-top:1px solid black;"><img src="./menu/punkt.gif" border="0"><a href="http://www.der-seega.de/link.php?id=test&gesch='
.$row2['GeschID'].'">'.$row2['GeschHeader'].'</a></td>
                  </tr>'
;
        }
        print 
'
            </table>
           </td>
          </tr>
         </table>
         </td>'
;
//Wenn $b gerade ist tabellenzeile wieder schliesen !
        
if ($b == ){
        print 
'</tr>';
        }
    }
print 
'
</table></div>'




Alle Zeitangaben in WEZ +2. Es ist jetzt 23:15:37 Uhr.

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