PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Ausgabe Problem (https://www.php-resource.de/forum/php-developer-forum/37853-ausgabe-problem.html)

Rj1 26-04-2004 22:52

Ausgabe Problem
 
Hab hier folgendes Problem ich erzeuge hier News artikel und will diese anzeigen jedoch passiert wenn die id = 0 ist folgendes -> Es werden alle Newseinträge angezeigt ! Warum ?

Hier ist der Code:
PHP-Code:

<?
if($action == "readnews" && $id == $i){
                
$writer mysql_result($Result3,$i,"writer");
                
$email mysql_result($Result3,$i,"email");
                
$date mysql_result($Result3,$i,"date");
                
$newstitel mysql_result($Result3,$i,"newstitel");
                
$shortnews mysql_result($Result3,$i,"shortnews");
                
$extendednews mysql_result($Result3,$i,"extendednews");
                
$id mysql_result($Result3,$i,"id");
                
?>
          <table width="557" border="0" align="center" cellpadding="0" cellspacing="4">
            <tr> 
              <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><? echo("<b>$newstitel</b>"); ?> 
                geschrieben am <? echo($date); ?> von <? echo("<a href=mailto:$email>$writer</a>"); ?></font></td>
            </tr>
            <tr> 
              <td> 
                <?
                        
echo("$shortnews<br>$extendednews");            
                        
?>
              </td>
            </tr>
            <tr> 
              <td> <form name="form3" method="post" action="index.php?action=writecomment&id=<? echo($i); ?>">
                  <br>
                  <table width="422" border="0" align="center" cellpadding="0" cellspacing="3">
                    <tr> 
                      <td colspan="2"><font size="2"><strong>Kommentar schreiben:</strong></font></td>
                    </tr>
                    <tr> 
                      <td colspan="2">&nbsp;</td>
                    </tr>
                    <tr> 
                      <td width="87"><font size="2">Name:</font></td>
                      <td width="335"><input name="name" type="text" id="name"></td>
                    </tr>
                    <tr> 
                      <td><font size="2">E-Mail:</font></td>
                      <td><input name="email" type="text" id="email"></td>
                    </tr>
                    <tr> 
                      <td valign="top"><font size="2">Kommentar:</font></td>
                      <td><textarea name="comment" cols="25" rows="8" id="comment" maxlength="200"></textarea></td>
                    </tr>
                    <tr> 
                      <td colspan="2"><input type="hidden" name="newsid" value="<? echo($id); ?>"></td>
                    </tr>
                    <tr> 
                      <td colspan="2"><div align="center"> 
                          <input type="reset" name="Submit22" value="Zur&uuml;cksetzen">
                          &nbsp; 
                          <input type="submit" name="Submit32" value="Kommentar schreiben">
                        </div></td>
                    </tr>
                  </table>
                </form>
                <?
                        $Result4 
mysql_query("SELECT * FROM lan_newscomment WHERE newsid = '$id'");
                        for(
$i 0$i mysql_num_rows($Result4); $i++){
                            
$name mysql_result($Result4,$i,"name");
                            
$email mysql_result($Result4,$i,"email");
                            
$name mysql_result($Result4,$i,"name");
                            
$comment mysql_result($Result4,$i,"comment");
                            
?>
                <div align="center"></div>
                <div align="center"></div>
                <div align="center"></div>
                <table width="422" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr> 
                    <td bordercolor="#000000"> <table width="422" border="0" align="center" cellpadding="0" cellspacing="0">
                        <tr> 
                          <td><? echo("<b><a href=mailto:$email>$name</a></b>"); ?></td>
                        </tr>
                        <tr> 
                          <td height="19"><? echo($comment); ?></td>
                        </tr>
                      </table></td>
                  </tr>
                </table>
                <div align="center"><br>
                  <br>
                  <?
                        
}
                    
                    
?>
                  <a href="index.php" target="_self">&lt;&lt; Zur&uuml;ck zu den 
                  News</a> <br>
                  <br>
                </div></td>
            </tr>
          </table>
          <?
            
}
        }
?>

Danke im voraus!

oppi 26-04-2004 23:54

Zitat:

passiert wenn die id = 0 ist folgendes -> Es werden alle Newseinträge angezeigt ! Warum ?
Gute Frage.
Wo wird die var $i denn gesetzt?
Ich rate mal:
Du hast eine Schleife die den geposteten codeteil mehrmals ausführt. Und wenn id=0 ist läuft irgendwas in der schleife schief so dass be jedem durchlauf $id==$i ist. Der Fehler liegt also vermutlich da wo der var $i bzw. der var $id der wert zugewiesen wird.
Kann aber auch sein dass ich total falsch liegt :dontknow:

morten 27-04-2004 11:30

Komplett umständlich!!!!!!


hier besser:

PHP-Code:


$news_id
=1//<--- Wird dann per url ?news_id=1 übergeben...

$query_news("SELECT * FROM news_table Where news_id=$news_id")

/* ODER : $query_news("SELECT * FROM news_table ORDER by news_id DESC LIMIT 10") <-- Damit gibst du nur die 10 letzen news aus mußt nur unten anstatt if while benutzen!!*/

// Mit der Query bekommst du NUR den newseintrag den du willst...

if($row_news=mysql_fetch_array($query_news)
{
     echo 
$row_news['writer']; 
    
// Damit kannst du dann auf die felder zugreifen....
    //hier kommt dann die Ausgabe der News
} else echo "Keine News gefunden oder so!"

Außerdem würde ich empfelen das du dir angewöhnst bei so längeren Codeschnipseln kommentare zu verwenden , denn ohne dauert das ewig bis man gepeilt hat was das script eigentlich macht!

davegerber 24-05-2017 10:05

PHP case study
 
I also believe that the problem in the cycle. If the cycle is 0, the cycle will run continuously.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:11 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG