# Inhalt des letzten Eintrages in einer MySQL Datenbank auslesen



## InFlame (30. Dezember 2003)

hallo,

also ich habe bei meiner Datenbank eine zeile die automatisch hochrechnet, sobald ein neuer eintrag eingetragen wird. das ist ja auch gleichzeit der stand, wieviele einträge in der datenbank sind.
und genau das würde ich gerne auslesen lassen. also immer die ID spalte vom letzten Eintrag. nur wie mache ich das ich limitiere ich das auf die  letzte?

Vielen dank schonmal

Grüße

InFlame

p.s. bin noch blutiger anfänger


----------



## Fabian H (30. Dezember 2003)

Hm, vielleicht so:

```
SELECT `alles`, `was`, `du`, `brauchst`
FROM `posts`
ORDER BY `id`
DESC LIMIT 1;
```


----------



## InFlame (30. Dezember 2003)

hmm... als ergebnis kommt das:

Resource id #2


----------



## InFlame (30. Dezember 2003)

da kommt wieder "Resource id #2" raus.
weiß jemand warum?
denn eigentlich kann der das auslesen... wo anders ließt er nämlich alle aus und das geht.


----------



## Fabian H (30. Dezember 2003)

Vielleicht weil du nicht _echo mysql_query()_, sondern
_$aResultArray = mysql_fetch_array( mysql_quey( "SQL QUERY" ) );_
?


----------



## InFlame (30. Dezember 2003)

hmm, ok, versteh zwar nich ganz, was du meinst, aber nachdem ich das so geschrieben habe, kommt wenigstens "1" raus, was allerdings auch falsch is 

so sieht mein code aus:

