php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.06.2006, 23:10  
Neuer Benutzer
 
Registriert seit: 31.05.2006
Beiträge: 15
slimer
Standard Einträge mitzählen bei gästebuch

Hallo habe folgendes Problem:

ich will das bei meinen Gästebuch die Nummer des eintrages Steht also der wievielte eintrag es ist!! habe es bist jetzt mit id nummer gemacht aber da ich jetzt einen admin bereich habe wo ich die einträge löschen kann sind jetzt immer lücken in den Nummern kannn mir einer sagen wie ich das anders machen kann?=?

mfg slimer
slimer ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.06.2006, 23:49  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Manchmal sinds die einfachsten Sachen auf die die Leute nicht kommen:
Einfach bei der Ausgabe mitzählen...
Ich geh davon aus, dass du eine MySQL-Datenbank verwendest oder in anders Speichersystem hast bei dem zur Ausgabe eine Schleife durchlaufen wird - dann kannst du einfach eine Variable immer um eines erhöhn und ausgeben...
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 09.06.2006, 23:55  
Neuer Benutzer
 
Registriert seit: 31.05.2006
Beiträge: 15
slimer
Standard

du meinst in der schleife erhöhen und wenn ein eintrag gelöscht wird einfach wieder einen minus oder wie???

mhm

ich weiß nicht wie du meinst!!

PHP-Code:
    for ( $i=1; $i <= $anzahl; $i++)
    {
        $datensatz    =    mysql_fetch_array($result_auslesen);
            
</form>
  

  <table width="500px" border="0" style="border-top:solid #333333 1px;">
    <tr>
      <td align="right">[url="<?php if($datensatz["]">[b]<?php echo $datensatz["name"]; ?>[/b][/url] hat uns Eintrag [b]#<?php echo $count?>[/b] am [b]<?php echo $datensatz["datum"]; ?>[/b] hinterlassen </td>

    </tr>
    <tr >
      <td style="border:solid #999999 1px;"><div style="margin:5px;"><?php echo $datensatz["text"]; ?></div></td>
    </tr>

  </table>
  

    <?php
            
}
            
?>
  <table width="500px" border="0">
  <tr>
    <td width="33%">
    <?php
    
if ( $seite != 1)
    {
    
?>
    [url="http://senseless.uttx.net/index2.php?section=guest&seite=<?php echo $seite 1?>"]zurück[/url]</td>
    <?php
    
}
    
?>
    <td width="33%"><div align="center"><?php echo $seite?> von <?php echo $seitengesamt?></div></td>
    <td width="33%"><div align="right">
    <?php
    
if ($seite+<= $seitengesamt)
    {
    
?>
    [url="http://senseless.uttx.net/index2.php?section=guest&seite=<?php echo $seite 1?>"]vor[/url]</div></td>
      <?php
    
}
    
?>
slimer ist offline  
Alt 09.06.2006, 23:57  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von slimer
du meinst in der schleife erhöhen und wenn ein eintrag gelöscht wird einfach wieder einen minus oder wie???
Nein, ich meine bei der Ausgabe in deiner Schleife erhöhst du einen Zähler bei jedem Schleifendurchlauf um 1. Das löschen spielt da keine Rolle...


EDIT:
Nochmal du musst nichts mit "dann nochmal einen minus oder wie" machen.

Du hast eine for-Schleife und da erhöhst du dein $i jedesmal um 1. In $i steht also schon die Nummer des entsprechenden Eintrags drin - du musst sie nur noch ausgeben.

(Wenn du verschiedene Seiten hast musst du zusätzlich noch feststellen auf welcher Seite du bist und die entsprechende Anzahl an "übersprungenen" Einträgen dazuzählen.
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 10.06.2006, 00:02  
Neuer Benutzer
 
Registriert seit: 31.05.2006
Beiträge: 15
slimer
Standard

hier ist das gesamt script

PHP-Code:
<?php
<?php
        
include ("inc/function.php");
        
    if ( isset( 
$_REQUEST["seite"] ) && $_REQUEST["seite"] != "" )
    {
    
$seite    =    $_REQUEST["seite"];
    }
    else
    {
    
$seite    =    1;
    }

        
        
mysqlconnect();
         
         
    
// Prüfen, ob sich die Seite selbst aufgerufen hat
    
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" )
    {
    
    
$error_msg "";
    
    if (
$_REQUEST["form_name"] == "")
        
$error_msg "Geben sie einen Namen ein!
"
;
    if (
$_REQUEST["form_text"] == "")
        
$error_msg .= "Geben sie einen Text ein!";
    if (
$error_msg == "")
    {

            
        
$datum date("d.m.Y");
            
            
                
// In die Datenbank eintragen
        
$query_eintragen    =    "INSERT INTO book (name, email, text, datum ) VALUES ( ";
        
$query_eintragen    .=    " '" $_REQUEST["form_name"] . "', ";
        
$query_eintragen    .=    " '" $_REQUEST["form_email"] . "', ";
        
$query_eintragen    .=    " '" $_REQUEST["form_text"] . "', ";
        
$query_eintragen    .=    " '" $datum "' ";
        
$query_eintragen    .=    " ) " ;
        
        
        
$result_eintragen mysql_query$query_eintragen );
        if (!
$result_eintragen)
        die(
"konnte nicht in die Datenbank eintragen!
"
.mysql_error());
        

}
}
        
        
$gesamt howmany();
        
$seitengesamt ceil(howmany()/5);
        

        
$offset =  ($seite 1)*5;
        
//Datensätze auslesen
        
