Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbank Suche | Nutzer nach Kriterien anzeigen lassen?

Einklappen

Neue Werbung 2019

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

  • Datenbank Suche | Nutzer nach Kriterien anzeigen lassen?

    Hallo liebe Community,

    ich bin Anfänger in Sachen Web Entwicklung.
    Ich wollte eine Nutzer Suche Programmieren die mir nach verschiedenen Kriterien die Passenden User anzeigt.
    Ich habe schon mal eine Art Formular erstellt nur habe ich im Internet bisher leider nichts finden können
    was meiner User Suche nahe kommt.

    Vielleicht wisst ihr ja weiter..

    Vielen Dank

    Grüße Nexsis



    PHP-Code:
    <body>

        <
    div style="width:612px" class="wmfg_layout_1">

        <
    form method="post" action="">

        <
    ul class="wmfg_questions">

            <
    li class="wmfg_q">
                <
    label class="wmfg_label" for="select_id">Bundesland:</label>
                <
    select class="wmfg_select" name="select_name" id="select_id">
                    <
    option value="value 1">Baden-Württemberg</option>
                    <
    option value="value 2">Bayern</option>
                    <
    option value="value 3">Berlin</option>
                    <
    option value="value 1">Brandenburg</option>
                    <
    option value="value 1">Bremen</option>
                    <
    option value="value 1">Hamburg</option>
                    <
    option value="value 1">Hessen</option>
                    <
    option value="value 1">Mecklenburg-Vorpommern</option>
                    <
    option value="value 1">Niedersachsen</option>
                    <
    option value="value 1">Nordrhein-Westfalen</option>
                    <
    option value="value 1">Rheinland-Pfalz</option>
                    <
    option value="value 1">Saarland</option>
                    <
    option value="value 1">Sachsen</option>
                    <
    option value="value 1">Sachsen-Anhalt</option>
                    <
    option value="value 1">Schleswig-Holstein</option>
                    <
    option value="value 1">Thüringen</option>
                </
    select>
            </
    li>

            <
    li class="wmfg_q">
                <
    label class="wmfg_label" for="text_id">Alter:</label>
                <
    input type="text" class="wmfg_text" name="text_name" id="text_id" value="" />
            </
    li>

            <
    li class="wmfg_q">
                <
    label class="wmfg_label" for="select_id">Geschlecht:</label>
                <
    select class="wmfg_select" name="select_name" id="select_id">
                    <
    option value="value 1">Männlich</option>
                    <
    option value="value 2">Weiblich</option>
                </
    select>
            </
    li>

            <
    li class="wmfg_q">
                <
    label class="wmfg_label">Mit Profilbild:</label>
                <
    table class="wmfg_answers">
                    <
    tr class="wmfg_a">
                        <
    td class="wmfg_a_td"><input type="radio" class="wmfg_radio" name="nameradio" value="value 1" /></td>
                        <
    td><label class="wmfg_label_a" for="radio_1">Ja</label></td>
                    </
    tr>
                    <
    tr class="wmfg_a">
                        <
    td class="wmfg_a_td"><input type="radio" class="wmfg_radio" name="nameradio" value="value 2" /></td>
                        <
    td><label class="wmfg_label_a" for="radio_2">Nein</label></td>
                    </
    tr>
                </
    table>
            </
    li>

            <
    li class="wmfg_q">
                <
    input type="submit" class="wmfg_btn" name="submit_name" id="submit_id" value="Senden" />
            </
    li>

        </
    ul>

        </
    form>

        </
    div>


    </
    body
    Formular

  • #2
    Als Nächstes brauchst Du eine Datenbank, in der Deine User drin stehen. Im Zusammenhang mit PHP ist das meistens MySQL.

    Na, und die fragst Du dann per SQL ab. Im Netz gibt's hunderte Tutorials zu PHP + MySQL.

    Bei der Gelegenheit solltest Du Dich auch gleich mit der Frage beschäftigen, wie die Userdaten in die Datenbank kommen sollen.

    Kommentar


    • #3
      Hallo, danke für deine Antwort!

      Also ich habe ein funktionierendes Login und Registrationen System sowie eine Datenbank wo die User drinnen Stehen
      eine einfache abfrage der Datenbank bekomme ich auch hin nur mein Problem ist, das ich nicht weiß wie ich eben diese
      Suche machen soll.. Also mit den verschiedenen Kriterien dazu habe ich leider im Internet nichts gefunden.

      Gruß

      Kommentar


      • #4
        sowie eine Datenbank wo die User drinnen Stehen
        Du nutzt doch sonst auch bestimmt die Google Suche....

        Ich habe jetzt z. B. mal nach "php mysql abfrage anhand von formular daten" gesucht.

        Da gibt's einige brauchbare Treffer.

        Nur schon mal einige Hinweise vorab:

        Deine Feldnamen wie z. B. "select_name" sind etwas Banane.
        Nenne die besser so, dass man auch weiß, was die beinhalten. Zudem ist Englisch die Sprache der Entwickler.
        Für die Bundesländer vlt. "fed_state" für Federal State (= Bundesland)
        Die values müssen sich schon unterscheiden und sollten den IDs einer Datenbanktabelle federal_states entsprechen, wo alle Bundesländer hinterlegt sind..
        x-mal "value 1" geht in die Hose.

        Dein Select befüllst Du dann dynamisch, indem Du die Bundesländer alle aus der Datenbank abfragst.
        Wie das grundsätzlich geht wird Dir z. B. in diesem Video vorgeführt. https://www.youtube.com/watch?v=V8sIWh_sdvs

        Youtube ist ohnehin keine schlechte Adresse, wenn Du möglichst schnell was zustande bringen möchtest.
        Allerdings solltest Du auch ein paar Grundlagen Kurse belegen. Siehe z. B. hier: https://php-de.github.io/jumpto/grundlagen-quellen/

        Kommentar


        • #5
          HTML-Code:
          <option value="value 1">

          Das solltest du noch mal überarbeiten, das gibt ja schon ohne DB Probleme. Nimm als Value einfach den Wert der Position und zwar als Ganzzahl.

          Kommentar


          • #6
            Zitat von protestix Beitrag anzeigen
            HTML-Code:
            <option value="value 1">

            Das solltest du noch mal überarbeiten, das gibt ja schon ohne DB Probleme. Nimm als Value einfach den Wert der Position und zwar als Ganzzahl.
            Besser mit Datenbank Ids einer Tabelle federal_states. Siehe #4.

            Das Ganze läuft ja auf einen Suchfunktion hinaus.

            Kommentar


            • #7
              Vielen Dank für eure antworten! Ich habe mich ein bisschen umgeschaut und habe auch was gefunden nun bin ich leider auf einen Fehler gestoßen, aber ich komme einfach nicht darauf woran es liegen kann vielleicht fällt euch ja was auf?

              Fehler: "Notice: Undefined index: bundeslander in C:\xampp\htdocs\memberpage.php on line 137
              SELECT * FROM members WHERE nr > 0 AND bundesland > 0 AND bundesland < 16 AND geschlecht = M

              Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\memberpage.php on line 244"


              Kompletter PHP-Code:

              PHP-Code:
              <html>
              <head>
                  <link href='http://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700' rel='stylesheet' type='text/css'>
                  <link rel="stylesheet" href="css/memberpage.css">
                  <link rel="stylesheet" href="css/formular.css">
                  <meta charset="utf-8">
                  <title>Startseite</title>
              </head>

              <?php require('includes/config.php');

              //if not logged in redirect to login page
              if(!$user->is_logged_in()){ header('Location: login.php'); exit(); }

              //define page title
              $title 'Startseite';

              //include header template
              require('layout/headermember.php');
              ?>
              <br>
              <br>
              <?php
              echo "<body style="background-color#2F4F4F; ">";
              ?>

                      <!-- Wilkommens Nachricht -->
              <br
              <div class="container2">

                  <div class="row">

                      <div class="col-xs-12 col-sm-8 col-md-6 col-sm-offset-2 col-md-offset-3">

                              <h2> Hey <?php echo htmlspecialchars($_SESSION['username'], ENT_QUOTES); ?>!</h2>
                              <h2> Nach welchen Nutzer suchst du? </h2>

                              <!-- Trenn Strich -->
                              <hr>


              <body>

              <h1>Nach Users suchen</h1>

              <form action="memberpage.php" method="post">
                  <table border="1" cellpadding="20">
                      <tr>

                          <td>
                                <h2>Alter</h2>
                                <p>von <input name="alterMin"> bis <input name="alterMax"> €</p>
                          </td>

                      </tr>

                      <tr>
                          <td>
                                <h2>Bundesland:</h2>
                                <p>
                                  <select name="bundeslaender">
                                      <option value="alle">Alle</option>
                                      <option value="1">Baden-Württemberg</option>
                                      <option value="2">Bayern</option>
                                      <option value="3">Berlin</option>
                                                              <option value="4">Brandenburg</option>
                                                              <option value="5">Bremen</option>
                                                              <option value="6">Hamburg</option>
                                                              <option value="7">Hessen</option>
                                                              <option value="8">Mecklenburg-Vorpommern</option>
                                                              <option value="9">Niedersachsen</option>
                                                              <option value="10">Nordrhein-Westfalen</option>
                                                              <option value="11">Rheinland-Pfalz</option>
                                                              <option value="12">Saarland</option>
                                                              <option value="13">Sachsen</option>
                                                              <option value="14">Sachsen-Anhalt</option>
                                                              <option value="15">Schleswig-Holstein</option>
                                                              <option value="16">Thüringen</option>
                                  </select>
                                </p>

                          </td>

                          <td>
                                <h2>Geschlecht:</h2>
                                <p>
                                    <input type="radio" name="geschlecht" value="M" checked="checked"> Männlich<br>
                                    <input type="radio" name="geschlecht" value="W" > Weiblich<br>
                                </p>
                          </td>
                      </tr>

                              <td>
                                          <h2>Mit Profilbild?:</h2>
                                          <p>
                                                  <input type="radio" name="pb" value="1" checked="checked"> Ja<br>
                                                  <input type="radio" name="pb" value="2" > Nein<br>
                                          </p>
                              </td>
                      </tr>
                  </table>

                  <input style="margin-top: 25px" type="submit" value="Suche starten">
              </form>

              </body>


              </html>

              <?php

              //Mit MySQL-Datenbank verbinden
              $host_name 'localhost';
              $user_name 'root';
              $password '';
              $database 'db';
              $connect mysqli_connect($host_name$user_name$password$database);

              $abfrage ="SELECT * FROM members WHERE nr > 0";

              // Suche nach Alter
              $alterMin 16;
              $alterMax 100;
              if(
              $_POST["alterMin"]){
                 
              $alterMin $_POST["alterMin"];
                 
              $abfrage .= " AND alter > $alterMin";
              }
              if(
              $_POST["alterMax"]){
                 
              $alterMax $_POST["alterMax"];
                 
              $abfrage .= " AND alter < $alterMax";
              }

              //Suche nach bundeslaender
              $Min 0;
              $Max 16;
              switch(
              $_POST["bundeslander"]){
                 case 
              "alle"//tu nichts
                 
              break; //verlassen

                 
              case "Baden-Württemberg":
                 
              $Min 1;
                 
              $Max 1;
                 break;

                  case 
              "Bayern":
                  
              $Min 2;
                  
              $Max 2;
                  break;

                  case 
              "Berlin":
                  
              $Min 3;
                  
              $Max 3;
                  break;

                      case 
              "Brandenburg":
                      
              $Min 4;
                      
              $Max 4;
                      break;

                      case 
              "Bremen":
                      
              $Min 5;
                      
              $Max 5;
                      break;

                      case 
              "Hamburg":
                      
              $Min 6;
                      
              $Max 6;
                      break;

                      case 
              "Hessen":
                      
              $Min 7;
                      
              $Max 7;
                      break;

                      case 
              "Mecklenburg-Vorpommern":
                      
              $Min 8;
                      
              $Max 8;
                      break;

                      case 
              "Niedersachsen":
                      
              $Min 9;
                      
              $Max 9;
                      break;

                      case 
              "Nordrhein-Westfalen":
                      
              $Min 10;
                      
              $Max 10;
                      break;

                      case 
              "Rheinland-Pfalz":
                      
              $Min 11;
                      
              $Max 11;
                      break;

                      case 
              "Saarland":
                      
              $Min 12;
                      
              $Max 12;
                      break;

                      case 
              "Sachsen":
                      
              $Min 13;
                      
              $Max 13;
                      break;

                      case 
              "Sachsen-Anhalt":
                      
              $Min 14;
                      
              $Max 14;
                      break;

                      case 
              "Schleswig-Holstein":
                      
              $Min 15;
                      
              $Max 15;
                      break;

                      case 
              "Thüringen":
                      
              $Min 16;
                      
              $Nax 16;
                      break;

              }
              $abfrage .= " AND bundesland > $Min AND bundesland < $Max";


              //Suche nach Geschlecht
              if($_POST["geschlecht"] == "M"){
                 
              $abfrage .= " AND geschlecht = M";
              }
              if(
              $_POST["geschlecht"] == "W"){
                 
              $abfrage .= " AND geschlecht = W";
              }


              //Abfrage zu Testzwecken am Bildschirm ausgeben
              echo $abfrage;

              //SQL-Abfrage ausführen
              $result mysqli_query($connect$abfrage);


              //Ergebnis am Bildschirm ausgeben
              echo  "<h1>Users:</h1>
              <table border='1'><th>Alter</th><th>Bundesland</th><th>Geschlecht</th><th>Profilbild</th>"
              ;
              while(
              $dsatz mysqli_fetch_assoc($result)){

              echo 
              "<tr>
              <td>" 
              $dsatz["alter"] . "</td>
              <td>" 
              $dsatz["bundesland"] . "</td>
              <td>" 
              $dsatz["geschlecht"] . "</td>
              <td>" 
              $dsatz["profilbild"] . "</td>


              </tr>"
              ;
              }
              echo 
              "</table>";

              // Verbindung trennen:
               
              mysqli_close($connect);

              ?>





              <?php
              //include header template
              require('layout/footer.php');
              ?>
              Grüße

              Kommentar


              • #8
                HTML-Code:
                <select name="bundeslaender">
                PHP-Code:
                switch($_POST["bundeslander"]) 
                Was fällt auf?

                Halte Dich ans EVA-Prinzip. Zuerst die Verarbeitung, dann die Ausgabe. Schalte das error_reporting ein.
                => https://php-de.github.io/jumpto/leitfaden/

                Kommentar


                • #9
                  Hallo, den Schreibfehler habe ich ausgebessert danke

                  jetzt bekomme ich folgende Fehlermeldung:


                  Notice: Undefined index: alterMin in C:\xampp\htdocs\memberpage.php on line 158

                  Notice: Undefined index: alterMax in C:\xampp\htdocs\memberpage.php on line 162

                  Notice: Undefined index: bundesland in C:\xampp\htdocs\memberpage.php on line 170

                  Notice: Undefined index: geschlecht in C:\xampp\htdocs\memberpage.php on line 259

                  Notice: Undefined index: geschlecht in C:\xampp\htdocs\memberpage.php on line 262

                  Notice: Undefined index: avatarID in C:\xampp\htdocs\memberpage.php on line 266

                  Notice: Undefined index: avatarID in C:\xampp\htdocs\memberpage.php on line 269
                  SELECT * FROM members WHERE nr > 0 AND bundesland > 0 AND bundesland < 16

                  Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\memberpage.php on line 284

                  Kommentar


                  • #10
                    Die Notices dürften selbsterklärend sein. Ich vermute mal, dass die auch nur beim direkten Aufruf der Seite, nicht aber bei Formularübergabe auftreten?!
                    isset() ist die Lösung.

                    Ergänzend: https://www.php-rocks.de/thema/66-un...n-on-line.html

                    Kommentar


                    • #11
                      Danke für die Antwort! Das hat super geklappt jetzt bekomme ich die Notices nicht mehr!

                      Mein Problem:


                      Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\memberpage.php on line 288


                      Ist leider noch vorhanden und ich finde keine Lösung.. Dazu gibt die Suche auch keine Daten aus?

                      ​​​​​​​Grüße

                      Kommentar


                      • #12
                        Zitat von Nexsis Beitrag anzeigen
                        Mein Problem:

                        Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in C:\xampp\htdocs\memberpage.php on line 288

                        Ist leider noch vorhanden und ich finde keine Lösung.. Dazu gibt die Suche auch keine Daten aus?
                        WHAT??? https://www.google.de/search?q=mysql...%2C+bool+given

                        Gleich der erste Treffer von > 150.000

                        Kommentar

                        Lädt...
                        X