html bzw php list mysql abfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • html bzw php list mysql abfrage

    hallo,
    ich bin neu unter den php entwicklern und sehe mich eines problems gegenüber.
    ich versuche eine liste mit beliebig vielen werten mittels html und php zu bauen (also ne auswahl welche zeile in der mysql datenbank gewählt werden soll).

    da ich nun eine "for" schleife gebastelt hab:

    <ul>
    for ($i=1;$i<=mysqli_num_rows($db_erg);$i++)
    {
    echo "<li><button class='btn' name='x'>";
    echo $i;
    echo "</button></li>";
    }
    </ul>


    ist jetzt die frage, was wäre die eleganteste lösung um an den angeklickten wert von $i zu kommen?

    was meint ihr?

  • #2
    Hallo,

    Abgesehen davon, daß ich keine for machen, sondern über die Ergebnismenge direkt iterieren würde, empfinde ich es am elegantesten, das übner eine Form mit POST zu übertragen.

    Am einfachsten geht es aber sicher mit einem einfachen Link, den Du als Button stylest.

    Beispiel:
    PHP-Code:
    $aItems = array();
    $sItem '<li><a class="button" href="zielseite.php?id={ID}">{ID}</a></li>';

    for ( 
    $x=0$x<10$x++ ) {

        
    $aItems[] = str_replace'{ID}'$x$sItem );

    }

    echo 
    '<ul>' implode$aItems ) . '</ul>'
    Auf der Zielseite, dann abfragen mit GET:
    PHP-Code:
    $iId = isset( $_GET['id'] )? (integer)$_GET['id']: null;

    if ( !
    is_null($iId) ) {

        
    // hier der Code zum Auslesen der Daten usw.


    Kommentar


    • #3
      hallo,
      danke für die schnelle antwort.
      ich hab nur leider das blöde problem, dass ich die ausgewählte spalte aus der mysql datenbank löschen will.... aber in dem augenblick wo der löschen button gedrückt wird wird der POST gelöscht und nicht an die datenbank übermittelt... wie mir scheint... ich kann es mir nicht anders erklären
      scheinbar wird zur kommunikation mit der datenbank auch das POST system verwendet... gibt es noch eine andere möglichkeit?

      Kommentar


      • #4
        Pack den Wert ins value-Attribute des Buttons.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          in welchen button?

          edit:
          also die frage ist, wie kann ich aus einer html liste die richtige zeile auswählen um sie dann später per mysqli_query zu löschen oder zu bearbeiten

          vielleicht unter der nutzung der session funktion???!!
          Zuletzt geändert von flausch; 13.02.2016, 19:25.

          Kommentar


          • #6
            Zitat von flausch Beitrag anzeigen
            in welchen button?
            In jeden den du in deiner Schleife ausgibst …
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              oke, danke nochmal.
              ich bekomm nun den wert über value in die mysqli_query
              das problem ist aber leider immernoch das selbe...
              wenn ich "echo $sql" manuell im query unter phpmyadmin ausführe funktioniert es
              aber wenn ich das über php bzw html mache bleibt besagter datensatz erhalten
              selbst wenn ich den wert des datensatzes manuell in den code einfüge passiert nix oO ich hab bestimmt einfach irgendwas übersehen
              probier daran jetzt schon 3 tage

              Code:
              if (isset($_REQUEST['xyz']))
              	{
              		$sql = "DELETE FROM `content` WHERE `no` = ". $_SESSION['blubb'] .";";
              		echo $sql;
              		$db_erg = mysqli_query( $db_link, $sql);
              	if ( ! $db_erg )
              	{
              	die('Ungültige Abfrage: ' . mysql_error());
              	}
                  exit;
              	}
              echo $sql; ergibt:

              DELETE FROM `content` WHERE `no` = 15;

              könnt ihr meinen fehler hier erkennen?

              Kommentar


              • #8
                PHP: mysqli::$affected_rows - Manual

                Kommentar


                • #9
                  Du kannst natürlich nicht die MySQL-Funktion zur Fehlerausgabe nutzen, wenn du die Datenbankabfrage über MySQLi machst …
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    PHP-Code:
                    echo mysqli_error($db_link); 
                    ergibt jetzt

                    You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

                    Kommentar


                    • #11
                      Jetzt solltest du die zugehörige SQL-Abfrage auch noch ausgeben.

                      Kommentar


                      • #12
                        aaalso
                        ich habs jetzt endlich nach 5 tagen
                        es war kein denkfehler und kein problem des abgreifens des wertes.... sondern einfach ein mysql syntaxproblem

                        "DELETE FROM `content` WHERE `no`= '{$_SESSION['blubb']}';"

                        so funktioniert es scheinbar ^^

                        danke euch allen für die hilfe
                        Zuletzt geändert von flausch; 15.02.2016, 11:02.

                        Kommentar

                        Lädt...
                        X