PHP - in Datenbank blättern(mit Butten)?

Hallo, ich muss derzeit eine Datenbank programmieren und hierfür auch eine Webseite mit Benutzeroberfläche.

Hier soll man

in der Datenbank Blättern können. Pro Seite soll nur ein Datensatz zu

sehen sein. Das Blättern soll dann mit Butten funktionieren (oder anders [wie es leichter ist])

ich habehierfür diesen Codein

<<?php require'php/connect.php' ?>

<?php  			
		$zahl = mysqli_query($con, "SELECT * COUNT(*) AS `A` FROM `kunden`");
		//$zahl_total = mysqli_fetch_array($zahl);
		$gesamte_anzahl = $zahl['A'];

		$ergebnisse_pro_seite = 1;
		$gesamt_seiten = ceil($gesamte_anzahl/$ergebnisse_pro_seite);

		if (empty($_GET['seite_nr'])) 	{
   		 $seite = 1;
										} 
	else 	{
   		 $seite = $_GET['seite_nr'];
    if ($seite > $gesamt_seiten) 	{
        $seite = 1;
   		 							}
			}

		$limit = ($seite*$ergebnisse_pro_seite)-$ergebnisse_pro_seite;




		$result = mysqli_query($con, "SELECT * FROM `kunden` LIMIT '.$limit.', ".$ergebnisse_pro_seite);
		while ($row = $result) {

				echo($row['Name']);
		}
    

		for ($i=1; $i<=$gesamt_seiten; ++$i) 	{
   		 if ($seite == $i) 	{
        echo '<a href="anzeigen.php?seite_nr='.$i.'" style="font-weight: bold;">'.$i.'</a>';
    						} 

    else 	{
        echo '<a href="anzeigen.php?seite_nr='.$i.'">'.$i.'</a>';
    		}
												}
 ?>

der Connect.php Datei steht

<?php
$servername = "localhost";
$user = "root";
$pw = "";
$db = "banana";

$con = mysqli_connect($servername, $user, $pw, $db);


if($con)
{
    echo('Verbindung Hergestellt');
}

else
{
    echo ('Fehler beim Verbindung zum Server');
}

 ?>


Computer, Technik, sql, HTML, Programmierung, Datenbank, Datensätze, MySQL, PHP, Technologie, butten
2 Antworten
Ajax holt Daten, JQUERY erkennt ID nicht?

Hallo

Ich hoffe, dass Ihr mir auf die Sprünge helfen könnt.

Mittels Button wird per JQUERY Ajax aufgerufen. Von der Datenbank werden Bilder ausgegeben.

Nun habe ich vorher schon einige Funktion gebastelt, die mir erlauben das Bild zu bearbeiten, z.B. mittels keyUP die Positionen vom Bild zu verändern, Größe und Co.

Da es mehrere Bilder sind, wird in der PHP Datei eine For-schleife erstellt, wo die Inputs und Buttons mit classen (und Id->testzweck) versehen werden (echo-ausgabe).

Nun lassen sich weder die Buttons noch mit Inputs steuern, weder mit this bzw Klassen noch mit der Id.

Hat vielleicht jemand eine Idee woran es liegen könnte?

      $('#load_image').click( function (event) {
        event.preventDefault();
        $.ajax({
          type: 'POST',
          url: 'ajax/home.php',
          data: $(this).serialize(),
          success: function (title_image) {
            $('#title_image').html(title_image);
          }

        });
      });



<button id="load_image" type="submit" name="load_image" class="btn btn-primary start"> <span><i class="glyphicon glyphicon-picture"></i>Bilder Laden</span> </button>
        <div id="title_image" class="margin">
          <!-- DIVS vom PHP AJAX -->
        </div>


Ajax PHP datei

if (!$title->execute()) {
  echo "Fehler";
} else {
  $name = array();
  while ($data = $title->fetch()) {
    $name[] = $data['name'];
  }
$count = count($name);
  for ($i=0; $i < $count; $i++) {
    echo $name[$i];

/* DIVS */
    echo '    <input type="number" id="image_horizontal_edit1" value="" placeholder="Horizontal">';
    echo '    <input type="number" id="image_vertical_edit1" value="" placeholder="Vertical"><br><br>';
    echo '    <input type="number" id="image_zoom_edit1" value="" placeholder="Zoom"><br><br>';


Computer, Technik, HTML, programmieren, html5, AJAX, JQuery, MySQL, PHP, Technologie
4 Antworten
MySQL Tabelle mit PHP ausgeben und auf mehrere Seiten verteilen?

Hallo,

vorab möchte ich sagen, dass ich mich im Internet auf die Suche nach der Lösung von meiner Frage gemacht habe, doch leider aber nichts Hilfreiches gefunden.

Meine Frage:

Ich habe eine MySQL Tabelle mit dem Namen headset in der Tabelle elektronik.

Diese gebe ich mit Hilfe von:

$dbhost = 'localhost';
$dbname = 'headset';
$dbuser = 'root';
$dbpass = '';
$pdo = new PDO('mysql:host='.$dbhost.';dbname='.$dbname,$dbuser,$dbpass); #stellt die Verbindung zur Datenbank her


$sql  = "SELECT * FROM 
elektronik

 ORDER BY 
date

 DESC"; $statement = $pdo->prepare($sql); $statement->execute();
while ($row = $statement->fetch()) {

echo '
<div class="liste">
Name: '.$row["name"].'<br/>Preis: '.$row["preis"].'
<img src="'.$row["bildname"].'.jpg" style="margin-left: 5px;" width="100%" alt="Das Bild konnte nicht gefunden werden">
</div><br />
<br />';
}

ausgebe.

Jetzt möchte ich, dass ich die ganzen Artikel, die ausgegeben werden sollen, sich auf mehrere Seiten verteilen.

Unten soll dann die Anzahl der Seiten zum Anklicken (1 -- 2 -- 3) sein, wo man dann zu entsprechenden Seite kommt. Des Weiteren soll rechts von den Zahlen "weiter" stehen und links "zurück". Wenn man da draufklickt, soll man eine Seite weiter bzw. eine Seite zurückkommen. Also: zurück -- 1 -- 2 -- 3 ... -- weiter

Und jetzt soll auf jeder Seite 4 Ergebnisse stehen. Und unter jedem Ergebnis sollen wieder die Seitenzahlen aufgelistet sein, nur dass die Seite, auf der man sich befindet, fett markiert ist: zurück -- 1 -- 2 -- 3 ... -- weiter

Wie soll die PHP Datei aussehen?

Vielen Dank im Vorraus!

PC, Computer, Technik, programmieren, Datenbank, MySQL, PHP, Technologie
3 Antworten
MySQL Anfragenbeschränkung? - Tampermonkey?

Hallo,

ich habe mir ein kleines Projekt gebastelt. In diesem Projekt habe ich sowas wie eine kleine API, sowas wie "url.de/submitData.php?name=xy&value=123". Dazu habe ich in Chrome mehrere Tabs offen, die über Tampermonkey alle 3 Minuten eine Anfrage an diese Adresse (mit den jeweiligen GET-Parametern) schicken. Die PHP-Datei speichert dann die Daten in die DB. Hierbei gibt es immer die gleiche Anzahl an Zeilen, die jeweilige Zeile wird über den Parameter "name" ausgesucht und dann mit "value" geupdatet.
In meiner DB habe ich dann ein "ON_UPDATE CURRENT_TIMESTAMP", um zu sehen, wann die Daten aktualisiert wurden.

Was jetzt komisch ist, ist die Tatsache, dass es absolut nicht alle 3 Minuten aktualisiert wird, sondern maximal alle 10-20 Minuten, teilweise bis zu 40-50 Minuten. Zuerst dachte ich, es liegt an irgendwelchen Problemen mit Tampermonkey. Jetzt kommt aber das interessante:
Ich habe, nachdem ich das Problem festgestellt habe, eine weitere Funktion eingefügt, welche auch in der besagten PHP-Datei (submitData.php) steht, die nichts anderes macht, als einen Wert in eine andere Tabelle zu schreiben, hier aber bei jedem Aufruf ein Insert. Das Interessante: Es waren in 10 Minuten knapp 80 Zeilen da, was gut hinkommt, bzgl. der Anzahl der offenen Tabs und alle 3 Minuten eine Anfrage.

Jetzt ist die Frage: kann mir jemand sagen warum? Ist ein Update alle 3 Minuten zu viel bzw. verhält sich Insert anders als Update? Gibt es da eine Begrenzung bei MySQL? Eigentlich sind 10 Anfragen die Minute doch gar nichts oder? Oder liegt es vllt. an der Definition der Spalte in der DB, also dass der Wert aktualisiert wird, aber der TIMESTAMP nicht? Die Spalte wurde definiert mit

ALTER TABLE balance ADD Update_Date TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER balance;

Danke für jede Hilfe!

Computer, Technik, sql, Datenbank, MySQL, PHP, Technologie, mysql-datenbank, phpmyadmin, tampermonkey
1 Antwort
Suchfunktion mit PHP Version 7.1.12 und MySQL?

Hallo,

ich habe mir letztens auf YouTube ein Video angeschaut, wie man mit Hilfe von PHP eine MySQL-Datenbank durchsucht. Ich habe es selber ausprobiert, doch musste leider feststellen, dass der Code nicht für meine PHP-Version (7.1.12) geeignet ist.

Also habe ich versucht ihn umzuschreiben. Das hat aber leider nicht geklappt.

<html>
  <head>
    <title>Suche</title>
  </head>
  <body>
    <form action="" method="get">
      <input type="text" name="suchfeld"/>
      <input type="submit" name="suche_enter" value="suchen"/>
    </form>
    <hr /><br />
    <?php
      if (isset($_GET['suche_enter'])) {
        $host = "localhost";
        $user = "root";
        $pass = "";
        $db = "test_db";
        $conn = new mysqli($host, $user, $pass, $db);

        if ($conn->connect_errno) {
          die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
        }

        $suchbegriff = trim(htmlentities(stripslashes(mysqli_real_escape_string($_GET['suchfeld']))));
        $sql = "SELECT headline, text FROM article WHERE
          headline LIKE '%$suchbegriff%' OR
          image LIKE '%$suchbegriff%' OR
          overtext LIKE '%$suchbegriff%' OR
          text LIKE '%$suchbegriff%' OR
          gender1 LIKE '%$suchbegriff%' OR
          gender2 LIKE '%$suchbegriff%'
          ORDER BY headline, gender1, overtext, text, gender2, image";
        $query = mysqli_query($sql);

        echo "<ul>";

        WHILE ($row = mysqli_fetch_assoc($query)) {
          $headline = $row['headline'];
          $overtext = $row['overtext'];
          $text = $row['text'];

          echo "<li>$headline <br /><br />$overtext<br /><br /><hr /><br /></li>";
        }

        echo "</ul>";
      }
    ?>
  </body>
</html>

Wie müsste der Code richtig aussehen?

Computer, HTML, programmieren, Datenbank, MySQL, PHP, php5
8 Antworten
Große Queries durchlaufen?

Hallo zusammen!

Ich habe jetzt auch einmal eine Frage bzw. würde ich gerne erfahren, wie ihr solche Probleme löst. Es geht darum, dass ich bspw. einen Query mit sagen wir 2000 Sätzen habe.

Wenn ich bspw. jede Stunde alle Sätze durchlaufen möchte und prüfe, ob eine bestimmte Zeit kleiner als die aktuelle Zeit ist, dann soll dieser Satz editiert werden.

Wie das geht und was man da machen muss, ist alles klar. Meine Frage ist jetzt, wie ihr das löst, dass der Server (Ladezeit) nicht irgendwie stark beeinträchtigt wird und auch keine Timeouts zustande kommen.

Gibt es bspw. eine Möglichkeit den Query stufenweise zu durchlaufen? Aber innerhalb eines Aufrufs?

Ich würde gerne erfahren, wie ihr solche Dinge löst... in letzter Zeit benötige ich regelmäßig zeitgesteuerte Aufgaben, die mit verhältnismäßig vielen Daten arbeiten.

Gerne würde ich gute Antworten auch in einen Blogbeitrag packen, einfach damit ich immer alles parat habe (führe meinen Blog für mich selbst). Gerne also auch euren Link posten, falls ihr verlinkt werden wollt. (Sind nicht viele Besucher, ist wie gesagt nur für mich...)

Bitte nur für/mit: PHP, MYSQL, WordPress, JavaScript

Beispiel: In meinem Beispiel handelt es sich um Stellenanzeigen und die sind mit anderen Tabellen verknüpft. In den Stellenanzeigen gibt es ein Starttermin, eine Anzahl für die Tage die die Stelle live ist und dann daraus das Ablaufdatum. Der Query durchläuft also jede Stelle, prüft ob das aktuelle Datum größer ist als das Ablaufdatum und haut dann den Status "geschlossen" in den Job (ebenfalls ein Eintrag in einer Tabelle). Selektiert werden nur die Stellen, die den Status offen haben.

Danke vorab!

Wordpress, JavaScript, AJAX, JQuery, MySQL, PHP, Cronjob, Queries
8 Antworten
Kommentarfeld in PHP optimieren?

Hallo liebe Programmierfreunde,

ich habe tatsächlich schon wieder eine Frage zum Thema PHP. Und zwar habe ich eine Kommentarfunktion mit der Hilfe von einem Tutorial im Internet erstellt. Das Ganze funktioniert leider noch nicht perfekt, da jeder Kommentar, den ich eingebe, in meine MySQL-Tabelle mit derselben id eingespeichert wird. So kann die Tabelle leider immer nur einen Kommentar umfassen. Erst wenn ich die id manuell ändere, lässt sich ein neuer Kommentar erstellen.

Damit ihr wisst wie mein Skript aussieht, hier ein großer Teil des Quelltextes:

<?php
   $server = "localhost";
   $datenbank = "comment";
   $username = "root";
   $link = mysqli_connect($server, $username);
   if (!$link)
       {
       die("Konnte die Datenbank nicht öffnen.
            Fehlermeldung: ". mysqli_error());
       }
   $db = mysqli_select_db($link, $datenbank);
   if (!$db)
       {
       echo "Konnte die Datenbank nicht auswählen.";
       }
If(isset($_POST['submit'])){
   $ersteller = trim(strip_tags($_POST['name']));
   $titel = trim(strip_tags($_POST['title']));
   $beitrag = trim(strip_tags($_POST['comment']));
?
   if (!empty($_POST["submit"]))
       {
       if (empty($ersteller))   $_errors[] = "Name Fehlt.";
       if (empty($titel))       $_errors[] = "Titel fehlt.";
       if (empty($beitrag))   $_errors[] = "Beitrag fehlt.";
       if (count((array)@$_errors) > 0)
           {
           foreach($_errors as $_error)
               {
               echo $_error . "<br>";
               }
           }
       else
           {
           $_sql = 'INSERT INTO comment
                    (name,title,comment,posted)
                      VALUES ( 
                    "'.mysqli_real_escape_string($link, $ersteller).'",
                    "'.mysqli_real_escape_string($link, $titel).'",
                    "'.mysqli_real_escape_string($link, $beitrag).'",
                    NOW());';
           mysqli_query($link, $_sql);
           echo "Danke für Ihren Eintrag.<br><br>";
}
}
}
?>
<h1>G&auml;stebuch</h1><br>
<br>
<div class="comments">
<?php
   $_sql = "SELECT * FROM comment ORDER BY posted ASC";
   $_res = mysqli_query($link, $_sql);
   while ($row = mysqli_fetch_array($_res, MYSQLI_ASSOC))
       {
       echo " <div><hr>";
      echo "Eintrag Nummer: " . $row["id"];
       echo " von " . $row['name'];
       echo " vom " . date('d.m.Y', strtotime($row['posted']));
       echo "<br>". str_replace("\n", "<br>", $row['comment']);
       echo "<hr></div>";
       }
?>
</div>
<br><br>
<h3>Kommentar verfassen</h3>
<form action="comments.php" method="POST">
Ihr Name: <input name="name" maxlength=30><br>
Titel des Beitrags: <input name="title" maxlength=100><br>
Ihr G&auml;stebucheintrag:<br>
<textarea name="comment" rows=5 cols=50></textarea><br>
<input type="submit" name="submit" value="Eintragen">
</form>
<?
   mysqli_close($link);
?>
Computer, MySQL, PHP
3 Antworten
php: DateTime::__construct(): Failed to parse time string?

Ich habe diese Skript:

$result = @mysql_query("SELECT * FROM blog ORDER BY id");

while ($row = @mysql_fetch_row($result)) {
  $contentWeb.='<p>'.time_ago('@'.$row[2].'').'</p>';
}

echo "".$contentWeb."";

# Normal: echo time_ago('@1542737619');

function time_ago($datetime, $full = false) {
  $now = new DateTime;
  $ago = new DateTime($datetime);
  $diff = $now->diff($ago);
  $diff->w = floor($diff->d / 7);
  $diff->d -= $diff->w * 7;

  $string = array(
    'y' => 'Jahre',
    'm' => 'Monat',
    'w' => 'Woche',
    'd' => 'Tag',
    'h' => 'Stunde',
    'i' => 'Minute',);

  foreach ($string as $k => &$v) {
    if ($diff->$k) {
      if ($v == "Tag" || $v == "Monat") {
        $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 'en' : '');
      }
      else {
        $v = $diff->$k . ' ' . $v . ($diff->$k > 1 ? 'n' : '');
      }
    }
    else {
      unset($string[$k]);
    }
  }

  if (!$full)
    $string = array_slice($string, 0, 1);

  return $string ? 'Vor ' . implode(', ', $string) : 'Vor 1 Minute';
}

(https://paste.debian.net/1053008/)

Aber damit erhalte ich keine Ausgabe und den Fehler:

PHP Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (1471255200) at position 7 (2): Unexpected character' in /var/XXX.php:24\nStack trace:\n#0 /var/XXX.php(24): DateTime->__construct('1471255200')\n#1 /var/XXX.php(16): time_ago('1471255200')\n#2 {main}\n

Wenn man das mit der Datenbank und der Schleife weg macht, geht es. Also alles weg vor "Normal:".

Was ist da falsch?

sql, programmieren, Programmierung, Datenbank, MySQL, PHP
2 Antworten

Meistgelesene Fragen zum Thema MySQL

wie kann man bei xampp ein Passwort für root anlegen?

3 Antworten

Was ist der unterschied zwischen sql und mysql?

5 Antworten

Kann man mit Notepad++ von zeile 1 bis 1000 markieren? Wenn ja wie?

4 Antworten

#1067 - Fehlerhafter Vorgabewert ( DEFAULT ) für 'created at' Error erscheint bei der Erstellung einer neuen SQL-Tabelle. Kennt jemand den Error oder hat ihn?

4 Antworten

1&1 MySQL-Datenbank>> Löschzeit?

1 Antwort

Projektideen Informatik

6 Antworten

Wordpress installation funktioniert wegen fehlender mysql erweiterung nicht?

2 Antworten

SQL Island Pilot befreien?

3 Antworten

Welche Programmiersprachen sind wichtig wenn man Fachinformatiker Anwendungsentwicklung lernen will?

7 Antworten

MySQL - Neue und gute Antworten