Newsscript (Datenbank) auslesen Problem!

Frosty5o

Mitglied
Hey Leute,
jetz muss ich mich wieder vertrauensvoll an euch wenden weil ich ein kleines Problem habe. Und zwar kenne mich leider MySQL mäßig so gut wie kaum aus. Ich habe auf meiner mysql DB ein Newsscript installiert das einwandfrei funktioniert. Nun hat mir ein Kumpel ein Script erstellt das ebenfalls einwandfrei funktioniert. Jetzt Musste ich jedoch den Provider wechseln und das Newsscript habe ich neu installiert. Es funtkioniert wieder einwandfrei. Doch das Newsarchiv (das die News auslesen) soll funktioniert nicht mehr. Wahrscheinlich logischerweise weil bei meinem neuen Provider eine zusätzliche Tabelle in der Datenbank erstellt werden muss um sie wiederum auszulesen, aber hier die Fehlermeldung:

Fatal error: Class 'mysqli' not found in /kunden/277934_94267/webseiten/content/newsarchiv.php on line 24

Und hier der Code des auslesenden Scripts:

PHP:
     <p>
    </p>
     <p>
<?php
## Einstellungen:
$db_host = "XXXXXXXXX"; ## Datenbank host
$db_usr = "db277934"; ## Datenbank Benutzer
$db_pw = "XXXXXXXXX"; ## Datenbank Passwort
$db_name = "db277934"; ## Datenbank Name
$db_news = "corenews_news"; ## Name der Newstabelle

$anzahl = 5; ## wieviele Beiträge pro Seite

## Einstellungen ende
function isteinezahl($var) { 
 if (preg_match("=^[0-9]+$=i",$var)) { 
 return TRUE; 
 } else { 
 return FALSE; 
 } 
}

$db = new mysqli($db_host, $db_usr, $db_pw, $db_name);
$fehler = "";
$befehl = "SELECT `id` FROM `".$db_news."`";
$daten = $db->query($befehl);
if(!isteinezahl($_GET['seite'])) { $getseite = 0; } else { $getseite = $_GET['seite']; }
if(mysqli_connect_errno() == 0) { 
 if($daten->num_rows != 0) {
  $seiten = ceil($daten->num_rows/$anzahl);
$daten->close();
   $limit1 = $getseite*$anzahl; 
   $limit2 = $limit1+$anzahl;
   $befehl = "SELECT * FROM `".$db_news."` ORDER BY `id` DESC LIMIT ".$limit1.",".$anzahl."";
   $daten = $db->query($befehl);
  } else {
  $fehler .= "<p>Es wurden keine News gefunden</p>";
 }
} else { 
 $fehler .= "<p>Fehler: Es konnte keine Verbindung zur Datenbank hergestellt werden.<br />Details: <code>".$db->error."</code></p>";
}

if(empty($fehler)) {
if(!isteinezahl($_GET['seite'])) { $getseite = 0; } else { $getseite = $_GET['seite']; }
$debug = 0;
 while($data = $daten->fetch_object()) { 
 ## ab hier beginnt die Ausgabe der News, optische Anpassung ANFANG:
 
 echo "<p>".date('d.m.Y - H:i',$data->time)."<br />".$data->news_title."<br />".stripslashes($data->news_text)."<br /><a href=\"".$data->link."\">".$data->link_text."</a></p>";
 
 ## hier endet die Ausgabe der News, optische Anpassung ENDE
$debug++;
if($debug >= 50) { echo "<p>Fehler: Endlosscheife! Aktion unterbrochen.</p>"; break; }
 }
$daten->close();
echo "<p>Seiten: <br />";
$rseite = array();
 if($getseite >= 1) {
  for($a=$getseite;$a>0;$a--) {
   $rseite[$a] = $a;
   if($a == 0) { break; }
  }
 }
asort($rseite);

foreach($rseite as $b) {
   $fanz1 = $b-1;
   echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$_GET['site']."&amp;seite=".$fanz1."\">".$b."</a> "; ## Link für rückläufige Seiten
}

for($i=$getseite;$i<$seiten;$i++) {
 $fanz = $i+1;
 if($getseite == $i) { echo "<em>".$fanz."</em> "; } else {
  echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$_GET['site']."&amp;seite=".$i."\">".$fanz."</a> "; ## Link für fortlaufende Seiten
 }
 if($i >= "100") { break; }
}
echo "</p>";

} else {
echo "<p><em>Es sind folgende Fehler aufgetreten:</em><br />".$fehler."</p>";
}
$db->close();
?>

