• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

resource(6) of type (mysql result)

var_dump meldet mir: resource(6) of type (mysql result)

Was bedeutet diese Fehlermeldung?
Ich habe bisher keine Antwort im Netz gefunden mit der ich etwas anfangen konnte.
 
PHP:
$ergebnis = mysql_query("SELECT * FROM Stellungen WHERE Herkunft = 'Afrikanisch' ORDER BY Listenpunkt ASC ");

while($row = mysql_fetch_object($ergebnis));
var_dump($ergebnis);

     echo '<li><a href="index.php?Bereich=stellungen&Inhalt=', $row->url, 'title="Beschreibung einer Stellung aus Kenia">', $row->Listenpunkt, '</a></li>';

     echo '</li>';
     echo '</ul>';
gebe ich die Codezeile
SELECT * FROM Stellungen WHERE Herkunft = 'Afrikanisch' ORDER BY Listenpunkt ASC
bei phpmyadmin im SQL Bereich ein dann bekomme ich das Ergebnis (die Zeile) die ich erwarte. Also müsste ich mit den $row->... doch das bekommen was ich zusammensetzen möchte.

übrigens: setze ich var_dump($row) ein dann bekomme ich
 
Du wolltest an der Stelle vielleicht var_dump($row); schreiben? Außerdem steht da ein Semikolon hinter der while-Schleife, was bedeutet, dass sie einmal komplett durchläuft, dann $row auf false setzt und fertig ist. Du suchtest sicher die geschweiften Klammern.

Code:
while($row = mysql_fetch_object($ergebnis)) {

usw.
 
Das war zumindest der Fehler den ich aber inhaltlich noch nicht verstanden habe.
Wie Du sicher bemerkt hast habe ich es auch mit $row probiert und war verwirrt weil ein false bei einem bool kam. Dabei habe ich doch garkein Typ Bool.
 
geht das überhaupt?

Ich wollte

PHP:
/* Afrikanisch */
         echo'
         <a class="menuitem submenuheader" href="index.php?Bereich=stellungen" title="Öffnet die Aufstellung der afrikanischen Stellungen">Afrikanisch</a>
         <div class="submenu">
         <ul>';

         $ergebnis = mysql_query("SELECT * FROM Stellungen WHERE Herkunft = 'Afrikanisch' ORDER BY Listenpunkt ASC ");
         while($row = mysql_fetch_object($ergebnis))
                 {
                 // var_dump($ergebnis);

                 echo '<li><a href="index.php?Bereich=stellungen&Inhalt=', $row->url,'" title="Beschreibung einer Stellung',  $row->Listenpunkt, '">', $row->Listenpunkt, '</a></li>';
                 }
         echo '</ul>';
         echo '</div>';

nun im nächsten Schritt gern weiter zusammen fassen.
Und
durch $row->Herkunft ersetzten. Doch im Ergebnis wurde nichts angezeigt. Ich vermute mal das ich das so nicht machen kann da Herkunft aus dem Ergebnis raus gefallen ist da ich ja erst unter Herkunft eingegrenzt habe. (ganz oben)


Im Moment wiederhole ich den Bereich jeweils mit anderer Herkunft.
Wenn ich das ändere. Also eine while-schleife vor der aktuellen while-schleife baue, könnte ich dann mit row->herkunft arbeiten?
 
Ich glaube Du suchst nach sowas:

PHP:
/* Afrikanisch */
         echo'
         <a class="menuitem submenuheader" href="index.php?Bereich=stellungen" title="Öffnet die Aufstellung der afrikanischen Stellungen">Afrikanisch</a>
         <div class="submenu">
         <ul>';

         $ergebnis = mysql_query("SELECT * FROM Stellungen ORDER BY Listenpunkt ASC ");
         while($row = mysql_fetch_object($ergebnis))
                 {
                     echo '<li><a href="index.php?Bereich=stellungen&Inhalt=', $row->url,'" title="Beschreibung einer Stellung',  $row->Listenpunkt, '">', $row->Listenpunkt, '</a></li>';
                 }
         echo '</ul>';
         echo '</div>';

Aber woher soll $row->Herkunft kommen? Ich rate einfach mal:
Du hast einen Link der Details zu einer Information ausgeben soll. Diese stehen in dieser Tabelle "Stellungen". Der Link ruft nun über einen Parameter die Bezeichnung für diese Details auf. In deinem Beispiel "Afrikanisch". Der Link sieht z.B. so aus:
Code:
index.php?Bereich=stellungen&amp;herkunft=afrikanisch

Hab ich recht?

(ich möchte nicht wissen was für "Stellungen" das sind :D )
 
Ich bin nicht sicher ob ich Dich richtig verstanden habe. Ich vermute aber ja

Es gibt neben Afrikanisch, Amerikanisch, Europäisch usw.
Im Moment wiederhole ich für jeden Bereich den Code. mit entsprechend geänderter Herkunft.
Doch ich würde auch gern die Herkunft dynamisch gestallten.
So da sich das ganze nur ein Mal habe.
Ich bin mir nur nicht sicher wie ich das ganze machen muss.
Denn in der Unterebene muss ich ja dann die Herkunft als Eingrenzung zugrunde legen um dann den Listenpunkt in ASC Reihenfolge zu setzen.

Sprich

Afrikanisch
a
b
c....
Amerikanisch
a
b
c....
Usw
a...
 
Dafür reicht ein einzelnes Statement, deren Ergebnisse Du rekursiv durchgehst. Entscheidend ist erstmal, dass Du beide Sortierungen (Herkunft und die Unterpunkte) einzeln als Sortierkriterien angibst:

PHP:
$ergebnis = mysql_query("SELECT * FROM Stellungen ORDER BY Herkunft ASC, Listenpunkt ASC");

Dann kannst Du das Ergebnis rekursiv in der schon vorhandenen while-Schleife auslesen. Die müsstest Du nur noch so mit if-Bedingungen anpassen, dass eine Rekursion entsteht und du ineinander verschachtelte HTML-Listen erhältst. Siehe:
Rekursive Programmierung - PHP - Tutorials, Tipps und Tricks für Webmaster auf Webmasterpro.de
#php/QuakeNet Tutorial - Rekursives Programmieren
 
das mit Rekrusiv ist mir im Moment noch zu intensiev.
Fürs erste geht auch das wiederholen des Codes. Die Einträge die kommen könnten fallen fürs erste eh in diese Gruppen.

Gruppenbuch? ich muss mir das mal ansehen
 
Nicht die effizienteste Variante, aber so sollte es theoretisch hinhauen:

PHP:
function getStellungen()
{
    $query = "
        SELECT
                *
        FROM
                Stellungen
        ORDER BY
                Herkunft    ASC,
                Listenpunkt ASC
        ";

    $result = mysql_query($query);
    
    $grouped = array();

    while ($row = mysql_fetch_object($result)) {
        $grouped[$row->Herkunft][] = $row;
    }

    return $grouped;
}


$stellungen = getStellungen();

foreach ($stellungen as $herkunft => $entries) {
    echo '<h2>' . $herkunft . '</h2>';

    foreach ($entries as $entry) {
        echo '<p>' . $entry->Listenpunkt . '</p>';
    }
}
 

Neueste Beiträge

Zurück
Oben