```
<center>Es sind bisher "<?php echo mysql_query("SELECT rezeptid FROM hauptgericht 
ORDER BY rezeptid DESC LIMIT 1") 
or die("Auslesen nicht möglich: " . mysql_error()); ?>" 
Rezepte in der Datenbank.<p>&nbsp;</p></p></center>
```
(nicht wundern: wird ne rezept datenbank für meine mutter 

also wie oben gesagt, anstatt "Resource id #2" kommt jetzt "1" raus, was auch nicht richtig ist.

was heißt DESC eigentlich? hab bei php.net nix gefunden. genauso damit WHERE id = LAST_INSERT_ID(); muss man last_insert... erst noch definieren

vielen dank für eure hilfe!


----------



## Fabian H (30. Dezember 2003)

1. Tu bite bite bitte dir und den anderen einen Gefallen und poste nicht so lange 
Codezeilen, sondern mach lieber ein paar Umbrüche mit rein.

2. Wieso sagst du erst jetzt, dass du die aktuelle Anzahl an Rezepten auslesen 
willst. Oder willst du doch was anderes und hast dich nur verschrieben?

3. Wenn schon die Anzahl, dann so:

```
echo mysql_num_rows(mysql_query("SELECT `id` FROM `rezepte`;"));
```


----------



## melmager (30. Dezember 2003)

Jo da braucht ein paar zeilen Code mehr 

<?PHP

```
$db = mysql_connect_db("datenbank","user","passwd") or die("Keine db");
$err = mysql_select_db("dbname") or die("kann db nicht ansprechen");
$erg = mysql_query("SELECT rezeptid FROM hauptgericht ORDER BY rezeptid DESC LIMIT 1") or die("Auslesen nicht möglich: " . mysql_error()); 
$row = mysql_fetch_row($erg);

echo "$row[0]  Rezepte in der Datenbank";
```
?>


----------



## Martin Schaefer (30. Dezember 2003)

Hi,

was ist damit?

SELECT COUNT(*) FROM tabellenname;

Gruß
Martin


----------



## Fabian H (30. Dezember 2003)

melmager: Sicher, dass dein Script funktioniert?

Dann vielleicht höchstens noch so:

```
$iResult = mysql_query("SELECT COUNT(`id`) AS `anzahl` FROM `rezepte`;");
$aValues = mysql_fetch_arary( $iResult );

printf( "%i Rezepte vorhanden", $aValues['anzahl'] );
```

Edit: hm, zu spät


----------



## InFlame (30. Dezember 2003)

> _Original geschrieben von Fabian Hofmann _
> *1. Tu bite bite bitte dir und den anderen einen Gefallen und poste nicht so lange
> Codezeilen, sondern mach lieber ein paar Umbrüche mit rein.
> 
> ...


 zu 1. ok, sorry... habs editiert, besser?

2. hmm... gut, so kann mans auch ausdrücken, hehe...

3. da gibt er auch nur "1" wieder


----------



## InFlame (30. Dezember 2003)

> _Original geschrieben von Martin Schaefer _
> *Hi,
> 
> was ist damit?
> ...


 kommt auch leider nur "1" raus


----------



## Fabian H (30. Dezember 2003)

kann es sein, dass nur eine zeile in der tabelle vorhanden ist?

Ansonsten, wie gesagt, mal mit _COUNT(`id`)_ versuchen.

Edit: hmm

Auch übrigens: Zeile is immernoch zu lang


----------



## InFlame (30. Dezember 2003)

> _Original geschrieben von Fabian Hofmann _
> *melmager: Sicher, dass dein Script funktioniert?
> 
> Dann vielleicht höchstens noch so:
> ...


 da kommt dann gar nichts...


----------



## Fabian H (30. Dezember 2003)

Guten Morgen!

Kommt nichts gibts nicht.

Einfach mal ein _or die(mysql_error())_ an dein mysql_query anhängen 

_COUNT(`rezeptid`)_ sollte gehen.

Ps: Wir wissen immer noch nicht, ob jetzt wirklich nur eine Zeile in den Rezepten 
ist.


----------



## ultrasonic (30. Dezember 2003)

Hast Du welche drinne oder nicht?


----------



## melmager (30. Dezember 2003)

dann versuch doch mal meine Version

und poste dann den Fehler der kommt.

Alles andre ist dann: rate mal mit Rosental


----------



## InFlame (30. Dezember 2003)

also
es sind 30 einträge und 9 spalten.

@melmager: da kommt keine fehlermeldung, es kommt einfach gar nix.... also keine ausgabe.

so sieht jetzt meine zeile aus:

```
<?php echo mysql_query("SELECT COUNT('rezeptid') FROM hauptgericht") ....
```


----------



## melmager (30. Dezember 2003)

> @melmager: da kommt keine fehlermeldung, es kommt einfach gar nix.... also keine ausgabe.



das kann schon mal nicht sein - entweder es kommt ne fehlermeldung

oder minimum

x Rezepte in der Datenbank

Offtoppic:
 1500 Post 

Deine Codezeile ist immer noch falsch :-(
echo mysql_query ....... usw kann nicht gehen


----------



## ultrasonic (30. Dezember 2003)

schicke mir doch mal dein script und die Tabellenstruktur
Edit: InFlame Hat es dir die Sprache verschlagen?

Einfach abhauen tztztzt

@melmager
Offtropic:1500 Gratulation


----------



## InFlame (30. Dezember 2003)

> _Original geschrieben von ultrasonic _
> *schicke mir doch mal dein script und die Tabellenstruktur
> Edit: InFlame Hat es dir die Sprache verschlagen?
> 
> ...


 tut mir leid, war nicht böse gemeint. musste kurz weg vom computer. außerdem hats mich genervt, das nix ging 

habe dir die scripts geschickt. die tabellenstruktur? da gibts nich viel zu sagen... sind nur 9 spalten


----------



## InFlame (30. Dezember 2003)

> _Original geschrieben von melmager _
> *das kann schon mal nicht sein - entweder es kommt ne fehlermeldung
> 
> oder minimum
> ...


 ok, gut, "Rezepte vorhanden " steht schon da, aber eben keine zahl... also im prinzip nix... 



> Offtoppic:
> 1500 Post


 gratulation, ich muss da noch einige fragen stellen um soweit zu kommen, hehe 



> Deine Codezeile ist immer noch falsch :-(
> echo mysql_query ....... usw kann nicht gehen


 hmm... ok... wie dann? :-(


----------



## ultrasonic (31. Dezember 2003)

Moin,

Hier mal auf die schnelle ein kleiner Ansatzvon mir.
(Ich weis es gibt viele Wege, das ist hat meiner  )



```
<?php
$dbserver="localhost";   //Name des Datenbankservers
$dbname="rezepte";  //Name der Datenbank
$dbuser="root"; //Username der Datendank
$dbpass=""; //Datenbankpasswort

 // Verbindung zur DB aufbauen
$db  = mysql_connect  ( $dbserver, $dbuser, $dbpass);
echo mysql_error($db);
// Abfrage ob verbindung geklappt hat ...,wenn nein Fehler ausgabe
if (!mysql_select_db( $dbname))
      echo mysql_error($db);
?>
<html>
<head>
 <title>Rezepte auslesen</title>
</head>
<body>
 <center><h1>Alle bisher eingetragenen Rezepte</h1>
<?php
// Auslesen "anzahl"
$sqlbefehl = "SELECT COUNT('rezeptid') AS anzahl FROM hauptgericht";
// Datenbankabfrage
$ergebnis = mysql_query($sqlbefehl,$db);
//Array bilden
$zeile = mysql_fetch_array($ergebnis);
?>
<br>
 <center>
    Es sind bisher "<?echo $zeile["anzahl"]; ?>"  Rezepte in der Datenbank.
   <p>&nbsp;</p>
```



Ersetze einfach mal den ganzen oberen Teil deines Scriptes

Das komplette habe ich dir als mail gesendet

Guten Rutsch 
Ultrasonic


----------



## InFlame (31. Dezember 2003)

vielen dank für deine hilfe.

hätte da jetzt aber noch eine frage:


```
$ergebnis = mysql_query($sqlbefehl,$db);
```
warum nochmal $db? die datenbankverbindung ist doch schon offen. oder wird damit nur überprüft, ob sie noch immer offen ist

nochmal vielen dank für deine hilfe


----------



## ultrasonic (31. Dezember 2003)

Ja hast recht.
ist ne dumme angewohnheit vonmir

Auszug Manual
resource mysql_query ( string Anfrage [, resource Verbindungs-Kennung])


mysql_query() sendet eine Anfrage an die zur Zeit aktiven Datenbank, die mit der angegebenen Verbindungs-Kennung assoziiert wird. Wird die Verbindungs-Kennung nicht angegeben, wird die zuletzt geöffnete Verbindung angenommen. 

Ps: auslesen tut er doch jetzt richtig oder?
Mfg
Ultrasonic


----------



## InFlame (31. Dezember 2003)

ja, es funktioniert jetzt.
darf ich nochmal was fragen?
braucht man das array immer, wenn man was von der datenbank ausgeben will, oder? query holt nur die daten, oder?


----------



## ultrasonic (31. Dezember 2003)

stehe ich jetzt auf dem schlauch.
du kannst 

 $name=$zeile["name"]

doch auch als Variable weiterverarbeiten  
oder wie was wo?


----------



## InFlame (31. Dezember 2003)

ich mein das allgemein.
da ich eben kein array gemacht habe. deshalb meine frage
ob query ausließt, aber nicht anzeigt und man deshalb ein array braucht...


----------



## ultrasonic (31. Dezember 2003)

Mann muss es erst auslesen mit Querry (Abfrage an die Datebbank)

dann kannst du das ganze in ein Array schreiben und nach belieben einzeln oder auch Zeilenweise auslesen

Siehe: PHP Manual ->mysql_query

würde dir auch raten anstatt den Umweg über die variablen zu machen 

```
<?$name=$zeile["name"]; ?>
 <td>Rezept Name: <?php echo $name; ?></td>
```
gleich das array auszugeben



```
<td>Rezept Name: <?php echo $zeile["name"]; ?></td>
```


----------



## InFlame (31. Dezember 2003)

ok, das wollte ich wissen  
danke

hab das bei php.net schon gelesen, wollts nur nochmal bestätig haben, dass das wirklich so ist, wie ich mir dachte


----------



## ultrasonic (31. Dezember 2003)

alles klar


----------