$query_auslesen    =    "SELECT * FROM book ORDER BY id DESC LIMIT ".$offset.",5";
        
        
$result_auslesen mysql_query $query_auslesen );
        if  (!
$result_auslesen)
        die(
"Konnte nicht ausgelesen werden!
"
.mysql_error());
        
        
$anzahl    =    mysql_num_rows$result_auslesen );

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Unbenanntes Dokument</title>
<link href="css.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div style="background:url(pics/middle.gif)">
<div style="margin-left:150px;">
<form id="form1" name="form1" method="post" action="">
  <table width="500" border="0">
    <tr>
      <td width="52" align="right"></td>
      <td width="290"><div align="right">[url="adminbereiche/login.php"]ADMIN[/url]</div></td>
    </tr>
    <tr>
      <td>Name:</td>
      <td><label>
        <input name="form_name" type="text" class="css" value="" width="150px" />
      </label></td>
    </tr>
    <tr>
      <td>Email:</td>
      <td><label>
        <input type="text" name="form_email" style="width:200px" value="" />
        <input type="hidden" name="do" value="insert" />
      </label></td>
    </tr>
    <tr>
      <td valign="top">Text:</td>
      <td><label>
        <textarea name="form_text" rows="5" cols="45"></textarea>
        

        <input type="submit" name="Submit" value="Eintragen" />
      </label></td>
    </tr>
  </table>
  <?php
//Schleife zum ausgeben 
$count 0;
    for ( 
$i=1$i <= $anzahl$i++)
    {
        
$datensatz    =    mysql_fetch_array($result_auslesen);
        if (
$seite 1)
            
$count++

            
</
form>
  

  <
table width="500px" border="0" style="border-top:solid #333333 1px;">
    <
tr>
      <
td align="right">[url="<?php if($datensatz["]">[b]<?php echo $datensatz["name"]; ?>[/b][/url] hat uns Eintrag [b]#<?php echo $count; ?>[/b] am [b]<?php echo $datensatz["datum"]; ?>[/b] hinterlassen </td>

    </tr>
    <tr >
      <td style="border:solid #999999 1px;"><div style="margin:5px;"><?php echo $datensatz["text"]; ?></div></td>
    </tr>

  </table>
  

    <?php
            
}
            
?>
  <table width="500px" border="0">
  <tr>
    <td width="33%">
    <?php
    
if ( $seite != 1)
    {
    
?>
    [url="http://senseless.uttx.net/index2.php?section=guest&seite=<?php echo $seite - 1; ?>"]zurück[/url]</td>
    <?php
    
}
    
?>
    <td width="33%"><div align="center"><?php echo $seite; ?> von <?php echo $seitengesamt; ?></div></td>
    <td width="33%"><div align="right">
    <?php
    
if ($seite+1 <= $seitengesamt)
    {
    
?>
    [url="http://senseless.uttx.net/index2.php?section=guest&seite=<?php echo $seite + 1; ?>"]vor[/url]</div></td>
      <?php
    
}
    
?>
  </tr>
</table>

</div>
</div>
</body>
</html>

?>
slimer ist offline  
Alt 10.06.2006, 00:05  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Ich habe meinen Eintrag oben editiert.
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 10.06.2006, 00:08  
Neuer Benutzer
 
Registriert seit: 31.05.2006
Beiträge: 15
slimer
Standard

haben ich schon gesehn vielen dank

tut mir leid wenn ich so blöd frage das mit der variable erhöhen hab ich ja jetzt verstanden aber ich weiß nicht wie ich das mit den verschieden seiten mache steht jetzt überall 1 - 5
slimer ist offline  
Alt 10.06.2006, 00:16  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Du hast - wie ich aus deinem ziemlich durcheinander anmutenden Quelltext entnehmen konnte - 5 Einträge pro Seite.

Nehmen wir an $gesamt sei die Gesamtanzahl an Einträgen.

Auf Seite 1 ist also der oberste Eintrag der Eintrag mit der Nummer $gesamt. Der zweite Eintrag ist der Eintrag mit der Nummer $gesamt minus deinen Zähler in der Schleife.

Auf Seite 2 ist der oberste Eintrag der Eintrag mit der Nummer $gesamt -5 (Also $gesamt-($seitenzahl-1)*5. Usw. und so fort ...

Prinzip klar?


Ich würde dir mal empfehlen deinen Quellcode etwas aufzuräumen.
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 10.06.2006, 00:19  
Neuer Benutzer
 
Registriert seit: 31.05.2006
Beiträge: 15
slimer
Standard

prinzip ist klar das heißt wenn ich 100 seiten habe ist mein quelltext sehr sehr lange

oder gibt es da einen einfacheren weg ??

wenn nicht auch egal auf jeden fall vielen dank für die schnell antwort

mfg
slimer
slimer ist offline  
Alt 10.06.2006, 00:25  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von slimer
prinzip ist klar das heißt wenn ich 100 seiten habe ist mein quelltext sehr sehr lange
Nein. Dir ist das Prinzip offensichtlich doch nicht klar.

Zitat:
oder gibt es da einen einfacheren weg ??
Ja.

Also nochmal zum mitdenken:
Die aktuelle Nummer des Eintrags kannst du dir _errechnen_.
Du weißt wieviele Einträge auf eine Seite sollen: 5
Du weißt wieviele Einträge du insgesamt hast: Die zählt du in deinem Script per mysql_num_rows.
Du weißt an welcher Stelle du in deiner Schleife bist: das steht in $i.

Die Nummer ist also: $gesamt-($aktuelleSeite-1)*5-$i
Mit ($aktuelleSeite-1)*5 errechnest du dir Quasi wieviele Einträge auf den Seiten vor der aktuellen Seite schon stehn...
__________________
Today you...Tomorrow me.
agrajag 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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php echo mitzählen, php gästebuch einträge mit mit count() ausgeben, php gästebuch nr des aktuellen eintrags ausgeben, post 1 datenbank mitzählen, php gästebuch einträge pro seite

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