Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Per Script letzte Zeile ausgeben [gelöst]

Diskussion: Per Script letzte Zeile ausgeben [gelöst] im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo alle zusammen, Ich möchte per PHP Script die letzte Zeile einer Tabelle ausgeben, dass Primary Key Feld der ...

Antwort
Alt 18.11.07, 16:50   #1 (permalink)
 
Registriert seit: 25.03.07
rusty-spoon Leistung: Facit NTK
Likes: 0
Per Script letzte Zeile ausgeben [gelöst]

Anzeige

Hallo alle zusammen,

Ich möchte per PHP Script die letzte Zeile einer Tabelle ausgeben, dass Primary Key Feld der Tabelle heißt 'contentnr' und hat das Attribut 'AUTO_INCREMENT' und erhöht sich logischerweise bei jedem Neueintrag um eins.

Jetzt habe ich mir gedacht ich lasse mir einfach die Anzahl der Zeilen per mysql_num_rows() ausgeben, speichere den Wert in eine Variable und verwende diese in der WHERE Bedingung:

Code:
		// Daten ausgeben
		$sql = "SELECT * FROM mcs_inhalte";
		$ergebniss = mysql_query($sql, $Server);

		$num_rows = mysql_num_rows($ergebniss);
		echo "$num_rows ";


  // hier wird noch nicht die letzte Zeile aufgelistet sondern nur eine Resource ID angezeit		
		$sql = "SELECT * FROM mcs_inhalte WHERE contentnr = $num_rows";
		$ergebniss = mysql_query($sql, $Server);
		echo $ergebniss;
ich bekommen nur folgende Ausgabe:

Code:
20 Resource id #6
sieht einer den Fehler den ich mache?
oder kann ich das Ergebnis von mysql_num_rows(); nicht in einer WHERE Bedingung nutzen weil es sich auf eine andere Ergebnistabelle bezieht?

Vielen Dank im vorraus

rusty-spoon
rusty-spoon ist offline   Mit Zitat antworten
Alt 18.11.07, 17:17   #2 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

Hallo,
warum nutzt du nicht die SQL-Funktion max()?
Code:
$sql = "select * from mcs_inhalt where contentnr = max(contentnr)";
$result = mysql_query($sql), $server)
$row = mysql_fetch_assoc($result);

echo $row['spalte_schiessmichtot'];
edit: oder noch besser:
Code:
$sql = "select * from mcs_inhalt order by contentnr desc limit 1";
...
mfg, metax.
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 18.11.07, 17:42   #3 (permalink)
 
Registriert seit: 17.01.06
Oi!Alex Leistung: 8086
Likes: 7
Standard

Zitat:
Original von metax.
...
Code:
$sql = "select * from mcs_inhalt order by contentnr desc limit 1";
...
...
Das ist wohl die übliche Prozedur soetwas anzugehen, nur so als Tip ersetze das * lieber durch konkrete Tabellen bezeichnungen (damit nur Daten selectiert werden die du benötigst) - man sollte auch in kleinen projekten sauber und performant programmieren.

*edit*
Achja und konventionen einhalten ist auch hübsch gerade um auch die SQL Abfrage besser lesen zu können also:

Zitat:
SELECT spa1, spa2, spa3 FROM tab ORDER BY spa1 DESC LIMIT 1;
Oi!Alex ist offline   Mit Zitat antworten
Alt 18.11.07, 23:36   #4 (permalink)
 
Registriert seit: 07.07.04
M.D.Geist Leistung: Facit NTK
Likes: 0
Standard

Hallo rusty

Du bekommst keine Ausgabe weil "mysql_query()" nur einen Zeiger auf einen Datensatz zurück gibt. Um an den/die Datensätz(e) ranzukommen musst du den Zeiger z.b. an "mysql_fetch_array()" übergeben.

Code:
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
echo $row['spaltenname1'];
echo $row['spaltenname2'];
...
Achtung: Das obige Beispiel ist nur sinnvoll wenn du nur 1 Datensatz ausgeben willst. Ansonsten musst du noch eine Schleife um "mysql_fetch_array()" bauen. Die Funktion setzt dann den Zeiger bei jedem Aufruf auf den nächsten Datensatz bis das Ende erreicht ist.
M.D.Geist ist offline   Mit Zitat antworten
Alt 19.11.07, 12:21   #5 (permalink)
Themenstarter
 
Registriert seit: 25.03.07
rusty-spoon Leistung: Facit NTK
Likes: 0
Danke für die vielen Antworten,

ich habe es jetzt wie folgt gelöst:

Code:
		$sql = "SELECT contentnr, ueberschrift, inhalt, status FROM mcs_inhalte ORDER BY contentnr DESC LIMIT 1";
		$ergebniss = mysql_query($sql, $Server);
		$daten = mysql_fetch_array($ergebniss);
		echo $daten['contentnr']." ";
		echo $daten['ueberschrift']." ";
		echo $daten['inhalt']." ";
		echo $daten['status']." ";
Das mit dem Zeiger habe ich schon vermutet war mir aber noch nicht im klaren darüber wie ich die Ergebnisse Abfange.

viele Grüße
rusty
rusty-spoon ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Per Script letzte Zeile ausgeben [gelöst]
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
awesome + urxvt -> letzte zeile doppelt loose Linux/UNIX 5 17.02.10 13:01
Killerspiele, die letzte detrexer News & Ankündigungen 20 18.06.07 10:55
Ausgeben von Zeile x bis Zeile y antcool Linux/UNIX 3 27.10.05 16:29
XP LOG Datei also letzte Rettung enigma Windows 4 10.08.03 23:48
*looooool* das letzte shice Fun Section 0 18.04.03 12:52


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61