Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Blätterfunktion innerhalb eines topics?“

A

aydesign

Guest

Hi,
ich versuch mal zu erklären wobei ich hilfe bräuchte :p

Hab ein Script gebaut bei dem user dann ihre homepage eintragen können und andere können dann ihre Meinung abgeben. Das ganze ist recht simple gebaut und ohne Anmeldung. Hab für die erste Seite (praktisch die übersicht über alle eingetragenen Seiten) eine Blätterfunktion eingebaut die auch Prima funtkioniert.

Zum Problem: Die selbe Blätterfunktion möchte ich aber auch auf der Seite einbauen die dann die Meinung zur jeweiligen Seite enthält. Diese Seite heißt dann aber schon ...view_site.php?id=3 (z.B. wäre das jetzt die dritte eingetragene Seite). Meine Blätterfunktion leitet aber so auf die aufgeteilten Seiten weiter: yoursite.php?page=2

Das überschneidet sich dann anscheinend und es kommt diese Fehlermeldung:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in....

Ausschnitt der view_site.php wo ich die Blätterfunktion hab:
PHP:
    $tbl_name2 = "opinion";
    
    $pfad = $_SERVER['PHP_SELF'];
    $query = mysql_query("SELECT a_id FROM $tbl_name2");
    $datensaetze_pro_seite = "2";
    $p = "3";
    $total = mysql_num_rows($query);
    $seiten = ceil($total / $datensaetze_pro_seite);
    
    if(empty($_GET['page'])){
        $page = 1;
    }elseif($_GET['page'] <= 0 || $_GET['page'] > $seiten){
        $page = 1;
    }else{
        $page = mysql_real_escape_string($_GET['page']);
    }
        $links = array();
    if(($page - $p) < 1){ $davor = $page - 1;  }else { $davor = $p; }            
    if(($page + $p) > $seiten){ $danach = $seiten - $page; }else{ $danach = $p; }    
        $off = ($page - $davor);
    if ($page- $davor > 1){
        $first = 1;
           $links[] = "<a href=\"$pfad?page=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";      
    }      
    if($page != 1){
        $prev = $page-1;
        $links[] = "<a href=\"$pfad?page=$prev\" title=\"Eine Seite zurueck blaettern\"> &laquo;</a>\n";     
    }   
    for($i = $off; $i <= ($page + $danach); $i++){
      if ($i != $page){
            $links[] = "<a href=\"$pfad?page=$i\">$i</a>\n";
      }elseif($i == $seiten) {
            $links[] = "<span class=\"current\">[ $i ]</span>\n";  
      }elseif($i == $page){
            $links[] = "<span class=\"current\">[ $i ]</span>\n";
      }
    }                
    if($page != $seiten){
        $next = $page+1;
        $links[] = "<a href=\"$pfad?page=$next\" title=\"Eine Seite weiter blaettern\"> &raquo; </a>\n";
    }    
    if($seiten - $page - $p > 0 ){
        $last = $seiten; 
        $links[] = "<a href=\"$pfad?page=$last\" title=\"Zur letzten Seite springen\">... Letzte &raquo;</a>\n";
    }
    $start = ($page-1) * $datensaetze_pro_seite;
    $link_string = implode(" ", $links);
    
    $abfrage = mysql_query("SELECT a_id, a_name, a_email, a_answer, a_datetime FROM user LIMIT $start,$datensaetze_pro_seite ");

    while($rows = mysql_fetch_array($abfrage)) {

    echo "<table width=\"400\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"1\" bgcolor=\"#CCCCCC\">";
    echo "<tr>";
    echo "<td><table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"#FFFFFF\">";
    echo "<tr>";
    echo "<td bgcolor=\"#F8F7F1\"><strong>Antwort:</strong></td>";
    echo "<td bgcolor=\"#F8F7F1\">$rows[a_id]</td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td width=\"18%\" bgcolor=\"#F8F7F1\"><strong>Name:</strong></td>";
    echo "<td width=\"77%\" bgcolor=\"#F8F7F1\">$rows[a_name]</td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td bgcolor=\"#F8F7F1\"><strong>E-Mail:</strong></td>";
    echo "<td bgcolor=\"#F8F7F1\">$rows[a_email]</td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td bgcolor=\"#F8F7F1\"><strong>Meinung:</strong></td>";
    echo "<td bgcolor=\"#F8F7F1\">$rows[a_answer]</td>";
    echo "</tr>";
    echo "<tr>";
    echo "<td bgcolor=\"#F8F7F1\"><strong>Am:</strong></td>";
    echo "<td bgcolor=\"#F8F7F1\">$rows[a_datetime]</td>";
    echo "</tr>";
    echo "</table>";
    echo "</td>";
    echo "</tr>";
    echo "</table>";
    echo "<br />";
    }

    echo "<div id=\"navigation\">\n";
    echo "<span class=\"pages\">Seite ".$page." von ".$seiten."</span>\n";
    echo $link_string;
    echo "</div> \n";
Hoffe ich habe mich verständlich ausgedrückt :D

Bye Andy
 

Duddle

Posting-Frequenz: 14µHz

AW: Blätterfunktion innerhalb eines topics?

Hachja, wäre es nicht schön wenn PHP soetwas wie Kommentare anbieten würde, damit man Quellcode auch für einen Dritten sofort verständlich machen kann?

Egal, jedenfalls bin ich noch dabei deine Frage zu verstehen: es gibt ein Verzeichnis (view_site.php), dieses hat eine Blätterfunktion und verlinkt auf yoursite.php per ID. yoursite.php ist die Detailansicht eines Homepage-Eintrages und hat offenbar Kommentare. In den Kommentaren willst du jetzt blättern. Ist das so richtig?

Falls ja, sehe ich dein Problem nicht. Du übergibst dann eben 2 Parameter an yoursite.php, $id für die Homepage-Kennung und $page für die Kommentarseite. Im Code prüfst du dann ob $id (bzw. $_GET['id']) gesetzt ist und fügst es entsprechend an die Ziel-URL an oder nicht.



Duddle
 
A

aydesign

Guest

AW: Blätterfunktion innerhalb eines topics?

Hi,

ich meinte das so. Die yoursite.php ist die index datei mit der Übersicht über alle eingetragenen Seiten ( Hier funktioniert die Blätter funktion auch:

Ich poste einfach mal den Link:

Hab hier so eingestellt dass man nur 2 Einträge pro Seite sieht, um besser zu verstehen.

Würde man jetzt auf eine Website klicken, z.B. www.chip.de dann hat die ja die id 3, weil sie als drittes eingetragen worden ist. Man wird also auf die view_site.php?id=3 weitergeleitet.

Hier habe ich oben die Website die eingetragen wurde mit den Infos und unten das Kommentarformular. Und dazwischen werden die Kommentare zur jeweiligen Seite angezeigt und hier möchte ich auch eine Blätterfunktion, da sonst die Seite recht langwerden könnte.

Aber die Seite würde dann mit Blätterfunktion: view_site.php?id=3?page=2 heißen und da spinnt er und gibt die Meldung aus:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ....... on line 100.

Line 100 = while($rows = mysql_fetch_array($abfrage)) {


Hoffe es ist verständlicher formuliert... :uhm:


Andy
 

Duddle

Posting-Frequenz: 14µHz

AW: Blätterfunktion innerhalb eines topics?

Ja, der Fehler ist schlichtweg, dass in $abfrage keine Ressource, sondern ein FALSE drin steht. FALSE ist der Rückgabewert von mysql_query() bei einem Fehler. Der Fehler kann alles mögliche sein, deshalb baut man als Entwickler üblicherweise in der Testphase eine Fehlerabfrage ein. Konkret:
PHP:
    $abfrage = mysql_query("SELECT a_id, a_name, a_email, a_answer, a_datetime FROM user LIMIT $start,$datensaetze_pro_seite ") or die(mysql_error());
Das bricht PHP ab und wirft den Fehler aus. Dann solltest du sehen, was du falsch machst. Ich tippe auf falsch initialisierte Variablen, die du im LIMIT einsetzt.

Edit: weil ich das vorhin übersehen habe: bitte gewöhne es dir ab, Zahlen als Strings zu speichern, besonders wenn du damit rechnen willst. PHP kann das zwar dynamisch typen/interpretieren, aber du baust eine unnötige Fehlerquelle ein.


Duddle
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben