| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

16-07-2010, 11:32
|
|
FoLLoW_M3
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 6
|
|
MySQL Datenbank auslesen via PHP
Hallo liebe Community,
ich versuche gerade eine MySQL-Tabelle mit PHP auszulesen, allerdings spuckt das Ganze nichts aus...
Vielleicht könnt ihr mir auf die Sprünge helfen, manchmal sieht man ja bekannterweise den Wald vor lauter Bäumen nicht - danke schonmal!
Hier der Inhalt der index.php:
PHP-Code:
<?php $db = @new mysqli('***', '***', '***', '***'); if (mysqli_connect_errno()) { die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')'); } $sql = 'SELECT * FROM users'; $result = $db->query($sql); if (!$result) { die ('Etwas stimmte mit dem Query nicht: '.$db->error); } echo 'Die Ergebnistabelle besitzt '.$result->num_rows." Datensätze<br />\n"; ?>
Auch mit dem Folgenden habe ich es probiert:
PHP-Code:
<?php $db = @new mysqli('***', '***', '***', '***'); if (mysqli_connect_errno()) { die ('Konnte keine Verbindung zur Datenbank aufbauen: '.mysqli_connect_error().'('.mysqli_connect_errno().')'); } $sql = 'SELECT *UserID, UserName, UserMail FROM users'; $result = $db->query($sql); if (!$result) { die ('Etwas stimmte mit dem Query nicht: '.$db->error); } echo 'Die Ergebnistabelle besitzt '.$result->num_rows." Datensätze<br />\n"; ?>
Das einzige Ergebnis ist dies:
"Die Ergebnistabelle besitzt 1 Datensätze"
LG
|

16-07-2010, 11:34
|
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 268
|
|
Hi.
Mit num_rows fragst Du ja auch die Anzahl ab. Hier siehst Du, wie du mit mysli_query arbeitest:
PHP: mysqli::query - Manual
und
PHP: mysqli_result::fetch_array - Manual
streuner
__________________
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.
"Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"
|

21-07-2010, 09:36
|
|
FoLLoW_M3
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 6
|
|
Danke für Deine Hilfe, das habe ich nun hingekriegt.
Aber jetzt habe ich noch ein anderes Problem, bei dem ich noch keine Lösung gefunden habe.
Ich möchte für einen Adminbereich die Zugangsberechtigung so ändern, dass nur der User mit der UserID=1 diesen aufrufen kann. Folgdendes habe ich probiert:
PHP-Code:
if ($userid = 1) {
Header("Location: login.php"); exit(); }
Die Variable ist definiert, der Nutzer mit userid=1 auch vorhanden, aber auch userid=2 hat Zugang - funktioniert das überhaupt so, wie ich es mir vorstelle?
Bin für jeden Tipp / jede Hilfe / jeden Link dankbar!
LG
|

21-07-2010, 09:50
|
AmicaNoctis
 Moderator
|
|
Registriert seit: Jul 2009
Ort: Dresden
Beiträge: 3.896
|
|
Hallo,
du musst zwischen Vergleich und Zuweisung streng unterscheiden. setzt den Inhalt der Variable auf 1.
dagegen vergleicht die beiden Werte
Gruß,
Amica
|

21-07-2010, 10:18
|
|
FoLLoW_M3
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 6
|
|
Stimmt, darüber habe ich mir schon Gedanken gemacht, aber auch mit
hat userid=2 Zugriff. Der Fehler muss also woanders liegen.
Hier mal der obere Teil aus meiner index.php
PHP-Code:
<?php session_start();
$db_link = mysql_connect ("localhost", "root", "");
$db_sel = mysql_select_db( "gld" ) or die("Auswahl der Datenbank fehlgeschlagen");
$sql = "SELECT UserID FROM users WHERE UserSession='".session_id()."'"; $db_erg = mysql_query( $sql ); if ( ! $db_erg ) { die('Ungültige Abfrage: ' . mysql_error()); } while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC)) { $userid = $zeile['UserID']; } echo"<p />"; if($userid == 1) {
Header("Location: login.php"); exit(); } else {
Das geht sicherlich auch schöner... Habe ich da vielleicht einen Denkfehler??
Danke
|

21-07-2010, 10:50
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 1.367
|
|
Warum speicherst du die User ID nicht einfach in der Session? Wozu der Umweg über die Datenbank?
|

21-07-2010, 13:59
|
|
FoLLoW_M3
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 6
|
|
@h3ll
Ich habe die Variable nun in der Session gespeichert, aber trotzdem erfolgt keine Änderung.
Mit
PHP-Code:
<?php echo $userid ?>
wird mir die korrekte ID angezeigt, doch die Abfrage
PHP-Code:
if ($userid == 1) {
Header("Location: login.php"); exit(); }
liefert nicht das, was sie soll, eben dass man mit ID=2 nicht durch kommt.
Noch jemand Lösungsansätze für mich?
|

21-07-2010, 14:03
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 1.367
|
|
Dein Code sagt, dass User mit der ID 1 auf login.php weitergeleitet werden. Mal davon abgesehen, dass du keine absolute URL angibst (was nämlich falsch ist), ist das so korrekt?
|

21-07-2010, 14:11
|
|
FoLLoW_M3
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 6
|
|
Danke, das war wohl der entscheidende Hinweis. Ich habe die Abfrage falsch herum gestellt, sodass jeder den Inhalt sehen konnte. Was mich dabei allerdings wundert, auch mit ID=1 wurde alles angezeigt?
Nunja, danke ^^ Ich sollte einfach die Augen genauer aufmachen =)
|

28-07-2010, 09:51
|
|
FoLLoW_M3
Registrierter Benutzer
|
|
Registriert seit: Jul 2010
Beiträge: 6
|
|
Ich brauche nochmal Eure Hilfe.
Und zwar möchte ich die ausgelesenen Tabellen der MySQL-Datenbank per PHP bearbeiten. Folgendes habe ich mir überlegt:
- jede Zeile erhält eine Checkbox und am Ende kann man alle markierten Datensätze "bearbeiten" also einer UserID zuordnen
Dazu dieser Code:
PHP-Code:
echo '<table border="0" width="100%">'; echo "<tr>"; echo "<td><b>Auswahl</b></td>"; echo "<td><b>IP</b></td>"; echo "<td><b>Absender</b></td>"; echo "<td><b>Empfänger</b></td>"; echo "<td><b>Erste</b></td>"; echo "<td><b>Letzte</b></td>"; echo "<td><b>Anzahl</b></td>"; echo "</tr>"; echo "<tr>"; while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC)) { echo "<td><form method='POST' action='zuordnen.php'> <input type='checkbox' name='zuordnen[]' value='an'></td>"; echo "<td>". $zeile['ip'] . "</td>"; echo "<td>". $zeile['sender'] . "</td>"; echo "<td>". $zeile['recipient'] . "</td>"; echo "<td>". $zeile['first'] . "</td>"; echo "<td>". $zeile['last'] . "</td>"; echo "<td>". $zeile['n'] . "</td>"; echo "<td>". $zeile['UserID'] . "</td>"; echo "</tr>"; }
echo "</table>"; echo "Auswahl der UserID "; echo "<input type='text' name='UserID' value='Userid eintragen' />" . "<input type='submit' name='Submit' value='zuordnen' /></form>";
echo "<p />";
Und die zuordnen.php:
PHP-Code:
if (!isset ($_POST['zuordnen'])) $_POST['zuordnen']= "an"; { mysql_query("UPDATE *** SET UserID='".$_POST['UserID']."' "); }
*** wurden eingefügt
Was liefert ".print_r( $_POST, true )."?
PHP-Code:
Array ( [zuordnen] => Array ( [0] => an [1] => an )
[UserID] => 2 [Submit] => zuordnen )
Ich habe die ersten beiden Datensätze ausgewählt, aber überall wird die "UserID" auf 2 geändert. Wenn ich keinen Datensatz auswähle, passiert nichts.
Ich komme nicht wirklich weiter... Vielleicht kann mir nochmal jemand auf die Sprünge helfen.
Danke
|

28-07-2010, 10:24
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Gib im Formular bei mal die ID des Eintrags als Index an, nach dem Absenden aktualisierst du alle Datensätze, die den übergebenen IDs entsprechen. Dazu durchläufst du das zuordnen-Array, packst alle IDs ein eigenes Array und kannst dann bei der WHERE-Klausel 'WHERE id IN (...)' verwenden.
Dass momentan alle Datensätze geändert werden, liegt schlicht daran, dass du in der UPDATE-Anweisung keine Bedingung angibst ...
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|
| Themen-Optionen |
|
|
| Ansicht |
Thema bewerten |
Linear-Darstellung
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
Neuzugänge PHP Scripte
Shoutbox V 2.0
In der Version 2.0 wurden Probleme bei der Darstellung mit einigen Browsern behoben. Außerdem bekam die 2.0 eine neue Funktion, mit der man private Kurzmitteilungen verschicken kann. Ansonsten steht sie der 1.0er Version in nichts nach.
02.09.2010
phpsven | Kategorie: PHP/ Shoutbox
|
|
Videoliste V 1.0f
Mit dieser Software können Sie ihre Videoliste verwalten. Eine schon vorhandene Liste im *.csv Format kann importiert werden. Mit Installationsroutine.
02.09.2010
phpsven | Kategorie: PHP/ Archiv
|
|
Kompletter Blog-Hoster / AdSense
BlogHost ist ein Blog-Hoster, bei welchem Benutzer kostenlos ein eigenes Blog erstellen können, um ein virtuelles Tagebuch zu führen oder einfach nur Informationen, Gedanken und Erfahrungen zu veröffentlichen. Neue Artikel können per RSS-Feed abonniert we
01.09.2010
ISD-Genthin | Kategorie: PHP/ Blog
|
|
4images
4images ist ein auf PHP/MySQL basierendes System zur Administration und Pflege einer Bildergalerie.
31.08.2010
4images@ | Kategorie: PHP/ Bilder
|
|
Power Flirt & Webcam Chat Portal 2.0
Hier bieten wir Ihnen ein Flirt Chat Script mit Funktionen die selbst die grossen Flirtportale nicht anbieten, also was ganz neues.
Dies ist kein normales Flirtscript, sondern ein Mix aus Flirtscript und Chatscript mit Premium Mitgliedschaft, MMS User
30.08.2010
ISD-Genthin | Kategorie: PHP/ sonstig
|
|
ImmoSpy - Online - Immobilienmarkt
ImmoSpy ist ein umfangreiches und professionell von uns entwickeltes Script, um einen Immobilien Marktplatz online zu betreiben. Es ist im Funktionsumfang ähnlich aufgebaut wie andere große Immobilien-Portale.
29.08.2010
ISD-Genthin | Kategorie: PHP/ Anzeigenmarkt
|
Alle Scipte anzeigen
|