Und jetzt meine Frage, wäre es möglich, dass mir jemand sagt was ich machen muss (welche Tabelle ich erstellen muss) damit das Auslesen der News wieder funktioniert. Oder evtl könnte es mir jemand erstellen, denke es ist ja nur eine Kleinigkeit normalerweise. Wär echt wichtig, dass ich das hinbekomm, verzweifle schon. Und danke für eure Bemühungen!
 
Zuletzt bearbeitet:
Kannst du bitte dein Code noch in Tags setzen und formatieren, damit man ihn auch lesen kann? Danke
[PHP]dein Code[/PHP]

Fatal error: Class 'mysqli' not found in /kunden/277934_94267/webseiten/content/newsarchiv.php on line 24
Welche PHP-Version hast du beim neuen Provider?
Schu mal in phpinfo ob du mysqli hast...
 
Schlechte Nachricht. Der Provider hat mysqli-Unterstützung nicht installiert. (mysqli würde als eigener Abschnitt angezeigt werden).
Du musst dein Script also auf mysql umschreiben (also ohne Objekte)

PS: Du solltest jetzt phpinfo.php wieder löschen.....
 
Zuletzt bearbeitet:
Schlechte Nachricht. Der Provider hat mysqli-Unterstützung nicht installiert. (mysqli würde als eigener Abschnitt angezeigt werden).
Du musst dein Script also auf mysql umschreiben (also ohne Objekte)

Danke für die Info!

Boah... das is hart, wo gerade der vorherige hoster ein Frehoster ist und der jetzige ein kostenpflichtiger...!:)

Und zweites Problem der Kumpel ist momentan nicht zu erreichen und ich hab davon Null Ahnung oh mann...
Ist das sehr aufwendig? Brauch da irgendwie Hilfe!
 
Aufwendig? Kommt auf deine Seite drauf an. Es betrifft ejden Datenbankzugriff.

Oder du schreibst dir selber eine Klasse MySqlI die intern mit mysql arbeitet.
 
Is nur ne kleine DB

Hab aber wie gesagt keine ahnung davon leider und das Projekt muss fertig werden... Weis nicht was am geschicktesten wär. Hab grad bei domainfactory gelesen dasss man MySQLi anscheinend aktivieren kann. Würde dann das Script wieder funktionieren?

Hey, danke für die Info, hab jetz bisl aufwendig mysqli aktiviert, wäre aber ohne deine Hilfe nie drauf gekommen! Jetzt funktionierts! Vielen Dank nochmal. Bin bisher immer gut aufgehoben gewesen bei http://www.tutorials.de!:)

Schönen tag noch!
 
Freut mich, dass es funktioniert.
Jetzt währe für andere interessant, wie du mysqli aktiviert hast.
 
Klar,

ist bei jedem Provider (der MySQLi nicht standardgemäß aktiviert hat) wohl verschieden, aber im Grundprinzip gleich. Bei Domainfactory.de (mein Provider) musste ich die PHP.ini (zu finden im Kundenmenü) editieren. Und vorher das MySQLi Modul in ein beliebiges Verzeichnis am Server laden.

Hier die genauen Schritte:

1) Die entsprechende PHP Version downloaden, entpacken (zB mit tar -zxvf PHP) und mit mysqli Extension kompillieren (zB: "./configure --with-mysqli=shared --disable-all" gefolgt von "make" )

2) Das Modul "mysqli.so" aus diesem Verzeichnis in ein beliebiges Vrz am Server kopieren

3) Dieses Verzeichnis in der PHP.ini als "extension_dir" eintragen

4) PHP.ini um den Eintrag: "extension = mysqli.so" erweitern

In meinem Fall habe ich ein bereits kompiliertes Modul aus dem Forum benutzt!
 

Neue Beiträge

Zurück