Peschels: Datenbankabfrage für Anfänger

Hallo zusammen, bin blutiger Anfänger und versuch mir grad php selber beizubringen!
Habe folgendes Prog geschrieben : ~~~php

<body>
<?php
$con_id = mysql_connect("localhost", "test", "test") or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
    mysql_select_db("testdaten") or die ("Die Datenbank existiert nicht.");

	$id = mysql_query("SELECT * FROM tab1");  
	  
	echo "  
		<table align=\"center\"	border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bordercolorlight=\"black\" bordercolordark=\"black\" width=\"100%\">";  
			while($row = mysql_fetch_object($id))  
				{  
				echo "  
				<tr>  
					<td>  
						$row->id;  
					</td>  
					<td>  
						$row->date;  
					</td>  
					<td>  
						$row->time;  
					</td>  
					<td>  
						$row->place;  
					</td>  
					<td>  
						$row->sonst;  
					</td>  
				</tr>	  
				}  
		</table>  
		";  
  
	mysql_close($con_id);  
?>  

</body>

  
kommt aber ein unexpected $end bei </body>  
  
  
was mache ich falsch? danke schonmal im Voraus !!!
  1. Hi,

      
    
    > 				while($row = mysql_fetch_object($id))  
    > 					{  
    > 					echo "  
    > 					<tr>  
    > 						<td>  
    > 							$row->id;  
    > 						</td>  
    > 						<td>  
    > 							$row->date;  
    > 						</td>  
    > 						<td>  
    > 							$row->time;  
    > 						</td>  
    > 						<td>  
    > 							$row->place;  
    > 						</td>  
    > 						<td>  
    > 							$row->sonst;  
    > 						</td>  
    > 					</tr>	  
    > 					}  
    > 			</table>  
    > 			";
    
    

    kommt aber ein unexpected $end bei </body>

    Das dürfte daran liegen, dass du den Anweisungsblock, den du nach dem while(...) mit einer { geöffnet hast, nirgendwo wieder schliesst.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
  2. Hallo,

    Hallo zusammen, bin blutiger Anfänger und versuch mir grad php selber beizubringen!

    <?php
    $con_id = mysql_connect("localhost", "test", "test") or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
        mysql_select_db("testdaten") or die ("Die Datenbank existiert nicht.");

    gewöhn's Dir gar nicht erst an: die() ist keine Fehlerbehandlung.
    Die mysql_*-Funktionen sind leistungsschwach und veraltet, dafür in vielen Tutorials zu finden. Nutze lieber die mysqli-Erweiterung.

      $id = mysql\_query("SELECT \* FROM tab1");  
    

    Warum verwendest Du nicht einfache Anführungszeichen für Deine Zeichenkette. Es entfällt Deine Maskierungsorgie für die doppelten Anführungszeichen (vor allem für veraltete HTML-Attribute, wofür Du CSS nehmen solltest).

      echo "  
      	<table align=\"center\"	border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bordercolorlight=\"black\" bordercolordark=\"black\" width=\"100%\">";  
      		while($row = mysql\_fetch\_object($id))  
      			{  
    

    Dieser Block wird nicht mehr geschlossen.

      			echo "  
      			<tr>  
      				<td>  
      					$row->id;  
      				</td>  
      				<td>  
      					$row->date;  
      				</td>  
      				<td>  
      					$row->time;  
      				</td>  
      				<td>  
      					$row->place;  
      				</td>  
      				<td>  
      					$row->sonst;  
      				</td>  
      			</tr>	  
    

    weil diese geschweifte Klammer zur Zeichenkette gehört, die echo ausgeben soll.

      			}  
      	</table>  
      	";  
    

    was mache ich falsch? danke schonmal im Voraus !!!

    Du solltest einen Editor verwenden, der Syntaxhervorhebung kann sowie zusammengehörende Klammern markieren kann, zum Beispiel notepad++ unter Windows.

    Freundliche Grüße

    Vinzenz

  3. Danke nochmals für die schnelle Hilfe.
    Hab die Fehler raus gemacht und dann liefs so wie ichs mir vorgestellt hab.

    Wollt eben jenen Code dann in meine "richtige" Hp einbauen, aber auf einmal wollt diese Zeile nicht mehr :

      
    echo "  
    			<table align='center' border='1' cellspacing='0' cellpadding='5' bordercolorlight='black' bordercolordark='black' width='100%'>  
    			";  
    				while($row = mysql_fetch_object($id))  
    
    

    Er erkennt mir das letzte Anführungszeichen nicht als echo-Ende an und gibt mir dann ab "; while ... einfach im Browser aus. WARUM?

    1. Hi,

      Wollt eben jenen Code dann in meine "richtige" Hp einbauen, aber auf einmal wollt diese Zeile nicht mehr :

      echo "
      <table align='center' border='1' cellspacing='0' cellpadding='5' bordercolorlight='black' bordercolordark='black' width='100%'>
      ";
      while($row = mysql_fetch_object($id))

      
      >   
      > Er erkennt mir das letzte Anführungszeichen nicht als echo-Ende an und gibt mir dann ab "; while ... einfach im Browser aus. WARUM?  
        
      Das ist an Hand dieses Ausschnitts nicht zu beurteilen.  
        
      Hast du jetzt einen Editor mit Syntax-Hightlighting verwendet? Sieht es damit "korrekt" aus, sprich werden Befehle als solche dargestellt, und das was Daten sein sollen auch als solche?  
        
      MfG ChrisB  
        
      
      -- 
      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      
      1. Ich benutz schon immer Notepad++, hab aber grad festgestellt, dass i ne schlechte Farbeinstellung hatte.
        Jetzt siehts so aus,dass er des " von width='100%'>"; noch zu dem String interpretiert. Wie muss des dan richtig heißen?

        1. Hi,

          Jetzt siehts so aus,dass er des " von width='100%'>"; noch zu dem String interpretiert.

          Dazu besteht bei dem Code, den du gezeigt hast, kein Grund - der ist in sich fehlerfrei (was das echo-Statement angeht).

          Wie muss des dan richtig heißen?

          Das kann man nur dann beurteilen, wenn du den tatsächlichen Code zeigst.

          MfG ChrisB

          --
          Light travels faster than sound - that's why most people appear bright until you hear them speak.
          1.   
            <body>  
              
            		<div id="content">  
            		<h1>Termine</h1>  
            				<br>  
                            <br>  
                            <br>  
            	<?php  
            		$con_id = mysql_connect("localhost", "sven", "test");  
            	    mysql_select_db("testdaten");  
            	  
            		$id = mysql_query('SELECT * FROM test');  
            		  
            		echo "  
            			<table align='center' border='1' cellspacing='0' cellpadding='5' bordercolorlight='black' bordercolordark='black' width='100%'>  
            			";  
            				while($row = mysql_fetch_object($id))  
            					{  
            					echo "  
            					<tr>  
            						<td>  
            							$row->id;  
            						</td>  
            						<td>  
            							$row->date;  
            						</td>  
            						<td>  
            							$row->place;  
            						</td>  
            						<td>  
            							$row->sonst;  
            						</td>  
            					</tr>	  
            					";  
            					}  
            			echo "</table>";  
            			  
            	  
            		mysql_close($con_id);  
            	?> 		  
            	<br />  
            		<div class="text"> Noch <p />  
            			<form name="datum"> <input readonly="readonly" size="60" name="DD" ></form>	  
            		<br>bis zum H&auml;sabstauben</div>  
            		</div>  
            	</div>  
            </div>  
            </body>
            
            1. Hi,

              daran ist immer noch nichts fehlerhaftes zu erkennen, und das wird noch deutlicher, wenn man den Code nicht als HTML, sondern als PHP highlighten lässt:

              <body>  
                
                              <div id="content">  
                              <h1>Termine</h1>  
                                              <br>  
                              <br>  
                              <br>  
                      <?php  
                              $con_id = mysql_connect("localhost", "sven", "test");  
                          mysql_select_db("testdaten");  
                
                              $id = mysql_query('SELECT * FROM test');  
                
                              echo "  
                                      <table align='center' border='1' cellspacing='0' cellpadding='5' bordercolorlight='black' bordercolordark='black' width='100%'>  
                                      ";  
                                              while($row = mysql_fetch_object($id))  
                                                      {  
                                                      echo "  
                                                      <tr>  
                                                              <td>  
                                                                      $row->id;  
                                                              </td>  
                                                              <td>  
                                                                      $row->date;  
                                                              </td>  
                                                              <td>  
                                                                      $row->place;  
                                                              </td>  
                                                              <td>  
                                                                      $row->sonst;  
                                                              </td>  
                                                      </tr>  
                                                      ";  
                                                      }  
                                      echo "</table>";  
                
                
                              mysql_close($con_id);  
                      ?>  
                      <br />  
                              <div class="text"> Noch <p />  
                                      <form name="datum"> <input readonly="readonly" size="60" name="DD" ></form>  
                              <br>bis zum H&auml;sabstauben</div>  
                              </div>  
                      </div>  
              </div>  
              </body>
              

              Die besagte echo-Zeile wird korrekt beendet, das nachfolgende while wird als Befehlswort erkannt ...

              Sorry, dein Problem ist nicht nachvollziehbar.
              Vielleicht solltest du erst mal schauen, ob du auch in der richtigen Datei editierst bzw. den Code von der korrekten Stelle kopiert hast.

              MfG ChrisB

              --
              Light travels faster than sound - that's why most people appear bright until you hear them speak.
              1. Ich bin mir absolut sicher, dass das der richtige Code an der richtigen Stelle ist und sogar mein notepad++ zeigt mir an, dass alles korrekt is, nur mein Browser will des nicht !
                IE und Maxthon zeigen gar nichts an, bei FF wird der Code ab while als Text angezeigt

                1. Hi,

                  Ich bin mir absolut sicher, dass das der richtige Code an der richtigen Stelle ist und sogar mein notepad++ zeigt mir an, dass alles korrekt is, nur mein Browser will des nicht !

                  Dein Browser hat damit erst mal nichts zu tun, denn der PHP-Code wird auf dem Server interpretiert.

                  IE und Maxthon zeigen gar nichts an, bei FF wird der Code ab while als Text angezeigt

                  Dann stelle bitte ein Online-Beispiel bereit - einmal das Script selber, so dass es durch den PHP-Parser geschickt wird, und einmal mit der Endung .phps (sofern dein Server das unterstützt, dass dadurch eine Version mit Syntaxhighlighting angezeigt wird), oder als .txt

                  Solltest du sensible Daten wie Zugangsdaten entfernen müssen in der zweiten Version, dann mache dies bitte in so geringem Umfang wie möglich, sprich nur den Inhalt der Variablen durch xxx ersetzen o.ä.

                  MfG ChrisB

                  --
                  Light travels faster than sound - that's why most people appear bright until you hear them speak.
                  1. Oh ich Volli****,
                    jetzt hab ich meinen Fehler gefunden, ich hab des ganze unter ".html" abgespeichert und nicht unter ".php".Mein Gott,trotzdem vielen, vielen Dank !!