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 - 26 Juni 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
Schnell viel Geld ohne Aufwand verdienen, mit dem Smartphone
in "PHP & MySQL"
0 04.04.2017 02:12 von terra445
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
CMS für Online Shop
in "PHP & MySQL"
19 29.06.2016 14:49 von raiserle
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 : 5170496    Heute : 953     Gestern : 1332     Online : 46     26.6.2017    15:49      0 Besucher in den letzten 60 Sekunden        
Die letzten 30 Referrer :

1 22:03 - bing.com/search - pürrierstab forum
2 18:35 - google.com/search - content
3 18:29 - google.com/search - content
4 15:10 - bing.com/search - Warum was los?
5 2:49 - bing.com/search - web de störung
6 20:57 - bing.com/search - stromverbrauch pro jah
7 13:16 - https://google.de/search - lustige arbeitsfotos
8 5:59 - ask.com/web - Bauservice, Arrach
9 23:32 - google.at/search - gmx störung
10 14:51 - bing.com/search - psd files elemente informationen grabben
11 13:03 - bing.com/search - rewit wände wieder einblenen
12 9:13 - bing.com/search - html unterstrich entfernen
13 2:54 - bing.com/search - communicator strato
14 23:58 - bing.com/search - srörung freenet sachsen
15 22:38 - bing.com/search - webmaster forum rechtsschutz
16 18:56 - google.com/search - content
17 18:55 - google.com/search - content
18 17:25 - bing.com/search - Stauswertliste
19 14:26 - bing.com/search - patch probleme juni 2017 outlook
20 10:18 - bing.com/search - Gmx Störung heute
21 10:12 - bing.com/search - gmx nicht erreichbar
22 10:12 - bing.com/search - gmx nicht errrichbar
23 10:09 - bing.com/search - gmx nicht erreichbar
24 10:03 - bing.com/search - gmx nicht erreichbar heute
25 9:54 - google.de/search - gmx email nicht erreichbar
26 9:53 - bing.com/search - gmx server nicht erreichbar
27 9:32 - bing.com/search - gmx nicht erreichbar heute
28 9:28 - bing.com/search - gmx störung heute
29 9:25 - bing.com/search - gmx Störung
30 9:21 - bing.com/search - gmx nicht erreichbar heute

Nach oben