Platzhalte verbinden

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Platzhalte verbinden

    Hallo,
    ich habe gerade dieses Forum hier gefunden und wollte direkt einmal eine Frage stellen.
    Ich möchte mir mit MySql ein Adressbuch basteln, klappt soweit auch ganz gut, auch wenn ich blutiger Anfänger bin was MySql angeht.

    Also,
    ich möchte erreichen das 2 Platzhalter zusammen arbeiten.
    Ich habe ein Feld "Inhaber" und ein Feld "Inhabername".
    Nun möchte ich erreichen das das Feld "Inhaber" (darin steht nur Inhaber:) nur angezeigt wird wenn auch im Feld "Inhabername" etwas eingetragen wurde.

    Anzeige:
    {adressen:adressen_inhaber} {adressen:adressen_inhabername}

    Inhaber: Heinz Testmann

    Ich möchte vermeiden das "Inhaber:" da steht wenn kein Inhaber eingegeben wurde.

    Ist so etwas möglich?
  • Hallo und vielen Dank schon einmal.

    Ich habe das jetzt mal so versucht:

    Quellcode

    1. $adress_2013 = "SELECT * FROM adress_2013 ORDER BY firma ASC";
    2. $ergebnis = mysql_query($adress_2013) or die( mysql_error() );
    3. if (!empty($row["inhaber"]) || !empty($row["inhabername"]))
    4. while($row = mysql_fetch_array($ergebnis))
    5. {


    jetzt zeigt er mir den Eintrag aber gar nicht mehr an - die anderen schon, nur den wo ich keinen Inhaber angegeben habe nicht.

    Ich nutze nun ein anderes Script, dort werden die Platzhalter mit echo $row['inhaber']; $row['inhabername']; angesprochen.
  • Naja, du musst eigendlich nur in der Ausgabe (so an der Stelle wo du später die Daten anzaigen lässt) prüfen ob das Feld 'Inhabername' nicht leer ist ->

    Quellcode

    1. echo"<tr>";
    2. if(!empty($row['Inhabername'])){
    3. echo"<td>Inhaber: ".$row['inhaber']." - ".$row['inhabername']."</td>";
    4. }
    5. echo"</tr>";


    Jetzt wird "Inhaber - Inhabername" nur angezeigt wenn in $row['inhabername'] etwas drin steht

  • Quellcode

    1. $adress_2013 = "SELECT * FROM adress_2013 ORDER BY firma ASC";
    2. $ergebnis = mysql_query($adress_2013) or die( mysql_error() );
    3. if (!empty($row["inhaber"]) || !empty($row["inhabername"]))
    4. while($row = mysql_fetch_array($ergebnis))
    5. {
    6. }




    Ich seh gerade bei dir son paar sachen die ich anders machen würde z.B.
    erstmal alle daten in die Variable db_result packen dann:
    (musst das nicht so machen habe das nur gemacht damit es für mich einfacher ist)

    Und nimm verdammt nochmal das Feld Inhaber aus der Datenbank! Schon mal was von normalisieren gehört?!?!


    Quellcode

    1. $db_result=$ergebnis;
    2. foreach ($db_result AS $db_row)
    3. {
    4. if(isset($db_row->inhaber_name))
    5. {
    6. echo("Der Inhaber ist: ".$db_row->inhaber_name."<br />");
    7. }
    8. else
    9. {
    10. echo("Es gibt keinen Inhaber!<br />");
    11. }
    12. }
    Alles anzeigen


    Damit lässt du eine Schleife für jedes Objekt oder jedes Array durchlaufen udn überprüfst jedes mal ob inhaber_name da ist.
    Wenn ja spuckt er dir "Der Inhaber ist: " aus und hängt am ende den inhalt aus der DB an.
    Wenn nein, dann spuckt er "Es gibt keinen Inhaber!<br />" aus, das br damit er in eine Zeile kommt.
    Kann sein das du das anders aufrufst aus der SQL Abfrage, arbeite meist mit nem Frameword, wnens so net geht versuch :

    Quellcode

    1. $db_row['inhaber_name']


    Was mir bei deinem Code noch auffiel ist das du eine Bedingung gestellt hast die vermutlich die Komplette Schleife ausser Kraft setzt.

    Wenns läuft klicke bitte auf Thread oder Post schließen hier.