Thorsten: MySQL Ausgabe in Tabelle

Hi Leute,

Ich glaube es ist Sonntag und mein Gehirn macht genau das was man Sonntags macht : NICHTS!!!

Ich habe eine kleine Datenbank in MySQL erstellt.
Dazu ´ne kleine Site mit nem Abfrageformular und ein PHP-Script welches das ganze verarbeitet und die Daten, die passen, in einer Tabelle ausgibt.

Jetzt möchte Ich die Tabele aber selbst definieren (TR, TD, BR usw.)
In jeder TD möchte Ich dann die verschiedenen Ergebnisse der Abfrage einfügen.
Schaut euch mal das Script an (Es ist wohl einfacher als ich denke)

-------------------------------------------------------------------
<center>
<?php
error_reporting(E_ALL);

$dbh = mysql_connect("abcdef", "ghijkl", "mnopqr");
$query = "use stuvwx";
if (!mysql_query($query, $dbh)) die("Datenbank existiert nicht. \n");

$unter = $_POST['unter'];
$plzkurz = $_POST['plzkurz'];
$produkt = $_POST['produkt'];

$anfrage = "SELECT haupt,unter,ladenlokale,
                   name,strasse,plz,ort,produkt
            FROM daten    WHERE unter = '$unter'
                          AND produkt = '$produkt'
                          AND plzkurz = '00000'
                             OR unter = '$unter'
                          AND produkt = '$produkt'
                          AND plzkurz LIKE '%".$_POST['plzkurz']."%'
                             OR unter = '$unter'
                          AND produkt LIKE '%".$_POST['produkt']."%'
                          AND plzkurz = '$plzkurz'
                             OR unter = '$unter'
                          AND produkt LIKE '%".$_POST['produkt']."%'
                          AND plzkurz LIKE '%".$_POST['plzkurz']."%'
                             OR unter = '$unter'
                          AND produkt LIKE '%".$_POST['produkt']."%'
                          AND plzkurz LIKE '00000'
         ORDER BY ladenlokale ASC";

$ergebnis = mysql_query($anfrage) or die("fehlermeldung: ".mysql_error());

$_color = array('#f7f7f7','#dedfe4');
$count = 0;

echo "<table border='1' bordercolor='999999' width='970px'
       cellpadding='3' cellspacing='0'>";
echo "<tr>";
echo "<td align=center>";

echo "Sie haben das Unternehmen: $unter ";
          echo "mit dem Produkt: $produkt ";
            echo "im PLZ-Gebiet: $plzkurz ";
echo "gesucht ? ";

echo "<BR><BR>";

echo "Unsere Datenbank hat insgesamt: ";
echo mysql_num_rows ($ergebnis) ." Einträge gefunden !!!";
echo "</td>";
echo "</tr>";
echo "</table>";

echo "<BR>";

echo "<table borderwidth='1' rules='groups' bordercolor='#ff9933'
       width='970px' cellpadding='3' cellspacing='0'>";

echo "<thead>";
echo "<TR height='21px' bgcolor='cccccc'>";

echo "<TH WIDTH='137' padding-left='5px'>";
  echo "<P class='Stil8' STYLE='text-align'='center'>
        <B><SPAN>Firmenlogo: </SPAN></B></P></TH>";
echo "<TH WIDTH='209' padding-left='5px'>";
  echo "<P class='Stil8' STYLE='text-align'='left'>
        <B><SPAN>Unternehmen:</SPAN></B></P></TH>";
echo "<TH WIDTH='136' padding-left='5px'>";
  echo "<P class='Stil8' STYLE='text-align'='left'>
        <B><SPAN>Produkt:    </SPAN></B></P></TH>";
echo "<TH WIDTH='198' padding-left='5px'>";
  echo "<P class='Stil8' STYLE='text-align'='left'>
        <B><SPAN>Ladenlokale:</SPAN></B></P></TH>";
echo "<TH WIDTH='155' padding-left='5px'>";
  echo "<P class='Stil8' STYLE='text-align'='center'>
        <B><SPAN>zum Produkt:</SPAN></B></P></TH>";

echo "</TR>";
echo "</thead>";
echo "</table>";

echo "<table border='1' bordercolor='#ffffff' width='970px'
       cellpadding='3' cellspacing='0'>";

for ($i=0; $i<mysql_num_fields($ergebnis);$i++)

?><BR><?php

// ab hier brech ich mir die finger

while ($zeile=mysql_fetch_row($ergebnis))
  {
  echo "<tr bgcolor="".$_color[++$count%2]."">\n";

for ($i=0; $i<mysql_num_fields($ergebnis);$i++)
    {
    echo '<td>'.$zeile[$i].'</td>';
    }
  echo '</tr>';
  }
echo '</table>';

mysql_free_result($ergebnis);
mysql_close($dbh);
?>
</center>
-------------------------------------------------------------------

Es ist zwar bestimmt erst mal nicht einfach durch mein Gekritzel durchzukommen aber bevor ich was vergesse...

jetzt soll die neue tabelle praktisch so aussehen (kurz...) :

<table>
while schleife
<tr color>
<td> haupt <br> unter </td>
<td> name <br> strasse <br> plz <leerzechen> ort </td>
... und so weiter
</tr>
</table>

Ich steh auf´m schlauch -> echo HILFE :-)

  1. Hallo,

    ich habe leider keine Zeit, deine Thread aufmerksam zu lesen, aber vielleicht hilft dir dieses Beispiel weiter:

    <html>
    <body>
    <?php
    // Tabelle abfragen
    $db=mysql_connect("localhost","root","");
    $res=mysql_db_query("adressDB","select * from adressen;");
    $num=mysql_num_rows($res);
    echo "<h2><font color='blue'>Tabelle <i>adressen</i> anzeigen:</font></h2><br><br>";
    echo "<table border>";
    for ($i=0; $i<$num; $i++)
    {
    echo "<tr>";
    $Nr=mysql_result($res,$i,"Nr");
    $Name=mysql_result($res,$i,"Name");
    $Vorname=mysql_result($res,$i,"Vorname");
    $PLZ=mysql_result($res,$i,"PLZ");
    $Ort=mysql_result($res,$i,"Ort");
    echo "<td>$Nr</td>";
    echo "<td>$Name</td>";
    echo "<td>$Vorname</td>";
    echo "<td>$PLZ</td>";
    echo "<td>$Ort</td>";
    echo "</tr>";
    }
    echo "</table>";
    mysql_close($db);
    ?>
    </body>
    </html>

    1. Hi,

      habe eine Fehlermeldung bekommen...
      Ist auch mal was neues:
      Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /mnt/web1/12/70/5808470/htdocs/xx/html/xx.php on line 39

      In der betreffenden Zeile steht:
      $101=mysql_result($res,$i,"haupt");

      "haupt" steht in der MySQL-Abfrage von $res als

      $res=mysql_db_query("use DBxxxxxx","SELECT haupt,spalte2,spalte3,spalte4,spalte5,spalte6,spalte7,spalte8
                  FROM xx_xxxxx WHERE spalte2 = '$spalte2'
                                AND spalte8 = '$spalte8'
                                AND spalte0 = '00000'
                                   OR spalte2 = '$spalte2'
                                AND spalte8 = '$spalte8'
                                AND spalte0 LIKE '%".$_POST['spalte0']."%'
                                   OR spalte2 = '$spalte2'
                                AND spalte8 LIKE '%".$_POST['spalte8']."%'
                                AND spalte0 = '$spalte0'
                                   OR spalte2 = '$spalte2'
                                AND spalte8 LIKE '%".$_POST['spalte8']."%'
                                AND spalte0 LIKE '%".$_POST['spalte0']."%'
                                   OR spalte2 = '$spalte2'
                                AND spalte8 LIKE '%".$_POST['spalte8']."%'
                                AND spalte0 LIKE '00000'
               ORDER BY spalte3 ASC;");

      diese selektierung funktionierte bisher - wo kann dann der fehler liegen?

      gruß Thorsten

      1. Hello,

        $101 = mysql_result($res,$i,"haupt");

        Seit wann dürfen Variablennamen numerisch sein?

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

        1. Danke Tom, hast ja recht.
          Dumm ist der, der dummes tut :-)

          Jetzt hab ich´s geändert aber hab nen neuen fehler:
          Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /mnt/web1/12/70/5808470/htdocs/rabagu2/html/ergebnis.php on line 30

          In Zeile 30 steht:
          $num=mysql_num_rows($res);

          Das kann doch net wahr sein.

          $res ist doch angegeben
          $num geht weiter unten in:
          echo "<table border>";
          for ($i=0; $i<$num; $i++)
          {
          echo "<tr>";
          $aaa=mysql_result($res,$i,"haupt");
          ...

          da hab ich übrigens auch die variablen umbenannt :-)

          Kann es sein das er Probleme mit "haupt" hat?
          oder $res in "§res" ???