Link in MySQL Datenbank bei aufruf ändern....brauche Hilfe

Also das Script was auf der Webseite läuft hat mit dem was ich vorhabe immer noch rein garnichts zu tun....

Es soll einfach entweder link1 oder link2 in die Datenbank in der Tabelle settings und Value - redirect_claim durch aufruf einer Datei geändert werden.

in meiner config.php steht folgendes:

PHP:
## DATABASE LOGIN DETAILS
$db_hostname = "localhost";
$db_username = "user";
$db_name = "dbname";
$db_password = "passwort";


global $conn;
$conn = new mysqli($db_hostname, $db_username, $db_password, $db_name);
if ($conn->connect_error) {$error[] .= 'Database: '.$conn->connect_error;}

wenn ich mir nun eine Datei schreibe die wie folgt aussieht:

PHP:
include_once 'config.php';

$u = $conn->query("SELECT * FROM `settings`");
if(!empty($u)){
    while ($row = $u->fetch_assoc()) {
        $settings[$row['name']] = $row['value'];
    }
}

echo $settings['redirect_claim'];

wird mir die Url ausgegeben die momentan in der DB gespeichert ist............................

Nun möchte ich einfach 2 oder auch 3 links definieren

z.bsp:
$link1 = 'http://beispiel1.com';
$link2 = 'http://beispiel2.com';
$link3 = 'http://beispiel3.com'; (nur wenn nicht zu umständlich, wäre aber schön)

die dann bei aufruf dieser neuen Datei (eben per Cron) in die DB geschrieben werden (es darf immer nur eine URL in der DB stehen)
also quasi nach folgendem Shema -> steht $link1 drin soll bei aufruf dann eben $link2 reingespeichert werden, bei neuem Aufruf dann $link3 und bei erneutem Aufruf dann eben wieder $link1 und immer so weiter.........
 
Habe mal auf die schnelle was gebastelt. Sollte klappen, und ich denke erklärt sich von selber:
PHP:
<?php
$db_hostname = "192.168.2.2";
$db_username = "****";
$db_name = "test";
$db_password = "****";

$conn = new mysqli($db_hostname, $db_username, $db_password, $db_name);
if ($conn->connect_error) {$error[] .= 'Database: '.$conn->connect_error;}

$query  = 'SELECT * FROM `settings';
$result = $conn->query($query);

while ($row = $result->fetch_assoc()) {
  $link = $row['redirect_claim'];
}

echo $link;

switch ($link) {
  case "http://beispiel1.com":
    $einfügen = "http://beispiel2.com";
    break;
  case "http://beispiel2.com":
    $einfügen = "http://beispiel3.com";
    break;
  case "http://beispiel3.com":
    $einfügen = "http://beispiel1.com";
    break;
  default:
    $einfügen = "http://beispiel1.com";
}

$query  = "INSERT INTO settings (redirect_claim) VALUES ('$einfügen')";
if (!$conn->query($query) === TRUE) {
    echo "Error: " . $query . "<br>" . $conn->error;
}
 
ok danke aber leider ändert sich nichts....das echo gibt den link aus der drin steht aber eine änderung gibt es nicht :(

der link wird auch angezeigt wenn ich echo $link; entferne ?
 
Zuletzt bearbeitet:
Dann machst Du definitiv was falsch. Denn ich hatte die Datei auf meinem Server, und er hat bei jedem Aufruf einen anderen Link in die DB gespeichert. und auch den aktuellen der in der DB steht ausgegeben.
 
ok danke dir....dann weiß ich leider auch nicht mehr weiter....danke

ja allerdings verstehe ich es gerade wirklich nicht....ich habe den link in der DB gelöscht und trotzdem wird er mir weiterhin ausgegeben ?

komisch

kann mir jemand verraten was das genau bedeutet

PHP Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in /home/server/example.com/slexchange.php:16
Stack trace:
#0 {main}
thrown in /home/server/example.com/slexchange.php on line 16
 
Zuletzt bearbeitet:
Zeig uns doch mal das Script.

@DerKleene1 du solltest keine Umlaute in deinem Code verwenden, dass führt zu Fehlern.
Wenn es bei Dir funktioniert muss es nicht unbedingt bei anderen Funktionieren.

Umlaute als Variablen sollte man immer Vermeiden. :)
 
Zurück