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 26.07.2011, 19:47  
Benutzer
 
Registriert seit: 26.02.2011
Beiträge: 35
PHP-Kenntnisse:
Anfänger
SchwarzerMagier zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Neuer Beitrag oder nicht

So hallo,
da mein Thema gestern ein Reinfall war Prob ich es hier doch noch mal.
Also ich versuche ein Forum zu machen.
Bin fast fertig nur mir fehlt noch das anzeigen ob ein neuer Beitrag vorhanden ist oder nicht.
Bastel- da ungefear seit 2 Stunden rum und nun bin ich am ende.

ich muss dazu sagen das ich übelst der php Anfänger bin.
Ja jetzt flammen bestimmt Leute wieder dann mach am besten kein Forum.
Kenne ich zu genüge aber naja.

Also ich habe mir das so gedacht wen man ein Thema betritt Wird in eine Tabelle Username Thema ID und Datum gespeichert.
diese Tabelle sieht so aus.

Code:
CREATE TABLE IF NOT EXISTS `thema_gelesen` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Username` varchar(30) NOT NULL,
  `Tid` int(10) NOT NULL,
  `Datum` datetime NOT NULL,
  PRIMARY KEY (`id`)
)
so und was man denke ich auch noch brauch ist die Themen Tabele die sieht so aus

Code:
CREATE TABLE IF NOT EXISTS `thema` (
  `PID` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `Autor` varchar(50) NOT NULL,
  `Datum` datetime NOT NULL,
  `Titel` varchar(120) NOT NULL,
  `Inhalt` text NOT NULL,
  `Tid` int(10) NOT NULL,
  `Kid` int(10) NOT NULL,
  PRIMARY KEY (`PID`)
)
so nun wird wen man in ein Thema geht in die
Zitat:
thema_gelesen
Tabelle ein Eintrag mit dem Datum und Urzeit gemacht.

Dann wird Überprüft ob in der Tabelle
Zitat:
Thema
ein neueres Datum oder Thema ist.
und genau das funktioniert nicht richtig

das hier ist der code wo in die tabele
Zitat:
thema_gelesen
geschrieben wird.

Code:
<?php
include 'connect.php';


if( isset( $_GET['tid'] ) ) {
  $tid = intval($_GET['tid']);
}

if( isset( $_GET['kid'] ) ) {
  $kid = intval($_GET['kid']);
}
 
// Themen-ID verwenden, um alle Einträge mit der entsprechenden Tid anzuzeigen
$SQL = sprintf('SELECT * FROM Thema WHERE Tid = %d', $tid);

if ($result = mysqli_query($db, $SQL)) {

    /* fetch associative array */
    while ($datensatz = mysqli_fetch_assoc($result)) 
        {  
  echo '<b>'.$datensatz['Autor']."</b><br>";   
  echo '<h1><img src="/img/icon1.png">'.$datensatz['Titel']."</h1><br>";
  echo $datensatz['Inhalt'];
  echo '<br>';
  echo '<hr>';



  
        }
        echo sprintf('<br><a href="index.php?site=Antwort&kid=%d&tid=%d">Antworten</a>', $kid, $tid); 


}
$username = $_SESSION['username'];
if ($result1 = mysqli_query($db, "Select * FROM thema_gelesen WHERE Username='$username'")) {
$numrows = mysqli_num_rows($result1);
echo $numrows;
}
if ($result2 = mysqli_query($db, "Select * FROM thema_gelesen WHERE Tid='$tid'")) {
    $numrows2 = mysqli_num_rows($result2);
    echo $numrows2;
}
if($numrows==0){
    $insert = 'INSERT INTO thema_gelesen
                     (id,Username,Tid,Datum)
                       VALUES (
                        "",
                        "'.$_SESSION['username'].'",
                        "'.$tid.'",
                        NOW()
                     );';
mysqli_query($db, $insert);
echo 'insert';
}else{
    if($numrows2==0){
           $insert1 = 'INSERT INTO thema_gelesen
                     (id,Username,Tid,Datum)
                       VALUES (
                        "",
                        "'.$_SESSION['username'].'",
                        "'.$tid.'",
                        NOW()
                     );';
mysqli_query($db, $insert1); 
    }else{
   $update = "UPDATE
                thema_gelesen
            SET
                Datum = NOW()
            WHERE
                Username = '$username'";  
       mysqli_query($db, $update);
   
    }

}



?>

Nun mein soll das auch noch angezeigt werden also hier mein Code wo es angezeigt werden soll

Code:
<div class="kat">
    <br> 
    <br>
<?php

include 'connect.php';

$kid = 0;
if( isset( $_GET['kid'] ) ) {
  $kid = intval($_GET['kid']);
}
If ($_SESSION['recht'] == "A")
{

    
$query = "SELECT * FROM Thema WHERE Kid = '$kid' GROUP BY Tid 
";


if ($result = mysqli_query($db, $query)) {

    /* fetch associative array */
    while ($datensatz = mysqli_fetch_assoc($result)) 
        {        
        $datum1 = $datensatz['Datum'];// Selectet Datum aus Der tabele Thema
        $tid = $datensatz['Tid']; // Selectet Themen Id aus der Tabele Thema

        $username = $_SESSION['username'];
$select1 = "SELECT * FROM thema_gelesen WHERE Username = '$username' AND Tid = '$tid' ";

if ($result1 = mysqli_query($db, $select1)) {
    

while ($datensatz1 = mysqli_fetch_assoc($result1))
    {
    $datum = $datensatz1['Datum'];// selectet Datum Aus der tabele Thema_Gelesen
    $tid2 = $datensatz1['Tid'];

    }
           echo $tid;
           echo $tid2;

        }
        if($datum <= $datum1)
           {
            if ($tid == $tid2)
               {
           echo'<img src="img/on.gif">';
               }
           else
                {
                    echo '<img src="img/off.gif">';   
                }

           }
           else
           {
                   echo '<img src="img/off.gif">';
           }
                echo '<div class="Tuser">';
        echo $datensatz['Autor'];
        echo '</div>';
        echo '<div class="TTitel">';
        echo sprintf('<a href="index.php?site=Thema&kid=%d&tid=%d">%s</a>', $kid, $datensatz['Tid'], $datensatz['Titel']); 
        echo '</div><hr>';
        
        }

echo '<div class="newThema"><br><br><br><br>';
echo sprintf('<a href="index.php?site=ThemaErstelen&kid=%d">neuesThema</a>', $kid);
echo '</div>';

        
                
}      
else
{
    echo'sie haben nicht das Recht Ein neues Thema zu schreiben';
}


      
    


}
?>
</div>
sollte man mich nicht verstehen dann bitte nicht sofort closen dann versuche ich es nochmal besser zu schildern
edit (mein prob)

Er markiert die Themen nicht richtig

edit code überarbeitet nun sollte er richtiger sein

Geändert von SchwarzerMagier (26.07.2011 um 20:11 Uhr). Grund: BB-Tags korrigiert
SchwarzerMagier ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.07.2011, 19:55  
Erfahrener Benutzer
 
Benutzerbild von DrDreistein
 
Registriert seit: 23.03.2011
Beiträge: 134
PHP-Kenntnisse:
Anfänger
DrDreistein befindet sich auf einem aufstrebenden Ast
Standard

Und wo genau ist jetzt dein Problem? Aus deinem Beitrag war das nämlich nicht ganz ersichtlich....
__________________
Ein Rudel agressiver Wölfe nennt man auch Wolfgang.
Alles, was das PHP-Herz begehrt - Staticfloat
DrDreistein ist offline   Mit Zitat antworten
Alt 26.07.2011, 19:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Gibts auch ne Frage?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 26.07.2011, 20:05  
Benutzer
 
Registriert seit: 26.02.2011
Beiträge: 35
PHP-Kenntnisse:
Anfänger
SchwarzerMagier zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

oh sry musste mich si anschrengen beim schreiben das ich das übergangen haben

ja und zwar markiert er die Themen nicht richtig entweder alle neuer Beitrag oder keines
SchwarzerMagier ist offline   Mit Zitat antworten
Alt 26.07.2011, 20:34  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Du brauchst halt dür den aktuellen User ein Select für alle Themen mit einem Join auf die `thema_gelesen` Tabelle. Den Status kannst Du dann bspw. mit einem IF-Statement auslesen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 26.07.2011, 20:40  
Benutzer
 
Registriert seit: 26.02.2011
Beiträge: 35
PHP-Kenntnisse:
Anfänger
SchwarzerMagier zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

He ich bin ein noob bitte auf feutsch für mich kannst du vileicht ein kleinen beispiel machen

ich kriege es einfahc nicht hin

hier mein code

Zitat:
<div class="kat">
<br>
<br>
<?php

include 'connect.php';

$kid = 0;
if( isset( $_GET['kid'] ) ) {
$kid = intval($_GET['kid']);
}
If ($_SESSION['recht'] == "A")
{


$query = "SELECT * FROM Thema WHERE Kid = '$kid' GROUP BY Tid
";


if ($result = mysqli_query($db, $query)) {

/* fetch associative array */
while ($datensatz = mysqli_fetch_assoc($result))
{

$username = $_SESSION['username'];
$select1 = "SELECT * FROM thema_gelesen WHERE Username = '$username'";
$select2 = "SELECT * FROM Thema WHERE Username = '$username'";
if ($result1 = mysqli_query($db, $select1)) {
if ($result2 = mysqli_query($db, $select2)) {

while ($datensatz1 = mysqli_fetch_assoc($result1))
{
$datum = $datensatz1['Datum'];// selectet Datum Aus der tabele Thema_Gelesen
$tid2 = $datensatz1['Tid'];
while ($datensatz2 = mysqli_fetch_assoc($result2))
{
$Datum1 = $datensatz2['Datum'];
$tid = $datensatz2['Tid'];
}

}
IF($datum < $datum1)
{
if ($tid2 == $tid)
{
echo'<img src="img/on.gif">';
}
}

}



}
echo '<div class="Tuser">';
echo $datensatz['Autor'];
echo '</div>';
echo '<div class="TTitel">';
echo sprintf('<a href="index.php?site=Thema&kid=%d&tid=%d">%s</a>', $kid, $datensatz['Tid'], $datensatz['Titel']);
echo '</div><hr>';

}

echo '<div class="newThema"><br><br><br><br>';
echo sprintf('<a href="index.php?site=ThemaErstelen&kid=%d">neuesTh ema</a>', $kid);
echo '</div>';



}
else
{
echo'sie haben nicht das Recht Ein neues Thema zu schreiben';
}






}
?>
</div>

Geändert von SchwarzerMagier (26.07.2011 um 21:58 Uhr).
SchwarzerMagier ist offline   Mit Zitat antworten
Alt 27.07.2011, 00:56  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ein LEFT JOIN von A auf B erzeugt immer das Produkt von A x B, bei dem A (Threads) vollständig vorhanden ist und B (thema_gelesen) nur bedingt. Wenn kein passendes B existiert, werden die entsprechenden Felder NULL sein und das kann man bspw. mit IF auswerten.

Wenn Du das nicht hinbekommst… nunja
Zitat:
ich muss dazu sagen das ich übelst der php Anfänger bin.
Ja jetzt flammen bestimmt Leute wieder dann mach am besten kein Forum.
Kenne ich zu genüge aber naja.
dann hat das auch seinen Grund.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 27.07.2011, 16:28  
Benutzer
 
Registriert seit: 26.02.2011
Beiträge: 35
PHP-Kenntnisse:
Anfänger
SchwarzerMagier zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

es will nicht gehen ich bin nerfluch total am ende

hier was mache ich falsch

Code:
$query = "SELECT * FROM Thema WHERE Kid = '$kid' GROUP BY Tid 
";


if ($result = mysqli_query($db, $query)) {
     $select = "SELECT thema.Datum, thema_gelesen.Datum, thema.Tid FROM thema LEFT JOIN thema_gelesen ON thema.Tid = thema_gelesen.Tid  ";



        
        

        

    /* fetch associative array */
    while ($datensatz = mysqli_fetch_assoc($result)) 
        {        $Datum = $datensatz['Datum'];
                $tid3 = $datensatz['Tid'];
                        echo '<div class="Tuser">';
        echo $datensatz['Autor'];
        echo '</div>';
        echo '<div class="TTitel">';
        echo sprintf('<a href="index.php?site=Thema&kid=%d&tid=%d">%s</a>', $kid, $datensatz['Tid'], $datensatz['Titel']); 
        echo '</div><hr>';
             if ($result1 = mysqli_query($db, $select)) {
    
    while ($row = mysqli_fetch_array($result1))
        {          	$tid1 = $row['Tid'] == $tid3;
			$Datum1 = $row['Datum'];
                        echo $tid1;
                        echo '<br><br>';
                        echo $tid3;

        }
        if ($tid1 == NULL)
        {
            if($tid1 == $tid3)
            {

            
            echo '<img src="img/on.gif">';
            }
        }else
        {
            If ($Datum1 < $Datum)
            {
                echo '<img src="img/on.gif">';       
            }else
            {
                         echo '<img src="img/off.gif">';   
            }
SchwarzerMagier ist offline   Mit Zitat antworten
Alt 27.07.2011, 16:45  
Erfahrener Benutzer
 
Benutzerbild von wolf29
 
Registriert seit: 17.03.2010
Beiträge: 1.833
PHP-Kenntnisse:
Fortgeschritten
wolf29 wird schon bald berühmt werdenwolf29 wird schon bald berühmt werden
Standard

Wo verarbeitest du dein $select? Ansonsten: Fehlermeldungen?

mfg Wolf29
__________________
while (!asleep()) sheep++;

Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.
wolf29 ist offline   Mit Zitat antworten
Alt 27.07.2011, 16:57  
Benutzer
 
Registriert seit: 26.02.2011
Beiträge: 35
PHP-Kenntnisse:
Anfänger
SchwarzerMagier zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Da das Tolle ist das es keinen error gibt, es funktioniert einfach nicht geht habe echt alles probiert
PHP-Code:
    
$query 
"SELECT * FROM Thema WHERE Kid = '$kid' GROUP BY Tid 
"
;


if (
$result mysqli_query($db$query)) {
     $[
color="Red"]select "SELECT thema.Datum, thema_gelesen.Datum, thema.Tid FROM thema LEFT JOIN thema_gelesen ON thema.Tid = thema_gelesen.Tid GROUP BY thema.Tid ";[/color]



        
        

        

    
/* fetch associative array */
    
while ($datensatz mysqli_fetch_assoc($result)) 
        {        
$Datum $datensatz['Datum'];
                
$tid3 $datensatz['Tid'];
                        echo 
'<div class="Tuser">';
        echo 
$datensatz['Autor'];
        echo 
'</div>';
        echo 
'<div class="TTitel">';
        echo 
sprintf('<a href="index.php?site=Thema&kid=%d&tid=%d">%s</a>'$kid$datensatz['Tid'], $datensatz['Titel']); 
        echo 
'</div><hr>';
          [
color="Red"]   if ($result1 mysqli_query($db$select)) {[/color]
    
    [
color="Red"]while ($row mysqli_fetch_array($result1))[/color]
        {              
$tid1 $row['Tid'] == $tid3;
            
$Datum1 $row['Datum'];
                        echo 
$tid1;
                        echo 
'<br><br>';
                        echo 
$tid3;

        }
        if (
$tid1 == NULL)
        {
            if(
$tid1 == $tid3)
            {

            
            echo 
'<img src="img/on.gif">';
            }
        }else
        {
            If (
$Datum1 $Datum)
            {
                echo 
'<img src="img/on.gif">';       
            }else
            {
                         echo 
'<img src="img/off.gif">';   
            }

        }
        
        }



///echo '<div class="newThema"><br><br><br><br>';
///echo sprintf('<a href="index.php?site=ThemaErstelen&kid=%d">neuesThema</a>', $kid);
//echo '</div>';


                




        

}

SchwarzerMagier 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
Bewertungssystem im Forum tr0y Board-Support 74 03.08.2011 08:54
Direktlink zum Beitrag via eMail Tyrra PHP Tipps 2009 15 06.08.2009 16:43
Sockets -&amp;gt; Prüfen, ob ein neuer Client verbindet? Duesi PHP Tipps 2009 3 07.07.2009 22:25


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