cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 68142
Mitglieder online: 0
Gäste online: 1
mehr...

Anzeige
Forum » Forum: Website & Webprogrammierung » Thread: [gelöst ]MySQL variablen werden nicht ausgegeben

Thread: [gelöst ]MySQL variablen werden nicht ausgegeben

Tags: PHP , MySQL , SQL , blog
Seite 1 von 212

09.08.2008 14:49 Uhr

 

Status: offline
hi!
ich habe folgenden code:
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
    $blog = "SELECT * FROM `inhalte` ORDER BY `id` DESC";
    $blogres = mysql_query($blog) or die(mysql_error());
    if(!mysql_num_rows($blogres)) { $noentry = 0; } else { $noentry = 1; }
    while($blogs = mysql_fetch_assoc($blogres) && $noentry == 1) {
        $title = $blogs['title'];
        $inhalt = $blogs['inhalt'];
        $datum = $blogs['datum'];
        $kategorien = $blogs['kategorie'];
        echo "<h3>[$title]</h3> \n";
        echo nl2br($inhalt)."<br />\n";
        echo "<wroteat>geschrieben am $datum <br /></wroteat>";
        echo "<kategorien>in den Kategorien ";
        $kategorienE = explode(",",$kategorien);
        foreach($kategorieE AS $kat) {
            echo '<a href="blog-'.$kat.'.html">'.$kat.'</a>,';
        }
        echo "</kategorien><br /><br />";
    }
?>
und folgendes ergeniss: http://edditler.bplaced.net/blog.html
er wiederholt die while-schleife 2 mal (genau so viele einträge gibt es in der datenbank) gibt dabei aber keine einzige der variablen aus... er gibt mir aber auch keinen fehler zurück.
das ganze ist in einer html-datei geschpeichert, die per php in eine globale datei eingebunden wird. normale php-funktionen funktionieren offensichtlich aber merkwürdiger weise will er mir einfach keine der variablen ausgeben, die per mysql generiert werden...

wo ist der fehler?
cYa
1 mal bearbeitet
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
09.08.2008 17:53 Uhr

 

zombie3456
Programmierer
Status: offline
Zitat:
wo ist der fehler?

Ein hübsches
PHP:
1
<?php var_dump($blogs);
direkt am Anfang der Schleife (<?php natürlich nicht noch einmal schreiben) sollte dir sagen, ob es die Indizes überhaupt gibt. Dann kann man mal weitersehen.
So mache ich das zumindest immer  :glad: 

Übrigens kommt es mir etwas komisch vor, PHP-Code in .html-Dateien zu speichern, aber grundsätzlich ist das kein Problem. Die Endung .php muss man nur bei der "Front"-Datei benutzen, weil das bei Apache meistens so eingestellt wird. Theoretisch könntest du Apache auch sagen .xyz ist ab jetzt eine Script-Datei und dann index.xyz verwenden. Glaube ich zumindest...
Der erste Teil müsste auf jeden Fall korrekt sein, denn das Zend-Framework benutzt(e) die Endung .phtml für eingebundene Ausgabe-Dateien.


Edit

