Problem in MySQL und PHP
|
Verfasser |
Nachricht |
|
Beiträge: 64
Bewertung: 1
Registriert seit: Aug 2012
Status:
offline
|
Problem in MySQL und PHP
Guten Morgen,
ich habe ein kleines Problem mit der foreach-Schleife in PHP.
Es wurde zwar die Tabelle ausgegeben auch ohne Fehlermeldung,
aber in den einzeönen Bereichen wird Sie nicht Sortiert, wenn man auf die pfeile klickt. Sie wird einfach normal ausgegeben.
Weiss jemand wo meine Fehler ist,
bin schon am verzweifeln.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> <title>CD-Verwaltung</title> <?php include ("nav.html"); ?> </head> <body background="" text='#FFFFFF' alink='#FFFFFF' vlink='#FFFFFF' link='#FFFFFF'>
<form name="suche" method="post" action="suche.php"> <p align="center"> <b>Suche: </b> <br> <input name=suche type="text" onfocus="if(this.value=='Suche nach Titel/Interpret!') this.value='';" onblur="if(this.value=='') this.value='Suche nach Titel/Interpret!';" value="Suche nach Titel/Interpret!" size="30" class="inputbox" maxlength="30"> </p>
<p align="center"> <input type="submit" value="Suchen"> <input type="reset" value="Abrrechen"></p> </form>
<?php include ("verbindung.php"); ?>
<h1><p align="center"><b>Die Pfeile neben den jeweiligen Kategorien helfen dir bei der Sortierung!</b></p></h1>
<?php $sql="SELECT id FROM cdverwaltungneu";
if ($result=mysqli_query($db,$sql)) { // Return the number of rows in result set $rowcount=mysqli_num_rows($result); printf("<p align='center'>". "Insgesamt hast du %d CD's eingetragen\n",$rowcount ."</p>"); // Free result set mysqli_free_result($result); } ?>
<table border="1" align="center"> <tr> <td><a href="ausgabe.php?id"><img src="bilder/pf-ob.gif.png" width="18" height="18"></a> <a href="ausgabe.php?iddesc"><img src="bilder/pf-un.gif" width="18" height="18"></a> <b>ID</b></td> <td><a href="ausgabe.php?titel"><img src="bilder/pf-ob.gif.png" width="18" height="18"></a> <a href="ausgabe.php?titeldesc"><img src="bilder/pf-un.gif" width="18" height="18"></a> <b>Titel</b></td> <td><a href="ausgabe.php?interpret"><img src="bilder/pf-ob.gif.png" width="18" height="18"></a> <a href="ausgabe.php?interpretdesc"><img src="bilder/pf-un.gif" width="18" height="18"></a> <b>Interpret</b></td> <td><a href="ausgabe.php?datum"><img src="bilder/pf-ob.gif.png" width="18" height="18"></a> <a href="ausgabe.php?datumdesc"><img src="bilder/pf-un.gif" width="18" height="18"></a> <b>Datum</b></td> </tr>
<?php foreach ($_GET as $key => $value) { switch ($key) { case "id": $sql = "SELECT * FROM cdverwaltungneu ORDER BY id ASC"; case "iddesc": $sql = "SELECT * FROM cdverwaltungneu ORDER BY id DESC"; case "titel": $sql = "SELECT * FROM cdverwaltungneu ORDER BY titel ASC"; case "titeldesc": $sql = "SELECT * FROM cdverwaltungneu ORDER BY titel DESC"; case "interpret": $sql = "SELECT * FROM cdverwaltungneu ORDER BY interpret ASC"; case "interpretdesc": $sql = "SELECT * FROM cdverwaltungneu ORDER BY interpret DESC"; case "datum": $sql = "SELECT * FROM cdverwaltungneu ORDER BY datum ASC"; case "datumdesc": $sql = "SELECT * FROM cdverwaltungneu ORDER BY datum DESC"; case "main": $sql = "SELECT * FROM cdverwaltungneu"; default: $sql = "SELECT * FROM cdverwaltungneu"; } $db_erg = mysqli_query( $db, $sql ); if ( ! $db_erg ) { die('Ungültige Abfrage: ' . mysqli_error()); } while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC)) { echo "<tr>"; echo "<td>". $zeile['id'] . "</td>"; echo "<td>". $zeile['titel'] . "</td>"; echo "<td>". $zeile['interpret'] . "</td>"; echo "<td>". $zeile['datum'] . "</td>"; echo "</tr>"; } echo "</table>";
mysqli_free_result( $db_erg ); } ?>
</body> </html>
Danke im vorraus.
Mfg,
Sebastian.
|
|
10.07.2014 07:54 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: Problem in MySQL und PHP
ausgabe.php?id
id ist hierbei kein richtiger QueryParameter, du müsstest dir den kompletten QueryString holen.
Ich würde es aber eher so machen:
ausgabe.php?orderby=id&order=ASC
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
|
|
10.07.2014 08:00 |
|
|
Beiträge: 64
Bewertung: 1
Registriert seit: Aug 2012
Status:
offline
|
RE: Problem in MySQL und PHP
Danke schonmal, aber wo steckt da der get_parameter?
Wie mache ich das bei ausgabe.php?iddesc
|
|
10.07.2014 08:08 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: Problem in MySQL und PHP
<?php
$orderby = isset($_GET['orderby']) && in_array($_GET['orderby'], array('id', 'titel', 'interpret', 'datum'))?$_GET['orderby']:'id'; $order = isset($_GET['order']) && $_GET['order'] == 'desc'?'desc':'asc';
$sql = "SELECT * FROM cdverwaltungneu ORDER BY " . $orderby . " " . $order;
?> <!-- Hier ne Beispielverlinkung: --> <td><a href="ausgabe.php?orderby=titel&order=<?= $orderby=='titel'&&$order='asc'?'desc':'asc'; ?>"><img src="bilder/pf-<?= $orderby=='titel'&&$order='asc'?'ob':'un'; ?>.gif.png" width="18" height="18"></a> <b>Titel</b></td>
E: Wenn du an deinem aktuellen Script festhalten willst musst du $_SERVER['QUERY_STRING'] nutzen.
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
Dieser Beitrag wurde zuletzt bearbeitet: 10.07.2014 08:23 von tkausl.
|
|
10.07.2014 08:16 |
|
|
Beiträge: 585
Bewertung: 1
Registriert seit: Dec 2010
Status:
offline
|
RE: Problem in MySQL und PHP
Tipp:http://www.php.net/manual/de/reserved.variables.get.php
Da findest du auch echt alles, was du zum Programmieren brauchst. Als Entwickler - und da ist man als PHP Entwickler sicher auch gut verwöhnt mit - ist dein erster Rat das PHP Manual. Hilft dir das nicht weiter, dann fragt man wo anders. Als guter PHP programmierer weiß man das dann 
Mit freundlichen Grüßen
Bonyamin
############
|
|
10.07.2014 15:55 |
|
|
Beiträge: 64
Bewertung: 1
Registriert seit: Aug 2012
Status:
offline
|
RE: Problem in MySQL und PHP
Hallo,
habe nun alles hinbekommen.
Wie ihr vielleicht schon mitbekommen habt, durch meine ganzen anderen Beiträge, soll ich eine cd-verwaltung entwickeln.
Die Ausgabe, Eingabe, etc. klappt, wunderbar.
Bis morgen soll ich, aber eine Detailausgabe entwickeln, d.h. das eine Cd alleine angezeigt wird. Normal ist dies kein Problem, aber es soll wie folgt sein:
Wenn man in der Ausgabe der CD-Ansicht ist, soll man auf die CD raufklicken und man kommt zur einzel Ansicht. Das Problem, dabei ich habe absolut kein Plan, wie ich das machen soll.
Ich hoffe ihr könnt mir weiterhelfen.
Als Gegenleistung biete ich euch eine positive Bewertung, SB-Punkte auf Absprache und ein Danke!
Schon mal vielen Dank im voraus und ich hoffe ihr wisst darüber mehr Bescheid, als ich.
Hier das Ausgabe-Script:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <meta name="generator" content="PSPad editor, www.pspad.com"> <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" /> <title>CD-Verwaltung</title> <?php include ("nav.html"); ?> </head> <body background="" text='#FFFFFF' alink='#FFFFFF' vlink='#FFFFFF' link='#FFFFFF'>
<form name="suche" method="post" action="suche.php"> <p align="center"> <b>Suche: </b> <br> <input name=suche type="text" onfocus="if(this.value=='Suche nach Titel/Interpret!') this.value='';" onblur="if(this.value=='') this.value='Suche nach Titel/Interpret!';" value="Suche nach Titel/Interpret!" size="30" class="inputbox" maxlength="30"> </p> <p align="center"> <input type="submit" value="Suchen"> <input type="reset" value="Abrrechen"></p> </form>
<?php include ("verbindung.php"); ?>
<h1><p align="center"><b>Die Pfeile neben den jeweiligen Kategorien helfen dir bei der Sortierung!</b></p></h1>
<?php $sql="SELECT id FROM cdverwaltungneu";
if ($result=mysqli_query($db,$sql)) { // Return the number of rows in result set $rowcount=mysqli_num_rows($result); printf("<p align='center'>". "Insgesamt hast du %d CD's eingetragen\n",$rowcount ."</p>"); // Free result set mysqli_free_result($result); } ?>
<table border="1" align="center" width="600px"> <tr class=tablerow> <td><a href="ausgabe.php?id"><img src="bilder/pf-ob.gif.png" width="18" height="18"></a> <a href="ausgabe.php?iddesc"><img src="bilder/pf-un.gif" width="18" height="18"></a> <b>ID</b></td>
<td><a href="ausgabe.php?titel"><img src="bilder/pf-ob.gif.png" width="18" height="18"></a> <a href="ausgabe.php?titeldesc"><img src="bilder/pf-un.gif" width="18" height="18"></a> <b>Titel</b></td>
<td><a href="ausgabe.php?interpret"><img src="bilder/pf-ob.gif.png" width="18" height="18"></a> <a href="ausgabe.php?interpretdesc"><img src="bilder/pf-un.gif" width="18" height="18"></a> <b>Interpret</b></td>
<td><a href="ausgabe.php?datum"><img src="bilder/pf-ob.gif.png" width="18" height="18"></a> <a href="ausgabe.php?datumdesc"><img src="bilder/pf-un.gif" width="18" height="18"></a> <b>Datum</b></td> </tr>
<?php foreach ($_GET as $key => $value) {
switch ($key) { case "id": $sql = "SELECT * FROM cdverwaltungneu ORDER BY id ASC"; break; case "iddesc": $sql = "SELECT * FROM cdverwaltungneu ORDER BY id DESC"; break; case "titel": $sql = "SELECT * FROM cdverwaltungneu ORDER BY titel ASC"; break; case "titeldesc": $sql = "SELECT * FROM cdverwaltungneu ORDER BY titel DESC"; break; case "interpret": $sql = "SELECT * FROM cdverwaltungneu ORDER BY interpret ASC"; break; case "interpretdesc": $sql = "SELECT * FROM cdverwaltungneu ORDER BY interpret DESC"; break; case "datum": $sql = "SELECT * FROM cdverwaltungneu ORDER BY datum ASC"; break; case "datumdesc": $sql = "SELECT * FROM cdverwaltungneu ORDER BY datum DESC"; break; case "main": $sql = "SELECT * FROM cdverwaltungneu"; break; default: $sql = "SELECT * FROM cdverwaltungneu"; break;
}
$db_erg = mysqli_query( $db, $sql ); if ( ! $db_erg ) { die('Ungültige Abfrage: ' . mysqli_error()); } while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC)) { echo "<tr>"; echo "<td>". $zeile['id'] . "</td>"; echo "<td>". $zeile['titel'] . "</td>"; echo "<td>". $zeile['interpret'] . "</td>"; echo "<td>". $zeile['datum'] . "</td>"; echo "</tr>"; } echo "</table>";
mysqli_free_result( $db_erg );
} ?>
</body> </html>
|
|
10.07.2014 17:44 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: Problem in MySQL und PHP
echo "<td>". $zeile['titel'] . "</td>";
zu
echo "<td><a href='cd.php?id=".$zeile['id']."'>". $zeile['titel'] . "</a></td>";
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
|
|
10.07.2014 17:46 |
|
|
Beiträge: 64
Bewertung: 1
Registriert seit: Aug 2012
Status:
offline
|
RE: Problem in MySQL und PHP
Ok Danke, das klingt ja schon mal gut, aber was soll den in die, dann sogenannte cd.php rein, da dort ja die einzelne cd ausgegeben werden soll und woher weiss der welche cd ausgegeben werden soll?
|
|
10.07.2014 18:11 |
|
|
Beiträge: 210
Bewertung: 1
Registriert seit: Apr 2013
Status:
offline
|
RE: Problem in MySQL und PHP
Deswegen ja der GET-Parameter.
Es scheint, als hättest du nichtmal die Grundlagen drauf. So kommen wir nicht wirklich weiter.
Bis morgen soll ich, aber eine Detailausgabe entwickeln
Für wen?
PHP Problem? [Link: Registrierung erforderlich]
Language: PHP, Indent-Mode: 2 oder 4
|
|
10.07.2014 18:15 |
|
|
Beiträge: 64
Bewertung: 1
Registriert seit: Aug 2012
Status:
offline
|
RE: Problem in MySQL und PHP
Wir sollen das für die Schule entwickeln, da lernen wir das gerade. Verstehe ich da, aber auch nicht. Darum hoffe ich ja hier auf positive/hilfreiche Unterstützung, da ich schon absolut am verzweifeln bin.
|
|
10.07.2014 18:21 |
|
|