Benutzer von Beitrag anzeigen

josephina

Grünschnabel
Hallo,

ich bin noch ein echter Newbie in PHP und MySQL. Als kleine Übung möchte ich eine Art Forum programmieren. Ich bin jetzt soweit, daß man sich als Benutzer registrieren und auch einloggen kann. Man kann auch Beiträge verfassen, aber leider wird der Benutzer nicht angeziegt, der es geschrieben hat. Irgendwie stimmt meine Abfrage nicht ganz, denn da kommt immer ne Fehlermeldung bei der ausgabe das Nutzers.
Vielleicht kann mir da jemand weiterhelfen?
Hier ist der Code dafür.
PHP:
<?php
  include ("dbconnect.php");
  
  //Überprüfen des Nutzers, ob angemeldet, anhand von Session ID
  $eingeloggt="select name, passwort from nutzer where name='".$_SESSION['benutzer']."' and passwort='".$_SESSION['passw']."'";
  $nutzer=mysql_query($eingeloggt);
  $vorhanden=mysql_num_rows($nutzer);
  var_dump($nutzer);
  
  //Beiträge anzeigen
  $anzeigen="select * from thema order by t_id desc";
  $ergebnis=mysql_query($anzeigen);
  
  //Ersteller suchen und in DB speichern
  $ersteller="select n_id, name from nutzer where name='".$_SESSION['benutzer']."'";
  $ersteller_suchen=mysql_query($ersteller);
  $ersteller_speichern="insert into thema(n_id, name) values ('".$ersteller_suchen."')";
  $ersteller_speichern1=mysql_query($ersteller_speichern);
  $ersteller_zeigen="select name from thema";
  $ersteller_anzeigen=mysql_query($ersteller_zeigen);
  
  if ($vorhanden!='0') {
      echo "<table border='1' cellpadding='0' cellspacing='0'>
              <form action='forum.php' method='get'>
              <tr>
                <td>Thema:</td>
                <td><input type='text' name='thema'></td>
              </tr>
              <tr valign='top'>
                <td>Eintrag:</td>
                <td><textarea name='eintrag' rows='10' cols='40'></textarea><br><br></td>
              </tr>
              <tr>
                <td></td>
                <td><input type='submit' name='eintragen' value='Eintragen'><input type='reset' name='del' value='löschen'></td>
              </tr>
            </form>
              <tr>
                <td><a href='index.php'>« Startseite</a></td>
              </tr>
            </table>";
      while ($row=mysql_fetch_object($ergebnis)) {
             echo "<table border='1' cellpadding='0' cellspacing='0'>
                     <tr>
                          <td width='100'>Thema:</td>
                        <td width='300' height='100%'>"; echo $row->ueberschrift; echo "</td>
                      </tr>
                      <tr valign='top'>
                         <td>Mitteilung:<div style='padding-top:30px' class='kon'>von ";
                           while ($row1=mysql_fetch_object($ersteller_anzeigen)) { echo $row1->name; }
                           echo "</div></td>
                          <td>"; echo $row->text; echo "</td>
                     </tr>
                   </table>";
              }
                
     }
     else {
     echo "keine Berechtigung zum eintragen<br>neu <a href='anmelden.php'>einloggen bzw. anmelden</a>";
          }
  ?>
 
Code:
  $ersteller="select n_id, name from nutzer where name='".$_SESSION['benutzer']."'";
  $ersteller_suchen=mysql_query($ersteller);
  $ersteller_speichern="insert into thema(n_id, name) values ('".$ersteller_suchen."')";
du schreibst bei $ersteller_speichern den Rückgabewert von $ersteller_suchen in die DB.
Das ist aber die Ressourcenkennung des Query, und nicht n_id + name... schon da wird sicher nix eingetragen, weil nur ein Wert verfügbar ist, aber 2 erwartet werden.
Das Ergebnis von $ersteller_suchen musst du ebenfalls per mysql_fetch_object()(oder Ähnlichem) holen.

Während der Entwicklung lasse dir dir die mysql-Fehlermeldungen ausgeben:
Code:
mysql_query('blubb') or die(mysql_error());
...dann lassen sich Fehler besser ausmachen.
 
Zurück