• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Schleife und übergehen nicht existenter ips

Status
Für weitere Antworten geschlossen.
Hi :)

ich möchte gern die spalte 'titel' des vorherigen bzw des nächsten eintrags extra per

PHP:
<?php echo $row['titel']?>
einbinden und habe mal versucht es so zu machen und habe aus dem script nur die zeile hier verändert:


PHP:
while ($row = mysql_fetch_assoc($result)) 
{ 
  $ids[] = $row["id"];$row["titel"];
}
aber leider ohne erfolg :( kann mir jemand helfen ? :cry:
 
Zuletzt bearbeitet:
Hallo,

PHP:
$row["titel"];
ist eine Anweisung die in PHP keinen Effekt hat. Du musst es schon über echo ausgeben oder über $titles[] = $row ["titel"] einem neuen Array hinzufügen. Dann kannst du später über den selben Index, über den du auf die ID zugreifst auf den Titel zugreifen.


N43
 
Hallo,

zeig mal deinen Code in einem zusammenhängendem Stück. Ich versteh nicht wirklich, was für Änderungen du gemacht hast.


N43
 
Naja über die Veränderungen reden wir ja gerade, denn leider weiß ich nicht genau, wie ich die echo 'titel'-funktion einbinden soll.


Hier der Code

PHP:
   <?php 
// alle Fehler ausgeben 
error_reporting(E_ALL); 
 
// Array Pointer auf bestimmtes Element setzen 
function set_pointer($ids,$id) 
{ 
  reset($ids); 
  if(current($ids) == $id) 
    return ($ids); 
  if(in_array($id,$ids)) 
  { 
      while(next($ids) != $id){} 
      return($ids); 
  } 
  return (false); 
} 
 
// Aktuell anzuzeigene ID ermitteln 
function getID($ids) 
{ 
  if(isset($_GET["id"]) && in_array($_GET["id"],$ids)) 
  { 
    return ($_GET["id"]); 
  } 
  else 
  { 
    return current($ids); 
  } 
} 
 
// Array mit den vorhandenen IDs 
  $my_host = "x"; 
  $my_dbname = "x"; 
  $my_user = "x"; 
  $my_pass = "x"; 
  $my_tablename = "x"; 
 
$link = mysql_connect($my_host, $my_user, $my_pass); 
  if (!$link) 
    die("Kann den Server nicht erreichen."); 
  if (!mysql_select_db($my_dbname, $link)) 
    die("Kann die Datenbank nicht anwählen."); 
 
$result = mysql_query("SELECT * FROM `{$my_tablename}`") 
        or die(mysql_error()); 
$ids = array(); 
while ($row = mysql_fetch_assoc($result)) 
{ 
  $ids[] = $row["id"]; 
} 
 
// Anzuzeigene ID bekommen 
$id = getID($ids); 
 
//nächste ID 
$ids = set_pointer($ids,$id); 
if(current($ids) == $ids[(count($ids)-1)]) 
{ 
  reset($ids); 
  $next_id = current($ids); 
} 
else 
{ 
  $next_id = next($ids); 
} 
 
//vorherige ID 
reset($ids); 
$first = current($ids); 
$ids = set_pointer($ids,$id); 
if(current($ids) == $first) 
{ 
  $prev_id = $ids[(count($ids)-1)]; 
} 
else 
{ 
  $prev_id = prev($ids); 
} 
 
//Link ausgabe 
echo '<a href="test2.php?id='.$prev_id.'">vorherige ID ('.$prev_id.')</a><br>'."\n"; 
echo '<a href="test2.php?id='.$next_id.'">nächste ID ('.$next_id.')</a>'; 
?>
 
Zuletzt bearbeitet:
Einfach in ein neues array schreiben und dann ausgeben
PHP:
   <?php
// alle Fehler ausgeben
error_reporting(E_ALL);

// Array Pointer auf bestimmtes Element setzen
function set_pointer($ids,$id)
{
  reset($ids);
  if(current($ids) == $id)
    return ($ids);
  if(in_array($id,$ids))
  {
      while(next($ids) != $id){}
      return($ids);
  }
  return (false);
}

// Aktuell anzuzeigene ID ermitteln
function getID($ids)
{
  if(isset($_GET["id"]) && in_array($_GET["id"],$ids))
  {
    return ($_GET["id"]);
  }
  else
  {
    return current($ids);
  }
}

// Array mit den vorhandenen IDs
  $my_host = "x";
  $my_dbname = "x";
  $my_user = "x";
  $my_pass = "x";
  $my_tablename = "x";

$link = mysql_connect($my_host, $my_user, $my_pass);
  if (!$link)
    die("Kann den Server nicht erreichen.");
  if (!mysql_select_db($my_dbname, $link))
    die("Kann die Datenbank nicht anwählen.");

$result = mysql_query("SELECT * FROM `{$my_tablename}`")
        or die(mysql_error());
$ids = array();
while ($row = mysql_fetch_assoc($result))
{
  $ids[] = $row["id"];
  $titles[$row["id"]] = $row["title"];
}

// Anzuzeigene ID bekommen
$id = getID($ids);

//nächste ID
$ids = set_pointer($ids,$id);
if(current($ids) == $ids[(count($ids)-1)])
{
  reset($ids);
  $next_id = current($ids);
}
else
{
  $next_id = next($ids);
}

//vorherige ID
reset($ids);
$first = current($ids);
$ids = set_pointer($ids,$id);
if(current($ids) == $first)
{
  $prev_id = $ids[(count($ids)-1)];
}
else
{
  $prev_id = prev($ids);
}

//Link ausgabe
echo '<a href="test2.php?id='.$prev_id.'">vorherige ID ('.$prev_id.')</a><br>'."\n";
echo '<a href="test2.php?id='.$next_id.'">nächste ID ('.$next_id.')</a>';
?> 
<hr>
<?php
echo "vorheriger Titel: ".$titles[$prev_id]."<br>";
echo "jetziger Titel: ".$titles[($prev_id+1)]."<br>";
echo "nächster Titel: ".$titles[$next_id]."<br>";
?>
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben