php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 02.02.2008, 19:42  
Benutzer
 
Registriert seit: 05.09.2007
Beiträge: 69
Minimi befindet sich auf einem aufstrebenden Ast
Standard Wie kann ich mit php/mysql einen Datensatz anzeigen lassen, wenn einer vorhanden ist?

Hallo zusammen,
ich muss euch mal wieder um Hilfe beten ...

Also:
Ich bin gerade an einem Forum zu basteln (kein so richtig professionelles) und ich wollte eigentlich, wenn ein Datensatz vorhanden ist den anzeigen lassen und wenn keiner vorhanden ist dann nicht. Wie kann ich das machen?

Falls nötig Code:
PHP-Code:
  <html>
<head>
<style type="text/css">
<!--
body {
margin-left: 20% ;
margin-right: 20% ;
margin-top: 10px ;
margin-bottom:0px ;
}
.tab1 {
border-color: black;
border-style: solid;
border-width: 2px 2px 0px 2px;
width:800px;
height:125px;
}
.tab2 {
border-color: black;
border-style: solid;
border-width: 0px 2px 2px 2px;
width:800px;
height:50px;
}
.button {
width: 85px;
height: 18px;
font: 11px verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif;
}
.Topic {
background-image: url('green.jpg');
background-repeat: no-repeat;
padding-top: 7px;
width: 531px;
height:31px;
}
.SmallTopic {
background-image: url('blue.jpg');
background-repeat: no-repeat;
padding-top: 7px;
width: 531px;
height:31px;
}
-->
</style>
<title></title>
<meta name="author" content="Allgemein">
<meta name="generator" content="Ulli Meybohms HTML EDITOR">
</head>
<body text="#FFFFFF" bgcolor="#98CB00" link="##0020F" alink="##0020F" vlink="##0020F">
<table cellpadding="0" cellspacing="0" bgcolor="black">
<tr>
 <td border="1" bgcolor="#98CB00" width="800px" height="125px"><div class="tab1">
 <br><h1 style="padding-left: 50px;"><font size="+1">Airsoft Team</font>
 <h2 style="padding-left: 200px;"><font size="+3">FAKE</font></h2></h1></div></td>
</tr>
<tr>
<td align="right" class="tab2" bgcolor="#98CB00">
 <table cellspacing="0" cellpadding="0">
<tr style="padding-left: 430px;">
 <td width="80px"><div>Benutzername:</td> <td style="padding-left: 10px;"><input class="button" type="text"><input type="checkbox"> Angemeldet bleiben?</div></td>
 </tr>
 <tr style="padding-left: 430px;">
 <td width="80px">
<div>Passwort:</td><td style="padding-left: 10px;"> <input class="button" type="password" > <input value="Anmelden" type="submit"></div></td>
</tr>
</table>
  </td>
</tr>
<tr>
<td height="50px"> </td>
</tr>
<tr>
 <td style="padding-left: 5px;" valign="top" bgcolor="black">
<?php
@mysql_connect("Host""User""PW")        or die("Verbindung zu MySQL gescheitert!");
@
mysql_select_db("db") or die("Datenbankzugriff gescheitert!");
$sql "SELECT * FROM Topics";
$result mysql_query($sql);
while (
$row mysql_fetch_assoc($result)) {
  echo 
"<table cellspacing='0' cellpadding='0' class='Topic'><tr><td>$row[Topic]</td></tr>";
  echo 
"<tr><td class='SmallTopic'>$row[SmallTopic]</td></tr></table>\n";
}
mysql_close();
?>
</td>
</tr>
<tr>
 <td valign="top" bgcolor="black" style="padding-left: 100px; background-image: url('blue2.jpg'); background-repeat: no-repeat; padding-top: 7px; width="531px" height="500px">
Sponsoren:
</td>
</tr>
</table>
 
</body>
</html>
Weitere Erklärung zum Problem:
Wenn kein Datensatz vorhanden ist, dann wird trotzdem der Hintergrund "blue.php" angezeigt, nur halt ohne Inhalt. Das möchte ich unterbinden, aber ich weiß nicht wie

Vielen Dank schonmal im Vorraus,
Minimi

Geändert von Minimi (02.02.2008 um 19:44 Uhr).
Minimi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.02.2008, 19:49  
Erfahrener Benutzer
 
Registriert seit: 14.10.2007
Beiträge: 306
PHP-Kenntnisse:
Fortgeschritten
Papst befindet sich auf einem aufstrebenden Ast
Standard

mysql_num_rows() hilft dir hier.
oder das sparsamere Modell mit
PHP-Code:
<?php
$result 
mysql_query(..);
$row mysql_fetch_assoc($result);
if (!
$row)
  echo 
'Keine Zeile gelesen';
else {
  do {
   
// möp
  
} while ($row mysql_fetch_assoc($result));
}
Papst ist offline  
Alt 02.02.2008, 21:05  
Benutzer
 
Registriert seit: 05.09.2007
Beiträge: 69
Minimi befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
ich habe es jetzt mal ausprobiert und das ist das Ergebnis davon, das leider in einem Problem endet: Die Daten werden nicht angezeigt

PHP-Code:
$sql "SELECT * FROM Topics";
$sql2 "SELECT * FROM SmallTopics";
$result mysql_query($sql);
$result2 mysql_query($sql2);
$row mysql_fetch_assoc($result2);
if (!
$row2)
  echo 
'Keine Zeile gelesen';
else {
  do {
   
// möp
  
} while ($row2 mysql_fetch_assoc($result));
}
while (
$row mysql_fetch_assoc($result)) {
  echo 
"<table cellspacing='0' cellpadding='0' class='Topic'><tr><td>$row[Topic]</td></tr>";
  echo 
"<tr><td class='SmallTopic'>$row2[SmallTopic]</td></tr></table>\n";
}
mysql_close();
?> 
MfG,
Minimi

PS: Kann man da nicht einen if Anweisung machen, die sagt, wenn der Datensatz vorhanden ist true zurückgibt und wenn man dann erst den echo Befehl sieht? Geht das?

Geändert von Minimi (02.02.2008 um 21:16 Uhr).
Minimi ist offline  
Alt 02.02.2008, 22:05  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

das //möp soltest Du durch die beiden echo Anweisungen ersetzen. Dafür entfällt Deine while-Schleife.
David ist offline  
Alt 03.02.2008, 10:38  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Zudem benutzt du in der ersten if-Abfrage die Variable $row2, die aber noch gar nicht deklariert wurde und erst später in der while-Schleife einen Wert zugewiesen bekommt.
Montellese ist offline  
Alt 03.02.2008, 11:06  
Benutzer
 
Registriert seit: 05.09.2007
Beiträge: 69
Minimi befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,
kann man auch 2mal den Befehl SELECT ausführen?

Gestern habe ich mir auch mal den Quellcode von einem Forum angeschaut, aber da taucht nirgends MYSQL auf? Wie ist das möglich?

Mit freundlichen Grüßen,
Minimi
Minimi ist offline  
Alt 03.02.2008, 13:27  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Da taucht wahrscheinlich schon mysql auf nur nicht in der Form, wie du es dich vielleicht gewöhnt bist, weil wahrscheinlich für die meisten Dinge, die mehrmals verwendet werden, eigene Funktionen geschrieben wurden. Das Forum bestand ja wohl kaum aus einer einzelnen Datei. Sich an dem Quellcode eins fertigen Forums zu orientieren, ist meistens ziemlich sinnlos, weil der Code so komplex ist (und vor allem, wenn man sich noch nicht so gut auskennt), dass es ziemlich lange dauern kann, bis man den Durchblick hat.

Was meinst du genau mit 2mal SELECT ausführen? Verschachtelt oder unabhängig voneinander? Du kannst grundsätzlich so oft eine Interaktion mit dem MySQL-Server in einem Script durchführen wie du willst.
Montellese ist offline  
Alt 03.02.2008, 13:36  
Benutzer
 
Registriert seit: 05.09.2007
Beiträge: 69
Minimi befindet sich auf einem aufstrebenden Ast
Standard

Also mein Plan war, dass ich einmal den äusseren Topicteil selektiere und dann noch die von den Untertopics selektiere. Funktioniert das?

MfG,
Minimi

