Suchergebnisse <1>

mein ganze script
PHP:
<?php

$seite = $_GET["seite"];  //Abfrage auf welcher Seite man ist

//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
   {
   $seite = 1;
   }

//Verbindung zu Datenbank aufbauen

$link = mysql_connect("localhost","ff","fff") or die ("Keine Verbindung moeglich");
mysql_select_db("ee") or die ("Die Datenbank existiert nicht");


//Einträge pro Seite: Hier 9 pro Seite
$eintraege_pro_seite = 9;

//Ausrechen welche Spalte man zuerst ausgeben muss:

$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;


//Tabelle Abfragen
//Tabelle hei&szlig;t hier einfach: Tabelle
$abfrage = "SELECT * FROM `news30_story` as s, `news30_users` as u WHERE `story`  LIKE '%".mysql_real_escape_string ($_POST['such'])."%' OR `title`
LIKE '%" . ($_POST['such']) . "%'  AND s.author = u.uid LIMIT $start, $eintraege_pro_seite";
mysql_query($abfrage)
or trigger_error('Fehler in Query "'.$abfrage.'". Fehlermeldung: '.mysql_error(),E_USER_ERROR);
$ergebnis = mysql_query($abfrage);

if($wieviel_seiten!='1') {
echo '<div style="padding-left:16px;padding-top:14px">';
   echo '<table>';
echo ' <div style="position:none">'; if(mysql_num_rows($ergebnis) > 0){
   while($row = mysql_fetch_assoc($ergebnis))
 {
       echo '<tr><td><span style="font-family:times new roman,times,serif;"><span class="title_one" style="font-size: 18pt; color: rgb(0, 0, 0);">'.$row['title'].'</span></span></td></tr>';
        echo '<tr><td><span style="font-family: Verdana; font-size: 10pt; color: #ADADAD">Posted by  <a href="mailto:re@hotmail.de">'.$row['user'].'</A> - '.date('d/m/y h:iA', $row['timestamp']).' - <a href="www.php?id='.$row['id'].'#comments">'.$row['commentcount'].' Comments</a> - - '.$row['rating'].'</span></td></tr>';
        echo '<tr><td><span style="font-family:verdana; font-size: 10pt; ">'.$row['story'].'</span></td></tr>';
   } echo '</div>';
}else{
  echo '<tr><td>Keine Daten</td></tr>';
}

echo '</table>';
echo '</div>';




//Jetzt kommt das "Inhaltsverzeichnis",
//sprich dort steht jetzt: Seite: 1 2 3 4 5


//Wieviele Einträge gibt es überhaupt

//Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
//also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt
//Sonst funktioniert die Blätterfunktion nicht richtig,
//und hier kann nur 1 Feld abgefragt werden, also id

$result = mysql_query("SELECT * FROM `news30_story` as s, `news30_users` as u WHERE `story` LIKE '%".mysql_real_escape_string ($_POST['such'])."%' AND s.author = u.uid");
$menge = mysql_num_rows($result);

//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;

 if ($menge > $eintraege_pro_seite) {
if($wieviel_seiten > 1){
//Ausgabe der Seitenlinks:
echo '<link rel="stylesheet" type="text/css" href="no.css"><div class="pagination">';
echo '<div style="position:absolute;left:144px">';


//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
   {
   $b = $a + 1;

   //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
   if($seite == $b)
      {
      echo "  <span class=\"current\">$b</span> ";


   //Aus dieser Seite ist der User nicht, also einen Link ausgeben
   }else
      {
      echo "  <a href=\"?seite=$b\">$b</a> ";
      }


   }
echo "</div>"; echo "</div>"; echo "</div>";  } } }
?>
 
@qplay
DAS kann nicht funktionieren
PHP:
if($wieviel_seiten!='1')
Wie ich bereits sagte : man kann INTs nicht in STRINGs stecken ... du kannst nicht Äpfel mit Birnen vergleichen wie man immer so schön sagt.
Der INT 1 kann niemals gleich dem STRING '1' sein ... also : 1 != '1'.
Das richtige IF() habe ich gepostet ... aber hier gerne noch mal
PHP:
if($wieviel_seite<1)
 
Ich möchte dich bitten, in deinen nächsten Posts Satzzeichen korrekt zu verwenden. Danke!
Ich versteh nämlich absolut nicht was deine Aussage zu bedeuten hat.

Du solltest dein Code mal debuggen um herauszufinden, wieviele Einträge er findet, wieviele Seiten er erstellen sollte etc.. Lass die deine Variablen mal ausgeben
PHP Debuggen mit var_dump()

Und formatier dein Code. Ich zähle keine Klammern mehr um zu verstehen wo deine Schleifen enden!
 
Ich habe meine variablen debuggt mit var_dump() was muss ich jetzt machen.
Wenn ich mein seite aufrufe steht oben NULL array(0) { } int(1) resource(2) of type (mysql link) int(9) int(0) resource(4) of type (mysql result) NULL und unten steht int(1) float(0.11111111111111).
 
Das braucht man nicht ausprobieren weil es nunmal fehlerhaft ist. Das IF() wird IMMER false liefer da 1 != '1'. Editiere also bitte dein Code-Listing.

Du bist dir deiner Sache da ziemlich sicher. Es ist aber falsch, was du sagst:

PHP:
<?php
if (1 == '1') {
	echo "Erster Test ist wahr<br/>";
}
else {
	echo "Erster Test ist falsch<br/>";
}

if (1 === '1') {
	echo "Zweiter Test ist wahr<br/>";
}
else {
	echo "Zweiter Test ist falsch<br/>";
}

Gibt aus:

Erster Test ist wahr
Zweiter Test ist falsch
 
Wer auch immer da im PHP-Team geschlampt hat ... das 1 == '1' ist eigentlich ein Typ-Fehler da der Char '1' dem ASCII-Wert 49 entspricht was nunmal eben nicht 1 ist.
Ich würde mich auf sowas nicht verlassen. Außerdem macht es den Code entsprechend schwer lesbar wenn man es EIGENTLICH mit Zahlen zu tun hat stattdessen aber Chars oder ganze Strings an solche Stellen schreibt ...
Wie siehts denn mit den Konventionen in einem solchen Fall aus ? Oder gibt es dafür keine ?
 
Zurück