Achja nochwas. Man müsste es, wenn ich nicht total falsch denke, auch einfach so schreiben können:
PHP:
1
2
3
4
5
<?php
    $blog = "SELECT * FROM `inhalte` ORDER BY `id` DESC";
    $blogres = mysql_query($blog) or die(mysql_error());
    while($blogs = mysql_fetch_assoc($blogres)) {
        # ...
Bei 0 zurückgegebenen Einträgen wird die Schleife einfach nie durchlaufen, da sie gleich false erhält. Und bei einem MySQL-Fehler wird auch mysql_num_rows() in einem Fehler ... is not a valid mysql resource enden.
Aber der wird bei dir ja sowieso zuvor von die() abgefangen, sehe ich gerade.
3 mal bearbeitet
___________________________
DURATIVUM | Blog zur Sprache Latein
09.08.2008 18:45 Uhr

 

Status: offline
Warum ist
PHP:
1
$blogs = mysql_fetch_assoc($blogres)
in der Bedingung der Schleife?
Ich würde nie auf die Idee kommen, das in die Bedingung zu schreiben

Und versuch mal
PHP:
1
$blog = "SELECT `title`, `inhalt`, `datum`, `kategorie` FROM `inhalte` ORDER BY `id` DESC";
Und anstatt var_dump kannst du auch mal ein print_r versuchen! (Direkt am Anfang der While Schleife.)
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
09.08.2008 20:37 Uhr

 

Status: offline
@klasse7darg: wie machst du das denn sonst?
sämtliche tutorials und selbst die php-referenz schlägt das vor.
nur heißt die variable halt $row

allein schon das entfernen von $noentry hat wunder gewirkt... der rest wird sich hoffentlich auch noch klären...
1 mal bearbeitet
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
09.08.2008 21:16 Uhr

 

Status: offline
und wieder ein fehler im selben skript... ich will hierfür aber nicht extra nen neuen thread aufmachen.
folgender code:
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    if(!isset($_GET['kat'])) {
# normale ausgabe...
    } else {
        $searchfor = $_GET['kat'];
        $blog = "SELECT * FROM `inhalte` ORDER BY `id` DESC";
        $blogres = mysql_query($blog);
        while($blogs = mysql_fetch_assoc($blogres)) {
            $kateright = 0;
            $kategorien = $blogs['kategorie'];
              $kategorienEX = explode(",",$kategorien);
              foreach($kategorienEX AS $kate) {
                  if($kate == $searchfor) { $kateright = 1; }
              }
            if($kateright) {
                $title = $blogs['titel'];
                $inhalt = $blogs['inhalt'];
                $datum = $blogs['datum'];
                echo "<h3>[$title]</h3> \n";
                echo nl2br($inhalt)."<br />\n";
                echo "<wroteat>geschrieben am $datum <br /></wroteat>";
                echo "<kategorien>in den Kategorien ";
                $kategorienE = explode(",",$kategorien);
                foreach($kategorienE AS $kat) {
                    echo '<a href="blog_'.$kat.'.html">'.$kat.'</a>,';
                }
                echo "</kategorien><br /><br />";
            } else {
                echo "Kein Eintrag unter dieser Kategorie gefunden!";
            }
    }
wenn ich den gesamten else-Teil auskommentiere gibt es keinen Fehler. Deshalb liegt er wohl dort drin... das ergebniss kann man diesmal hier sehen: http://edditler.bplaced.net/blog.html
obwohl $_GET[kat] nicht gesetzt ist (das wäre dann blog_kategorie.html) wird gar nichts mehr angezeitgt... hier nochmal die .htaccess:
PHP:
1
2
3
RewriteEngine On
RewriteRule ^blog_(.*)\.html$ index.php?page=blog&kat=$1 [L]
RewriteRule ^(.*)\.html$ index.php?page=$1
wieder stellt sich die frage: was mache ich falsch? ich bin mir vor allem bei der rewrite rule nicht sicher. da alle anderen unterseiten funktionieren kann der fehler dort gar nicht liegen...
1 mal bearbeitet
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
09.08.2008 22:26 Uhr

 

Status: offline
Zitat:
ich bin mir vor allem bei der rewrite rule nicht sicher.


Warum escapst (was ein Deutsch) du den Punkt vor html?

Nur so als Tipp:
Ich hab häufig das Problem, dass ich eine Variable überschreibe  :wink: 
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
09.08.2008 22:47 Uhr

 

Status: offline
soll der tip bedeuten, ich soll den fehler selbst suchen und du gibts mir nur einen hinweis, obwohl du ganz genau weißt, WELCHE variable ich überschreibe?
___________________________
Faulheit ist wenn man mit einem Glas Milch in der Hand auf das nächste Erdbeben wartet um einen Milchshake zu trinken.
Chuck Norris hat mehr Kreditkarten als Max Mustermann!
Sido fragte mal "Wer ist Chuck Norris?". Seitdem trägt er eine Maske.
10.08.2008 00:54 Uhr

 

Status: offline
Zitat von klasse7darg:
Warum escapst (was ein Deutsch) du den Punkt vor html?
Weil der Punkt für ein beliebiges Zeichen steht.
Sonst würde auch "blog_xxxhtml" funktionieren - das dritte "x" ist dabei das eine beliebige Zeichen (.).
http://httpd.apache.org/docs/2.2/rewrite/rewrite_intro.html#regex

Kommen da nicht auch irgendwelche Fehlermeldungen (error_repoting())

Ist das verloren gegangen, oder fehlt die schließende Klammer der While-Schleife ?
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
    if(!isset($_GET['kat'])) {
# normale ausgabe...
    } else {
        $searchfor = $_GET['kat'];
        $blog      = "SELECT * FROM `inhalte` ORDER BY `id` DESC";
        $blogres   = mysql_query($blog);
        while($blogs = mysql_fetch_assoc($blogres)) {
            $kateright  = false;
            $kategorien = explode(",",$blogs['kategorie']);
            foreach($kategorien AS $kate) {
                if($kate == $searchfor) {
                    $kateright = true;
                    break; // weil die kategorie ja nun sowieso angezeigt wird, muss die schleife ja nicht weiterlaufen
                }
            }
            if($kateright) {
                # wozu die array inhalte in andere variablen speichern wenn nichts geändert wird !?
                #$title  = $blogs['titel'];
                #$inhalt = $blogs['inhalt'];
                #$datum  = $blogs['datum'];
                echo "<h3>[$blogs['titel']]</h3> \n";
                echo nl2br($blogs['inhalt'])."<br />\n";
                echo "<wroteat>geschrieben am $blogs['datum'] <br /></wroteat>";
                echo "<kategorien>in den Kategorien ";
                # warum die kategorien noch mal trennen, wenn wir diese doch noch in dem array $kategorien haben !?
                #$kategorienE = explode(",",$kategorien);
                foreach($kategorien AS $kat) {
                    echo '<a href="blog_'.$kat.'.html">'.$kat.'</a>,';
                }
                echo "</kategorien><br /><br />";
            } else {
                echo "Kein Eintrag unter dieser Kategorie gefunden!";
            }
        } # <= die schließende klammer der while-schleife hat gefehlt !
    }
?>
Schönen Sonntag noch
Dragonl
1 mal bearbeitet
___________________________
Gemeinde Jugend Vertretung Bremen
"Ich will das Rad kein zweites mal erfinden,
ich will nur verstehen wie es funktioniert !"
10.08.2008 08:52 Uhr

 

zombie3456
Programmierer
Status: offline
Auch hier könnte ein einfaches
PHP:
1
<?php var_dump($_GET);
vor
PHP:
1
<?php if(!isset($_GET['kat']))
wieder weiterhelfen.

Also:
PHP:
1
2
3
4
5
6
7
<?php
    var_dump($_GET);
    if(!isset($_GET['kat'])) {
# normale ausgabe...
    } else {
        # ...
    }
___________________________
DURATIVUM | Blog zur Sprache Latein
10.08.2008 09:59 Uhr

 

Status: offline
Zitat:
soll der tip bedeuten, ich soll den fehler selbst suchen und du gibts mir nur einen hinweis, obwohl du ganz genau weißt, WELCHE variable ich überschreibe?


Nein ich weiß nicht, welche Variable du genau überschreibst!
Aber ja es hieß! dass du den Fehler selbst suchen solltest, weil ich gestern Abend keine Lust mehr hatte!
Ich schau mir das jetzt noch mal an.
Du könntest vielleicht mal den Kompletten Code Posten?

@dragonl: Wieder was gelernt  :glad: 

Edit://
Was passiert, wenn du eine Datei nur mit dem else Teil erstellst. Damit du den Mal ausprobieren kannst.

Und hier ein Schönheitsfehler:
php:
1
echo "<wroteat>geschrieben am $datum <br /></wroteat>";
Sollte so aussehen:
php:
1
echo "<wroteat>geschrieben am ".$datum." <br /></wroteat>";
Und steht überhaupt etwas in der Datenbank?
Wenn nicht, kann er ja gar nichts ausgeben!
1 mal bearbeitet
___________________________
MFG Jan
"funzt nicht" ist keine gültige Fehlerbeschreibung!*haarerauf*
http://www.sysprofile.de/id30821
Seite 1 von 212
Ähnliche Threads Forum Ähnlichkeitsgrad
 Problem: Eigenes Modul erzeugt doppelten MySQL Eintrag bei Redaxo Website & Webprogrammierung 2
 Root-Core - Coding meets GFX Das Promotion-Board 2
 TV Planer Script Probleme (erst mal erledigt) Website & Webprogrammierung 2
 [gelöst] Mit Datum rechnen in PHP mit MySQL Website & Webprogrammierung 2
 PHP, Pfad wird nicht richtig erzeugt Website & Webprogrammierung 2
 Useraccount Sicherheit Website & Webprogrammierung 2
 [PHP/MYSQL] Zeitgesteuert auf Datenbank zugreifen Website & Webprogrammierung 2
nach obennach oben

Copyright © 2008 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung