Hallo,
ich bastel mal wieder an einem Script und ich hoffe das aus der Überschrift schon so ein wenig klar wird was ich meine. Man kennt es auf jeder Social-Media Plattform das man anderen Usern "folgen" kann bzw. mit ihnen befreundet sein kann.
Ich habe dazu einen Code geschrieben der mir dabei helfen soll. An sich funktioniert dieser auch doch es gibt zwei Probleme auf die ich gleich noch eingehen möchte aber zu aller erst der Code :)
Also das Hauptproblem liegt in diesen Zeilen:
if ($row['iduser'] == $userid && $row['followed'] == $user) {
echo '<input type="submit" name="Entfolgen" value="Entfolgen">';
} else {
echo '<input type="submit" name="Folgen" value="Folgen">';
}
Letztendlich möchte ich folgendes. Wenn ein User einem anderen User bereits folgt, dann soll ein Button/input-Feld mit "Entfolgen" angezeigt werden.
Besucht ein User einen anderen User zum ersten mal oder folgt ihm noch nicht, soll ein "Folgen" Button angezeigt werden.
Zu aller erst habe ich das Problem das wenn noch nicht ein einziger Eintrag in der Tabelle vorliegt, auch kein Button angezeigt wird. Weder folgen noch entflogen...
Zudem gab es dann das Problem das sobald ich mehr als einem User gefolgt bin, bei jedem User dem ich folgte sowohl der folgen als auch der entflogen Button mit angezeigt wurde...
Also hatte ich mir überlegt was ich machen kann und habe dann den Code ein wenig umgeschrieben:
Die Neuerung beziehent sich auf diese Zeilen:
$boom = $pdo->query($sql)->fetch();
if ($boom['iduser'] == $userid && $boom['followed'] == $user) {
echo '<input type="submit" name="Entfolgen" value="Entfolgen">';
} else {
echo '<input type="submit" name="Folgen" value="Folgen">';
}
Nun wird der "folgen" Button auch dann angezeigt wenn bisher kein Eintrag in der Tabelle existierte. Auch das Problem das beide Button auf einmal angezeigt werden hat sich hiermit erledigt. Neues Problem ist jetzt aber das dass ganze nur für den ersten User dem man folgt, einwandfrei funktioniert. Alle darauffolgenden Usern denen man folgt, werden zwar in die Tabelle eingetragen doch der Button verändert sich dahingehend nicht.
Also beim ersten User funktioniert es wie gesagt. Bei allen anderen Usern denen erst danach gefolgt wurde steht "folgen" obwohl bei jedem dem ich bereits folge, "entfolgen" stehen müsste :/
Ich hoffe es ist nicht all zu verwirrend und ihr versteht was das Problem ist. Wäre wirklich super falls jemand von euch eine Idee hätte was man tun kann
ich bastel mal wieder an einem Script und ich hoffe das aus der Überschrift schon so ein wenig klar wird was ich meine. Man kennt es auf jeder Social-Media Plattform das man anderen Usern "folgen" kann bzw. mit ihnen befreundet sein kann.
Ich habe dazu einen Code geschrieben der mir dabei helfen soll. An sich funktioniert dieser auch doch es gibt zwei Probleme auf die ich gleich noch eingehen möchte aber zu aller erst der Code :)
Code:
<form method="post" >
<?php
$pdo = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'hund456');
$sql = "SELECT iduser, followed FROM abonennten";
foreach ($pdo->query($sql) as $row) {
if ($row['iduser'] == $userid && $row['followed'] == $user) {
echo '<input type="submit" name="Entfolgen" value="Entfolgen">';
} else {
echo '<input type="submit" name="Folgen" value="Folgen">';
}
}
if ($_POST["Folgen"]) {
$statement = $pdo->prepare("INSERT INTO abonennten (id ,iduser, followed) VALUES (NULL, '$userid', '$user')");
$statement->execute();
}
if ($_POST["Entfolgen"]) {
$statement = $pdo->prepare("DELETE FROM `abonennten` WHERE iduser = '$userid' AND followed = '$user'");
$statement->execute();
}
?>
</form>
Also das Hauptproblem liegt in diesen Zeilen:
if ($row['iduser'] == $userid && $row['followed'] == $user) {
echo '<input type="submit" name="Entfolgen" value="Entfolgen">';
} else {
echo '<input type="submit" name="Folgen" value="Folgen">';
}
Letztendlich möchte ich folgendes. Wenn ein User einem anderen User bereits folgt, dann soll ein Button/input-Feld mit "Entfolgen" angezeigt werden.
Besucht ein User einen anderen User zum ersten mal oder folgt ihm noch nicht, soll ein "Folgen" Button angezeigt werden.
Zu aller erst habe ich das Problem das wenn noch nicht ein einziger Eintrag in der Tabelle vorliegt, auch kein Button angezeigt wird. Weder folgen noch entflogen...
Zudem gab es dann das Problem das sobald ich mehr als einem User gefolgt bin, bei jedem User dem ich folgte sowohl der folgen als auch der entflogen Button mit angezeigt wurde...
Also hatte ich mir überlegt was ich machen kann und habe dann den Code ein wenig umgeschrieben:
Code:
<form method="post" >
<?php
$pdo = new PDO('mysql:host=localhost;dbname=Datenbank_NEU', 'root', 'hund456');
$sql = "SELECT iduser, followed FROM abonennten";
$boom = $pdo->query($sql)->fetch();
if ($boom['iduser'] == $userid && $boom['followed'] == $user) {
echo '<input type="submit" name="Entfolgen" value="Entfolgen">';
} else {
echo '<input type="submit" name="Folgen" value="Folgen">';
}
if ($_POST["Folgen"]) {
$statement = $pdo->prepare("INSERT INTO abonennten (id ,iduser, followed) VALUES (NULL, '$userid', '$user')");
$statement->execute();
}
if ($_POST["Entfolgen"]) {
$statement = $pdo->prepare("DELETE FROM `abonennten` WHERE iduser = '$userid' AND followed = '$user'");
$statement->execute();
}
?>
</form>
Die Neuerung beziehent sich auf diese Zeilen:
$boom = $pdo->query($sql)->fetch();
if ($boom['iduser'] == $userid && $boom['followed'] == $user) {
echo '<input type="submit" name="Entfolgen" value="Entfolgen">';
} else {
echo '<input type="submit" name="Folgen" value="Folgen">';
}
Nun wird der "folgen" Button auch dann angezeigt wenn bisher kein Eintrag in der Tabelle existierte. Auch das Problem das beide Button auf einmal angezeigt werden hat sich hiermit erledigt. Neues Problem ist jetzt aber das dass ganze nur für den ersten User dem man folgt, einwandfrei funktioniert. Alle darauffolgenden Usern denen man folgt, werden zwar in die Tabelle eingetragen doch der Button verändert sich dahingehend nicht.
Also beim ersten User funktioniert es wie gesagt. Bei allen anderen Usern denen erst danach gefolgt wurde steht "folgen" obwohl bei jedem dem ich bereits folge, "entfolgen" stehen müsste :/
Ich hoffe es ist nicht all zu verwirrend und ihr versteht was das Problem ist. Wäre wirklich super falls jemand von euch eine Idee hätte was man tun kann
