MySQL - Problem beim Auslesen - kompliziert
Simon
- datenbank
Hi,
ich versuche mithilfe von mysql eine spalte auszulesen und nur 3 zeilen auszugeben.
das problem ist, dass es dynamisch gelesen werden muss, dh. ich kann nur die variable name auf jeder website auf die tabelle abstimmen.
_____________________
| id | name | text |
_____________________|
| 1 | name1 | text1 |
---------------------|
| 2 | name2 | text2 |
---------------------|
| 3 | name3 | text3 |
---------------------|
| 4 | name4 | text4 |
---------------------|
| 5 | name5 | text5 |
---------------------|
| 6 | name6 | text6 |
---------------------|
ich hatte mir folgendes überlegt:
---------------------------------------------------------------
<?
mysql_connect("localhost","user","passwort") or die ("Keine Verbindung moeglich");
mysql_select_db("usrdb_kontadbi_linkleser") or die ("Die Datenbank existiert nicht");
$abfrage1 = "SELECT id FROM tabelle WHERE name='name2'";
$ergebnis1 = mysql_query($abfrage1);
while($row1 = mysql_fetch_object($ergebnis1))
{
echo $row1->id;
}
$abfrage2 = "SELECT text FROM tabelle LIMIT $row, 3";
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2))
{
echo $row2->text;
}
?>
---------------------------------------------------------------
leider funktioniert das aber nicht!!
weiss einer von euch wie ich das richtig mache?
oder kann mir das sogar einer anhand einer csv-datei zeigen?
Hallo
ich versuche mithilfe von mysql eine spalte auszulesen und nur 3 zeilen auszugeben.
das problem ist, dass es dynamisch gelesen werden muss, dh. ich kann nur die variable name auf jeder website auf die tabelle abstimmen.
Ich kann nicht ganz verstehen was du meinst..aber schaun wir mal....
$abfrage2 = "SELECT text FROM tabelle LIMIT $row, 3";
Was mir aber aufällt ist, das die Variable hier ^^^ niergendwo definiert ist.
Ciao, Michi
Hi,
$abfrage2 = "SELECT text FROM tabelle LIMIT $row, 3";
sorry, ich hatte da die variablen nochmal umbenannt.
das sollte $row1 heissen.
hier nochmal neu:
_____________________
| id | name | text |
_____________________|
| 1 | name1 | text1 |
---------------------|
| 2 | name2 | text2 |
---------------------|
| 3 | name3 | text3 |
---------------------|
| 4 | name4 | text4 |
---------------------|
| 5 | name5 | text5 |
---------------------|
| 6 | name6 | text6 |
---------------------|
<?
//HIER DIE MYSQL-VERBINDUNG
mysql_connect("localhost","user","passwort") or die ("Keine Verbindung moeglich");
mysql_select_db("usrdb_kontadbi_linkleser") or die ("Die Datenbank existiert nicht");
//AB HIER WIRD NACH EINER id GESUCHT, DIE ZU name2 GEHÖRT
//DAS WÄRE DANN LAUT TABELLE id=2
$abfrage1 = "SELECT id FROM tabelle WHERE name='name2'";
$ergebnis1 = mysql_query($abfrage1);
while($row1 = mysql_fetch_object($ergebnis1))
{
echo $row1->id;
}
//AB HIER SOLLEN AB DER ZEILE MIT HILFE VON id=2 DIE NÄCHSTEN 3 text
//AUSGEGEBEN WERDEN - DAS SIND text3 , text4 UND text5
$abfrage2 = "SELECT text FROM tabelle LIMIT $row1, 3";
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2))
{
echo $row2->text;
}
?>
Hoffentlich machen es die Kommentare verständlicher ?! x)
Tag Simon.
while($row1 = mysql_fetch_object($ergebnis1))
Der Rückgabewert von mysql_fetch_object ist ein _Objekt_, nicht die Nummer des Datensatzes. Deshalb wird das hier:
$abfrage2 = "SELECT text FROM tabelle LIMIT $row1, 3";
scheitern, da LIMIT numerische Angaben erwartet. Unter der Voraussetzung, dass die Spalte 'id' auf 'AUTO_INCREMENT' gesetzt ist, könntest du die folgenden drei Datensätze so ausgeben
$abfrage2 = "SELECT text FROM tabelle LIMIT $row1->id, 3";
Dabei liefert $row1->id dir den Wert der Spalte 'ID'. Zu beachten ist, dass bei deiner Struktur die ID immer um 1 höher ist als die tatsächliche Datensatznummer, weil der erste Datensatz einer Tabelle immer die Nummer 0 hat, während seine ID bei dir 1 ist. Sollte aber kein Problem darstellen, da du ja die _folgenden_ drei Datensätze ausgeben willst.
Siechfred