• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

php/mysql prob

simon4ever

Guest
ich lerne mir gerade php selbst und habe ein problem, bei dem ich irgendwie nicht weiterkomme.

PHP:
<?
  $abfrage = "SELECT topic FROM test";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis))
    {
    echo $row->topic;
    }
?>

so funktioniert das ganze. wenn ich aber zB ein newsscript machen möchte oder ein gästebuch ist es ja hilfreich nur die letzten 10 oder 20 einträge anzeigen zu lassen. gelesen habe ich dann das:

PHP:
<?
  $abfrage = "SELECT topic FROM test ORDER BY id DESC LIMIT 20";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis))
    {
    echo $row->topic;
    }
?>

nur funktioniert das komischerweise nicht. es kann auch nicht daran liegen, dass ich nicht mehr als 20 einträge habe, da ich zum testen 20 einträge in die tabelle geschrieben habe. als fehlermeldung bekomme ich:
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in D:\My Documents\Homepages\toa\php\topic_simon.php on line 7

weiss jemand, was beim 2ten code falsch ist ?
 

killerchicken_inaktiv

Guest
jo, und zwar müsste es $abfrage = "SELECT topic FROM test ORDER BY id DESC LIMIT 0,20";

heißen
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
hmm

$query = "SELECT * FROM news WHERE category='$cat' ORDER BY id DESC LIMIT 10";

funkz aber auch @ chicken!

--> erklärung plz
 

killerchicken_inaktiv

Guest
Original geschrieben von cart
hmm

$query = "SELECT * FROM news WHERE category='$cat' ORDER BY id DESC LIMIT 10";

funkz aber auch @ chicken!

--> erklärung plz

?? was meinst du?
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
naja du hast geschrieben, dass seine variante mit LIMIT 0,20 klappen müsste, da einfach nur LIMIT 20 nicht ginge.
ich hab aber ein script in dem LIMIT 10 geht.

-> :confused:
 

simon4ever

Guest
thx, aber irgendwie funktioniert das noch nicht :(

so siehts jetzt aus:
PHP:
<?
 include("db_connect.php");
?>
<?
  $abfrage = "SELECT topic FROM test ORDER BY id DESC LIMIT 0,10";
  $ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis))
    {
    echo $row->topic;
    }
?>
habs auf 10 mal begrenzt, aber das spielt ja keine rolle

und ich bekomme:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in D:\My Documents\Homepages\toa\php\topic_neu.php on line 7

also genau das gleich wie vorher :/

wie gesagt, wenn ich "SELECT topic FROM test"; benutze geht alles einwandfrei - er zeigt halt dann alles an
 

killerchicken_inaktiv

Guest
Extrahier mal die Table und schick die mir...
 
Mitglied seit
20.09.2001
Beiträge
1.355
Reaktionen
0
PHP:
echo mysql_errno() . ": " . mysql_error();

versuchs mal mit dem code nach dem mysql_query da findet man den fehler eher :elefant:
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
$ergebnis = mysql_query($abfrage) or mysql_error();

tuts auch ;)
 

killerchicken_inaktiv

Guest
arg, ich hab da was verpeilt. Dein SELECT war fehlerfrei, es muss an was anderem liegen... Mach das mal mit der genaueren Fehlererklärung
 

simon4ever

Guest
mh kommt wieder das gleiche :(

PHP:
<?
 include("db_connect.php");
?>
<?
  $abfrage = "SELECT * FROM test ORDER BY id DESC LIMIT 10";
  $ergebnis = mysql_query($abfrage) or mysql_error();
  while($row = mysql_fetch_object($ergebnis))
    {
    echo $row->topic;
    }
?>

was kann denn ja jetzt nicht passen ? sowit ichs verstehen stimmt doch da alles :/
 

killerchicken_inaktiv

Guest
Du sollst die Daten aus deiner DB extrahieren und sie mir schicken, dann kann ich dir helfen...
 
Mitglied seit
03.08.2002
Beiträge
280
Reaktionen
0
PHP:
<?

  $abfrage = "SELECT topic FROM test ORDER BY id DESC";

  $ergebnis = mysql_query($abfrage);

  while($row = mysql_fetch_object($ergebnis))

    {

    echo $row->topic;

    }

?>

geht es so?
 
Mitglied seit
03.08.2002
Beiträge
3.257
Reaktionen
14
PHP:
$result = mysql_query($query) or die(mysql_error());

if (mysql_num_rows($result) > 0){
	while ($row = mysql_fetch_assoc($result)){
		echo $row["topic"];
    }
}

so lese ich eigentlich mittlerweile sql querys aus. Versuch das mal, ob es das tut.
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
und zum 2ten mal:

$result = mysql_query($abfrage)

--> du solltest ihm schon sagen welche db usw.....
und bibas beitrag solltest du auch beachten:
mit $abfrage['array'] auslesen
 

simon4ever

Guest
<?

$abfrage = "SELECT topic FROM test ORDER BY id DESC LIMIT 10";

$result = mysql_query($abfrage) or die(mysql_error());

if (mysql_num_rows($result) > 0){
while ($row = mysql_fetch_assoc($result)){
echo $row["topic"];
}
}

?>


so sieht das ganze jetzt aus. als antwort bekomme ich "Unknown column 'id' in 'order clause'"
liegt also irgendwie an der db oder ? aber die id muss ich doch nicht selbst zuweisen, die ist doch von anfang an da dachte ich ?
 

cart

Technik/Software Forum
Mitglied seit
01.08.2002
Beiträge
4.873
Reaktionen
0
Ort
New York
LLLOOOLLL

nichts ist selber da... id ist "normalerweise" der primary key und auf auto_increment gestellt, damit es mit jedem eintrag mitläuft....
 

simon4ever

Guest
muh ich dummerchen :8[:

k, hab id mit auto_increment eingestellt und alles funzt :)

vielen dank euch allen, habt mir sehr geholfen !
 
Oben