php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.09.2004, 15:41  
Gast
 
Beiträge: n/a
Standard Problem bei der Ausgabe...

Hi,
ich mache gerade ein GB und habe ein Problem, nämlich das er immer nur den obersten Eintrag in der Datenbank anzeigt, aber ich möchte das alles angezeigt werden, was ist das Problem?
Mein Code:
PHP-Code:
     <?php

include($base_dir."includes/common.php");



$host "localhost";
$user "root";
$password "";
$db "phpccbeta";

mysql_connect($host$user$password) or
die(
"Fehler bei der Verbindung zu Datenbank");
mysql_select_db($db);



    
$sql  mysql_query("SELECT * FROM " USER_TABLE "
                         WHERE id = $nickpageid" 
);

    
$row mysql_fetch_array($sql);

    
$npdata['id']       = $row['id'];

    
$npid $npdata['id'];


    if (!
$start$start 0;
    
$perpage 5;

    
$sql="select * from members_gb
          WHERE gb_id=$npid
          ORDER BY id DESC"
;
    
$result=mysql_query($sql);
    
$data mysql_fetch_array($result);

      
$memgb['id']       = $data['id'];
      
$memgb['name']     = $data['name'];
      
$memgb['message']  = nl2br($data['message']);
      
$memgb['date']     = $data['date'];
?>
      <table cellSpacing="2" cellPadding="1" border="0" width="328">

        <tr>
          <td class="menue><a class="menue"><a class="menue"><font size="1">Name:</a></td>
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['name']; ?></a></td>
        </tr>
        <tr>
          <td class="menue"><a class="menue"><font size="1">Verfasst am:</td>
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['date']; ?></a></td>
        </tr>
        <tr>
          <td class="menue" valign="top"><a class="menue"><font size="1">Nachricht:</td>
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['message']; ?></a></td>
        </tr>
        <tr>
          <td></td>
          <td></td>
        </tr>
      </table>
Mfg. und danke
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.09.2004, 16:05  
Gast
 
Beiträge: n/a
Standard

deiner ausgabe fehlt die while-schleife.
PHP-Code:
<?php
# der ausschnitt aus deinem script

Â*$sql="select * from members_gb 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*WHERE gb_id=$npid 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*ORDER BY id DESC"

Â*Â*Â*Â*$result=mysql_query($sql)or die(mysql_error()); 
Â*Â*Â*Â*while($data mysql_fetch_array($result)) 
     {
Â*Â*Â*Â*Â*Â*$memgb['id']Â*Â*Â*Â*Â*Â*Â*$data['id']; 
Â*Â*Â*Â*Â*Â*$memgb['name']Â*Â*Â*Â*Â*$data['name']; 
Â*Â*Â*Â*Â*Â*$memgb['message']Â*Â*nl2br($data['message']); 
Â*Â*Â*Â*Â*Â*$memgb['date']Â*Â*Â*Â*Â*$data['date']; 
?> 
Â*Â*Â*Â*Â*Â*<table cellSpacing="2" cellPadding="1" border="0" width="328"> 

Â*Â*Â*Â*Â*Â*Â*Â*<tr> 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*<td class="menue><a class="menue"><a class="menue"><font size="1">Name:</a></td> 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*<td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['name']; ?></a></td> 
Â*Â*Â*Â*Â*Â*Â*Â*</tr> 
Â*Â*Â*Â*Â*Â*Â*Â*<tr> 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*<td class="menue"><a class="menue"><font size="1">Verfasst am:</td> 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*<td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['date']; ?></a></td> 
Â*Â*Â*Â*Â*Â*Â*Â*</tr> 
Â*Â*Â*Â*Â*Â*Â*Â*<tr> 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*<td class="menue" valign="top"><a class="menue"><font size="1">Nachricht:</td> 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*<td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['message']; ?></a></td> 
Â*Â*Â*Â*Â*Â*Â*Â*</tr> 
Â*Â*Â*Â*Â*Â*Â*Â*<tr> 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*<td></td> 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*<td></td> 
Â*Â*Â*Â*Â*Â*Â*Â*</tr> 
Â*Â*Â*Â*Â*Â*</table>
<?php
    
}
?>
ausser der while-schleife habe ich noch mysql_error() eingesetzt.
solltest du immer bei einer mysql abfrage einsetzen, um eventuelle fehler zu finden.
außerdem solltest du nicht select*from verwenden.

mfg Paine
 
Alt 18.09.2004, 16:12  
Gast
 
Beiträge: n/a
Standard

Cool,
danke also nochmal für alle meine aktueller Code:

PHP-Code:
     <?php

include($base_dir."includes/common.php");



$host "localhost";
$user "root";
$password "";
$db "phpccbeta";

mysql_connect($host$user$password) or
die(
"XXX");
mysql_select_db($db);



    
$sql  mysql_query("SELECT * FROM " USER_TABLE "
                         WHERE id = $nickpageid" 
);

    
$row mysql_fetch_array($sql);

    
$npdata['id']       = $row['id'];

    
$npid $npdata['id'];



 
$sql="select * from members_gb 
          WHERE gb_id=$npid 
          ORDER BY id DESC"

    
$result=mysql_query($sql)or die(mysql_error()); 
    while(
$data mysql_fetch_array($result)) 
     { 
      
$memgb['id']       = $data['id']; 
      
$memgb['name']     = $data['name']; 
      
$memgb['message']  = nl2br($data['message']); 
      
$memgb['date']     = $data['date']; 
?> 
      <table cellSpacing="2" cellPadding="1" border="0" width="328"> 

        <tr> 
          <td class="menue><a class="menue"><a class="menue"><font size="1">Name:</a></td> 
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['name']; ?></a></td> 
        </tr> 
        <tr> 
          <td class="menue"><a class="menue"><font size="1">Verfasst am:</td> 
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['date']; ?></a></td> 
        </tr> 
        <tr> 
          <td class="menue" valign="top"><a class="menue"><font size="1">Nachricht:</td> 
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['message']; ?></a></td> 
        </tr> 
        <tr> 
          <td></td> 
          <td></td> 
        </tr> 
      </table> 
<?php 
    

?>
Nun habe ich aber das nächste Problem, ich möchte das nur 5 Einträge pro Seite angezeigt werden, wenn mehr als 5 in der Tabelle sind soll man zur nächste Seite wechseln können...
Wie geht das, bitte baut das gleich oben in den Code ein, weil ich das schon oft versucht habe aber es nie hinbekomme
Danke und mfg.
 
Alt 18.09.2004, 16:45  
Gast
 
Beiträge: n/a
Standard

das geht mit LIMIT und ist etwas komplexer als eine while-schleife.
du musst deine mysql abfrage um LIMIT erweitern etwa so:
PHP-Code:
<?php

 
# kleines beispiel

 // zuerst werden die standartwerte gesetzt
if(!isset($_GET['param']) OR empty($_GET['param']))
  {
     
$num 0;
  } else {
     
$num = (int) $_GET['param'];
  }
  
$perpage 5;

 
// jetzt kommen die berechnungen für die folgeseiten
$start $num*$perpage;
$limit $perpage+$start;

$sql="select * from members_gb 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*WHERE gb_id=$npid 
Â*Â*Â*Â*Â*Â*Â*Â*Â*Â*ORDER BY id DESC LIMIT $start,$limit"
;

 
# weiter im script

?>
Dann brauchst du noch die gesamtzahl der gefundene datensätze die bekommst du per mysql_num_rows().
dann musst du ausrechnen wieviele seiten es werden.
in einer for-schleife baust du die links zusammen
etwa so:
[ zahl ]

hoffe dir genug anregungen geliefert zu haben

mfg Paine
 
Alt 18.09.2004, 16:49  
Gast
 
Beiträge: n/a
Standard

16.14 Warum soll ich nicht Select * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Und das ist eine Frage für das Forum "PHP - Fortgeschrittene"??

MfG
Nobody
 
Alt 18.09.2004, 16:52  
Gast
 
Beiträge: n/a
Standard

K, danke paine,
kannste das bitte aber gleich fertig in meinen Code einbauen, da ich das nicht kapiere ^^
mfg. und danke
 
Alt 18.09.2004, 17:00  
Erfahrener Benutzer
 
Registriert seit: 08.06.2004
Beiträge: 865
RudiS
Standard

Du solltest schon mal versuchen das selbst einzubauen. Ich habe auch noch ein Beispiel für eine Blätterfunktion:
http://tut.php-q.net/login-news.html#u8
mfg RudiS
__________________
Kunst kommt von Können und nicht von wollen, denn sonst würde es ja Wunst heißen.
RudiS ist offline  
Alt 18.09.2004, 17:22  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php

include($base_dir."includes/common.php");



$host "localhost";
$user "root";
$password "";
$db "phpccbeta";

mysql_connect($host$user$password) or
die(
"XXX");
mysql_select_db($db);

    
$nickpageid $_REQUEST['nickpageid']; // du solltest mal nach register-globals googeln ;)

    
$sql  mysql_query("SELECT id FROM " USER_TABLE "
                         WHERE id = $nickpageid" 
);

    
$row mysql_fetch_array($sql);

    
$npdata['id']       = $row['id'];

    
$npid $npdata['id'];

       if(!isset(
$_GET['seite']) OR empty($_GET['seite']))
         {
            
$num 0;
          } else {
            
$num = (int) @$_GET['seite'];
          }
  
     
$perpage 5// hier kannst du eingeben wieviele einträge pro seite angezeigt werden sollen

// jetzt kommen die berechnungen
$start $num*$perpage;
$limit $perpage+$start


$sql="SELECT id, name, massage, date FROM members_gb
          WHERE gb_id=$npid
          ORDER BY id DESC LIMIT $start, $limit"
;
    
$result=mysql_query($sql)or die(mysql_error());
    
$n=mysql_num_rows($result); // insgesammt gefundene einträge
     
if($n 0)
         { 
            
// wenn welche vorhanden sind wird ausgelesen
            
while($data mysql_fetch_array($result))
                    {
                      
$memgb['id']       = $data['id'];
                      
$memgb['name']     = $data['name'];
                      
$memgb['message']  = nl2br($data['message']);
                      
$memgb['date']     = $data['date'];
?>
      <table cellSpacing="2" cellPadding="1" border="0" width="328">

        <tr>
          <td class="menue><a class="menue"><a class="menue"><font size="1">Name:</a></td>
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['name']; ?></a></td>
        </tr>
        <tr>
          <td class="menue"><a class="menue"><font size="1">Verfasst am:</td>
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['date']; ?></a></td>
        </tr>
        <tr>
          <td class="menue" valign="top"><a class="menue"><font size="1">Nachricht:</td>
          <td class="menue2"><a class="menue2"><font size="1"><?php echo $memgb['message']; ?></a></td>
        </tr>
        <tr>
          <td></td>
          <td></td>
        </tr>
      </table>
<?php
    
}

   
$n=celi($n/$perpage); // ausrechen der seiten 
   
for($i=1$i <= $n$i++)
    {
      if(
$i==$num+1)
          { 
             
// wenn wir auf der seite sind, soll kein link gemacht werden
             
echo "[&nbsp".$i."]";
           } else {
             echo  
"[<a href=\"".$_SERVER['PHP_SELF']."?nickpageid=".$nickpageid."&seite=".($i-1)."\">".$i."</a>]";
           }
      }
 } else {
   
// wenn keine einträge gefunden wurden
    
echo "Keine Gästebucheinträge gefunden";
 }
?>
das ist on the fly geschrieben, und ungetestet

mfg Paine
 
Alt 18.09.2004, 19:10  
Gast
 
Beiträge: n/a
Standard

Ja ich habe es ja auch schon immer versucht nur bekomm ich es nie hin,
aber danke an Paine nur es kommt folgender Fehler.

Code:
Parse error: syntax error, unexpected ')', expecting ';' in D:\Programme\Xampp\xampp\htdocs\npsys\test5.php on line 79
Habe lange gesucht aber nicht rausbekommen an was dasliegt...
Kannste mir bitte sagen, danke!
 
Alt 18.09.2004, 19:22  
Gast
 
Beiträge: n/a
Standard

Nein, das kann Dir niemand sagen. Das liegt daran, dass wir den aktuellen Quellcode nicht kenne. Vermutlich wird der Fehler nicht in Zeile 79 sein, sondern schon vorher. PHP bemerkt diesen Fehler erst in Zeile 79.
MfG
Nobody
 
 


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
[Erledigt] problem keine ausgabe coraplanet PHP Tipps 2008 12 02.05.2008 18:51
Class Ausgabe Problem wk-moray PHP-Fortgeschrittene 6 12.02.2008 10:06
problem mit ausgabe von daten phyton Datenbanken 3 02.07.2007 17:44
Problem mit der Ausgabe Kein Genie PHP Tipps 2006 5 26.11.2006 21:24
Problem mit einer Ausgabe mit for... PHP Tipps 2005-2 4 30.09.2005 19:26
3 Tabellen verbunden -- Ausgabe in einer Spalte Datenbanken 4 06.09.2005 10:43
Problem mit der Ausgabe PHP Tipps 2005-2 2 29.07.2005 18:09
problem bei ausgabe einer abfrage aus 2 Tabellen Lia PHP Tipps 2005-2 2 28.07.2005 17:30
Problem mit PFad Firefox - Verzeichnis löschen PHP Tipps 2005-2 0 19.07.2005 16:05
Problem mit Ausgabe in Optionfelder (<select>) Monty77 PHP Tipps 2005 4 27.01.2005 22:33
[Erledigt] Problem mit Text Ausgabe in neuem Fenster PHP Tipps 2005 6 18.01.2005 14:24
variablen ausgabe problem..... PHP Tipps 2005 3 06.01.2005 02:27
Problem mit Ausgabe picco PHP Tipps 2004-2 2 24.12.2004 15:38
problem mit ausgabe bei einer "tmp"-table... nautiluS PHP Tipps 2004-2 0 20.12.2004 15:12
Problem mit Array und Ausgabe picco PHP Tipps 2004-2 3 16.12.2004 23:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:58 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.