PS: Achja kann man auch eine Datei als HTML Seite ausgeben aber trotzdem die Daten von der Datenbank abrufen ohne irgendein SELECT. Also zum Beispiel show.php stehen die ganzen Daten in HTML, die von der Datenbank abgerufen werden, nur halt auf einer anderen Seite. Es gibt ja da auch readfile() und so müsste das doch auch gehen, oder? Wenn ja, wie? ^^

Geändert von Minimi (03.02.2008 um 13:57 Uhr).
Minimi ist offline  
Alt 03.02.2008, 16:53  
Benutzer
 
Registriert seit: 05.09.2007
Beiträge: 69
Minimi befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
also das mit dem SELECT hat jetzt endlich geklappt, aber jetzt stehe ich vor dem nächsten Hinderniss :P

Also bei meinem Board soll es Topics, Threads und Posts geben, aber wie kann ich die zu den richtigen Kathegorien zuorden, ohne viel selbst zu machen. Also bei dem phpbb Forum steht da "topic_id", "post_id" und "thread_id". So sind diese immer schön geordnet, aber wie kann ich das hinbekommen? Weil sonst müsste ich zu jedem Thread einen eigenen Post Kathegorie z.B. "post_neuerThread", aber das ist dann doch ein bisschen zu viel gefummel. Geht das auch einfacher?

MfG,
Minimi
Minimi ist offline  
Alt 03.02.2008, 18:03  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Du gibst jedem Topic, jedem Thread und jedem Post eine ID. Bei den Posts speicherst du dann irgendwo in der Tabelle die ID des Threads, wo der Post hingehört und das gleiche machst du bei den Threads bezüglich den Topics. Dann kannst du immer abfragen WHERE thread_id = dieIDhalt und so weiter.
Montellese ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
auf nächsten Datensatz zugreifen cycap Datenbanken 5 18.12.2007 14:32
Abfrage ob email adresse schon vorhanden ist TeazY PHP Tipps 2008 10 16.12.2007 12:22
datensatz problem 24bits PHP Tipps 2006 1 30.08.2006 18:52
Import aus CSV-File mit Prüfung ob Datensatz schon vorhanden rüdi Datenbanken 18 12.05.2006 10:41
Anzeigen wenn keine Einträge in Datenbank! c-bass PHP Tipps 2006 6 22.03.2006 13:49
[Erledigt] Ergebnis anzeigen, auch wenn keines gefunden wird Datenbanken 5 17.10.2005 13:55
ID des letzten Datensatzes anzeigen PHP Tipps 2005-2 2 13.09.2005 09:37
Prüfen ob Datensatz vorhanden PHP Tipps 2005-2 16 30.06.2005 11:00
Befehl zum prüfen ob Datensatz vorhanden &amp;lt;= Please Help M Datenbanken 4 12.01.2005 14:20
Leeren Datensatz editierbar machen Anuschka PHP Tipps 2004-2 1 27.12.2004 13:28
[Erledigt] Cookie - Seite anzeigen / nicht anzeigen PHP Tipps 2004-2 2 11.11.2004 15:59
nur den neuesten Datensatz anzeigen mit gleichen Inhalt Datenbanken 15 10.09.2004 16:52
Datensatz abfragen und in Formularfeldern ausgeben Datenbanken 1 25.08.2004 09:24
Datensatz anzeigen lassen die zwischen 5-8 xXx PHP Tipps 2004 6 02.08.2004 00:37
[Erledigt] Variabel umsetzen und alle vorhanden Variabel anzeigen PHP-Fortgeschrittene 1 22.07.2004 16:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql ein datensatz, #98cb00, php mysql record anzeigen, nur anzeigen wenn mysql, mysql datensätze in php anzeige, einen datensatz sql php ausgeben, mysql datensatz finden php, php mysql wenn ein datensatz, wie kann ich bei php mysql daten ansehen, php sql \datensatz anzeigen\, mit php einen datensatz anzeigen, mysql 1 datensatz ausgeben lassen, php mysql eintrag anzeigen wenn vorhanden, mysql datensatz nur anzeigen wenn vorhanden, php mysql einen datensatz anzeigen, php background image nur anzeigen wenn datensatz vorhanden, php mysql \einen datensatz anzeigen\

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:02 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum