PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   erstes ergebnis(?) des resultsets anzeigen? (https://www.php-resource.de/forum/php-developer-forum/1821-erstes-ergebnis-des-resultsets-anzeigen.html)

Typomaniac 26-07-2001 17:33

hallo mal wieder :)

also entweder ich stell mich zu blöd an oder es ist doch ein wenig trickreicher:

ich habe eine db abfrage und werf das ergebnis (oder hol´s) in ein assoz. array und möchte anschliessend aber nur das erste oder vielleicht erste und 2te ergebnis ausgeben lassen...mein code lautet so:

[CODE]


<?

require("config.inc.php");

$db = mysql_connect($dbhost, $dblogin, $dbpass);
mysql_select_db($dbname,$db);

$result = mysql_query("SELECT * FROM news ORDER by date DESC",$db);
?>

<? while ($daten = mysql_fetch_array($result)) {
?>


<? echo $daten[title];?><br><br>
<? echo $daten[date];?><br>


<? } ?>

[CODE]

möchte also aus der tabelle news das erste ergebnis (titel und datum) ausgeben lassen; so wie´s jetzt ist bekomme ich ja ALLE ergebnisse..

vielen dank und gruesse

andre

Sky 26-07-2001 19:56

Code:


<? //connect und query hier... ?>

<? $daten = mysql_fetch_array($result))
?>

<? echo $daten['title']; ?><br><br>
<? echo $daten['date']; ?><br>


Typomaniac 26-07-2001 22:02

hmm? echt? und was ist mit dem 2ten "ergebnis"?

gruss

tm

n0NAMe 26-07-2001 23:03

2.- n.tes Ergebnis
 
Hi !

Wenn du den Code von Sky einfach um ein while erweiterst, dann sollten alle Ergebnisse nacheinander ausgegeben werden.

-----
<? while ($daten = mysql_fetch_array($result))
{
?>

<? echo $daten['title']; ?><br><br>
<? echo $daten['date']; ?><br>
<? } ?>
-----

n0NAMe

Typomaniac 27-07-2001 08:34

ähhmm...entweder ich kapier´s nicht oder ich hab die frage etwas missverstaendlich formuliert...mein scriptlet funktionier so schon, es werden alle ergebnisse / der GESAMTE inhalt ausgegeben, ich aber möchte nur datensatz nummer 1 und 2 oder von mir aus 5 ...wie limitiere ich denn das ? kann ich die ergebnisse im array nicht direkt ansprechen??

vielen dank und gruesse

andre

Sky 27-07-2001 10:37

noname scheint das problem nicht so ganz erfasst zu haben, da sein code bereits im ersten posting steht :D

du kannst die ergebnisse nicht direkt ansprechen, da die von fetch_array zurückgegebenen Rows in einem eindimensionalen Array gespeichert werden. aber du könntest ja einem array date[] und einem array title[] diese werte zuweisen:

Code:

ccount=0;
while ($daten = mysql_fetch_array($result)) {
  $title[ccount] = $daten['title'];
  $date[ccount]  = $daten['date'];
  ccount++;
}

dann enthalten $title[0] und $date[0] den ersten datensatz, $title[1] und $date[1] den zweiten etc.
wenn es für dich einfacher ist, kannst du ccount auch anfangs auf 1 setzen.

eine andere lösung wäre:
Code:

<?
$number = 4;  //4 Datensätze anzeigen
for (i=1;i<=$number;i++) {
$daten = mysql_fetch_array($result))
?>
<? echo $daten['title']; ?><br><br>
<? echo $daten['date']; ?><br>
<? } ?>

P.S.: Stell mal jemand das Parsing von vB-Commands in CODE-Blöcken aus! [ i ]

[Editiert von Sky am 27-07-2001 um 10:39]

sprengstoff 27-07-2001 11:03

Du kannst das Ganze auch schon im MYSQL Query limitieren:

$result = mysql_query("SELECT * FROM news ORDER by date DESC LIMIT $sovieledatensätzewieduwillst",$db);

so einfach ist das!

mfG
Guido

Typomaniac 27-07-2001 11:18

-G- genau das hat mich irritiert....danke erstmal für die antwort :) allerdings funktionierts bei mir noch nicht...
in der ersten lösung bekomme ich nen parse error wg fehlendem semikolon und ich find´´s grad net und bei der zweiten einen parse error in der zeile 11 (ccount=0)

Code:



<?

datenbankconnection zeugs halt

$result = mysql_query("SELECT * FROM news ORDER by n_date DESC",$db);

ccount=0;
while ($daten = mysql_fetch_array($result)) {
  $title[ccount] = $daten['n_title'];
  $date[ccount]  = $daten['n_date'];
  ccount++;
}

?>

<? echo $title[0] ; ?><br><br>
<? echo $date[0]; ?><br>
<? echo $title[1] ; ?><br><br>
<? echo $date[1]; ?><br>

vielleicht siehst du den fehler? sorry fürs nerven...

gruss

andre

BrainBug 27-07-2001 11:41

ccount muß $ccount heissen.

und falls du nur ganz spezielle Datensätze aus dem Resultset holen willst, kannst du das auch mit

mysql_data_seek($result,10);

machen. Da hast du nun den 10 Resultset-Eintrag selektiert und kannst den mit dem nächsten mysql_fetch_array() auslesen. Mehr unter http://www.php.net/manual/de/functio...-data-seek.php
Ansonsten ist ein LIMIT x,y im Query ganz brauchbar (wie sprengstoff schon schreibt) (x ist die Startposition, y die Laufweite -> 0,10 würde die ersten 10 Einträge holen).

[Editiert von BrainBug am 27-07-2001 um 11:45]

Sky 27-07-2001 11:47

naja.. wie gesagt, für tippfehler übernehme ich keine haftung *g* passiert mir immer mal wieder, dass ich das $ vergesse.

Typomaniac 27-07-2001 11:48

und wie immer bedanke ich mich ganz herzlich für die hilfe!
ihr seid halt doch die besten :)

danke :))))

andre

Typomaniac 27-07-2001 12:05

grrr...jetzt kommt gar nix mehr..zu früh gefreut! danke auch an sprengstoff..ich hab seine antwort voll übersehen....kann allerdings sein dass es an der db selbst bzw deren inhalt jetzt liegt weil bei beiden jetzt gar nichts kommt....(auch kein fehler)

gruesse

andre


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:52 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG