Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Problem bei mySQL-Abfrage mit PHP

Empfohlene Antworten

Veröffentlicht

Hallo,

ich hab ne Tabelle, bei der nach bestimmten Absätzen

eine leere Zeile ausgegeben werden soll.

Nun hab ich in meiner Datenbank eine Zeile ohne Inhalte,

die ausgegeben werden soll, wenn vor dem nächsten

eintrag kein Eintrag war.

Ich hab das jetzt folgendermaßen versucht:


if($row['firma'] - 1 == ' ');
{
echo $row['id']
}
[/PHP]

Die Ausgabe ist nur zum Test.

Hoffe mir kann jemand helfen.

Gruß

TripleD

Hi TripleD,

so wie du das hast wird das nix.

Gibt es "Regel" nach der du bestimmen kannst wann Leerzeilen erscheinen sollen?

Einen Leeren Datensatz in die Datenbank hinzuzufügen finde ich eine schlecht Lösung.

Das mit deinem Ansatz wird so nichts.

Gruß,

Markus

HI,

danke erst mal für deine Antwort.

Also, das ganze sieht bei mir am ende so aus:


Firma | Tel | Fax | Ansprechpartner | Tel | Fax |
F1 | 0 | 0 | Ich | 0 | 0 |
| 1 | 1 | Du | 1 | 1 |
F2 | 0 | 0 | Ich | 0 | 0 |
F3 | 0 | 0 | Ich | 0 | 0 |
[/PHP]

Vor jedes "F" soll eine Leerzeile drin sein.

Mann kann aber nicht genau sagen, wieviel Ansprechpartner pro

Firma drin sind, da die einen 5 und die anderen nur 2 und so weiter haben.

Hoffe das hilft dir weiter.

TripleD

also wenn ich dich richtig verstehe, dann sollen die Firmen voneinander optisch getrennt werden?

Mit diesem F usw kriegt man das easy hin!

Noch kurz was zur Datenstruktur.

Ich glaube du solltest die Ansprechpartner in einer eigenen Tabelle halten, da sonst deine daten schnell inkonsistent werden.

Genau .. ich würd mir im Internet mal ein paar Informationen zum Thema "Normalisierung" besorgen :)

Hi,

also ich hab jetzt mal die ganzen Ansprechpartner Daten in ne

extra Tabelle gesetzt.

Ich hab jetzt nur noch ein Problem mit der Abfrage und Ausgabe.

Wenn bei Firma A drei Ansprechpartner 1 sind, wird für jede weitere Firma der Ansprechpartner benutzt und dann kommt Ansprechpartner 2 für alle Firmen.

Was hab ich falsch gemacht?

nach folgender Abfrage:


<?php
include('../connect.php');

$sql = "SELECT * FROM ".$T_KD.", ".$T_AP
OR die('Fehler bei Abfrage: '.mysql_error());

$result = mysql_query($sql)
OR die('Fehler bei Ausfürung: '.mysql_error());

while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td>
<?php
if($row['firma'] == ' ')
{
echo '<font size="2">'.$row['firma'].", ".$row['ort']." ".$row['version'].'</font>';
}
else
{
echo '<font size="2">'.$row['firma']." ".$row['ort']." ".$row['version'].'</font>';
}
?>
</td>
<td>
<?php echo '<font size="2">'.$row['z_tel'].'</font>' ?>
</td>
<td>
<?php echo '<font size="2">'.$row['z_fax'].'</font>' ?>
</td>
<td bgcolor="#9F9F9F">
<?php echo '<font size="2">'.$row['ap'].'</font>' ?>
</td>
<td>
<?php echo '<font size="2">'.$row['ap_tel'].'</font>' ?>
</td>
<td>
<?php echo '<font size="2">'.$row['ap_fax'].'</font>' ?>
</td>
</tr>
<?php
}
?>
[/PHP]

Gruß

TripleD

Also wenn du die Normalisierung richtig gemacht hast, ist in der Mitarbeitertabelle ein Feld für die Firmen-ID drin - dann bräuchtest du nur mit

WHERE firmenID = "'$_PSO[firmenid]'"

in der Abfrage die entsprechende Firma auswählen.

Oops, ich hätte mal besser vorher kontrollieren sollen... 00000002.gif

Der Zusatz ist natürlich so richtig:

 WHERE firmenID = "'$_POST[firmenid]'"

in deinem SQL fehlt auch die Tabellen verknüpfung:

Pseudocode:


$sql = "SELECT * FROM ".$T_KD.", ".$T_AP . " WHERE T_KD.id = T_AP.id";
[/PHP]

Hi,

also Danke erst mal für eure Hilfe.

@kills:

Die Abfrage muss so lauten:


$sql = "SELECT * FROM ".$T_KD.", ".$T_AP . " WHERE $T_KD.id = $T_AP.id";
[/PHP]

nicht so:

[PHP]
$sql = "SELECT * FROM ".$T_KD.", ".$T_AP . " WHERE T_KD.id = T_AP.id";

Gruß und Danke nochmal

TripleD

HI nochmal,

hab da noch ein Problem, und zwar hab ich ja x-Firmen und zu jeder Firma wieder x-Ansprechpartner.

Wie bekomm ich das jetzt hin, dass die Firma nicht vor jedem Ansprechpartner steht?

Gruß

TripleD

Hi,

also Danke erst mal für eure Hilfe.

@kills:

Die Abfrage muss so lauten:


$sql = "SELECT * FROM ".$T_KD.", ".$T_AP . " WHERE $T_KD.id = $T_AP.id";
[/PHP]

nicht so:

[PHP]
$sql = "SELECT * FROM ".$T_KD.", ".$T_AP . " WHERE T_KD.id = T_AP.id";

Gruß und Danke nochmal

TripleD

Wenn muss es dann auch so heissen:


$sql = "SELECT * FROM ".$T_KD.", ".$T_AP . " WHERE ". $T_KD .".id = ". $T_AP .".id";
[/PHP]

ein bissl einheitlich muss ja auch sein....

HI nochmal,

hab da noch ein Problem, und zwar hab ich ja x-Firmen und zu jeder Firma wieder x-Ansprechpartner.

Wie bekomm ich das jetzt hin, dass die Firma nicht vor jedem Ansprechpartner steht?

Gruß

TripleD

Wie ist denn dein Ansatz?

Gruß,

Markus

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.