WebWork Magazin - Design, Gestaltung, Online Medien, html

Webhosting Provider Domain

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Anfänger Select von dropdown Problem

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. FRagen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Anfänger Select von dropdown Problem - 22 August 2017 Antworten
im Forum für Webhosting Homepage gefunden:
Anfänger Select von dropdown Problem
SuperMarioTM
Pixelschubser
Threadstarter




Beiträge: 2

Hallo liebes Forum,
Da ich niemanden persöhnlich fragen kann poste ich mal meinen code hier:
<?php
include 'logindata.php'; # Die Verbindung wird hergestellt bekomme auch das echo OK!
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Abfrage</title>
</head>
<body>
<hr>

<form action ="abfrage.php" method="GET">
<select name="instrument">
<option value="gitarre">Gitarre</option>
<option value="schlagzeug">Schlagzeug</option>
<option value="bass">Bass</option>
<option value="gesang">Gesang</option>
<option value="piano">Piano</option>
<option value="geige">Geige</option>
<option value="trompete">Trompete</option>
<option value="perkussion">Perkussion</option>
</select>

<input type="submit" value="finden" name="finden" />
</form>


</body>
</html>

<?php
$verbindung = @mysqli_connect($server, $benutzer, $passwort);

if (isset($_GET["instrument"])){
$sql = "SELECT * FROM musiker WHERE instrument = '({$_GET['instrument']})' " ;
$abfrage = mysqli_query($verbindung, $sql);
echo '<h1><i>' . mysqli_num_rows($abfrage) . '</i> Musiker gefunden</b></h1>';#LINE 39


}else{
echo 'Verbindungsfehler: '.mysqli_connect_error($verbindung);
}
?>


Fehlermeldung:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /home/.sites/41/site1524/web/mysql/abfrage/abfrage.php on line 39

Es wird hier sicherlich an was grundlegendem liegen was ich noch nicht verstanden habe!
Bitte nimm nicht an das ich das recht gut kann ich bin gerade mitten im lernen, habe 2 Bücher vor mir liegen und ein Galileo computing tut offen.

Wie gesagt für kleinere Erklärungen wie zbsp.:

Lass dir die Fehlermeldung ausgeben mit zbsp. ......... weil so macht man das, wäre ich sehr dankbar!
Dankeschön

Diese Nachricht wurde geändert von: SuperMarioTM
  Profil   Editieren   Zitieren
Ori
Mausakrobat




Beiträge: 163

Zu deinem Problem:
Die Syntax sieht korrekt aus. Aber die Abfrage gibt wohl false zurück, d.h. es ist ein Fehler aufgetreten. Den kannst du dir mit $verbindung->error oder mysqli_error($verbindung) ansehen. Rufe es direkt nach der Abfrage auf und gib es mit echo aus.

Ich finde die Klammern um das Instrument übrigens seltsam - die würde ich gar nicht erst in der Datenbank speichern.


Und ein paar generelle Dinge:
- Den echten Vorteil bringt mysqli, wenn du es objekt-orientiert verwendest. Es ist kürzer und lässt dich neue Methoden für die Datenbankbehandlung direkt in die Klasse schreiben, wo sie hingehören.
- Benutz kein ISO-8859-1, sondern UTF-8. Dann kannst du alle Zeichen benutzen, quasi alle können es verarbeiten und
- HTML 4.01 Transitional ist auch von gestern.
- <input type="submit"> ist auch doof. (Das Attribut name ist in deinem Fall übrigens überflüssig.) Nimm lieber <button type="submit">finden</button>.
- NIEMALS Parameter DIREKT an MySQL füttern! (oder was passiert beim Aufruf von abfrage.php?instrument='; DROP TABLE musiker; # ? Kleiner Tipp: Nicht ausprobieren.) Stattdessen sollten alle Strings, die nicht sicher sind (also von außen kommen), vorher durch mysqli_real_escape_string gejagt werden, damit sowas nicht passieren kann. Etwa so:
$abfrage = mysqli_query($verbindung, sprintf("SELECT * FROM musiker WHERE instrument = '(%s)'", mysqli_real_escape_string($_GET['instrument'])));
Es gibt noch weitere Möglichkeiten (z.B. Prepared Statements).

  Profil   E-Mail   Website   Editieren   Zitieren
SuperMarioTM
Pixelschubser
Threadstarter




Beiträge: 2

datei online

Ich habe jetzt folgende Änderungen vorgenommen:
-1. Den Error eingebaut der mir jetzt sagt no database selected
-2. Die Abfrage so geändert wie du es gesagt hast (string)
-3. UTF-8 hab ich auch gemacht
-4. Was sollte ich statt HTML 4.01 Sonst nehmen oder einfach nur noch HTML?

Mein Problem ist:

Ich habe zwei Bücher vor mir und ein galileo tut.
Überall wird es anders gemacht bzw. wird ein formular mit anschliessender auswertung garnicht behandelt



<?php
include 'logindata.php'; # Die Verbindung wird hergestellt bekomme auch das echo OK!
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Abfrage</title>
</head>
<body>
<hr>

<form action ="abfragedieerste.php" method="GET">
<select name="instrument">
<option value="gitarre">Gitarre</option>
<option value="schlagzeug">Schlagzeug</option>
<option value="bass">Bass</option>
<option value="gesang">Gesang</option>
<option value="piano">Piano</option>
<option value="geige">Geige</option>
<option value="trompete">Trompete</option>
<option value="perkussion">Perkussion</option>
</select>

<button type="submit">finden</button>
</form>






</body>
</html>

<?php
$verbindung = @mysqli_connect($server, $benutzer, $passwort);

if (isset($_GET["instrument"])){

$abfrage = mysqli_query($verbindung, sprintf("SELECT * FROM musiker WHERE instrument = '(%s)'", mysqli_real_escape_string($_GET['instrument'])));
echo mysqli_error($verbindung);
echo '<h1><i>' . mysqli_num_rows($abfrage) . '</i> Musiker gefunden</b></h1>';#LINE 39


}else{
echo 'Auswahl ';
}
?>

Diese Nachricht wurde geändert von: SuperMarioTM
  Profil   Editieren   Zitieren
Ori
Mausakrobat




Beiträge: 163

Richtig, du musst noch die Datenbank auswählen. Meist benutzt man mit einer Verbindung nur eine einzige Datenbank, wähle sie mit dem vierten Parameter von mysqli_connect() aus:
1:
$verbindung = mysqli_connect($server, $benutzer, $password, 'datenbank');

Im Nachhinein lässt sich die Datenbank mit
1:
USE xyz
ändern.

Vermutlich willst du die Datenbank auch in eine Variable auslagern, die in der Datei logindata.php gespeichert wird. Die solltest du übrigens logindata.inc taufen, damit sie nicht von außen aufgerufen werden kann. Außerdem sollten es keine Variablen sein, da deren Inhalte verändert werden könnten. Stattdessen bieten sich Konstanten an. Sie lassen sich mit define() festlegen und ihre Namen werden komplett in Großbuchstaben geschrieben (nicht notwendigerweise, ist aber Konvention).

1: 
2: 
3: 
4: 
5:
define('DB_SERVER', 'localhost');
define('DB_BENUTZER', 'userxyz');
// usw.

$verbindung = mysqli_connect(DB_SERVER, DB_BENUTZER, DB_PASSWORT, DB_DATENBANK);


Wenn du UTF-8 statt ISO-8859-1 benutzt, musst du vermutlich auch die Einstellungen deines Editors ändern, damit es wirklich UTF-8 ist. Bei den Zeichen, die du im Moment verwendest, sind sie aber gleich.

Im Moment wird an HTML 5 gebrütet, der Doctype sieht dann so aus:
1:
<!DOCTYPE html>

Wenn dir das zu experimentell ist, nimm HTML 4.01 Strict (<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">), XHTML 1.0 Strict oder XHTML 1.1. Deren Doctype kannst du im Zweifelsfall einfach googlen. Auf diese Weise erzeugt Dokumente (also das, was im Browser ankommt) kannst du dann durch den W3C Validator jagen; der sagt dir dann, ob alles in Ordnung ist. Solltest du dich für XHTML entscheiden, achte auf die XML-Präambel und das Schließen von Tags ohne Endtag, wie <img> und <input>.

  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten


Forum » PHP & MySQL » Anfänger Select von dropdown Problem

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Anfänger Select von dropdown Problem im Forum Homepage Hosting AntwortenLetztes Posting
CMS für Online Shop
in "PHP & MySQL"
20 07.08.2017 05:54 von Isasimon
Schnell viel Geld ohne Aufwand verdienen, mit dem Smartphone
in "PHP & MySQL"
3 29.07.2017 17:13 von Nuised
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji
php preg_replace_callback für dynamischen Link
in "PHP & MySQL"
0 05.07.2016 11:02 von Rm21
PHP Code verschlüsseln
in "PHP & MySQL"
20 21.02.2016 21:25 von Kilian1
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
Fertige PHP Scripte für Ihre Homepage
in "PHP & MySQL"
0 16.12.2015 12:02 von PHP-Script-Shop
Callback Befehl ++ Session ID Eintrag +++
in "PHP & MySQL"
2 16.12.2015 11:57 von PHP-Script-Shop
PHP befehl ausführen
in "PHP & MySQL"
9 16.12.2015 11:52 von PHP-Script-Shop
suche online community script
in "PHP & MySQL"
3 16.12.2015 11:51 von PHP-Script-Shop
Text basierender Chat
in "PHP & MySQL"
5 16.12.2015 11:51 von PHP-Script-Shop
Counter mit PHP
in "PHP & MySQL"
2 16.12.2015 11:50 von PHP-Script-Shop
Wo bekommt man fertige PHP Scripte her?
in "PHP & MySQL"
12 16.12.2015 11:42 von PHP-Script-Shop



Besucher : 5245100    Heute : 492     Gestern : 1177     Online : 33     22.8.2017    11:09      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Die letzten 30 Referrer :

1 18:30 - https://google.de/search - störung gmx
2 1:50 - bing.com/search - 49 Gesch
3 1:38 - bing.com/search - 49 Gesch
4 1:25 - bing.com/search - 49 Gesch
5 23:29 - bing.com/search - beispiel strato forum
6 18:09 - google.de/search - HTML Formulardaten versenden
7 15:55 - https://google.at/search - B
8 12:36 - https://qwant.com/ - theo aktivierungscode generator
9 10:57 - google.bg/search - skype funktioniert nicht mehr 2017
10 2:37 - bing.com/search - gmx störung
11 15:59 - sm.de/ - probleme bei outlook hotmail update
12 11:23 - bing.com/search - auf bestimmten strato server einloggen
13 20:42 - bing.com/search - gmx störung
14 15:34 - google.com/search - content
15 15:22 - google.com/search - content
16 15:20 - google.com/search - content
17 7:17 - bing.com/search - probleme posteingang mit web freemail 2017
18 4:35 - https://bing.com/search - hg bidopa
19 22:59 - bing.com/search - gmx keine mails schreiben möglich störung
20 23:34 - google.de/search - balken in der homepage
21 12:53 - de.search.yahoo.com/search - freemail die kostenlose e news
22 11:30 - astromenda.com/results.php - GMX Netzprobleme
23 22:07 - google.de/search - handy orten freundin
24 13:06 - bing.com/search - htmlcode formular absenden
25 12:30 - google.de/search - heimlich handy orten kostenlos
26 11:52 - bing.com/search - probleme hotmail konto 2017
27 11:27 - bing.com/search - stromverbrauch server pro jahr
28 18:19 - bing.com/search - gmx keine mails schreiben möglich störung
29 17:04 - google.com/search - content
30 17:03 - google.com/search - content

Nach oben