Der erste Eintrag in der MYSQL Datenbank wird nicht beim auslesen angezeigt (PHP, MYSQL)?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Du liest die erste Zeile zwar aus, überschreibst sie mit der Schleife dann aber wieder.

  // ...
  $row = mysqli_fetch_array($result);
?>
<!-- ... -->
<?php
  while ($row = mysqli_fetch_array($result)) {
    // ...

Nimm also den ersten Aufruf von mysqli_fetch_array raus.

Noch ein paar weitere Anmerkungen:

  • Die Filterung nach developer-Einträgen kannst du bereits mit dem SQL Query vornehmen (WHERE-Klausel)
  • Binde Styles im head ein. CSS sollte so früh wie möglich angeführt werden. Zudem hast du doch bereits eine style.css. Wieso definierst du in dieser nicht auch deine Textzentrierung?
  • Wenn du mit die das Skript vorzeitig beendest, renderst du ein invalides Dokument aus.

derhardwaretyp 
Beitragsersteller
 15.06.2019, 19:12

Erstmal vielen dank für deine Antwort,

habe die filterung jetzt direkt in der SQL Query abfrage vorgenommen arbeite noch nicht so lange mit mysql deshlab kannte ich diese Funktion noch nicht vielen dank schonmal für diesen Tipp.
Die style habe ich nur kurz dort eingebunden das es übersichtilicher ist, es wird vom Design eh noch komplett überarbeitet daher ist auch schonmal bootstrap und weiteres eingebunden ich wollte allerdings erst die Funktionen testen bevor ich mich um das Design kümmere.
Wie meinst du das mit dem Vorzeitigem Skirpt beenden, hab ich noch irgendetwas Falsch geamcht oder passt so alles?
Ich weiß nicht was mich dazu getrieben hat den mysqli_fetch_array oben hinzuschreiben habe ihn rausgenommen nun Funktioniert alles ich schick mal nochmal ein Pastebin: https://pastebin.com/i7ZbfLTW
Vielen Dank für deine Hilfe :D

0
regex9  15.06.2019, 19:21
@derhardwaretyp

Angenommen, es existiert tatsächlich keine User-ID. Dann würde dein Skript durch die vorzeitig abbrechen. Der Server würde nur den String an den Browser schicken, den du angegeben hast:

Bitte zuerst <a href="login.php">einloggen</a>

Dies stellt aber kein valides HTML-Dokument dar, denn dieses besteht stets aus mindestens einem Doctype und einem Seitentitel. Diese Rückgabe wäre also valid:

<!doctype html><title>Bitte erst einloggen</title>Bitte zuerst <a href="login.php">einloggen</a>

Noch besser wäre es natürlich, die Abfrage nach der User-ID erst im body-Bereich (mit if-elseif, statt die) zu machen, wenn dein Styling bereits eingebunden wurde. Dann wäre selbst die Fehlerseite noch im üblichen Styling hinterlegt.

0

Nimm doch mal diese unnötige IF ABfrage raus und änder die Query in:

SELECT * FROM bewerbungen where als = 'developer'

Woher ich das weiß:Berufserfahrung – Software-Entwickler

derhardwaretyp 
Beitragsersteller
 15.06.2019, 19:15

Vielen dank, kenne mich noch nicht so mit MYSQL aus habe es nun geändert und Funktioniert nun alles allerdings lag es nicht daran. Trotzdem Danke :D

0

Das liegt am Code.

Die nimmst nur die erste Reihe.

Du musst per Schleife durch die Ergebnisse gehen.

while ($row = mysql_fetch_array($result))

{

//Code

}

In Code erfolgt dann jeweils die Behandlung mit jeder Bewerbung.


regex9  15.06.2019, 17:25

Weil er nur die erste Reihe nimmt, wird bei ihm die erste Reihe nicht ausgespielt? Du hast dir wohl weder die Frage, noch den Code vollständig angeschaut.

1
TechnicGuru  15.06.2019, 17:26
@regex9

Ich habe es am Handy schnell überflogen, da ist die Schleife wohl untergegangen

0

wie liest du denn aus?? PHP oder womit?


BPPtheo  15.06.2019, 17:08

Mach mal ein paar Mehr einträge, und schau was passiert

0
derhardwaretyp 
Beitragsersteller
 15.06.2019, 19:14
@BPPtheo

Funktioniert Logischerweiße nicht einfach mehr Einträge hinzuzufügen und ergibt auch keinen Sinn da es solche Bugs nicht in einem System geben sollte!
Habe inzwischen ein Lösung gefunden, trotzdem Danke für deine Antwort..

1
BPPtheo  15.06.2019, 19:18
@derhardwaretyp

Naja, klar kann man neue Einträge über die SQL Konsole hinzufügen.

Wenn du 2 Einträge hast, und nur einer Angezeigt wird, erstellt man einen 3. und ruft dann nochmal die Daten ab. --> Dann kann es durchaus ja möglich sein, das auf einmal der Eintrag 2 und 3 angezeigt wird, dann weis man das irgendwas mit Eintrag 1 nicht stimmt. Aber ja du hast recht, solche Fehler sollten besonders in PHP und SQL tatsächlich nicht vorkommen.

0
regex9  15.06.2019, 19:24
@BPPtheo
dann weis man das irgendwas mit Eintrag 1 nicht stimmt. 

Das war schon vorher klar. Also nein, diese Vorgehensweise bringt keine neuen Erkenntnisse.

0
BPPtheo  15.06.2019, 17:06

ach wie dumm von mir xD

0