php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.04.2011, 13:00  
Neuer Benutzer
 
Registriert seit: 20.04.2011
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Hans_PHP_11 befindet sich auf einem aufstrebenden Ast
Standard Alphabet Suche

Hi
ich bins wieder,
Der zeigt mir einem Fehler an:
Parse error: syntax error, unexpected T_ELSEIF in C:\xampp\htdocs\Zitate\index.php on line 67

index.php
PHP-Code:
<?php
       
       $sql
['host'] = "localhost";
       
$sql['user'] = "root"/* Dein Benutzernamen */
       
$sql['password'] = ""/* Dein Passwort */
       
$sql['db'] = "zitate"/* Den Datenbanknamen */

       
mysql_connect ($sql['host'], $sql['user'], $sql['password']) or die("Error");

       
mysql_select_db ($sql['db']) or die("Error");
       
       
$alpha = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
       
if (isset(
$_POST["submit"]))
   {
      
$suchtext $_POST["suche"];

      
$query "SELECT * FROM zitate WHERE 
                artist LIKE ('%"
.$suchtext."%') OR song LIKE ('%".$suchtext."%') OR zitat LIKE ('%".$suchtext."%') "
                  
      
$result mysql_query($query);
                  
      if (!
$result
         {
          
$message  'Invalid query: ' mysql_error() . "\n";
          
$message .= 'Whole query: ' $query;
          die(
$message);
         }

      echo 
"<tr><td>".mysql_num_rows($result)." Ergebnisse f&uuml;r <u>".$suchtext."</u> gefunden";

      for (
$row 0$row mysql_num_rows($result); $row++)
          {
            
$zitat mysql_result($result$row'zitat');
            if (
strlen($zitat) >= 50
               {
                 
$zitat substr($zitat,050) . "..."
               }
            echo 
"<tr><td width='420px'>";
            echo 
"<a href='zitat.php?id=".mysql_result($result$row'id')."' id='zitatlist'>";  
            echo 
$zitat;
            echo 
"</a><br></td><td width='200px'>";
            echo 
mysql_result($result$row'song');
            echo 
"</td><td width='170px'>";
            echo 
mysql_result($result$row'artist');
            echo 
"</td></tr>";
         } 
      }          
    for(
$buchstabe 0$buchstabe count($alpha); $buchstabe++){
    
    elseif(isset(
$_POST["$alpha[$buchstabe]"])) //Zeile 67-------------------------- 
              
{
                
$query "SELECT * FROM zitate WHERE 
                  zitat LIKE ('"
.$alpha[$buchstabe]."%') ";
                 
                
$result mysql_query($query);
                  
                if (!
$result
                    {
                      
$message  'Invalid query: ' mysql_error() . "\n";
                      
$message .= 'Whole query: ' $query;
                      die(
$message);
                    }
                echo 
"<tr><td>".mysql_num_rows($result)." Ergebnisse f&uuml;r <u>".$alpha[$buchstabe]."...</u> gefunden";
                
                for (
$row 0$row mysql_num_rows($result); $row++)
                    {
                      
$zitat mysql_result($result$row'zitat');
                      if (
strlen($zitat) >= 50
                         {
                          
$zitat substr($zitat,050) . "..."
                         }
                    echo 
"<tr><td width='420px'>";
                    echo 
"<a href='zitat.php?id=".mysql_result($result$row'id')."' id='zitatlist'>";  
                    echo 
$zitat;
                    echo 
"</a><br></td><td width='200px'>";
                    echo 
mysql_result($result$row'song');
                    echo 
"</td><td width='170px'>";
                    echo 
mysql_result($result$row'artist');
                    echo 
"</td></tr>";
                    }
            
            }
    }
         else {

           
$query sprintf("SELECT id, zitat, artist, song FROM zitate ORDER BY id DESC");
        
           
$result mysql_query($query);

           if (!
$result
              {
                
$message  'Invalid query: ' mysql_error() . "\n";
                
$message .= 'Whole query: ' $query;
                die(
$message);
              }

          for (
$row 0$row mysql_num_rows($result); $row++)
              {
                
$zitat mysql_result($result$row'zitat');
                if (
strlen($zitat) >= 50
                   { 
                     
$zitat substr($zitat,050) . "..."
                   }
               echo 
"<tr><td width='420px'>";
               echo 
"<a href='zitat.php?id=".mysql_result($result$row'id')."' id='zitatlist'>";  
               echo 
$zitat;
               echo 
"</a><br></td><td width='200px'>";
               echo 
mysql_result($result$row'song');
               echo 
"</td><td width='170px'>";
               echo 
mysql_result($result$row'artist');
               echo 
"</td></tr>";
                }
  }
?>
MfG & Danke
Hans_PHP_11 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.04.2011, 13:04  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ja? elseif kann nur auf ein if oder anderes elseif folgen. An dieser Stelle (nach for) macht es auch überhaupt keinen Sinn.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 21.04.2011, 13:04  
Erfahrener Benutzer
 
Registriert seit: 07.07.2010
Beiträge: 231
PHP-Kenntnisse:
Anfänger
mentalman ist ein sehr geschätzer Menschmentalman ist ein sehr geschätzer Menschmentalman ist ein sehr geschätzer Mensch
Standard

ich würde einfach mal tippen, dass du die for-schleife mit nem elseif beginnst, ohne dass ein if vorangegangen ist.
steht ja auch exakt so in der fehlerbeschreibung.
versuchs doch mal nur mit if.
mentalman ist offline   Mit Zitat antworten
Alt 21.04.2011, 13:07  
Neuer Benutzer
 
Registriert seit: 20.04.2011
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Hans_PHP_11 befindet sich auf einem aufstrebenden Ast
Standard

Also das elseif soll sich auf das if (isset($_POST["submit"])) beziehen

und mit der for-Schleife will ich erreichen, dass das elseif 26mal abgefragt wird für
isset($_POST["A"])
isset($_POST["B"])
isset($_POST["C"])
...
Wie lös ich das Problem am besten?
Hans_PHP_11 ist offline   Mit Zitat antworten
Alt 21.04.2011, 13:12  
Neuer Benutzer
 
Registriert seit: 20.04.2011
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Hans_PHP_11 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von mentalman Beitrag anzeigen
ich würde einfach mal tippen, dass du die for-schleife mit nem elseif beginnst, ohne dass ein if vorangegangen ist.
steht ja auch exakt so in der fehlerbeschreibung.
versuchs doch mal nur mit if.
Also ich habs jetzt mit if gemacht jetzt zeigt er mir keinen Fehler mehr an, aber er zeigt mir an zb: 0 Einträge für A gefunden
und dadrunter zeigt er mir aber noch die anderen Einträge an

Geändert von Hans_PHP_11 (21.04.2011 um 13:15 Uhr).
Hans_PHP_11 ist offline   Mit Zitat antworten
Alt 21.04.2011, 13:16  
Globe31
Gast
 
Beiträge: n/a
Standard

Du scheinst n allgemeines Problem mit deinem "Skript-Design" zu haben.

Grundlagen schon durch? Sieht nicht danach aus ...

Btw:

Zitat:
$query = sprintf("SELECT id, zitat, artist, song FROM zitate ORDER BY id DESC");
Warum zur Hölle sprintf? oO
  Mit Zitat antworten
Alt 21.04.2011, 13:19  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

och .. so schlimm ist jetzt sprintf nicht - es "druckt" eine Zeichenkette in eine Variable ... und würde dabei sogar über Formatspecifier eingebundene Variable Werte formatieren ....

in diesem Fall ist es aber eigentlich unnötig, da hast du schon recht - es macht aber auch nix kaputt
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 21.04.2011, 13:19  
Neuer Benutzer
 
Registriert seit: 20.04.2011
Beiträge: 11
PHP-Kenntnisse:
Anfänger
Hans_PHP_11 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Globe31 Beitrag anzeigen
Du scheinst n allgemeines Problem mit deinem "Skript-Design" zu haben.

Grundlagen schon durch? Sieht nicht danach aus ...

Btw:



Warum zur Hölle sprintf? oO
Ja das hab ich so von nem Tutorial übernommen
Hans_PHP_11 ist offline   Mit Zitat antworten
Alt 21.04.2011, 13:23  
Erfahrener Benutzer
 
Registriert seit: 07.07.2010
Beiträge: 231
PHP-Kenntnisse:
Anfänger
mentalman ist ein sehr geschätzer Menschmentalman ist ein sehr geschätzer Menschmentalman ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von Hans_PHP_11 Beitrag anzeigen
Also ich habs jetzt mit if gemacht jetzt zeigt er mir keinen Fehler mehr an, aber er zeigt mir an zb: 0 Einträge für A gefunden
und dadrunter zeigt er mir aber noch die anderen Einträge an
Hmm, keine Ahnung, bin selber Anfänger. Kapiere zwar, was da steht, aber nicht, wohin das führen soll.
mentalman ist offline   Mit Zitat antworten
Alt 21.04.2011, 13:50  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Korrektes Einrücken des Codes hilft dir, die Strukturen zu verstehen. Gewöhne dir das von Anfang an an. Und nein, das ist keine unnötige Arbeit.

Du hast ein logisches Problem. Du würfelst einmal kräftig 10 Kontrollstrukturen durcheinander ohne dir Gedanken über den Ablauf zu machen. Was auch immer du für ein Tutorial hast: Wirf es weg oder stelle dein Projekt zurück, bis du das Tutorial fertig hast.

PHP ist im Grunde ganz einfach. Es arbeitet (in deinem Fall) einfach von oben nach unten ab, was du niederschreibst. Alles, was sich innerhalb der geweiften Klammern einer For-Schleife befindet, wird auch innerhalb der Schleife abgearbeitet. Alles was sich innerhalb der geschweiften Klammern eines Ifs befindet, wird abgearbeitet wenn das If TRUE wird. Alles was im "Ansonsten" Fall (also wenn die Bedingung des IF nicht wahr wird) abgearbeitet werden soll, muss per ELSE DAHINTER stehen. Nicht das Else oder ein weiteres If mitten rein pflanzen.

Der erste Schritt ist also, dir über das Einrücken deines Codes die Strukturen vor Augen zu führen. Dann überlege eine Programmstruktur, beispielsweise in Prosa:
Code:
Wenn (FormularAbgeschickt)
{
    Führe Suche Durch;
    Zeige SuchErgebnisse an;
}
else
{
    Selektiere Alles;
    Zeige Alles an;
}
Der "Befehl" Zeige alles an wiederum ist deine For-Schleife. Somit wird draus beispielsweise:
Code:
Wenn (FormularAbgeschickt)
{
    Führe Suche Durch;
    Zeige SuchErgebnisse an;
}
else
{
    Selektiere Alles;
    Zeige Tabelle-Header;
    Für (Alle Ergebnisse)
    {
        Zeige tabellenzeile;
    }
    Zeige Tabellen-Footer;
}
Sowas nennt man strukturiertes Arbeiten. Und Darstellungsformen zu solchen Strukturen eines Programms nennt man beispielsweise auch Struktogramm (auch wenn es mittlerweile viele Formen und viele Namen für sowas gibt).
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP Suche Hans_PHP_11 PHP Einsteiger 7 21.04.2011 11:26
Suche einen weiteren Programmierer für Freizeit Projekt Creator Sonstige 5 15.11.2010 09:28
Datenbank Suche ooldorf PHP Tipps 2010 4 19.10.2010 17:02
Suche ohne Groß-/Kleinschreibung pfump Datenbanken 11 30.05.2010 10:13
Suche für Statische Seiten ? phpde Off-Topic Diskussionen 4 30.10.2009 13:13
Suche über PHP Das_Pfau PHP Tipps 2009 3 16.10.2009 15:54
[Erledigt] Suche - Wortmanipulation vaLLe PHP Tipps 2009 30 24.08.2009 20:17
eine Suche definieren Tyrra PHP Tipps 2009 14 10.07.2009 09:39
Scriptsuche [Erledigt] PHP Suche Sebo Scriptbörse 1 30.06.2009 19:46
Suche in Office Dateien mit Index Beatbox Off-Topic Diskussionen 6 09.02.2007 15:34
Suche Alienuser PHP Tipps 2006 5 02.07.2006 16:31
[Erledigt] Erweiterung der Suche PHP Tipps 2007 2 01.12.2005 19:30
Suche in Datenbank realisieren Unbekanntes_Pferd PHP Tipps 2007 4 09.11.2005 16:22
stichwort suche boehseronkel Datenbanken 2 14.07.2005 09:28
mal wieder eine suche lomtas Datenbanken 0 12.07.2005 11:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
zitat zum alphabet, echo zitat, alphabeth zitat, alphabet zitat

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:42 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum