Dätensätze aus Mysqltabelle ausgeben funktioniert nicht

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Werbung

Jetzt auf elektrisches Fahren umstellen, Umwelt schonen und 1.500km kostenlosen Strom von Tesla bekommen. https://ts.la/carsten15473.

htmler222

Neues Mitglied
25 Dezember 2016
29
0
1
Nen Abend,
ich hab ein Problem ich möchte immer ausgeben wie viele Datensätze nach bestimmten dingen gefiltert gefunden wurden.
Code:
<?php
   $con = mysqli_connect("", "ROOT", "FelixG");
   mysqli_select_db($con, "rfl");
   if(isset($_POST["gesendet"]))
   $sql = "SELECT * FROM konzerte"
      . " WHERE date == " . $_POST["date"]
      . " AND city ==" . $_POST["city"]
      . " AND time == " . $_POST["time"]
      . " AND location == " . $_POST["location"]
      . " AND price == " . $_POST["price"]
      . " ORDER BY date";

   $res = mysqli_query($con, $sql);
   $num = mysqli_num_rows($res);
   if($num > 0) {echo "<p>Ergebnis:<br></p>";
    echo "<p>";
 echo $num;
 echo "</p>";
}



else         echo "<p>Keine Ergebnisse<br></p>";

   mysqli_close($con);
?>
aber es scheint nicht zu laufen. Die Formularfelder sind alle ausgewertet, aber irgendwo hakt es. Könnte mir da einer helfen;)? danke im Voraus:p
 

m.scatello

Aktives Mitglied
15 Februar 2017
927
96
28
Ändere mal diese Zeile
Code:
$res = mysqli_query($con, $sql);
in
Code:
$res = mysqli_query($con, $sql)
   or die(mysqli_error($con));
 

htmler222

Neues Mitglied
25 Dezember 2016
29
0
1
hab ich gemacht:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== 2019-01-17 AND city ==Hamburg AND time == 30 AND location == Hamburghalle AND' at line 1 das ist das was er jetzt sagt. liegt es vielleicht am date oder daran das ich zuviele Bedingungen stelle? Danke schon mal
 

m.scatello

Aktives Mitglied
15 Februar 2017
927
96
28
  1. Ändere == in =
  2. Textwerte gehören zwischen '
  3. Deine Datenbankabfrage ist SQL-Injektion gefährdet, nutze mysli_escape_string
 

htmler222

Neues Mitglied
25 Dezember 2016
29
0
1
irgendwie läuft es nicht: Unknown column 'Hamburg' in 'where clause' was mwint er mit unbekannter spalte die sind doch alle in der tabele also müssen sie ihm doch bekannt sein?
Code:
<?php
   $con = mysqli_connect("", "root", "FelixG");
   mysqli_select_db($con, "rfl");
   if(isset($_POST["gesendet"]))
   $sql = "SELECT * FROM konzerte"
      . " WHERE date = " . $_POST['date']
      . " AND time = " . $_POST['time']
        . " AND city = " . $_POST['city']
      . " AND location = " . $_POST['location']
      . " AND price = " . $_POST['price']
      . " ORDER BY date";

   $res = mysqli_query($con, $sql)
   or die(mysqli_error($con));
   $num = mysqli_num_rows($res);
   if($num > 0) {echo "<p>Ergebnis:<br></p>";
    echo "<p>";
echo $num;
echo "</p>";
}
else         echo "<p>Keine Ergebnisse<br></p>";

   mysqli_close($con);
?>
 
Zuletzt bearbeitet:

htmler222

Neues Mitglied
25 Dezember 2016
29
0
1
2 habe ich versucht wie du siehst wusste aber net genau was gemeint ist 3 kannte ich noch nicht wenn du magst schreib einfach den code so um wie du mmeinst und erklärs mir dann:wink::smile:
 

Felixprogram

Mitglied
18 Dezember 2017
88
3
8
Hallo @htmler222 ,

nachdem du mich privat angeschrieben hattest, werde ich dir das nun nochmal genauer erläutern.
Was @m.scatello meinte, ist, dass die Werte bei WHERE in ' geschrieben werden müssen.
In deinem Code wird also aus
PHP:
$sql = "SELECT * FROM konzerte"
      . " WHERE date = " . $_POST['date']
      . " AND time = " . $_POST['time']
        . " AND city = " . $_POST['city']
      . " AND location = " . $_POST['location']
      . " AND price = " . $_POST['price']
      . " ORDER BY date";
folgendes:
PHP:
$sql = "SELECT * FROM konzerte"
      . " WHERE date = '" . $_POST['date']
      . "' AND time = '" . $_POST['time']
        . "' AND city = '" . $_POST['city']
      . "' AND location = '" . $_POST['location']
      . "' AND price = '" . $_POST['price']
      . "' ORDER BY date";
Sieht fast gleich aus, hat aber den Unterschied, dass bei beispielsweise "'" . $_POST['date'] . "'" die Werte, nach denen gefragt wird, mit den einfachen Anführungszeichen (') umrahmt sind. Mit dem unteren Code sollte es funktionieren. Sollten noch Probleme auftreten, schreibe einfach einen weiteren Post (eine Antwort) unter meinen.
Und @m.scatello 's Warnung mit den SQL-Injections würde ich an deiner Stelle auch angehen, wenn du die Seite nicht nur in deinem lokalen Netzwerk abgeschnitten vom Rest nutzt. Also umrahme die Werte, also $_POST['date'], etc. mit mysqli_real_escape_string in etwa so:
aus
PHP:
$sql = "SELECT * FROM konzerte"
      . " WHERE date = '" . $_POST['date']
      . "' AND time = '" . $_POST['time']
        . "' AND city = '" . $_POST['city']
      . "' AND location = '" . $_POST['location']
      . "' AND price = '" . $_POST['price']
      . "' ORDER BY date";
wird
PHP:
$sql = "SELECT * FROM konzerte"
      . " WHERE date = '" . mysqli_real_escape_string($con, $_POST['date'])
      . "' AND time = '" . mysqli_real_escape_string($con, $_POST['time'])
        . "' AND city = '" . mysqli_real_escape_string($con, $_POST['city'])
      . "' AND location = '" . mysqli_real_escape_string($con, $_POST['location'])
      . "' AND price = '" . mysqli_real_escape_string($con, $_POST['price'])
      . "' ORDER BY date";
//EDIT: Ups, das Board hatte beim Kopieren aus Notepad++ mit den Formatierungen Probleme in den Code-Tags. Ist behoben.

Grüße,
Felixprogram
 
Zuletzt bearbeitet:

htmler222

Neues Mitglied
25 Dezember 2016
29
0
1
ich schau mal rein. gibts eigentlich jemanden der sich mal meine seite anschauen mag und mir noch tipps geben kann wies besser aussehen kann? weil ich hab auf meinen Home seiten (Englisch und deutsch) zb ein menü was irgendwie anfängt mies auszusehen sobald man den bildschrim verkleinert.
 

Aaron3219

Senior HTML'ler
6 Oktober 2015
1.057
205
63
18
Für Feedback haben wir sogar ein eigenes Unterforum.
Erstell da einfach ein neues Topic.

Ich meine theoretisch könntest du es auch hier posten, aber wenn man es schonmal hat :wink:.
 
Werbung: