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

Nur bestimmte Datensätze (Kategorien) auslesen

Status
Für weitere Antworten geschlossen.

haddi

Neues Mitglied
Hallo,

ich hab mir zur kleinen Hilfe ein ganz einfaches News/tutoirals Script geschrieben und hab dieses erweitert. Nun will ich aber nur bestimmte kategorien auswählen.
wie mach ich das?

es geht wie folgt:
ich gebe über ein formular name, kategorie, und text ein. ein script liest alle einträge aus der mysqltabelle "news" bzw "tutorials" aus. jetzt habe ich z.b. bei tutorials verschiedene kategorien (linux, windows ...) und will nur eine kategorie auf einmal auf lesen.

hier das script mit dem ich alle einträge auslesen kann:
Code:
<?php
//mysql connecten
include('config_sql.php');
$sql1 = "SELECT * FROM tutorials";
$sql2 = "SELECT * FROM tutorials ORDER BY id DESC LIMIT 0, 4";
$result1 = mysql_query($sql1);
$zeilen = mysql_num_rows($result1);
$result2 = mysql_query($sql2);

//anzahl einträge
echo "<p>Anzahl der Eintr&auml;ge: $zeilen</p><div id='posted_news' />\n";

//while schleife anfang
while($row = mysql_fetch_assoc($result2)) {
  echo 
  "<p><b>" . htmlspecialchars($row['Betreff']) . "</b><br /> " .
  "<small>(" . htmlspecialchars($row['Kategorie']) . ")" . "<br />" 
  . "Eingetragen am: <b>" . $row['Datum'] . "</b>:</small></p>" .
  "<p>" . nl2br(htmlspecialchars($row['Kommentar'])) . "</p><hr width='100%' /> \n";
}
//while ende
echo "</div>";
?>

ich steh grad aufm schlauch :oops:
 
Mir fiele jetzt auch nichts anderes als BcF ein.
Aber noch ein Vorschlag:
Statt der zwei Abfragen kannst du die SQL-Funktion FOUND_ROWS() benutzen. Die gibt dann die Anzahl der Zeilen zurück, die es gegeben hätte, ohne LIMIT.
In deinem Fall:
PHP:
$rsl = mysql_query("SELECT SQL_CALC_FOUND_ROWS * 
        FROM tutorials 
        ORDER BY id DESC 
        WHERE kategorie = 'kategorie'
        LIMIT 0, 4"); // Dein Erebnis mit den Zeilen 0-4
$rows = mysql_query("SELECT FOUND_ROWS()"); // Betroffene Zeilen ohne Limit
$zeilen = mysql_result($rows,0) // Aus dem Ergebnis auslesen
Gruß
Voodoo
 
Zuletzt bearbeitet:
irgendwie klappt das nicht..
Code:
<?php
//mysql connecten
include('config_sql.php');
$rsl = mysql_query("SELECT SQL_CALC_FOUND_ROWS *
        FROM tutorials
        ORDER BY id DESC
        WHERE Kategorie = 'Windows'
        LIMIT 0, 4"); // Dein Erebnis mit den Zeilen 0-4
$row = mysql_query("SELECT FOUND_ROWS()"); // Betroffene Zeilen ohne Limit
$zeilen = mysql_result($row,0); // Aus dem Ergebnis auslesen 

//anzahl einträge
echo "<p>Anzahl der Eintr&auml;ge: $zeilen</p><div id='posted_news' />\n";

//while schleife anfang
[B][I](zeile 41)[/I][/B]while($row = mysql_fetch_assoc($rsl)) {
  echo 
  "<p><b>" . htmlspecialchars($row['Betreff']) . "</b><br /> " .
  "<small>(" . htmlspecialchars($row['Kategorie']) . ")" . "<br />" 
  . "Eingetragen am: <b>" . $row['Datum'] . "</b>:</small></p>" .
  "<p>" . nl2br(htmlspecialchars($row['Kommentar'])) . "</p><hr width='100%' /> \n";
}
//while ende
echo "</div>";
?>

dann bekomme ich den fehler
Anzahl der Einträge: 0

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/web0/html/haddi5/tutorials_windows.php on line 41
 
Sorry,
hatte die where clause im Edit falsch eingefügt^^
Die kommt natürlich direkt nach FROM:
PHP:
$rsl = mysql_query("SELECT SQL_CALC_FOUND_ROWS *        
         FROM tutorials
         WHERE Kategorie = 'Windows'        
         ORDER BY id DESC        
         LIMIT 0, 4") or die(mysql_error());
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben